如何解决获取 FMX TMemo 中的插入符号位置行和字符
我试过了:
lblX.Text := Memo.Caret.Pos.X.ToString();
lblY.Text := Memo.Caret.Pos.Y.ToString();
这两个值似乎代表了备忘录左侧和顶部的实际位置。
是否可以将其作为行(行)和列(字符)获取?
我想澄清一下,我与 firemonkey 一起工作,以便能够将我的项目编译到 windows 和 linux。
感谢您的回答。
Selticq。
解决方法
我以前从未使用过 FMX,但使用 Code Insight 我立即发现 Memo.CaretPosition.Line
和 Memo.CaretPosition.Pos
分别代表当前行和列。
documentation 证实了这一点:
Line
表示包含光标的行号,从零开始索引。
Pos
表示光标的水平字符坐标,从零开始索引。
[...]
因此,如果 Line = 3
和 Pos = 5
,则光标位于第四行和行首的第六个字符处。
如果你想显示备忘录插入符号的位置,你可以使用这样的代码:
#importing dependencies
import numpy as np
import logging
import discord
import PIL
import asyncio
import os
#importing commands from above dependencies
from discord import client
from discord.ext import commands
from PIL import Image,ImageFont,ImageDraw
from discord.member import Member
#enabling privileged intents
intents = discord.Intents.default()
intents.members = True
intents.presences = True
client = discord.Client(intents=intents)
#for custom image welcome message
@client.event
async def on_member_join(ctx,member: discord.Member = None):
if member == None:
member = ctx.author
channel = client.get_channel("TOKEN")
#-----------------------------------------------------------------------------#
#transforming user's avatar into a circle
# Open the input image as numpy array,convert to RGB
img=Image.open(member.avatar_url).convert("RGB")
npImage=np.array(img)
h,w=img.size
# Create same size alpha layer with circle
alpha = Image.new('L',img.size,0)
draw = ImageDraw.Draw(alpha)
draw.pieslice([0,h,w],360,fill=255)
# Convert alpha Image to numpy array
npAlpha=np.array(alpha)
# Add alpha layer to RGB
npImage=np.dstack((npImage,npAlpha))
# Save with alpha
Image.fromarray(npImage).save("D:\Coding\Python\Projects\discord_moderation_bot\imgs\result.png")
#-----------------------------------------------------------------------------#
#pasting user avatar into welcome banner
img = Image.open("D:\Coding\Python\Projects\discord_moderation_bot\imgs\welcome_banner.png")
pfp = Image.open("D:\Coding\Python\Projects\discord_moderation_bot\imgs\result.png")
pfp = pfp.resize ((167,167))
img.paste(pfp,(120,104))
img.save("D:\Coding\Python\Projects\discord_moderation_bot\imgs\welcome.jpg")
await ctx.send(file = discord.File("welcome.jpg"))
client.run("TOKEN")
如果您想要在正确的事件处理程序中调用该方法的完整示例代码,这里是:
procedure TForm1.UpdateCaretPosDisplay;
begin
lblX.Text := (Memo1.CaretPosition.Pos + 1).ToString;
lblY.Text := (Memo1.CaretPosition.Line + 1).ToString;
end;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。