wie kann ich SaveFileRequester an Pos x,y

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
kapege
Beiträge: 39
Registriert: 28.12.2004 17:35
Computerausstattung: AMD Ryzen 7 3700X 8-Core Processor 3.60 GHz
Windows 10 Pro 64bit
14 GB Ram

PureBasic 6.00 LTS (Windows - x64)
Wohnort: Trostberg

wie kann ich SaveFileRequester an Pos x,y

Beitrag von kapege »

Hallo liebe Gemeinde,

ich hab da mal ne Frage:

wie kann ich SaveFileRequester an Pos x,y öffnen?

Ich erstelle ein Fenster an Pos 10,10, male dort ein Bild hinein
und öffne gleich danach den SaveFileRequester.
Dieser öffnet sich immer überlappend auf dem BildFenster,
sodass ich immer erst dieses Requesterfenster anklicken und verschieben muss,
um das Bild betrachten zu können, um dann im Requesterfenster
auf abbrechen oder speichern zu klicken.

gibt es dafür eine (API)-Funktion?

vielen Dank im vorraus

lg Peter
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: wie kann ich SaveFileRequester an Pos x,y

Beitrag von ts-soft »

Hier mal ein schnell zusammengeklatschtes Beispiel, das nur als Anregung dienen soll:

Code: Alles auswählen

Procedure MoveRequesterThread(a)
  Protected hWnd
  Repeat
    hWnd = FindWindow_("#32770", "Hallo die Enten")
    If hWnd
      MoveWindow_(hwnd, 500, 500, 500, 500, 0)
      While FindWindow_("#32770", "Hallo die Enten")
        Delay(20)
      Wend  
    EndIf
    Delay(1000)
  ForEver
EndProcedure

CreateThread(@MoveRequesterThread(), 0)

Delay(1000)
File.s = SaveFileRequester("Hallo die Enten", "", "", 0)
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
kapege
Beiträge: 39
Registriert: 28.12.2004 17:35
Computerausstattung: AMD Ryzen 7 3700X 8-Core Processor 3.60 GHz
Windows 10 Pro 64bit
14 GB Ram

PureBasic 6.00 LTS (Windows - x64)
Wohnort: Trostberg

Re: wie kann ich SaveFileRequester an Pos x,y

Beitrag von kapege »

Hallo Thomas,

danke für die schnelle Antwort.
Das mit dem Thread probier ich mal aus.
muss ich den am Programmende wieder killen?

lg Peter
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: wie kann ich SaveFileRequester an Pos x,y

Beitrag von RSBasic »

Mach einfach so:

Code: Alles auswählen

EnableExplicit

Define EventID
Define File.s

Procedure MoveRequesterThread(a)
  Protected hWnd
  
  Repeat
    hWnd = FindWindow_("#32770", "Hallo die Enten")
    Delay(10)
  Until hWnd
  
  MoveWindow_(hwnd, 500, 500, 500, 500, 0)
  
EndProcedure

If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  
  CreateThread(@MoveRequesterThread(), 0)
  
  File = SaveFileRequester("Hallo die Enten", "", "", 0)
  
  Repeat
    EventID=WaitWindowEvent()
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
Dann wird der Thread automatisch beendet.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
kapege
Beiträge: 39
Registriert: 28.12.2004 17:35
Computerausstattung: AMD Ryzen 7 3700X 8-Core Processor 3.60 GHz
Windows 10 Pro 64bit
14 GB Ram

PureBasic 6.00 LTS (Windows - x64)
Wohnort: Trostberg

Re: wie kann ich SaveFileRequester an Pos x,y

Beitrag von kapege »

Hallo RSBasic,

danke für die Antwort.

lg Peter
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: wie kann ich SaveFileRequester an Pos x,y

Beitrag von ts-soft »

Der Thread wird mit dem Process (Programm) automatisch beendet. Aber die Variante von RSBasic
ist wahrscheinlich geeigneter, einfach vor jedem FileRequester den Thread starten, der beendet
sich dann immer gleich nach dem verschieben.

Threadsafe brauchste nicht aktivieren, wenn es so ähnlich, wie die bisherigen Beispiele bleibt.

Gruß
Thomas

// edit
Vor MoveWindow_ in dem Beispiel von RSBasic noch auf hWnd <> 0 prüfen, falls er nischt findet.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
kapege
Beiträge: 39
Registriert: 28.12.2004 17:35
Computerausstattung: AMD Ryzen 7 3700X 8-Core Processor 3.60 GHz
Windows 10 Pro 64bit
14 GB Ram

PureBasic 6.00 LTS (Windows - x64)
Wohnort: Trostberg

Re: wie kann ich SaveFileRequester an Pos x,y

Beitrag von kapege »

Hallo Thomas und RSBasic,

konnte das heute erst testen
und es funktioniert bestens.

vielen Dank dafür :praise:

lg Peter
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: wie kann ich SaveFileRequester an Pos x,y

Beitrag von RSBasic »

ts-soft hat geschrieben:// edit
Vor MoveWindow_ in dem Beispiel von RSBasic noch auf hWnd <> 0 prüfen, falls er nischt findet.
Wird das nicht automatisch gemacht? Ich habs ja extra weg gelassen, da sowas in der folgenden Zeile bereits überprüft wird, ob hWnd <> 0 ist:

Code: Alles auswählen

Until hWnd
Deshalb kann hWnd niemals Null sein, wenn die Schleife erfolgreich beendet wird. FindWindow_() gibt entweder Null oder Handle-Nummer zurück.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: wie kann ich SaveFileRequester an Pos x,y

Beitrag von ts-soft »

Hast ja recht :wink:
Vielleicht sollte man doch noch ein TimeOut einbauen, damit ich dann wieder recht habe :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: wie kann ich SaveFileRequester an Pos x,y

Beitrag von RSBasic »

Hehe, das gleiche hat DarkDragon mich ebenfalls gefragt, jetzt grad eben. :mrgreen:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten