用Delphi5保存的dfm文件就是程序里设置的中文文字,但是Delphi6就全变了,是不是它自身把caption的属性全都加密了?如何去掉这个现象?这样的话在Delphi5的系统里无法打开!
解决方案 »
- 有没有人研究 文件拷贝....
- delphi我有TEdit的HWND,我怎么转成TEdit呢?
- 请教在listview连同文件与该文件所对应的图标一起显示的问题。
- 急急急!!!紧急求救!
- 谁有用WinPcap做过收包发包的Delphi例子,贴点代码学习,谢谢。
- 一个困扰了我一个多月的问题(数据倒入倒出问题)在大富翁一天没有几个人回贴,不知这里怎样?
- Delphi不能重新编译吗?
- sql 问题....
- 请问如何把richedit中额字体大小,样式,颜色等存入SQL SERVER 或ACCESS中啊?急急!!
- 定时器的工作原理
- 如何生成delphi应用程序的安装程序
- 请问做个显示系统年月的对话框如何做?例如“2002年11月的工资还没建立,需要建立吗?”
http://zswang.51.net/function/zsfunc1c.htm(*//
标题:处理窗体代码文本
说明:将窗体代码VCL6处理成VCL5格式
设计:Zswang
日期:2002-07-20
支持:[email protected]
//*)///////Begin Source
function ProcessFormSource(mSource, mDest: TStrings): Boolean;
var
I, J, K: Integer;
S: string;
vTempStr, vLeftStr: string;
vWideByte: Integer;
begin
Result := False;
if not (Assigned(mSource) and Assigned(mDest)) then Exit;
mDest.Clear;
for I := 0 to mSource.Count - 1 do begin
S := mSource[I];
if Pos('#', S) > 0 then begin
vTempStr := '';
vLeftStr := '';
K := 0;
for J := 1 to Length(S) do
case K of
0: begin //空区
case S[J] of
'''': begin
K := 1;
vLeftStr := vLeftStr + S[J];
end;
'#': K := 2;
else vLeftStr := vLeftStr + S[J];
end;
end;
1: begin //''''区
if S[J] = '''' then K := 0;
vLeftStr := vLeftStr + S[J];
end;
2: begin //#区
if S[J] in ['0'..'9', '$', 'a'..'f', 'A'..'F'] then
vTempStr := vTempStr + S[J]
else begin
K := Pos(S[J], '''#');
vWideByte := StrToIntDef(vTempStr, 0);
if vWideByte <= 256 then begin
vLeftStr := vLeftStr + '#' + vTempStr;
if S[J] = '''' then vLeftStr := vLeftStr + S[J];
end else begin
if Copy(vLeftStr, Length(vLeftStr), 1) = '''' then
Insert(WideChar(vWideByte), vLeftStr, Length(vLeftStr))
else vLeftStr := vLeftStr + QuotedStr(WideChar(vWideByte));
if S[J] = '''' then Delete(vLeftStr, Length(vLeftStr), 1);
end;
vTempStr := '';
end;
end;
end;
if K = 2 then begin
vWideByte := StrToIntDef(vTempStr, 0);
if vWideByte <= 256 then
vLeftStr := vLeftStr + '#' + vTempStr
else begin
if Copy(vLeftStr, Length(vLeftStr), 1) = '''' then
Insert(WideChar(vWideByte), vLeftStr, Length(vLeftStr))
else vLeftStr := vLeftStr + QuotedStr(WideChar(vWideByte));
end;
end;
S := vLeftStr;
end;
mDest.Add(S);
end;
Result := True;
end; { ProcessFormSource }
///////End Source///////Begin Demo
procedure TForm1.Button1Click(Sender: TObject);
begin
ProcessFormSource(Memo1.Lines, Memo2.Lines);
end;
///////End Demo