![]() |
AW: TList generische Liste Fehler beim deklarieren RTTI
Zitat:
|
AW: TList generische Liste Fehler beim deklarieren RTTI
Zitat:
![]() |
AW: TList generische Liste Fehler beim deklarieren RTTI
Zitat:
Mitlerweile sind etliche Funktionen und Proceduren hinzugekommen und ich denke die Verwaltung durch eine Klasse wäre mitlerweile der bessere weg. Da ich in Delphi bisher nur wenig mit Klassen gearbeitet habe würde ich gerne wissen wie man das ganze mit soeinem Array Record realisiert.
Delphi-Quellcode:
//Methoden
function getZuordnungen():Tar_zuordnung; //holt alle Zuordnungen aus DB und liefert Array of TZuordnung zurück procedure fillCombobox(ar_zuordnung:Tar_zuordnung); //füllt die ComboBox mit den Zuordnungsnamen procedure verbindeFeld(); //verbindet die beiden Treeview Datenfelder miteinander und Speichert Zuordnungswerte in DB procedure entferneFeld(TV:ttreeview); //entfernt die Verbindungen procedure ladeVerbindungen(ar_zuordnung :Tar_Zuordnung;id:integer);//fügt Unterknoten mit den vorhanden Zuordnungswerten in die Treeviews ein Wie realisiert man das ? Mein Ansatz:
Delphi-Quellcode:
unit uZuordnungsklasse;
interface uses Classes; type TZuordnungRec = record zuorndungsname :string; trennzeichen :string; zuordnungsdatei :string; distributor :string; ... end; type Tar_ZuordnungRec = array of TZuordnungRec; type TZuordnung = class Constructor create; Destructor destroy; private ZO = TzuordnungRec; public //zugriffsmethoden end; implementation end. |
AW: TList generische Liste Fehler beim deklarieren RTTI
Lass den Record weg und mache aus seinen Feldern Properties Deiner Klasse. Verwalten kannst Du sie dann über eine TObjectList. Wenn diese die Objekte beim Entfernen automatisch freigeben soll, lässt Du deren OwnsObjects-Eigenschaft auf true, ansonsten eben umstellen.
|
AW: TList generische Liste Fehler beim deklarieren RTTI
okay ich versuch mich mal dran =)
hab bisher noch nicht mit Tobjektlist gearbeitet aber ![]() also müsst ich so mein Gerüst umbaun ?
Delphi-Quellcode:
und wo werden dann meine instancen der Objektlist hinzugefügt?
type
TZuordnung = class Constructor create; override; Destructor destroy; override; private Fzuorndungsname :string; Ftrennzeichen :string; Fzuordnungsdatei :string; Fdistributor :string; ... public // methoden //propertys property zuorndungsname :string read Fzuorndungsname write Fzuorndungsname; property trennzeichen :string read Ftrennzeichen write Ftrennzeichen; property zuordnungsdatei :string read Fzuordnungsdatei write Fzuordnungsdatei; property distributor :string read Fdistributor write Fdistributor; ... end; Muss die Objektlist Global defininiert werden, damit ich von mehreren Buttons drauf zugreifen kann ? ? oder wird einfach eine Methode GetZuordnungen :Tobjektlist, die mir alle Zuordnungen in klassen in die Objektlist packen und zurückgibt ausreichen ?! |
AW: TList generische Liste Fehler beim deklarieren RTTI
Schon ganz gut. Wenn die Buttons alle auf demselben Formular liegen, würde ich die Liste als privates Feld des Formulars deklarieren.
Delphi-Quellcode:
So geht das prinzipiell. FListe muss natürlich noch erzeugt und später freigegeben werden (z.B. im OnCreate/OnDestroy).
uses Contnrs; //oder Generics.Collections für eine generische TObjectList
type TZuordnung = class private FZuordnungsname: string; //usw. public constructor Create; destructor Destroy; override; property Zuordnungsname: string read FZuordnungsname write FZuordnungsname; end; TDeinForm = class(TForm) private FListe: TObjectList; ... procedure TDeinForm.btnNeueZuordnungClick(Sender: TObject); var Zuordnung: TZuordnung; begin Zuordnung := TZuordnung.Create; Zuordnung.Zuordnungsname := 'Ding Dong, die Hex ist tot'; FListe.Add(Zuordnung); end; |
AW: TList generische Liste Fehler beim deklarieren RTTI
Zitat:
|
AW: TList generische Liste Fehler beim deklarieren RTTI
Wieso kracht es hier ?
Delphi-Quellcode:
uses Generics.Collections,uZuordnungsklassen ...;
type TfrmZuordnung = class(TForm) ... private FListe: TObjectList<Tzuordnung>; ... end; procedure TfrmZuordnung.FormCreate(Sender: TObject); begin Fliste.create(); //hier kommt AV ?! end; |
AW: TList generische Liste Fehler beim deklarieren RTTI
Dass Dir das noch passiert.
Delphi-Quellcode:
var Dings: TDings;
Dings := TDings.Create; |
AW: TList generische Liste Fehler beim deklarieren RTTI
*HUST* ja wollts grad wieder wegmachen :D
Der tag ist schonwieder viel zu lang ;) wird mal Zeit für 5 minuten pause! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11: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