我在windows 7 64bit上使用delphi xe7和测试程序,并在调试模式下编译。我的程序可以工作。当我将调试模式更改为释放模式时。它有关于文本框不显示消息的问题。
TConnectionInfo = Record
NameConnection : String;
Server : String;
Database : String;
UserName : String;
Password : String;
Port : String;
ConvertZero : String;
End;
procedure TXMLFrm.AssignToTb1(index:Integer);
begin
tb1_position.Caption := 'SEQ # ' + IntToStr(index+1) + ' / = ' + IntToStr( Length( AConnection));
tb1_connection.Caption := 'Connection Name : '+ AConnection[index].NameConnection;
tb1_database.Caption := 'DataBase Name : '+ AConnection[index].Database;
tb1ed_Server.Text := AConnection[index].Server;
tb1ed_User.Text := AConnection[index].UserName;
tb1ed_Password.Text := AConnection[index].Password;
end;
我可以确保我的列表数组的值为100%。
为什么以及如何解决问题?
感谢
答案 0 :(得分:1)
文本框,即TEdit
控件,已知效果很好。这是一个基本的控制。如果他们没有工作,那么有人会注意到。
如果您的文本框为空,那是因为您没有将任何文本放入其中。似乎AConnection[index]
包含一些空字符串。
考虑这行代码:
tb1_database.Caption := 'DataBase Name : '+ AConnection[index].Database;
您的屏幕截图显示标签显示'DataBase Name : '
,然后不再显示。控件如何显示Caption
的一部分而不是全部?毫无疑问,AConnection[index].Database
是空的。好吧,它可能包含非打印字符,如空格,但你明白我的意思。
我们无法弄清楚为什么会这样。您需要进行一些调试。开始的地方是考虑为什么调试版本可能与发布版本不同。明显的区别是输出文件夹不同。您的程序是否从其可执行文件目录中读取配置信息?
如果你不能从那里解决它,那么尝试一些调试。使用跟踪调试(OutputDebugString
或类似)或使用交互式调试器。您需要在发布配置中启用调试才能执行后者。记得在完成调试后还原该更改。