Autor |
Beitrag |
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 07.05.13 13:42
Hallo,
ich hab eine komische Sache, die ich gerade nicht verstehe.
Ich habe eine neue Unit "FormsNew.pas". Diese unit habe ich in allen Projekt-Dateien in der Uses-List nach "Forms" eingebunden! In der Unit habe ich Folgendes zu stehen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| TForm = class(Forms.TForm) public constructor Create(AOwner: TComponent); override; end; .. .. .. constructor TForm.Create(AOwner: TComponent); begin inherited Create(AOwner); end; |
Ich benutze auch viele Frames. Analog zu dazu habe ich Folgendes:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| TFrame = class(Forms.TFrame) public constructor Create(AOwner: TComponent); override; end; .. .. .. constructor TFrame.Create(AOwner: TComponent); begin inherited Create(AOwner); end; |
Hat einer eine Ahnung, warum das für TFrame nicht funzt das Create zu überschreiben...?!?! (Helpers gehen auch nicht!)
Danke vorab,
Gruß
rd3
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 08.05.13 09:08
Bei mir funktioniert das (Delphi XE3).
Um welche Delphiversion geht es denn?
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 08.05.13 09:38
XE. Hmm... Das ist ja merkwürdig...
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 08.05.13 09:45
Hab mal ein Sample abgehangen und kommentiert. in das Forms-OnCreate wird reingesprungen... in das Frame-Ding nicht...?!
Einloggen, um Attachments anzusehen!
|
|
WasWeißDennIch
      
Beiträge: 653
Erhaltene Danke: 160
|
Verfasst: Mi 08.05.13 10:02
Verleg die überschriebene Frame-Klasse in die Frame-Unit, dann geht es. Ansonsten handelt es sich ja trotz Namensgleichheit um unterschiedliche TFrame-Klassen.
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 08.05.13 10:08
Ich hatte das ja in einer anderen Unit. Diese hatte ich dann nach Forms in der uses-List eingebunden. Hab recht viele Frames... In denen möchte ich einfach nur die Unit hinzufügen - fertig. Bei den TForms geht es ja... Weißt du, wie ich das meine?
|
|
WasWeißDennIch
      
Beiträge: 653
Erhaltene Danke: 160
|
Verfasst: Mi 08.05.13 10:19
Ich habe gerade Folgendes probiert: ein Unit namens NewFrame geschrieben.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| unit NewFrame;
interface
uses Classes, Forms;
type TFrame = class(Forms.TFrame) public constructor Create(AOwner: TComponent); override; end;
implementation
constructor TFrame.Create(AOwner: TComponent); begin inherited; end;
end. |
Einen Frame erstellt und in dessen Unit als Letztes NewFrame eingebunden. Dann ein Formular erstellt mit diesem Frame darauf und siehe da: der Haltepunkt in NewFrame wird angesprungen. Dann einen weiteren Frame (auch wieder mit der NewFrames-Unit), auf das Formular gepackt und auch dort wirkt der Haltepunkt.
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 08.05.13 10:23
In dem "echten Projekt" hab ich das exakt so gemacht. Bei mir wird da nicht reingesprungen... Deswegen dieser Thread!
Das ist ja verflixt!
Ich glaube, ich mach erstmal eine andere Baustelle. Vielleicht seh ich den Wald vor lauter Bäumen nicht...?! Danke Euch!
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 08.05.13 10:29
Hab das Sample-Projekt nochmal aktualisiert. s. Anhang. Da funktioniert es tatsächlich auch... In dem "echten Projekt" geht es nicht. Shit. Dann muss es was anderes sein. Danke.
Einloggen, um Attachments anzusehen!
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 08.05.13 12:03
Werden die Frames vielleicht manuell erstellt? Ein anderer Konstruktor benutzt?
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 08.05.13 12:48
Teilweise neue Constructor. Teilweise zur Design-, teilweise zur Laufzeit erstellt. Manchmal auch virtual und nicht override. Trotzdem schleife ich inherited Create(AOwner) mit. Ich krieg nicht mal diese Kompilier-Bullets an der Seite... Das ist echt sonderbar...
|
|