Dialoggröße anpassen
Moderator: Moderatoren
Dialoggröße anpassen
Hallo,
gibt es eine einfache Lösung, die Dialoggröße an die Bildschirmauflösung anzupassen. Ziel wäre nicht unbedingt die Inhalte entsprechend anzupassen, sondern einfach einen Bildschirm füllenden (oder bildschirmfüllenden ???) Dialog zu erhalten.
Danke
J. Kleis
P.S.: Sollte under dem Suchstichwort "Dialoggröße" die Lösung zu finden sein, bitte ich um Entschuldigung, aber mein Suchformular erlaubt kein "ö" und unter Dialoggroesse o.ä. habe ich nichts gefunden.
gibt es eine einfache Lösung, die Dialoggröße an die Bildschirmauflösung anzupassen. Ziel wäre nicht unbedingt die Inhalte entsprechend anzupassen, sondern einfach einen Bildschirm füllenden (oder bildschirmfüllenden ???) Dialog zu erhalten.
Danke
J. Kleis
P.S.: Sollte under dem Suchstichwort "Dialoggröße" die Lösung zu finden sein, bitte ich um Entschuldigung, aber mein Suchformular erlaubt kein "ö" und unter Dialoggroesse o.ä. habe ich nichts gefunden.
http://www.schulzeug-online.de OpenOffice in der Förderschule...
Re: Dialoggröße anpassen
Hallo JKL,
um den Dialog entsprechend der der Bildschirmauflösung anzupassen musst Du zuerst die Information über die
aktuelle Einstellung haben. Für Win bekommst Du das mit folgendem Code:
Das Komische an der Sache ist, dass man das Makro zweimal aufrufen muss damit die Auflösung angezeigt wird.
Vielleicht können uns die Experten dazu eine Lösung nennen.
Wenn Du die Information der Auflösung hast kannst Du den Dialog über eine If-Anweisung entsprechend anpassen.
Hier der Code für den Dialog:
Schöne Grüsse.
Jürgen
Edit: Wenn man am Anfang des Codes noch folgendes voranstellt dann wird die Bildschirmauflösung schon beim ersten
Aufruf angezeigt:
um den Dialog entsprechend der der Bildschirmauflösung anzupassen musst Du zuerst die Information über die
aktuelle Einstellung haben. Für Win bekommst Du das mit folgendem Code:
Code: Alles auswählen
Sub Bildschirmaufloesung
GlobalScope.BasicLibraries.LoadLibrary("ImportWizard")
sTemplateKeyName = "SYSTEM\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\SERVICES\IALM\DEVICE0\Mon00000400"
sTemplateValueName = "DefaultSettings.XResolution"
X_Setting = QueryValue(HKEY_LOCAL_MACHINE, sTemplateKeyName, sTemplateValueName)
sTemplateValueName = "DefaultSettings.YResolution"
Y_Setting = QueryValue(HKEY_LOCAL_MACHINE, sTemplateKeyName, sTemplateValueName)
msgbox "Die Bildschirmauflösung ist " & X_Setting & " x " & Y_Setting
End Sub

Vielleicht können uns die Experten dazu eine Lösung nennen.
Wenn Du die Information der Auflösung hast kannst Du den Dialog über eine If-Anweisung entsprechend anpassen.
Hier der Code für den Dialog:
Code: Alles auswählen
Sub Variabler_Dialog
Dim oDialog As Object
DialogLibraries.LoadLibrary("Standard")
oDialog = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
oDialog.Title = "Variabler Dialog"
oDialog.Model.Width = 300
oDialog.Model.Height = 150
oDialog.Model.PositionX=0
oDialog.Model.Positiony=0
oDialog.Execute
End Sub
Jürgen
Edit: Wenn man am Anfang des Codes noch folgendes voranstellt dann wird die Bildschirmauflösung schon beim ersten
Aufruf angezeigt:

