Hallo Leute
Für die Initialisierung meines Base-Formulars beim Öffnen dieses Formulares habe ich mir die Funktion "OnInitFormView()" eingerichtet. Die Funktion wird über den Eventhandler eines CheckButton-Controls auf diesem Formular bei SetFocus() gestartet. Und dieser CheckButton kriegt immer als allererstes den Focus. Als allererstes versteckt die Funktion diesen Checkbutton mit Hide und deaktiviert ihn. Dann wird das Formularfenster auf richtigte Grösse und an die richtige Position auf dem Bildschirm gebracht. Weiterhin werden die ganzen Toolbars ausgeblendet. Es bleiben eigentlich nur meine eigenen Formview-Controls in einem einfach-umrahmten Fenster sichtbar. OK, so weit, so gut...es funktioniert. Allerdings gefällt mir das Bildschirm-Gezappel in der Öffnen-Phase überhaupt nicht. Zuerst wird der Bildschrim default-mäßig erstellt, dann konfiguriert meine Funktion alles um... und dabei zappelts eben ziemlich wüst.
Ich habe alternativ versucht, "OnInitFormView()" über die Ereignisse des Formulares (Menü->Extras->Anpassen->Ereignisse) zu starten. Das zappelt aber nicht weniger. Aber was noch störender ist, "OnInitFormView()" wird auch dann aufgerufen, wenn ich das Formular im Entwurfsmodus zur Bearbeitung öffne. Da sind dann unerwünschterweise alle notwendigen Toolbar-Icons verschwunden.... das geht gar nicht. Also habe ich jetzt hier 2 Probleme: Im Anwender-Modus muss "OnInitFormView()" gestartet werden, im Entwickler-Modus darf's keinesfalls gestartet werden. Das Formular sollte erst dann sichtbar sein, wenn die Initialisierung abgeschlossen ist. Irgendeine Idee, wie man das lösen kann?
vg, Maddin
Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst
Base: Initialisierung eines FormViews
Moderator: Moderatoren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Base: Initialisierung eines FormViews
Dann sollte das Objekt "Fenster" aber auch eine Eigenschaft "IsHidden" haben...MaddinR hat geschrieben:Dann wird das Formularfenster auf richtigte Grösse und an die richtige Position auf dem Bildschirm gebracht
Ob das Fenster im Bearbeitungsmodus geöffnet ist oder nicht - bekommst Du mMn nur raus, wenn Du den Fenstertitel auf die Zeichenkette "(schreibgeschützt)" untersuchst (dann im Dateneingabe-Modus).
Hoffe geholfen zu haben
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Base: Initialisierung eines FormViews
Aloha
Dokumente haben standardmässig eine Methode "isReadonly", das wäre wohl die einfachere Variante.komma4 hat geschrieben: wenn Du den Fenstertitel auf die Zeichenkette "(schreibgeschützt)" untersuchst (dann im Dateneingabe-Modus).
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Base: Initialisierung eines FormViews
ANDENKOPFSCHLAG!DPunch hat geschrieben:standardmässig eine Methode "isReadonly"
Warum bin ich nicht darauf gekommen?

Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Base: Initialisierung eines FormViews
Moin zusammen
Im Objekt "ThisComponent.CurrentController.Frame" habe ich den Wert "IsHidden" gefunden. Und mit der Funktion StarDesktop.getCurrentFrame().getContainerWindow().SetVisible(false) kann ich das Window auf Hide setzen. Allerdings krieg ich nicht so recht auf die Reihe, wie ich das jetzt am besten verwende. In meiner Funktion OnInitFormView() ist es zu spät, weil da das Fenster ja schon sichtbar ist. Wie kann ich am Besten das Fenster auf Hide setzen, bevor es angezeigt wird, um es dann in Ruhe zu konfigurieren und es dann fix-und-fertig wieder anzeigen? Also, das Objekt "Windows" muss eigentlich existieren, darf aber noch nicht angezeigt sein. Dann möchte ich die Eigenschaften setzen, und es erst dann anzeigen.
"IsReadOnly" habe ich als Eigenschaft des Doc's gefunden. Wenn ich das richtig verstanden habe, ist IsReadOnly immer False, wenn das FormView im Entwurfsmodus geöffnet wurde... stimmt das?
vg, Maddin
Im Objekt "ThisComponent.CurrentController.Frame" habe ich den Wert "IsHidden" gefunden. Und mit der Funktion StarDesktop.getCurrentFrame().getContainerWindow().SetVisible(false) kann ich das Window auf Hide setzen. Allerdings krieg ich nicht so recht auf die Reihe, wie ich das jetzt am besten verwende. In meiner Funktion OnInitFormView() ist es zu spät, weil da das Fenster ja schon sichtbar ist. Wie kann ich am Besten das Fenster auf Hide setzen, bevor es angezeigt wird, um es dann in Ruhe zu konfigurieren und es dann fix-und-fertig wieder anzeigen? Also, das Objekt "Windows" muss eigentlich existieren, darf aber noch nicht angezeigt sein. Dann möchte ich die Eigenschaften setzen, und es erst dann anzeigen.
"IsReadOnly" habe ich als Eigenschaft des Doc's gefunden. Wenn ich das richtig verstanden habe, ist IsReadOnly immer False, wenn das FormView im Entwurfsmodus geöffnet wurde... stimmt das?
vg, Maddin
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Base: Initialisierung eines FormViews
Kannst Du wohl nicht.MaddinR hat geschrieben:Wie kann ich am Besten das Fenster auf Hide setzen, bevor es angezeigt wird
Bei meinen Versuchen mit Code ein Formular zu öffnen... wird ein HIDDEN Parameter nicht akzeptiert
Ein Formular zeigt Dir dies auch mit ThisComponent.CurrentController.isFormDesignMode() anMaddinR hat geschrieben:"IsReadOnly"
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Base: Initialisierung eines FormViews
Aloha

Wenn Du es aus einem anderen Formular heraus öffnest, wäre es *vielleicht* möglich, wobei es eigentlich schon daran scheitern dürfte, dass die Änderungen am View eines versteckt geöffneten Dokuments in der Regel nicht wirksam werden sollten.
Müsste ich aber bei Gelegenheit mal testen, bevor ich gefestigte Aussagen dazu treffen kann.
Nagut, wir sind quitt - daran hatte ich wiederum gar nicht gedacht.komma4 hat geschrieben:Ein Formular zeigt Dir dies auch mit ThisComponent.CurrentController.isFormDesignMode() an

Das ist korrekt, spielt aber keine Rolle mehr mit isFormDesignMode.MaddinR hat geschrieben:Wenn ich das richtig verstanden habe, ist IsReadOnly immer False, wenn das FormView im Entwurfsmodus geöffnet wurde... stimmt das?
Wenn Du das Formular per Doppelklick öffnest, sehe ich da momentan keine Möglichzeit für.MaddinR hat geschrieben:Wie kann ich am Besten das Fenster auf Hide setzen, bevor es angezeigt wird
Wenn Du es aus einem anderen Formular heraus öffnest, wäre es *vielleicht* möglich, wobei es eigentlich schon daran scheitern dürfte, dass die Änderungen am View eines versteckt geöffneten Dokuments in der Regel nicht wirksam werden sollten.
Müsste ich aber bei Gelegenheit mal testen, bevor ich gefestigte Aussagen dazu treffen kann.