Hallo,
ich habe ein Problem mit der TStringList, mit dem Befehl AddObject bekommt die Liste ein String und ein Object zugewiesen. Beim Auslesen kommt beim String das richtige Ergebnis, aber beim Object kommt Blödsinn raus.
Was mache ich falsch?
Delphi-Quellcode:
type
TDatenNr= class(TObject)
private
FDatNr: integer;
function GetFDatNr: integer;
procedure SetFDatNr(Variable: integer);
public
Constructor Create;
Destructor free;
property DatNr: integer read GetFDatNr write SetFDatNr;
end;
TForm1 = class(TForm)
StringEingabeEdit: TEdit;
ZahlEingabeEdit: TEdit;
StringAusgabeEdit: TEdit;
ZahlAusgabeEdit: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
Liste: TStringlist; // StringListe
DatenObj: TDatenNr; // Daten-Object
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Constructor TDatenNr.Create;
begin
inherited;
end;
Destructor TDatenNr.free;
begin
end;
function TDatenNr.GetFDatNr: integer;
begin
Result:= FDatNr;
end;
procedure TDatenNr.SetFDatNr(Variable: integer);
begin
if FDatNr <> Variable then
FDatNr:= Variable;
end;
procedure TForm1.Button1Click(Sender: TObject);
var StrEingabe: string;
intZahlEingabe: integer;
intZahlAusgabe: integer;
begin
StrEingabe:= StringEingabeEdit.Text;
intZahlEingabe:= strtoint(ZahlEingabeEdit.text);
DatenObj.DatNr:= intZahlEingabe;
Liste.AddObject(StrEingabe,DatenObj);
StringAusgabeEdit.Text:= Liste[0];
intZahlAusgabe:= TDatenNr(Liste[0]).DatNr; //<--- Hier wird nicht der
// richtige Wert zurückgegeben.
ZahlAusgabeEdit.Text:= inttostr(intZahlAusgabe);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Liste:= TStringList.Create;
DatenObj:= TDatenNr.Create;
end;
end.
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.