Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Create funktioniert nicht mehr wie gewohnt (https://www.delphipraxis.net/99595-create-funktioniert-nicht-mehr-wie-gewohnt.html)

Gruber_Hans_12345 14. Sep 2007 13:53


Create funktioniert nicht mehr wie gewohnt
 
Aus irgendeinem grund, funktioniert bei mir bei einigen Frames das .Create nicht mehr ich erzeuge die frames dynamisch folgend

Delphi-Quellcode:
    if not assigned(fFrame) and assigned(frameClass) then
        fFrame := frameClass.Create(self);
und wenn ich dann im constrcutor dieses Frames reingehen und mir self anschaue, dann sind dort alle Properties/Daten auf irgendwelche Werte gesetzt - klar, das dann beim laden der Controls des Frames ein haufen fehler kommen, da zb fHandle auf irgendwas hinzeigt, und er beim setzen von Width gleich nen zusammenbruch bekommt

wo kann ich da was verbrochen haben, das das create nicht mehr richtig funkt?
Delphi hätte ich schon neu gestartet, neues build auch schon gemacht, und eigetnlich habe ich nichts böses getan, als es auf einmal nicht mehr funkte ...

Sicherheitshalber starte ich meinen rechner gleich mal neu, aber vielleicht hat der eine oder anderen einen tipp, was ich noch kontrollieren kann.

mkinzler 14. Sep 2007 13:59

Re: Create funktioniert nicht mehr wie gewohnt
 
Versuch mal
Delphi-Quellcode:
if not assigned(fFrame) then
        fFrame := frameClass.Create(self);

Gruber_Hans_12345 14. Sep 2007 14:03

Re: Create funktioniert nicht mehr wie gewohnt
 
werd ich gleich probieren, wenn der rechner wieder hochgfahren ist

aber das komische ist, in diesen units, die mit dem was zu tun haben, habe ich seit ca. ner woche nie was geändert ...

hoika 14. Sep 2007 14:12

Re: Create funktioniert nicht mehr wie gewohnt
 
Hallo,

bei and würde ich immer Klammern setzen
Delphi-Quellcode:
if (not assigned(fFrame)) and (assigned(frameClass)) then
das and hat glaube ich höhere Prirotät als das not

ohne Klammern wäre das also so wie.
Delphi-Quellcode:
if not (assigned(fFrame) and assigned(frameClass)) then
Ausserdem wundert mich, das dein frameclass Typ kein T davor hat,
das erschwert das Lesen.
Oder ist frameclass sogar eine Variable ?
dann macht frameclass.Create aber nicht viel Sinn.


Heiko

Gruber_Hans_12345 14. Sep 2007 14:17

Re: Create funktioniert nicht mehr wie gewohnt
 
hab ihn den "Bug" ;)

Sourcecode ist alles richtig, frameClass ist eine Variable vom Typ TClass, daher passt das ganze. auch das not mit dem and passt so wie es ist.

Das Problem war, das ich in den Watches die Variable Handle drinnen hatte (hab standardmässig das Funktionaufruf erlaube angehackerlt) nun ist er in den constructor am anfang reingesprungen und hat sogleich das Handle ausgelesen, (und daher wurde dann niemals das CreateWnd dieser Klasse aufgerufen und daher war die globale variable CreationControl die Delphi für die InitWndProc verwendet leer)

inherited 14. Sep 2007 14:21

Re: Create funktioniert nicht mehr wie gewohnt
 
Zitat:

Zitat von hoika
das and hat glaube ich höhere Prirotät als das not

Nein, dass not hat mit @ die höchste Priorität

uligerhardt 14. Sep 2007 15:44

Re: Create funktioniert nicht mehr wie gewohnt
 
Zitat:

Zitat von Gruber_Hans_12345
Das Problem war, das ich in den Watches die Variable Handle drinnen hatte (hab standardmässig das Funktionaufruf erlaube angehackerlt) nun ist er in den constructor am anfang reingesprungen und hat sogleich das Handle ausgelesen, (und daher wurde dann niemals das CreateWnd dieser Klasse aufgerufen und daher war die globale variable CreationControl die Delphi für die InitWndProc verwendet leer)

Na da muss man erstmal draufkommen. :shock:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:18 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