AGB  ·  Datenschutz  ·  Impressum  







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

Generics (Objectlist) in Komponenten

Ein Thema von Keldorn · begonnen am 27. Jun 2012 · letzter Beitrag vom 30. Jun 2012
Antwort Antwort
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

AW: Generics (Objectlist) in Komponenten

  Alt 30. Jun 2012, 08:25
Hallo,

danke für eure Antworten

kurz noch mal zum besseren Verständnis: ich habe z.B. meine Einstellungsklasse, mit diversen Objectlisten für diverse Einstellungen (TBasisObjectList<Tobject1>, TBasisObjectList<Tobject2>, TBasisObjectList<Tobject3>, …) und will dann in meiner Einstellungsform dann für jede Objectlist eine solche Kompo verwenden.

sx2008: ja, die Vorgehensweise kenne ich. Aber das macht die Sache für mich nicht einfacher, ich will ja die ganze Logik in der Komponente haben. Das würde so dann nicht funktionieren, wenn ich die Objekte mit dranhänge oder dann später die Objektliste wieder aufbaue.


Eine Möglichkeit wäre die Klasse so zu definieren:
Delphi-Quellcode:
type
  TMySettings<T> = class
  public
    property MyList: TObjectList<T>
  end;
Genau, aber was ich ja bräuchte wäre das als Komponente
  TFrameXYZ<T> = class(TFrame) Geht so leider nicht.

Ich muß noch mal drüber schlafen, werde es wahrscheinlich so machen, dass ich mir die listen in der Art übergebe
procedure Proc_ObjectListeDatenSetzen<T: class>(AList: TObjectList<T>); Und die Daten dann dort auslese und in eine normale ObjectList übertrage. Ich hatte halt gehofft, ich kann direkt mit der übergebenen Liste weiterarbeiten, das würde vieles vereinfachen.

Gruß Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.021 Beiträge
 
Delphi 12 Athens
 
#2

AW: Generics (Objectlist) in Komponenten

  Alt 30. Jun 2012, 09:08
Genau, aber was ich ja bräuchte wäre das als Komponente
  TFrameXYZ<T> = class(TFrame) Geht so leider nicht.
Nicht direkt, nein, aber indirekt mit einem nicht ganz schönen Trick schon, siehe Anhang.

Ob das Sinn macht, ist eine andere Frage. Denn irgendwo muss man den Typ ja schon explizit behandeln für solche Komponenten.
Angehängte Dateien
Dateityp: 7z Generic Frame.7z (517,5 KB, 21x aufgerufen)
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.476 Beiträge
 
Delphi 12 Athens
 
#3

AW: Generics (Objectlist) in Komponenten

  Alt 30. Jun 2012, 10:06
Delphi hat leider ein sehr großes Problem, bei der Framevererbung, speziell der FormDesigner kommt damit oftmals einfach nicht klar
und wenn er was nicht versteht, dann sagt er sich einfach (ohne uns ein Wort zu sagen, was ihm nicht gefällt) "das ist eine TForm" und fertig.
Bei TForm-Nachfahren fällt dieses Problem natürlich nicht auf.

Das merkt man ganz schnell, wenn der Frame urplötzlich einen Border und Titelleiste bekommt.
Wenn man das dann speichert, kann man dieses Frame nurgends mehr verwenden, denn wenn im Programm dann der DFM-Loader dieses Frame laden soll, dann kracht es gewaltig, sobald Property der TForms auftauchen, wie z.B. ClientHeight, welche es im TFrame nicht gibt.



De Trick mit dem "TFrame" als Zwischentyp hilft zwar das Frame als Frame im Formdesigner zu laden, aber wenn/da der Formdesigner dieses nicht richtig läd, sieht man natürlich das Edit nicht im Formdesigner, bzw. eben auch nicht alle anderen Komponenten, welche man auf den Vorfahren legen würde.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (30. Jun 2012 um 10:19 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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:49 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