Code: Alles auswählen
procedure TFormSearchEdit.StartUp;
var
SL: TStringList;
idx : integer;
obj : TObject;
n: string;
mycat : TPayeeItem;
begin
SL:= GetDMMMEX.GetAllPayeeItems;
idx :=0;
obj:= SL.Objects[idx];
n:= SL.Strings[idx];
try
if SL.Count > 0 then begin
ComboBox1.Items.Assign(SL);
end;
finally
SL.Free;
end;
end;
Irgendwie kommt es mir vor, das Assign zwar die String Elemente kopiert, aber die Objekte nicht. Schau ich mir es in der LCL an, so finde ich keinen Grund für das Verhalten.
Code: Alles auswählen
procedure TFormSearchEdit.btUseClick(Sender: TObject);
var
idx : integer;
obj : TObject;
n: string;
mycat : TPayeeItem;
begin
idx := ComboBox1.ItemIndex;
if (idx >= 0) then begin
obj:= ComboBox1.Items.Objects[idx];
n:= ComboBox1.Items.Strings[idx];
if obj is TPayeeItem then begin
mycat := obj as TPayeeItem;
Payee:= mycat.Payee;
Category:= mycat.Category;
SubCategory:= mycat.SubCategory;
end;
end
else begin
ShowMessage('Auswahl ungültig <'+idx.ToString+'>');
end;
end;
Lazarus 2.3.0 (rev main-2_3-607-gae60967b81) FPC 3.3.1 i386-win32-win32/win64