AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ObjectList

Ein Thema von Willie1 · begonnen am 19. Jun 2020 · letzter Beitrag vom 21. Jun 2020
 
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#4

AW: ObjectList

  Alt 19. Jun 2020, 17:09
Record ist überflüssig. Zumindest in dieser Konstellation.

Wie Jumpy bereits gesagt hat, pack deine Variablen direkt in die Klasse.

Delphi-Quellcode:
Type
  TTelEintrag=class
    private
      FName: string;
      FTelNummer: string;
      Procedure SetName(value: string);
      Procedure SetTelNummer(value: string);
    published
      property Name: string read FName write SetName;
      property TelNummer: string read FTelNummer write SetTelNummer;
   end;

   TTelBuch=class(TObjectList<TTelEintrag>);
Lesen und Schreiben der Daten kannst du recht einfach über TelBuch[Index].Name oder TelBuch[index].TelNummer.

Wenn du eine Liste hast, dann wirst du in den meisten Fällen diese Liste irgendwie abbilden. Im simpelsten Fall in einer Listbox.
Laden könntest du die vielleicht so:

Delphi-Quellcode:
Listbox.clear;
for i:=0 to TelBuch.Count-1 do
  ListBox.Items.Add(TelBuch[i].Name);
Wenn du jetzt einen Eintrag der ListBox selektierst könnte du auf die Daten ungefär so zugreifen:
TelBuch[ListBox.ItemIndex].Name (oder .TelNummer)

Du kannst diese Daten halt in ein Control laden z.B. edit1.Text:=TElBuch[ListBox.ItemIndex].Name nach der Änderung z.B: über TelBuch[ListBox.ItemIndex].Name:=edit1.Text; .

Einfach mal ein bisschen mit rumspielen.

Du kannst natürlich in dem Object auch anderen Objecte als properties verwenden z.B. eine TStringList oder TNummernList (eine weitere TObjectList, die du natürlich vorher deklariert haben solltest), usw.

Dann solltest du den Constructor Create und den Destructor Destoy mit in deine Klasse aufnehmen und dort entsprechen diese Objecte erzeugen bzw. Freigeben.
Delphi-Quellcode:
.
.
.
public
  constructor Create;
  destructor Destroy; override;
.
.
.

implementation
  
constructor TTelEintrag.Create;
begin
  inherited;
  FNummernList:=TNummernList.Create;
end;

destructor TTelEintrag.Destroy;
begin
  FNummernList.free;
  inherited;
end;
Wichtig ist im Interface-Abschnitt beim Destroy nicht das override zu vergessen.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.

Geändert von Hobbycoder (19. Jun 2020 um 17:20 Uhr)
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz