Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Object aus TreeView auslesen

  Alt 30. Mär 2007, 20:03
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.
  Mit Zitat antworten Zitat