Dialoggröße anpassen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Dialoggröße anpassen

Re: Dialoggröße anpassen

von Christiana » Di, 02.06.2009 08:50

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

Re: Dialoggröße anpassen

von Christiana » Do, 28.05.2009 20:24

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

Re: Dialoggröße anpassen

von turtle47 » Do, 28.05.2009 16:03

Christiana hat geschrieben:Leider bleiben auch diesmal die Variablen leer.
Hmmm, funktioniert den folgender Code von Michaels Homepage:

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. :cry:
Obwohl laut Informationen aus dem I-Net ein Lesezugriff möglich sein soll. :roll:

Re: Dialoggröße anpassen

von Christiana » Do, 28.05.2009 15:45

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

Re: Dialoggröße anpassen

von turtle47 » Do, 28.05.2009 10:15

Hi,

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
Jürgen

Re: Dialoggröße anpassen

von turtle47 » Do, 28.05.2009 09:13

Hallo Christiana,
Christiana hat geschrieben:Nur funktioniert der Code bei mir nicht, d.h. die Variablen bleiben leer.
Das liegt wahrscheinlich daran, dass wir unterschiedliche Grafikkarten verwenden.

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

Re: Dialoggröße anpassen

von Christiana » Do, 28.05.2009 07:56

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

Re: Dialoggröße anpassen

von eBayer » Mi, 27.05.2009 14:40

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

Re: Dialoggröße anpassen

von Christiana » Mi, 27.05.2009 12:38

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:

Code: Alles auswählen

"SYSTEM\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\SERVICES\"
Danach kann ich wählen zwischen RDPDD und TSDDD und ich kann nirgendwo Werte für die Bildschirmauflösung entdecken.

Viele Grüße
Christiana

Re: Dialoggröße anpassen

von turtle47 » Mi, 27.05.2009 09:46

Hallo Christiana,

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: :lol:

Code: Alles auswählen

Public Const HKEY_LOCAL_MACHINE = &H80000002
Jürgen

Re: Dialoggröße anpassen

von Christiana » Mi, 27.05.2009 09:23

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

Re: Dialoggröße anpassen

von ykcim » Mo, 26.05.2008 13:20

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

Re: Dialoggröße anpassen

von turtle47 » So, 25.05.2008 20:01

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:

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
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:

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
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: :lol:

Code: Alles auswählen

Public Const HKEY_LOCAL_MACHINE = &H80000002

Dialoggröße anpassen

von jkl » So, 25.05.2008 14:05

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.

Nach oben