问题标签 [textout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
193 浏览

delphi - 使用带擒纵机构的 WinApi.Windows.TextOut 时出现意外偏移

我正在尝试使用 winapi TextOut 方法将文本绘制到画布上。当擒纵机构为 0、900、1800 或 2700 时,这工作得相当好,但对于所有其他值,我得到一个偏移错误(“跳转”)。

请运行随附的代码以查看问题。如您所见,水平和垂直文本的绘制符合预期,但第三行绘制在错误的位置。

一些问题:

  1. 显而易见的:为什么会发生这种情况,我应该怎么做才能解决它
  2. 为什么方向没有效果?我在示例中输入了 1234,但无论我使用什么值,结果都是相同的

(我们使用的代码是一个旧的“cad-like”库的一部分。这个库的作者已经离开了这个星球,所以我们不能请他帮助我们,更换这个库会很麻烦有了一个新的、更现代的库。我试图隔离相关代码)

-

-

0 投票
1 回答
133 浏览

delphi - 如何将动态文本写入导航栏使用的 TImageList 中的图像?

我最近遇到了一种情况,我需要为用于导航栏的图像编写计数器,其中图像来自 imagelist 组件。

在绞尽脑汁看了几个小时后,查看了其他文章,例如:

如何从 ImageList 加载透明图像?

如果使用 v6 ImageList 控件,*.bmp 会丢失透明背景

http://codeverge.com/embarcadero.delphi.graphics/timage-is-not-transparent-after-a/1080826

http://www.efg2.com/Lab/Library/Delphi/Graphics/ICOtoBMP.pas.txt

我选择了一个解决方案,从图像列表中复制位图,将文本写入位图画布,然后将位图放回图像列表中。

唯一的问题是我失去了透明度,我一生都无法弄清楚如何找回它。

如果我使用 GetIcon 而不是 GetBitmap,我可以提取并重新分配图像,包括透明度,但是我没有 Canvas 来使用 TextOut。

如果我设置颜色以使图像在链接到图像列表的组件中看起来正确,比如我的导航栏,那么当您使用 GetBitmap 提取图像时,透明度会丢失,并且在直接应用于TImage时看起来是白色的。

好的。没问题。只需使用白色作为透明色...

没有。即使将 16777215 显示为颜色,与clWhiteCanvas.Pixels[0, 31]的值相同,但将其用于TransparentColour没有任何效果。

要明白我的意思,请在 Delphi 中创建一个新的 VCL 表单应用程序,放置几个TButtons和一个TImageList ,然后通过在设计器中设置按钮Images属性将第二个按钮链接到图像列表。双击第一个按钮并将事件代码设置为:

现在在图像列表中添加一个不透明的位图(根据需要更改大小。我使用 32x32 像素位图)。默认情况下,组件将透明颜色显示为左下角的像素。保持原样并确定图像列表更改。将第二个按钮的ImageIndex更改为 0。

您现在应该看到添加到第二个按钮上显示的图像列表的位图,透明颜色是透明的。

现在单击第一个按钮。第二个按钮上的图像更改为显示“100”,但透明的现在变成了白色。

0 投票
1 回答
156 浏览

delphi - 当我在一个语句中不按顺序打印它们时,为什么 Canvas 中的 TextOut 将 Box-Drawing 字符与一个间隙连接起来?

我在项目中使用字体“Consolas”和/或“Courier New”来绘制一个 MS-DOS 外观的环境。在这个项目中,如果我使用 TextOut(TCanvas 的)在一个语句中按顺序打印 Box Drawing 字符,一切都很好,例如它打印“────────”但是如果我处理每个字符来打印它们单独地,每个字符之间会有一个间隙,例如:“----------”。这是一个手动测试的示例:

输出是:

输出截图:蓝色背景上的白色字符。 虽然第一行有连接的字符,但其余行每行显示字符之间的间隙非常小。

如您所见,它们在垂直方向上连接良好,但在水平方向上存在间隙。

我该如何解决?请注意,我在数组中绘制了我想要的内容,然后一个过程将数组打印如下:

0 投票
0 回答
31 浏览

c++ - GUI C++ - 绘制多行?(初学者问题)

我想探索 C++ GUI 编码。

我下载了下面的示例,并想修改突出显示的输出:“<---------------”。我知道这是一个非常愚蠢的问题,但我的目标是通过实践学习 C++ 的 GUI 概念。

为了添加第二行“Test. 3, 2, 1.”,我必须做什么以及为什么要做。我的方法不起作用,只产生第一行。

我添加了问候语1

0 投票
1 回答
120 浏览

delphi - Delphi SetMapMode 反转文本

我正在开发一个图形应用程序,并且有许多带有标题的对象。为了放置字幕,我计算了 X、Y 坐标并调用:

Canvas.TextOut(XText, YText, FCaption);

我决定使用不同的映射模式来简化从世界空间到设备空间的转换:

现在我的字幕打印颠倒了,但仍然是从左到右。

关于如何补救的任何想法?

我考虑过的一种方法是将地图模式设置回输出文本的默认值,这需要进行一些转换才能在不同模式下获得 X、Y。这是一个合理的策略吗?在绘画程序期间更改地图模式是否“正确”......?

0 投票
0 回答
73 浏览

c++ - (.text+0x26f): 未定义的对 `TextOutA@20' 的引用

几天来,我一直在尝试修复此代码。当我尝试编译时main.cpp,它给了我错误C:\Users\Username\AppData\Local\Temp\cckKRlpR.o:main.cpp:(.text+0x26f): undefined reference to TextOutA@20'。我也试过包括 gdi32.lib 和 lgdi32 但它仍然给我错误。如果你知道如何解决这个问题,请告诉我。这是源代码顺便说一句:

0 投票
1 回答
22 浏览

python - 导出熊猫数据框时如何将数字另存为文本

我有一个 * .csv 文件,数据在这种类型的字段中:00123、0145、0004567,即带有前导零(文本类型);情况,,,是我想将它们保存在另一个数据框中(在其他计算之后),并且我想保留这些零;但无论我看起来多么努力,它总是将它们转换为不带零的,,上面的那些将是:123,145,4567。我已经将 dtypes 转换为 str ,, 但它什么也没做。ff1 = pd.read_csv (dir + "\lotr\dats\coinc4f.csv") ff1.POSIF = ff1.POSIF.astype (str)

我怎样才能保持第一种格式,这是我感兴趣的格式?输入 0000xxx。

非常感谢