精易论坛

标题: 编辑框能单独取某一行的内容吗 [打印本页]

作者: tansiryaya    时间: 2025-3-29 21:24
标题: 编辑框能单独取某一行的内容吗
如图所示:编辑框1里面有一段文本(汉字+大小写字母+特殊符号+数字)顺序是乱的,但是没有换行符,因为编辑框1是使用了允许多行。编辑框1的尺寸是变化的,有可能宽度比较大,其内容只有3行,也有可能编辑框1的宽度比较小,行数变为N行。请问能否单独取某一行的文本呢?

附上源码: 22.e (2.61 KB, 下载次数: 9)





作者: 熊猫xpanda    时间: 2025-3-29 21:24
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
行号整数型 
文本文本型 
行号 = 到整数 (编辑框3.内容)
文本 = 取空白文本 (255)
SendMessageA (编辑框1.取窗口句柄 (), 196, 行号 - 1, 取指针文本_ (文本))
编辑框2.内容 = 删尾空 (文本)
子程序名返回值类型公开备 注
取指针文本_整数型 
参数名类 型参考可空数组备 注
参数_文本文本型
置入代码 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })
' mov eax,[ebp+8]
' mov eax,[eax]
' leave
' retn 04
返回 (0)



22.e (149.79 KB, 下载次数: 0)

作者: Ruang    时间: 2025-3-29 21:26
文本_取指定变量文本行(, )
作者: tansiryaya    时间: 2025-3-29 21:35
Ruang 发表于 2025-3-29 21:26
文本_取指定变量文本行(, )

我试了一下你说的方法,你说的方法是文本中带换行的才行,我的内容是连续的,没换行
作者: 易有易用    时间: 2025-3-29 21:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: 是可可吖    时间: 2025-3-29 21:53
直接分割编辑框1内容

补充内容 (2025-3-29 21:56):
是一个整体啊?
作者: b0y    时间: 2025-3-29 22:01
没换行当然就不算多行啊  那就算一行  
某一行自然要有换行符啊
作者: 算法艺术家    时间: 2025-3-29 22:24
有点BUG正常
  
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
每行半角整数型 
起始整数型 
起始 = 1
每行半角 = 四舍五入 (编辑框1.宽度 ÷ (字体_取单字宽高 (编辑框1.字体.字体大小, ) ÷ 2), )
如果真 (到整数 (编辑框3.内容) > 1)
起始 (到整数 (编辑框3.内容) - 1) × 每行半角
编辑框2.内容 = 取文本中间 (编辑框1.内容, 起始, 每行半角)


作者: 798924038    时间: 2025-3-29 22:49
思路在注释里面写清楚了,写了一半,由于太过复杂不想干了。
楼主能看得懂的话可以接着写,看不懂的话可以等好心人接力。

预测文本长度-未完成.e

12.51 KB, 下载次数: 3


作者: 笨来无一悟    时间: 2025-3-29 23:18
大概这样
  
子程序名返回值类型公开备 注
_编辑框1_鼠标左键被放开逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型
纵向位置整数型
功能键状态整数型
变量名类 型静态数组备 注
内容文本型 
内容 = 编辑框_取光标所在行内容 (编辑框1.取窗口句柄 ())
调试输出 (内容)
子程序名返回值类型公开备 注
编辑框_取光标所在行内容文本型 
参数名类 型参考可空数组备 注
编辑框_句柄整数型
变量名类 型静态数组备 注
line整数型 
index整数型 
length整数型 
content文本型 
line = SendMessageA (编辑框_句柄, 201, -1, 0)
index = SendMessageA (编辑框_句柄, 187, line, 0)
length = SendMessageA (编辑框_句柄, 193, index, 0)
content = 取空白文本 (length + 1)
SendMessageA (编辑框_句柄, 196, line, 取变量数据地址 (content))
返回 (content)


i支持库列表   支持库注释   
spec特殊功能支持库


作者: 笨来无一悟    时间: 2025-3-29 23:19
笨来无一悟 发表于 2025-3-29 23:18
大概这样
  
[/quote]
[e=4].版本 2
DLL命令名返回值类型公开备 注
SendMessageA整数型 将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。
DLL库文件名:
user32.dll
在DLL库中对应命令名:
SendMessageA
参数名类 型传址数组备 注
hWnd整数型其窗口程序将接收消息的窗口的句柄。
Msg整数型指定被发送的消息。
wParam整数型指定附加的消息特定信息。
lParam整数型指定附加的消息特定信息。



i支持库列表   支持库注释   
spec特殊功能支持库


作者: 超级无敌暴龙    时间: 2025-3-29 23:19
感谢大佬
作者: 黑咖啡    时间: 2025-3-30 00:26
精易模块
调试输出 (外部编辑框_取指定行文本 (编辑框1.取窗口句柄 (), 3))


补充内容 (2025-3-30 00:34):
精易的学问太大了
作者: tansiryaya    时间: 2025-3-30 01:13
熊猫xpanda 发表于 2025-3-29 23:33
[e=0].版本 2

.程序集 窗口程序集_启动窗口

感谢,您的纯源码最简单,测试了几次很可靠。




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4