Hallo,
jetzt funktioniert es, ich habe beim ersten Versuch übersehen das nur ein Zeiger übergeben wird und so wurden nur vom letzten Object die Daten angezeigt.
Delphi-Quellcode:
for I := 1 to Anzahl do
begin
MSBez.MSLesen:= i;
For z:=0 to TreeView1.Items.Count -1 do
begin
if (TreeView1.Items[z].Text = MSBez.MaBez) then
begin
if (NOT (IsDuplicateEintrag(m_Ebene4, MSBez.MaNr+MSBez.MSNr,TRUE))) then
begin
Daten:= TMSV1.Create;
// Daten von MSBez in Daten übertragen.
with MSBez do
begin
Daten.MSDateiName:= MSDateiName;
Daten.MaInhalt:= MaInhalt;
Daten.MaInhaltDichte:= MaInhaltDichte;
Daten.MSMECode:= MSMECode;
Daten.MSBeschr:= MSBeschr;
Daten.MaBez:= MaBez;
Daten.MSMessBereichMin:= MSMessBereichMin;
Daten.MSMessBereichMax:= MSMessBereichMax;
Daten.MSMessMaxAenderung:= MSMessMaxAenderung;
Daten.MSMessMinAenderung:= MSMessMinAenderung;
Daten.MaGruppe1:= MaGruppe1;
Daten.MaGruppe2:= MaGruppe2;
Daten.DarstellungsArt:= DarstellungsArt;
Daten.MaNr:= MaNr;
Daten.MSNr:= MSNr;
{ Daten.MSId:= MSId; }
Daten.MSAktiv:= MSAktiv;
Daten.MSGeloescht:= MSGeloescht;
end;
m_Ebene4:= TreeView1.Items.AddChildObject(TreeView1.Items[z],
MSBez.MaNr+MSBez.MSNr, Daten);
if MSBez.MSAktiv then
begin
m_Ebene4.StateIndex:= 4;
end
else
begin
m_Ebene4.StateIndex:= 3;
end;
If MSBez.DarstellungsArt= 2 then
begin
m_Ebene4.ImageIndex := 2;
end
else
begin
m_Ebene4.ImageIndex:= 1;
end;
end;
end;
end;
Um die Daten anzuzeigen gehe ich nun so vor:
Delphi-Quellcode:
procedure TForm1.TreeView1Click(Sender: TObject);
var MSBez3: TMSV1;
strTest: string;
Index: integer;
begin
MSBez3:= TMSV1.Create();
MSBez3:= TreeView1.Selected.Data;
if MSBez3 <> NIL then
begin
MSBez:= MSBez3;
Button2Click (self);
end;
end;
Jetzt habe ich noch eine Frage bezüglich der Freigabe des Speichers der Daten von Data von TreeView, geschieht dies automatisch?
Und wie kann man feststellen, dass man Speicherlöscher produziert oder nicht.
wer gesund ist hat 1000 wünsche wer krank ist nur einen.