Hallo DPler,
kann mir mal jemand helfen mit dem Code? Ich bekomme eine
AV beim Ausfuehren der DrawItem Methode.
Delphi-Quellcode:
procedure TfoOutput.LbxInfoDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with TListBox(Control) do
begin
Canvas.FillRect(Rect);
case Integer(LbxInfo.Items.Objects[Index]) of
0:
begin
if ( TValues(LbxInfo.Items.Objects[Index]).Value / 1000000) < 10 then
LbxInfo.Canvas.Font.Color := clGreen
else
LbxInfo.Canvas.Font.Color := clRed;
Canvas.TextOut(Rect.Right - 62, Rect.Top, 'Suspend: ' + IntToStr(TValues(LbxInfo.Items.Objects[Index]).Value));
end;
end;
end;
end;
Hier sollte das befuellen stattfinden:
Delphi-Quellcode:
procedure TfoOutput.PopMenItmHibClick(Sender: TObject);
var
AppDir: String;
lXMLLib: TXMLLib;
lNode: TXMLNode;
lAttr: TXMLAttribute;
Values: TValues;
begin
LbxInfo.Clear;
Values := TValues.Create;
AppDir := BrowseDialog('Select Directory', BIF_NEWDIALOGSTYLE or BIF_RETURNONLYFSDIRS);
[...]
begin
lNode := lXMLLib.GetNodeFromPath('suspend/scenario');
if ( assigned(lNode) ) then
begin
lAttr := lNode.Attributes.AttributeByName['suspend'];
begin
if ( assigned(lAttr) ) then
begin
LbxInfo.Items.AddObject(IntToStr(DataIndex), Values);
TValues(LbxInfo.Items.Objects[DataIndex]).Value := lAttr.Value.AsInteger;
end;
end;
[...]
Danke!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)