[VB6]Formulare in MIDIForm Positionieren
lvl
- vb-script
0 Jörg Lorenz0 lvl0 Jörg Lorenz0 lvl0 Jörg Lorenz0 lvl0 Jörg Lorenz0 lvl
Hallo,
bin noch ein VB anfänger. Also bitte nicht hauen, weil ich mit der Suche nix gefunden habe.
Meine Frage: Ich habe 2 Formulare die Per Button in einem MIDIForm Geöffnet werden.
Nun möchte ich aber nicht das die Fenster aufeinander liegen, sondern das sie einen festen Platz bekommen, an welcher Stelle sie geöffnet werden sollen.
Meine MIDIForm ist auf Vollscreen eingestellt.
Aber die Formulare werden aufeinander geladen.
MfG lvl
PS. Hoffentlich passt das überhaupt hier hin?!?!?
Hi,
Meine MIDIForm ist auf Vollscreen eingestellt.
Aber die Formulare werden aufeinander geladen.
so richtig habe ich nicht verstanden, was Du meinst. Aber vielleicht hilft Dir das weiter:
Generell müßtest Du mit den Eigenschaften Width, Height, Top und Left arbeiten.
Die Maße des Anzeigebereichs kriegst Du z. B. mit
Screen.Width und
Screen.Height
heraus.
Deine Forms haben ja auch Maße, die Du genauso abfragen und zuweisen kannst:
Me.Width oder
Element.Width
Dann noch etwas rechnen und schon kannst Du das Element mit Top in der Vertikalen und mit Left in der Horizontalen positionieren.
Viele Grüße
Jörg
Dann noch etwas rechnen und schon kannst Du das Element mit Top in der Vertikalen und mit Left in der Horizontalen positionieren.
genau das habe ich ausprobiert, leider springt er dennoch nicht auf die angegebene position.
er soll (left="0" und top="3352") sein, aber er bringt ihn auf ca. left ="50" top="50"
und nicht top="3352"
Hi,
er soll (left="0" und top="3352") sein, aber er bringt ihn auf ca. left ="50" top="50"
hast Du etwa die Anführungszeichen verwendet? ;-)
Beachte auch, daß diese Angaben Twips sind.
Viele Grüße
Jörg
hast Du etwa die Anführungszeichen verwendet? ;-)
nein, nur zur verdeutlichung
Beachte auch, daß diese Angaben Twips sind.
ist mir klar... aber mein erstes objekt ist height=3352
und dann wollte ich top=3352
geht aber nicht.
Hi,
ist mir klar... aber mein erstes objekt ist height=3352
und dann wollte ich top=3352
eigentlich ist es so richtig.
Stimmen denn die Objekte und deren Schreibweisen (z. B. Me.Top = 3352)?
Wann weist Du die Position zu (Load, Activate, Initialize)?
Du könntest auch mal den relevanten Code posten, damit man die Umstände sieht.
Viele Grüße
Jörg
Du könntest auch mal den relevanten Code posten, damit man die Umstände sieht.
Ich nutzt MS VB da hab ich ein Eigenschaftenfenster, also kein Code.
Wie gesagt habe ich eine MIDI Form in der eine Menüleiste ist mit 3 Knöpfen "fenster 1" "fenster 2" "exit"
Wenn ich nun "fenster 1" anklicke, soll er das Formular "fenster1" in den MIDI Form laden. funktioniert auch...
Wenn ich anschließend auf "fenster 2" klicke soll zusätzliche "fenster2" geöffnet werden. Funzt auch. er legt es an die pos (left=50 top=50) und nicht wie ich bei fenster2 angegeben habe top=3352
also liegen die fenster aufeinander.
exit klappt auch.
Hi,
Ich nutzt MS VB da hab ich ein Eigenschaftenfenster, also kein Code.
vor allem dann müßte es funktionieren ...
Wenn ich anschließend auf "fenster 2" klicke soll zusätzliche "fenster2" geöffnet werden. Funzt auch. er legt es an die pos (left=50 top=50) und nicht wie ich bei fenster2 angegeben habe top=3352
also liegen die fenster aufeinander.
Ich habe es auch gerade mal mit Deinen Angaben getestet, es funktioniert. Ist denn das "fenster 1" bei Top = 0 und Left = 0?
Ansonsten kannst Du das auch mittels Code in die Load-Ereignisse schreiben.
Viele Grüße
Jörg
Ansonsten kannst Du das auch mittels Code in die Load-Ereignisse schreiben.
ich hab es jetzt wirklich mit
fenster 1.top = 3352
fenster 1.left = 0
ausprobiert und es geht. :)
warum auch immer ;)
thx
Hi,
ich hab es jetzt wirklich mit
fenster 1.top = 3352
fenster 1.left = 0ausprobiert und es geht. :)
na schön. ;-)
warum auch immer ;)
Ehrlich gesagt verwende ich das Eigenschaftenfenster auch nur, um entweder den Tabindex festzulegen oder um zu sehen, welche Eigenschaften Objekte haben. Ansonsten schreibe ich alles in den Code, weil es einfach flexibler ist. Meist hängen Eigenschaften von irgendwelchen Berechnungen ab, das kann man in dem Fenster schon mal nicht mehr machen. Spätestens dann, wenn man irgendwelche Drag'n'Drop-Ereignisse schreibt, ist es nur noch hinderlich.
Gerade für solche Sachen wie Positionierungen schreibe ich separate Funktionen, auf die dann das ganze Programm zugreifen kann. Wenn dann mal z. B. die Farben des Programms geändert werden müssen, brauche ich das nicht mehr in dem Eigenschaftenfenster jedem Element zuzuweisen, sondern ändere nur noch die Eintragungen in der Funktion. Das wirkt sich dann gleich auf alle Elemente aus. Bei größeren Projekten lasse ich Einstellungen auch mal in Textdateien (meist *.ini) oder in die Registry eintragen.
Nur mal so als Erfahrungswert ... ;-)
Viele Grüße
Jörg