我有一个包含3列的Tlistview,我需要来自Tcollection对象,如下所示
FListeDispoProduit := TListeDispoProduit.Create(TProduit);
with (FListeDispoProduit) do
begin
with TProduit(Add) do
begin
Name := 'Produit 01';
CIP := 'A001';
StockQty := 3;
end;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将此对象放入Tlistview时,只有第一列(Name)填充,我写这个:
for i := 0 to FListeDispoProduit.Count -1 do
Tlistview1.Items.Insert(i).Caption := TProduit(FListeDispoProduit.Items[i]).Name;
Run Code Online (Sandbox Code Playgroud)
我需要填写这3列(Name,cip,StockQty),我该怎么做?
谢谢.
希望我明白.
我习惯于在一个表格上创建它10次,这没关系,直到我试图传递这个数字,它开始吃系统资源,无论如何我可以创建这样的组件?对于模拟器项目,需要8位来指示二进制寄存器的值
任何帮助,评论,想法都非常感谢.TY.
我有这样的功能,我想重构
function Myfunction(sUrl, sFile: String) : Boolean;
var
GetData : TFileStream;
begin
Result := False;
//if the line below fails, I get an unhandled exception
GetData := TFileStream.Create(sFile, fmOpenWrite or fmCreate);
try
try
IdHTTP.Get(sUrl, GetData);
Result := (IdHTTP.ResponseCode = 200);
except
on E: Exception do begin
MessageBox(0, PChar(E.message), 'Niðurhala skrá', MB_ICONERROR or MB_OK);
end;
end;
finally
GetData.Free;
end;
end;
Procedure SomeOtherCode;
Begin
//How can I best defend against the unhandled exception above
//unless the call to the function is packed …
Run Code Online (Sandbox Code Playgroud) 我的D2006应用程序中有一个OnIdle处理程序.使用此代码:
procedure TMainForm.ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
begin
Inc (IdleCalls) ;
Sleep (10) ;
Done := False ;
end ;
Run Code Online (Sandbox Code Playgroud)
应用程序运行平稳,空闲处理程序每秒调用100次,CPU使用率接近于零.
然后我添加了一个TActionList并将一些控件连接到操作,编写了一个Execute和Update处理程序.
procedure TMainForm.ActionNewButtonExecute(Sender: TObject);
begin
DoNewProject ;
end ;
procedure TMainForm.ActionNewButtonUpdate(Sender: TObject);
begin
ActionNewButton.Enabled := AccessLevelIsSupervisor ;
end;
Run Code Online (Sandbox Code Playgroud)
问题.OnUpdate事件不会触发.在预感中,我在OnIdle处理程序中设置了Done:= true,然后只有在我移动鼠标时才会调用OnIdle处理程序.并且更新操作仍然不会触发.
为什么更新处理程序可能不会被触发,我应该将Done设置为true还是false?或两者?
我需要修改TVirtualStringTree的焦点框的边框颜色,就像这张照片:
有没有人知道Delphi XE(我在这里说的是VCL)是否有任何使用数据感知控件的通用集合类?换句话说,是否有任何通用类,如TObjectList <>可以分配给TDataSource.DataSet,或类似的东西?
谢谢.
担
我正在使用来自"大牌"之一的第三方串口组件(是的,我已经向他们寻求支持,但是存在时区差异,我需要很快解决这个问题).该组件已存在多年,我没有理由相信问题在于它(同上硬件).
h/w规范说如果我将一个字符串写入seial端口,通过回车终止,然后读取,它将回复一个spcifically格式的8字符串,再次通过回车终止.
代码可以正常运行几个小时,并根据它读取的内容更新GUI.
但是,当GUI上有任何用户活动时,我会从串口读取垃圾.
我第一次注意到它是单击一个按钮,导致打开模态窗体然后关闭窗体.
但是,我只是在拖动TStringGrid的scollbar时也会看到它.
这是代码.有什么建议?
更新:组件是线程化的,供应商同意这里的海报 - 串口是异步设备.我已经更改了代码来编写数据请求并处理组件的OnCharReceived()事件处理程序中的每个已接收字符.Tahnsk提供所有帮助.
function TForm1.ReadChannelValueFromSerialPort(
device_number : String; channel_number : String) : Real;
const SLEEP_TIME = 50; // ms
NUM_READ_ATTEMPTS = 10;
var serialPortInput : String;
read_attempt_counter : Integer;
messageString : String;
begin
WriteToSerialPort('#' + device_number + channel_number + #13);
serialPortInput := '';
read_attempt_counter := 0;
while Length(serialPortInput) = 0 do
begin
try
Application.ProcessMessages();
serialPortInput := serialPortInput + SerialPort.ReadText();
except
on E: Exception do
begin
messageString := 'Can''t read from serial port' ; …
Run Code Online (Sandbox Code Playgroud) delphi user-interface serial-port corrupt-data android-activity
您是否清楚地解释了为什么他们选择应用程序的核心作为其他组件的插件,而不仅仅是基本的共享库?除了设计的"酷感"之外,我看不出任何明显的优势.
我在AfterSignup单元中使用BeforSignup,以便能够从AfterSignup代码中调用电子邮件变量,最后我知道了一个问题,因为我想创建一个按钮,使用代码打开AfterSignup窗口:
AfterSignup.Show;
Run Code Online (Sandbox Code Playgroud)
但问题是我有义务将AfterSignup单元添加到BeforeSignup的使用列表中,这正是我无法做到的,因为我很喜欢使用BeforeSignup到AfterSignup单元.
我收到一个错误说,圆形单位的参考.
如何在用户单击时选择TEdit1的所有文本或单击以选择其中的某些文本
delphi ×9
delphi-2010 ×2
delphi-7 ×2
architecture ×1
binding ×1
corrupt-data ×1
data-aware ×1
delphi-2006 ×1
generics ×1
onclick ×1
plugins ×1
python-idle ×1
qt ×1
qt-creator ×1
serial-port ×1
taction ×1
tfilestream ×1
tlistview ×1