Fenster Größe (wichtig/dringend)
-
AutoScroll der Form auf false!
Die Scrollbars der Form Visible auf false!Am Besten, alles was in der Form ist in ein Panel, welches selbst alClient ist, setzen.
-
kpeter schrieb:
Hi,
mit
Form1->Width = Screen->Width;
kann man das machen.
mfg kpeter
also ich hab das jetzt mal als erstes in die Form Create Methode geschrieben. Muss ich das noch woanderes hinschreiben oder noch etwas anderes schreiben, weil so funkt das igrtwie nicht.
-
also bei mir funktioniert das...
Form1->Width = Screen->Width; Width = 100;
-
warum willst du jetzt die width=100 nehmen, du sagst doch vorher damit, dass du Width von Form1 wie den Screen haben willst!?
-
oh ja stimmt war ein bisschen zu schnell, aber es funtkioniert sonst auch bei mir
-
also einfach in die erste Zeile der FormCreate Methode den Code da reinschreiben?
so hab ich das nämlich gemacht.
-
Hi,
ist schon richtig; bevor das Formular zur Anzeige kommt, ermittelt man Höhe
und Breite des Bildschirms. Also in OnCreate.TScreen ist in VCL eine Klasse, schau sie dir mal an.
Möglicherweise (ganz bestimmt) musst du alle Steuerelemente und dein Formular skalieren,
wenn dein Spiel auf kleineren Bildschirmen laufen soll.mfg
kpeter
-
Hallo,
wie wärs denn mit WindowState -> wsMaximized und BorderStyle -> bsNone??
//Edit: Frage nicht korrekt gelesen
Du kannst auch die Auflösung an das Spiel anpassen...
hierLG, Micha
-
also muss man das doch anpassen, wenn es auf einem kleineren bildschirm läuft. schade.. ich dahcte das geht vielleicht irgentwie anders. naja, werd mal mit der bildschirmauflösung prob.
-
Die Anweisung gehört übrigens in den Konstruktor und nicht in OnCreate. Das sollte man besser gar nicht verwenden. Siehe auch dazu die Hilfe zu OnCreate.
-
Hi,
Braunstein schrieb:
Die Anweisung gehört übrugens in den Konstruktor und nicht in OnCreate. Das sollte man besser gar nicht verwenden. Siehe auch dazu die Hilfe zu OnCreate.
Welche Anweisung meinst du, in diesem Thread stehen schon einige Lösungsvorschläge.
mfg
Peter
-
Ich meine all das, was in OnCreate geschrieben worden ist. OnCreate sollte einfach nicht mehr verwendet werden.
-
Also ich habe die Erfahrung gemacht das einige Objekte im Konstruktor noch nicht existieren, im OnCreate allerdings schon.
-
Hundeman schrieb:
Also ich habe die Erfahrung gemacht das einige Objekte im Konstruktor noch nicht existieren, im OnCreate allerdings schon.
In anderen UI-Frameworks kenne ich das auch so, beim C++ Builder habe ich aber noch nie einen solchen Fall erlebt.
-
OnCreate kann aber durchaus vor dem Konstruktor aufgerufen werden, so dass das nicht sicher ist. Wenn du wirklich sicher gehen willst nimm lieber OnShow oder OnActivate, aber auf keinem Fall OnCreate.
siehe auch
http://web.archive.org/web/20041208115505/http://www.bcbdev.com/articles/suggest.htm#oncreate
-
Ich hab den BCB 5 und 6 und habe dort ebenfalls kein solches Verhalten feststellen können.
-
Hi,
@Braunstein,
die Webseite ist schon etwas angestaubt...Note: Updated Feb 21, 2000. New items have a NEW icon.
Zumal in den Beispielprojekten des BCB6 ausgiebig in FromCreate gecodet wird.
Werd mir das Thema aber dennoch genauer ansehen.mfg
kpeter
-
Ich weiß, dass die Seite schon etwas älter ist (ist ja auch aus dem Archiv). Das Thema ist aber weiterhin gültig. Wenn du genaueres wissen willst suche mal nach OldCreateOrder.
-
Hundeman schrieb:
Also ich habe die Erfahrung gemacht das einige Objekte im Konstruktor noch nicht existieren, im OnCreate allerdings schon.
Konkretisiere das mal.
Wie die Vorposter bereits feststellten, passiert das eigentlich nicht. Der Konstruktor wird von Application::CreateForm() aufgerufen, der Konstruktor der Basisklasse lädt und initialisiert alle Komponenten.
Anders ist die Situation natürlich, wenn du eine Komponente entwickelst, da diese erst nach der Konstruktion vom Streaming-System geladen werden. In diesem Falle könntest du TComponent::Loaded() überladen (darin aber die Loaded()-Methode der Basisklasse aufrufen!), das unmittelbar nach der Deserialisierung aufgerufen wird.
-
So wie ich es verstanden habe ist es nur gefährlich OnCreate bzw. OnDestroy zu verwenden wenn man alte Projekte importiert werden. Wenn man etwas komplett neu erstellt ab dem BCB5 sollte man nur wissen das es zu Problemen kommen kann.
audacia schrieb:
Konkretisiere das mal.
Wie die Vorposter bereits feststellten, passiert das eigentlich nicht. Der Konstruktor wird von Application::CreateForm() aufgerufen, der Konstruktor der Basisklasse lädt und initialisiert alle Komponenten.Anders ist die Situation natürlich, wenn du eine Komponente entwickelst, da diese erst nach der Konstruktion vom Streaming-System geladen werden. In diesem Falle könntest du TComponent::Loaded() überladen (darin aber die Loaded()-Methode der Basisklasse aufrufen!), das unmittelbar nach der Deserialisierung aufgerufen wird.
Die genaue Sitauation weoß ich nicht mehr. Ich weiß nur noch das ich auf TLabels zugreifen wollte und ich im Konstruktor das jedesmal um die Ohren geschlagen bekommen habe.