Code: Alles auswählen
Public Const HKEY_LOCAL_MACHINE = &H80000002
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Dialoggröße anpassen
Die Sache hat nur einen Haken: Die Dialoglemente werden nicht mitangepaßt!
Man ändert ausschließlich die Außengröße.
Das kann einen Dialog ganz schön versauen.
mfg
Michael
Man ändert ausschließlich die Außengröße.
Das kann einen Dialog ganz schön versauen.
mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
FAQ zu Starbasic -> http://www.starbasicfaq.de
-
- ***
- Beiträge: 62
- Registriert: Di, 20.03.2007 11:41
Re: Dialoggröße anpassen
Hallo,
ich habe mich riesig gefreut hier Code zur Ermittlung der Bildschirmauflösung zu finden.
Nur funktioniert der Code bei mir nicht, d.h. die Variablen bleiben leer.
Ich arbeite mit Win XP. Was mache ich falsch?
Muss ich eventuell sTemplateKeyName anpassen? Aber wie?
Vielen Dank im Voraus.
Viele Grüße
Christiana
ich habe mich riesig gefreut hier Code zur Ermittlung der Bildschirmauflösung zu finden.
Nur funktioniert der Code bei mir nicht, d.h. die Variablen bleiben leer.
Ich arbeite mit Win XP. Was mache ich falsch?
Muss ich eventuell sTemplateKeyName anpassen? Aber wie?
Vielen Dank im Voraus.
Viele Grüße
Christiana
Re: Dialoggröße anpassen
Hallo Christiana,
bei mir funktioniert das Makro nach wie vor einwandfrei.
Hast Du folgendes beachtet:
Jürgen
bei mir funktioniert das Makro nach wie vor einwandfrei.
Hast Du folgendes beachtet:
Turtle47 hat geschrieben:Edit: Wenn man am Anfang des Codes noch folgendes voranstellt dann wird die Bildschirmauflösung schon beim ersten Aufruf angezeigt:
Code: Alles auswählen
Public Const HKEY_LOCAL_MACHINE = &H80000002
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
-
- ***
- Beiträge: 62
- Registriert: Di, 20.03.2007 11:41
Re: Dialoggröße anpassen
Hallo Jürgen,
vielen Dank für Deine rasche Antwort.
Ich habe die Constante vorangestellt. Daran liegt es also nicht.
Inzwischen habe ich mir auch mal in der Registry den Pfad angeschaut.
Er stimmt bei mir nur bis dahin überein:
Danach kann ich wählen zwischen RDPDD und TSDDD und ich kann nirgendwo Werte für die Bildschirmauflösung entdecken.
Viele Grüße
Christiana
vielen Dank für Deine rasche Antwort.
Ich habe die Constante vorangestellt. Daran liegt es also nicht.
Inzwischen habe ich mir auch mal in der Registry den Pfad angeschaut.
Er stimmt bei mir nur bis dahin überein:
Code: Alles auswählen
"SYSTEM\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\SERVICES\"
Viele Grüße
Christiana
Re: Dialoggröße anpassen
Hallo,
ich stelle einfach mal eine naive Frage.......
Meinst Du Dialog oder Formular?
Falls Du ein Base-Formular oder ein beliebiges Writer-Basierendes Dokument meinst, kannst Du die Größe inclusive aller Elemente vollkommen dynamisch zoomen. Er merkt sich dann an dem Arbeitsplatz auch den benutzten Zoomfaktor. Du kannst es probieren, wenn Du die Taste "Strg" gleichzeitig mit dem Scrollrad der Maus betätigst. In Writer kannst Du es auch direkt über die Statusleiste konfigurieren.
Leider geht das nicht in Dialogen!
Anmerkung: ich habe das nur unter Windowas XP und Vista getestet.
Gruß eBayer
ich stelle einfach mal eine naive Frage.......
Meinst Du Dialog oder Formular?
Falls Du ein Base-Formular oder ein beliebiges Writer-Basierendes Dokument meinst, kannst Du die Größe inclusive aller Elemente vollkommen dynamisch zoomen. Er merkt sich dann an dem Arbeitsplatz auch den benutzten Zoomfaktor. Du kannst es probieren, wenn Du die Taste "Strg" gleichzeitig mit dem Scrollrad der Maus betätigst. In Writer kannst Du es auch direkt über die Statusleiste konfigurieren.
Leider geht das nicht in Dialogen!
Anmerkung: ich habe das nur unter Windowas XP und Vista getestet.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
-
- ***
- Beiträge: 62
- Registriert: Di, 20.03.2007 11:41
Re: Dialoggröße anpassen
Hallo eBayer,
danke für den Hinweis. Ich arbeite mit einem Calc-Formular und habe darin Tabellen-Kontrollfelder.
Um den Scroll-Balken im Tabellen-Kontrollfeld zu vermeiden, habe ich die Spalten ziemlich schmal gehalten. Für die breiteren Bildschirme könnte ich das Formular etwas optimaler gestalten und dazu wollte ich die Bildschirmauflösung abfragen.
Viele Grüße
Christiana
danke für den Hinweis. Ich arbeite mit einem Calc-Formular und habe darin Tabellen-Kontrollfelder.
Um den Scroll-Balken im Tabellen-Kontrollfeld zu vermeiden, habe ich die Spalten ziemlich schmal gehalten. Für die breiteren Bildschirme könnte ich das Formular etwas optimaler gestalten und dazu wollte ich die Bildschirmauflösung abfragen.
Viele Grüße
Christiana
Re: Dialoggröße anpassen
Hallo Christiana,
Nach meinen Informationen liegt der Hund hier begraben:
"SYSTEM\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\SERVICES\IALM\DEVICE0\Mon00000400"
Mit dem Tool RegSnap (ganz unten auf der Seite) habe ich meine Registry mit zwei verschiedenen Bilschirmauflösungen verglichen welches mir den im Makro verwendeten Pfad bestätigt hat.
Jürgen
Das liegt wahrscheinlich daran, dass wir unterschiedliche Grafikkarten verwenden.Christiana hat geschrieben:Nur funktioniert der Code bei mir nicht, d.h. die Variablen bleiben leer.
Nach meinen Informationen liegt der Hund hier begraben:
"SYSTEM\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\SERVICES\IALM\DEVICE0\Mon00000400"
Mit dem Tool RegSnap (ganz unten auf der Seite) habe ich meine Registry mit zwei verschiedenen Bilschirmauflösungen verglichen welches mir den im Makro verwendeten Pfad bestätigt hat.
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Dialoggröße anpassen
Hi,
versuche es mal so:
Jürgen
versuche es mal so:
Code: Alles auswählen
Sub Bildschirmaufloesung
GlobalScope.BasicLibraries.LoadLibrary("ImportWizard")
sTemplateKeyName = "SYSTEM\ControlSet001\Control\Video\{77B7FC91-4893-41D5-9E95-DEAA254CDA1B}\Video"
sTemplateValueName = "Service"
s_Video = QueryValue(HKEY_LOCAL_MACHINE, sTemplateKeyName, sTemplateValueName)
msgbox "Die Bezeichnung der Grafikkarte: " & s_Video
sTemplateKeyName = "SYSTEM\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\SERVICES\" & s_Video & "\DEVICE0\Mon00000400"
sTemplateValueName = "DefaultSettings.XResolution"
X_Setting = QueryValue(HKEY_LOCAL_MACHINE, sTemplateKeyName, sTemplateValueName)
sTemplateValueName = "DefaultSettings.YResolution"
Y_Setting = QueryValue(HKEY_LOCAL_MACHINE, sTemplateKeyName, sTemplateValueName)
msgbox "Die Bildschirmauflösung ist " & X_Setting & " x " & Y_Setting
End Sub
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
-
- ***
- Beiträge: 62
- Registriert: Di, 20.03.2007 11:41
Re: Dialoggröße anpassen
Hallo Jürgen,
Entschuldigung, ich war so in meine Arbeit mit meinem Formular vertieft, dass ich Deinen zweiten Post erst jetzt bemerkt habe.
Herzlichen Dank für Deine Mühe. Leider bleiben auch diesmal die Variablen leer. Weder die Grafikkarte noch die Bildschirmauflösung wird mir angezeigt.
Ich kann es mir nur so erklären, dass je nach verwendeter Grafikkarte die Werte an einer anderen Stelle hinterlegt werden.
Da kann ich also nur selbst nach der von Dir beschriebenen Methode auf die Suche gehen.
Eine allgemeingültige Lösung scheint es da nicht zu geben. Das bedeutetet aber auch, falls unsere Rechner hier unterschiedliche Grafikkarten haben, dass ich den Weg mit der Bildschirmauflösung verwerfen muss.
Aber auf jeden Fall habe ich wieder einmal dazugelernt.
Also nochmals vielen, vielen Dank.
Christiana
Entschuldigung, ich war so in meine Arbeit mit meinem Formular vertieft, dass ich Deinen zweiten Post erst jetzt bemerkt habe.
Herzlichen Dank für Deine Mühe. Leider bleiben auch diesmal die Variablen leer. Weder die Grafikkarte noch die Bildschirmauflösung wird mir angezeigt.
Ich kann es mir nur so erklären, dass je nach verwendeter Grafikkarte die Werte an einer anderen Stelle hinterlegt werden.
Da kann ich also nur selbst nach der von Dir beschriebenen Methode auf die Suche gehen.
Eine allgemeingültige Lösung scheint es da nicht zu geben. Das bedeutetet aber auch, falls unsere Rechner hier unterschiedliche Grafikkarten haben, dass ich den Weg mit der Bildschirmauflösung verwerfen muss.
Aber auf jeden Fall habe ich wieder einmal dazugelernt.
Also nochmals vielen, vielen Dank.
Christiana
Re: Dialoggröße anpassen
Hmmm, funktioniert den folgender Code von Michaels Homepage:Christiana hat geschrieben:Leider bleiben auch diesmal die Variablen leer.
Code: Alles auswählen
Sub XP_ProductID
GlobalScope.BasicLibraries.LoadLibrary("ImportWizard")
sTemplateKeyName = "Software\Microsoft\Windows\CurrentVersion"
sTemplateValueName = "ProductID"
sProductID = QueryValue(HKEY_LOCAL_MACHINE, sTemplateKeyName, sTemplateValueName)
msgbox sProductID
End Sub

