求解-----关于Memo
delphi吧
全部回复
仅看楼主
level 7
kings💢 楼主
看了一周Delphi之后准备写记事本练练手
开始纠结是用RichEDit 还是Memo
在使用的Memo的时候发现 下面的语句就出现乱码了
FindDialog.FinaName:=Memo.selText;
有解决的办法吗?
编译环境:Win7+delphi7
2014年04月25日 03点04分 1
level 9
又是d7 唉
2014年04月25日 03点04分 2
老总说:虽然现在新版本功能很强大,但是我们都用不着,还是Delphi7最好,公司现在都7 版本,你回去看看书,熟练,熟练。。。 [不高兴]
2014年04月25日 04点04分
回复 _爱情的幼稚园 :你和老总说,D7 用 XP 开发比较好。用 WIN7 太麻烦。不过可以开发好在 WIN7 测试下就行。
2014年04月25日 04点04分
回复 wang_80920 :[不高兴],老总的Thinkpad 全部装的XP,我自己装的WIN7..换系统备份太麻烦了
2014年04月25日 05点04分
level 2
用RichEDit。memo不能显示格式
2014年04月25日 04点04分 3
嗯,先把Memo例子写完,再换RichEdit 这个都好说,只是我写查找的时候 乱码 还没解决
2014年04月25日 05点04分
回复 _爱情的幼稚园 :你没有具体说,怎么个乱码。
2014年04月25日 09点04分
level 6
练手Memo
不练手有第三方控件
记事本本来就没有多少功能
-_-||
练手程序
文件分段读写,内存分段加载,内容分段显示
2014年04月25日 05点04分 4
有多少功能都是自己添加的嘛..比如我可以让记事本把Excel转换成文本,功能只要自己想的到。 我现在就是解决不了,查找时候乱码的问题,就是上面那条语句
2014年04月25日 05点04分
level 12
Delphi 有记事本Demo
安装目录下找Demo
2014年04月25日 07点04分 5
他是以RichEdit为例子的...RichEdit不会出现这个问题
2014年04月25日 09点04分
level 7
kings💢 楼主
@wang_80920
如图:
代码:
procedure TForm1.Find1Click(Sender: TObject);
begin
Application.MessageBox(PChar(Memo1.SelText),'tips');
SearchFind1.Dialog.FindText:=Trim(Memo1.SelText);
SearchFind1.Dialog.Execute;
end;
不知道这样清不清楚。。。。。
在网上找了半天具体结果没找出来,有人说 XE_的不乱
2014年04月25日 10点04分 6
你 DELPHI 版本是哪个?
2014年04月25日 14点04分
回复 wang_80920 :delphi7的..
2014年04月25日 14点04分
level 9
搞清楚 memo.SelText 这是string, D7默认是ansistring
FindDialog.FinaName, 这个的定义是什么? 如果类型不一样, 肯定就是乱码了
如果FindDialog.FinaName定义的是widestring, 就要强制转换
Widestring(memo.SelText)
2014年04月25日 12点04分 8
看了帮助文档都是 string 类型 文档定义: Delphi syntax: property FindText: String; 只能换RichEdit了,还是跟你说声谢谢!
2014年04月25日 12点04分
level 12
D7测试,没有问题..你的是win764位?
2014年04月25日 13点04分 9
32位的.. 前面我单独也拿出来测试,不管是用ActionList还是直接用FindDialog,虽然其实都一样,还是测试了,,不会去乱码,但是到了现在记事本就会乱码,就是找不到原因!
2014年04月25日 14点04分
level 10
我们的 DELPHI 没乱码。只能说你安装的有问题。
建议使用 XE4UP1 开发。这样效果好。
2014年04月25日 14点04分 10
我和上楼单独拿出来测试,也是完全没问题,就是让我很惊讶的地方!
2014年04月25日 14点04分
level 7
kings💢 楼主
这是我下午在办公司找的粗略答案,不知道是不是正确!
http://bbs.csdn.net/topics/350134998
D7 不支持Unicode?
2014年04月25日 14点04分 12
@ayi033 地址:http://pan.baidu.com/s/1ntI4Q17 上面是我找到好像是答案的答案
2014年04月25日 15点04分
2014年04月25日 15点04分
D7不支持Unicode
2014年05月03日 17点05分
level 12
procedure TForm1.Find1Click(Sender: TObject);
var
I,l:Integer;
AllText:Widestring;
S:String;
begin
Alltext := Memo1.Lines.Text;
I:=Memo1.SelStart;
l:=Memo1.SelLength;
// S:=MidStr(AllText,I+1,L); // 可以把Alltext定义为String,然后用这个函数
S:=Copy(AllText,I+1,L); //Alltext为WideString用这个
SearchFind1.Dialog.FindText:=S;
SearchFind1.Dialog.Execute;
//FindDialog1.FindText:=Memo1.SelText;
//FindDialog1.Execute;
end;
//确实是字符集的问题,看看SelStart 和SelLenth,得到的长度,中文是按照单个字节算的,暂时不知道为什么没有家代码就没有问题
2014年04月25日 16点04分 13
这个问题是由 XPMan单元引起的。
2014年04月25日 16点04分
回复 ayi033 :XPMan 是类似于 24号资源的东西么? 找到一个XPmanifest,但是属性只有Name和tag! 嗯,还是跟你说声谢谢[真棒]
2014年04月26日 04点04分
回复 _爱情的幼稚园 :不知道,应该是类似于皮肤的东西,他有一个资源文件,应该是让程序具有windows xp的风格,我没用过,具体也不知道。
2014年04月27日 12点04分
level 1
扔了D7,现在用,至少2010及以上的版本。
2014年05月03日 17点05分 16
1