![]() |
Hi Duffy :)
Ja in den GNU Pascal Compiler hab ich auch schon reingeschaut und genau da befindet sich auch - meines Erachtens - eine "Syntaxerweiterung" für die Typendeklaration von ShortStrings... Nun ja, ich werd mich noch durch einige Dokumentationen durchwühlen müssen... :? |
Mmmkay... irgendwo im Internetz hab ich eine PDF der Delphi 4 doku gefunden und darin auch eine Eklärung für mein Mißverstädnis bezüglich Klassen und Objekte entdeckt - muß mich noch weiter durchlesen. Also Objects werden nur aufgrund Abwärtskompatibilität bewahrt mhm fein... Und Klassen haben bereits vorgefertigte Konstruktoren und Destruktoren...
Aber irgendwie hab ich das Gefühl, daß da Probleme mit meinen Linked-Lists aufkommen, für die ich schon ganz gerne sowohl Konstruktor als auch Destruktor schreiben möchte (bzw. muß), sonst geht meine Identifier Table und mein Token Stream nimmer... Also kann ich bei Klassen auch selbst Konstruktoren und Destruktoren schreiben? Und kann mir jemand erklären, wie TObject definiert ist? (oder wo zu finden, ein Link wär ganz hilfreich) Danke im Voraus! :D |
Zitat:
Delphi-Quellcode:
TMyClass = class(TObject)
constructor Create(const Irgendwas: string); destructor Destroy; override; end; Zitat:
![]() |
Hallo,
das ist ja eine interessante Diskussion hier :mrgreen: . Ein paar Kleinigkeiten möchte ich auch beisteuern, die mir in Delphi ein bißchen fehlen: 1.) Den Mengenopereator in[] könnte man vielleicht "aufbohren", damit er auch mit LongInteger Typen klarkommt 2.) die Case-Anweisung sollte auch mit Strings u.dgl. funktionieren 3.) Klassen sollten mehrere Vorfahren haben können |
An jbg: Vielen Dank! Und ebenso danke für Deine Geduld - ich bin kein regelmäßiger Programmierer, es gab bislang Phasen, da hab ich bis zu zwei Jahre nicht einen Compiler angefaßt, aber mich mit anderen Dingen beschäftigt, also fehlt mir da schon die Kontinuität und in Sachen Objekte und Klassen bin ich erst vor wenigen Wochen durchgestiegen, obwohl ich sie seit gut drei Jahren in Form von JavaScript schon angewandt hab :oops:
An Garby: großartige Idee mit den Cases..., das mit Klassen muß ich echt noch irgendwie detailierter nachlesen... ohje... demnach kann ich jetzt auch nicht verstehen, daß sie nicht mehrere Vorfahren haben können. Auf wieviele sind sie denn beschränkt? So, nachdem ich das mit den Constuctors und Destructors erfahren hab, kann ich ja getrost die "Object"s in "Class"es umschreiben :) |
Zitat:
Mir ist aber bis jetzt noch kein Klassenbaum untergekommen, in dem eine Klasse mehrere Vorfahren haben musste. Und sollte das dann doch irgendwann einmal eintreten, gibt es immer noch den Umweg über Interfaces. |
Ich hätte einen Anwendungsfall:
Bsp: ich leite mehrere StandardVCL Komponenten ab, z.B. von TEdit, TDBEdit, TComboBox, TPanel. Diese Komponenten erhalten dieselben neuen Properties(z.B. die laufende Nummer eines Datensatzes einer Tabelle, in der Mehrsprachigkeit oder evtl. ein Hilfesystem abgebildet ist). Da würd sich doch folgendes anbieten:
Delphi-Quellcode:
Oder hast du da eine andere Lösung parat?
type
TMyControl = class(TWinControl) private FmyHelpID: Integer; public procedure ShowHelp; published property myHelpID: Integer read FmyHelpID write FmyHelpID; end; TMyEdit = class(TEdit, TMyControl) end; ----------------------------- procedure TMyControl.ShowHelp; begin ShowMessage(GetHelpTextFromDB(myHelpID)); end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = VK_F3) and (Shift = []) and (ActiveControl is TMyControl) then TMyControl(ActiveControl).ShowHelp; end; |
Delphi-Quellcode:
TMyEdit = class(TEdit)
type
THelpEx = class private FOwner: TComponent; FmyHelpID: Integer; public constructor Create(AOwner: TComponent); procedure ShowHelp; published property myHelpID: Integer read FmyHelpID write FmyHelpID; end; private FHelpEx: THelpEx; procedure SetHelpEx(Value: THelpEx); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property HelpEx: THelpEx read FHelpEx write SetHelpEx; end; constructor TMyEdit.Create(AOwner: TComponent); begin inherited; FHelpEx := THelpEx.Create(Self); end; destructor TMyEdit.Destroy; begin FHelpEx.Free; inherited; end;[/delphi] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:12 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