【问题标题】:Writing Text on a Sphere in FireMonkey在 FireMonkey 中的球体上写入文本
【发布时间】:2013-03-27 14:20:51
【问题描述】:

有没有办法在 FireMonkey 中的球体组件的表面上写文本,而不是用文本创建位图,并将文本导入到TextureMaterialSource

【问题讨论】:

    标签: delphi text 3d firemonkey geometry-surface


    【解决方案1】:

    我不确定你会如何直接写到表面,因为我没有处理 Firemonkey 3D 方面的内部结构。但是,这样的解决方案我可以半途而废。

    一种可能的解决方案是使用MakeScreenshot 函数(它返回TBitmap 结果)。例如,将TEditTLabel(或TText)添加到您的表单中。使用 livebindings 或旧的 label1.text := edit1.text 代码,您将能够使用您希望显示的文本设置屏幕截图源。

    我假设您的表单上有 TSphereTTextureMaterialSource。在表单中添加TButton,并在 OnClick 事件中使用类似的内容;

    var
      Bmp : TBitmap;
      mstream : TMemorystream;
    begin
      mstream := TMemorystream.Create;
      bmp := Label1.MakeScreenshot;
      bmp.SaveToStream(mstream);
      tex.Texture.LoadFromStream(mstream);
      mstream.Free;
    end;
    

    注意: tex 是纹理对象。

    我简要地写了下来,但无法让它工作(大概是因为在加载纹理后还有更多工作需要完成)。它应该让您对在哪里工作有一个基本的了解。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 2017-11-20
      • 2015-04-07
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多