Seite 1 von 1
Positionieren von Requestern
Verfasst: 03.04.2006 19:18
von real
Hi,
gibt es eine einfache Möglichkeit, sowas wie #PB_Window_ScreenCentered bei Requestern anzugeben, OHNE es (bei Win32) umständlich über das Handle des Window zu nachzuarbeiten?
Hab gerade ein kleines Programm, bei dem einmal ein InputRequester() und gleich anschließend ein OpenFileRequester() aufgerufen werden. Der InputRequester ist ScreenCentered, der OpenFileRequester jedoch links oben in der Ecke.
@André: Vielleicht kann Fred ja sowas noch ergänzen (wenn ich nicht nur zu blöd bin, es zu finden)?
Gruß
René
Re: Positionieren von Requestern
Verfasst: 03.04.2006 19:39
von ts-soft
Der InputRequester ist ein reines PureBasic-Control, während der
OpenFileRequester ein API-Aufruf ist. Die Position richtet sich nach der
Position Deines Fensters und wird von Windows bestimmt. Solltest Du kein
Fenster offen haben, erstelle einfach vorher eins (invisible).
Habs aber nicht getestet!
Verfasst: 03.04.2006 21:01
von real
Ich hab's mal getestet. Funktioniert fast...
Leider erscheint der OpenFileRequester selbst dann nicht direkt ScreenCentered, wenn ich das Window auf ScreenCentered setze. Und wenn ich mein Dummy-Window unsichtbar erzeuge (oder per HideWindow() unsichtbar mache) erscheint der OpenFileRequester wieder komplett links oben in der Ecke.

Verfasst: 04.04.2006 16:12
von Falko
Invisible geht so nicht, da das Fenster, auf dem sich das OpenFileRequester beziehen soll, nicht vorhanden ist.
Probiere dieses, dann siehst du was da passiert. Naja, damit das OpenFileRequester wirklich in der Mitte angezeigt wird, muss du nur noch die Größe des Windows anpassen.
Code: Alles auswählen
StandardFile$ = "C:\autoexec.bat" ; anfänglichen Pfad + Dateiname festlegen
; Mit dem nächsten String werden die Pattern (mit "|" als Trennzeichen) für anzuzeigende
; Dateitypen festgelegt:
; Erster: "Text (*.txt)" als Name, ".txt" und ".bat" als erlaubte Dateiendungen
; Zweiter: "PureBasic (*.pb)" als Name, ".pb" al erlaubte Dateiendung
; Dritter: "Alle Dateien (*.*) als Name, "*.*" als erlaubte Dateiendung, gültig für alle Dateien
OpenWindow(0,0,0,300,400,#PB_Window_ScreenCentered| #PB_Window_BorderLess ,"mytest")
Pattern$ = "Text (*.txt)|*.txt;*.bat|PureBasic (*.pb)|*.pb|Alle Dateien (*.*)|*.*"
Pattern = 0 ; wir verwenden den ersten von drei möglichen Pattern als Standard
File$ = OpenFileRequester("Bitte Datei zum Laden auswählen", StandardFile$, Pattern$, Pattern,16)
HideWindow(0, 1)
If File$
MessageRequester("Information", "Sie haben folgende Datei ausgewählt:"+Chr(10)+File$, 0)
Else
MessageRequester("Information", "Der Requester wurde abgebrochen.", 0)
EndIf