AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TList generische Liste Fehler beim deklarieren RTTI
Thema durchsuchen
Ansicht
Themen-Optionen

TList generische Liste Fehler beim deklarieren RTTI

Ein Thema von H3llsing · begonnen am 11. Aug 2011 · letzter Beitrag vom 15. Aug 2011
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.589 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: TList generische Liste Fehler beim deklarieren RTTI

  Alt 12. Aug 2011, 11:08
Bei einer Klasse gäbe es dagegen die Methoden LoadFromStream() und SaveToStream().
Bei einem Record genauso, wenn man das möchte.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#12

AW: TList generische Liste Fehler beim deklarieren RTTI

  Alt 12. Aug 2011, 12:11
Ich muss nur immer wieder feststellen dass selbst altgediente Hasen manchmal nicht beweglich genug sind vom Record auf eine Klasse zu wechseln.
Und ich muss immer wieder feststellen, daß manche Hasen nicht beweglich genug sind, die Techniken neuerer Delphi-Versionen einzusetzen. Dazu gehören, neben einer Fülle anderer Dinge, auch Methoden in Records.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
H3llsing

Registriert seit: 12. Nov 2008
96 Beiträge
 
Delphi 2010 Enterprise
 
#13

AW: TList generische Liste Fehler beim deklarieren RTTI

  Alt 12. Aug 2011, 14:45
OOP ist mir schon geläufig aber genau wie Uwe es schon gesagt hat, geht es in meinem Fall nur mit dem Record besser =)
Ich glaub das ist jetzt nicht mehr so ganz zutreffend!

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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#14

AW: TList generische Liste Fehler beim deklarieren RTTI

  Alt 12. Aug 2011, 14:48
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
H3llsing

Registriert seit: 12. Nov 2008
96 Beiträge
 
Delphi 2010 Enterprise
 
#15

AW: TList generische Liste Fehler beim deklarieren RTTI

  Alt 12. Aug 2011, 15:26
okay ich versuch mich mal dran =)
hab bisher noch nicht mit Tobjektlist gearbeitet aber DelphiTreff hat ja immer n Tutorial parat.

also müsst ich so mein Gerüst umbaun ?
Delphi-Quellcode:
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;
und wo werden dann meine instancen der Objektlist hinzugefügt?
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 ?!

Geändert von H3llsing (12. Aug 2011 um 15:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#16

AW: TList generische Liste Fehler beim deklarieren RTTI

  Alt 12. Aug 2011, 15:34
Schon ganz gut. Wenn die Buttons alle auf demselben Formular liegen, würde ich die Liste als privates Feld des Formulars deklarieren.
Delphi-Quellcode:
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;
So geht das prinzipiell. FListe muss natürlich noch erzeugt und später freigegeben werden (z.B. im OnCreate/OnDestroy).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.017 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#17

AW: TList generische Liste Fehler beim deklarieren RTTI

  Alt 12. Aug 2011, 15:44
hab bisher noch nicht mit Tobjektlist gearbeitet aber DelphiTreff hat ja immer n Tutorial parat.
Oh, bitte nicht! Da du Delphi 2010 hast, benutz die TObjectList<T> aus der Generics.Collections.pas
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
H3llsing

Registriert seit: 12. Nov 2008
96 Beiträge
 
Delphi 2010 Enterprise
 
#18

AW: TList generische Liste Fehler beim deklarieren RTTI

  Alt 12. Aug 2011, 16:20
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;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#19

AW: TList generische Liste Fehler beim deklarieren RTTI

  Alt 12. Aug 2011, 16:23
Dass Dir das noch passiert.
Delphi-Quellcode:
var Dings: TDings;
Dings := TDings.Create;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
H3llsing

Registriert seit: 12. Nov 2008
96 Beiträge
 
Delphi 2010 Enterprise
 
#20

AW: TList generische Liste Fehler beim deklarieren RTTI

  Alt 12. Aug 2011, 16:27
*HUST* ja wollts grad wieder wegmachen
Der tag ist schonwieder viel zu lang

wird mal Zeit für 5 minuten pause!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 17:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz