Menü während der Laufzeit erzeugen [Erledigt]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Gerd König
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 193
Registriert: Fr, 09. Jun 2006 7:52
Wohnort: Nähe Sömmerda

Menü während der Laufzeit erzeugen [Erledigt]

Beitrag von Gerd König »

Hallo XBaseler,

Manfreds Thread zum Menü erinnert mich an ein noch nicht gelöstes Problem:

Wie kann ich die Höhe eine horizontalen Menüs (Windows-Einstellungen) ermitteln?

Ich habe ein Basisfenster, das applikations- und nutzerabhängig ein Menü haben kann.
Daß ich ein Menü vorsehen will, weiß ich beim Aufruf der Init-Methode.
Das Menü selbst wird erst nach der Anmeldung des Nutzers anhand seines Profils und seiner Berechtigungen erzeugt.

Mein Problem dabei ist, daß Windows nach Erzeugen des Menüs die Drawingarea reduziert. Das will ich aber unterbinden.
Meine Drawingarea ist bereits unten und oben reduziert.

Mein funktionierender Lösungsansatz sieht so aus:
1. das Dialogfenster um die Menühöhe :?: vergrößern (habe ich an meinem PC mit 20 Pixeln getestet)
2. Die aktelle Drawingarea-Größe ermitteln

Code: Alles auswählen

aX:=::drawingArea:currentSize()
3. Das Menü erzeugen
4. Die ursprüngliche Größe der Drawingarea wieder herstellen

Code: Alles auswählen

::drawingArea:setSize(aX)
Gerd
Zuletzt geändert von Gerd König am Mi, 16. Jun 2010 20:05, insgesamt 1-mal geändert.
Günter Beyes
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 315
Registriert: Mo, 16. Okt 2006 13:04
Wohnort: Region Stuttgart

Re: Menü während der Laufzeit erzeugen

Beitrag von Günter Beyes »

Hallo Gerd,

das geht mit GetSystemMetrics(), http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Gruß,
Günter

Code: Alles auswählen

#define SM_CYMENU 15

nMenuHoehe := GetSystemMetrics( SM_CYMENU )

DLLFUNCTION GetSystemMetrics( nIndex ) USING STDCALL FROM user32.dll
Gerd König
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 193
Registriert: Fr, 09. Jun 2006 7:52
Wohnort: Nähe Sömmerda

Re: Menü während der Laufzeit erzeugen

Beitrag von Gerd König »

Danke Günter, =D>

genau das habe ich gesucht
Gerd
Antworten