Seite 1 von 1
Wünsche mir einen KillFileRequester
Verfasst: 21.12.2010 19:49
von hjbremer
ich wünsche mir einen KillFileRequester.
denn beim OpenFileRequester steht öffnen, ich hätte aber gerne das da löschen oder zumindest ok steht.
Re: Wünsche mir einen KillFileRequester
Verfasst: 21.12.2010 20:14
von DarkDragon
Dann wärs aber doch ein "DeleteFileRequester" und nicht "KillFileRequester". Prozesse werden getötet, Dateien werden gelöscht.
Re: Wünsche mir einen KillFileRequester
Verfasst: 21.12.2010 20:44
von RSBasic
@hjbremer
Ich hab mal für dich einen Code mit Hilfe dieses Threads (
http://www.purebasic.fr/english/viewtop ... 12&t=38051 ) geschrieben:
Code: Alles auswählen
EnableExplicit
Define EventID
Define File$
Global WinMainX, WinMainY, WinMainWidth, WinMainHeight
Procedure RequesterCallBack(hWnd, uMsg, wParam, lParam)
hWnd = FindWindow_(#Null,"Datei löschen")
If hWnd
hWnd = FindWindowEx_(hWnd,#Null,#Null,"Ö&ffnen")
If hWnd
SetWindowText_(hWnd,"Löschen")
EndIf
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(1,10,10,100,20,"DeleteFileRequester",0)
SetWindowCallback(@RequesterCallBack())
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_Gadget
Select EventGadget()
Case 1
File$ = OpenFileRequester("Datei löschen","","",0,0)
If File$
Debug File$
EndIf
EndSelect
EndIf
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Ist es das, was du möchtest?
Sieht dann so aus:

Re: Wünsche mir einen KillFileRequester
Verfasst: 21.12.2010 22:24
von hjbremer
Cool, sehr gut, danke RSBasic
normalerweise wärs das, aber ich bräuchte das für ein kleines Toolfenster, welches in den verschiedensten Programmen via Include eingebunden wird, und das sollte keinen Callback haben, denn in PB gibt es ja nur einen Callback im Mainprogramm.
Ich könnte natürlich meine eigene Dialogbox machen, oder ein Treegadget benutzen, aber der Aufwand nur für ein klitzekleines Wort. Das ist zuviel des Guten.
Re: Wünsche mir einen KillFileRequester
Verfasst: 21.12.2010 22:27
von HeX0R
hjbremer hat geschrieben:[...]denn in PB gibt es ja nur einen Callback im Mainprogramm.
SetWindowCallback() hat einen optionalen Parameter...
Re: Wünsche mir einen KillFileRequester
Verfasst: 21.12.2010 22:32
von RSBasic
@hjbremer
Und wie sieht es mit einem Thread aus? Ginge das?
Entscheidend sind folgende Code-Zeilen:
Code: Alles auswählen
hWnd = FindWindow_(#Null,"Datei löschen")
If hWnd
hWnd = FindWindowEx_(hWnd,#Null,#Null,"Ö&ffnen")
If hWnd
SetWindowText_(hWnd,"Löschen")
EndIf
EndIf
Hier mal ein Thread-Beispiel:
Code: Alles auswählen
EnableExplicit
Define File$
Procedure RequesterThread(z)
Protected hWnd
Repeat
hWnd = FindWindow_(#Null,"Datei löschen")
If hWnd
hWnd = FindWindowEx_(hWnd,#Null,#Null,"Ö&ffnen")
If hWnd
SetWindowText_(hWnd,"Löschen")
EndIf
EndIf
Delay(100)
Until hWnd
EndProcedure
CreateThread(@RequesterThread(),0)
File$ = OpenFileRequester("Datei löschen","","",0,0)
If File$
Debug File$
EndIf
\\Edit:
Ja, HeX0R hat Recht. Da gibt es einen optionalen Parameter, falls dir das hilft.
Re: Wünsche mir einen KillFileRequester
Verfasst: 22.12.2010 00:37
von hjbremer
HeX0R hat geschrieben:hjbremer hat geschrieben:[...]denn in PB gibt es ja nur einen Callback im Mainprogramm.
SetWindowCallback() hat einen optionalen Parameter...
Man hätte trotzdem 2 Callbacks, habe mit dem Parameter schon gearbeitet, und 2 Callbacks im Programm gehabt. Hat nicht so recht funktioniert. Wohl mangels Wissen.
Aber die Sache mit dem Thread funktioniert
Vielen Dank für die Mühe.