Habe gerade festgestellt, dass es bei einem eingeschränkten Benutzerkonto nicht funktioniert.

Obwohl laut Informationen aus dem I-Net ein Lesezugriff möglich sein soll.

Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
-
- ***
- Beiträge: 62
- Registriert: Di, 20.03.2007 11:41
Re: Dialoggröße anpassen
Hallo Jürgen,
der Code von Michael klappt bei mir, diesmal allerdings zu Hause getestet. Mein Benutzerkonto auf Arbeit ist nicht eingeschränkt. Es müsste also auch dort klappen. Das kann ich aber erst wieder am Dienstag testen, denn morgen habe ich Urlaub.
Danke für Deine Mühen. Ich hatte schon aufgegeben.
Ein schönes Pfingstwochenende wünscht
Christiana
der Code von Michael klappt bei mir, diesmal allerdings zu Hause getestet. Mein Benutzerkonto auf Arbeit ist nicht eingeschränkt. Es müsste also auch dort klappen. Das kann ich aber erst wieder am Dienstag testen, denn morgen habe ich Urlaub.
Danke für Deine Mühen. Ich hatte schon aufgegeben.
Ein schönes Pfingstwochenende wünscht
Christiana
-
- ***
- Beiträge: 62
- Registriert: Di, 20.03.2007 11:41
Re: Dialoggröße anpassen
Hallo,
nun habe ich den Code von Michael auf Arbeit getestet. Er klappt auch hier.
Eine zentrale Stelle für die Bildschirmauflösung habe ich in der Registry nicht gefunden.
Christiana
nun habe ich den Code von Michael auf Arbeit getestet. Er klappt auch hier.
Eine zentrale Stelle für die Bildschirmauflösung habe ich in der Registry nicht gefunden.
Christiana