Seite 1 von 2
ExplorerListGadget
Verfasst: 26.03.2005 03:54
von zigapeda
Hallo
Ich habe ein Stringgadget in dem ich einen Pfad eingeben kann und ein buttongadget mit dem ich den arbeitsplatz mit dem Pfad öffnen kann. Vor einiger zeit hab ich mal gefragt wie ich den pfad mit einer taste öffnen kann also Enter. jetzt habe ich ein explorerlistgadget. wenn ich auf ein ordner oder eine datei klicke wird der pfad und der name der datei in dem stringgadget eingetragen. jetzt muss ich extra enter drücken oder auf den button klicken. Meine frage: Geht das nicht auch mit einem Doppelklick?
Verfasst: 26.03.2005 13:26
von zigapeda
Noch was: Kann man auch eine Drag & Droß funktion einbauen? also das ich dateien auf ein anderes fenster oder einem anderen gadget im selben fenster ziehen kann?
Verfasst: 26.03.2005 14:04
von DarkDragon
zigapeda hat geschrieben:Noch was: Kann man auch eine Drag & Droß funktion einbauen? also das ich dateien auf ein anderes fenster oder einem anderen gadget im selben fenster ziehen kann?
http://freak.purearea.net/code/TreeDrag.html Vielleicht hilft dir das
Und kennst du die funktion EventType() und die Konstante #PB_Event_LeftDoubleClick?
Verfasst: 26.03.2005 15:37
von zigapeda
kannst du mir zu letzterem einen Codeschnipsel posten?
Verfasst: 26.03.2005 16:12
von DarkDragon
Beim #PB_EventType_LeftDoubleClick bekomm ich nie was, aber versuch mal was mit Timern.
Das sollte laut hilfe Funktionieren:
Code: Alles auswählen
#WindowWidth = 640
#WindowHeight = 480
#WindowFlags = #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_SystemMenu
hWnd = OpenWindow(0, 0, 0, #WindowWidth, #WindowHeight, #WindowFlags, "Beispiel")
CreateGadgetList(WindowID())
ExplorerListGadget(0, 0, 0, #WindowWidth, #WindowHeight, "C:\")
Repeat
Event = WindowEvent()
If EventGadgetID() = 0 And EventType() = #PB_EventType_LeftDoubleClick And Event = #PB_Event_Gadget
MessageRequester("Message", "Doppelklick wurde ausgeführt.")
EndIf
Delay(10)
Until Event = #PB_Event_CloseWindow
End
Verfasst: 26.03.2005 22:25
von zigapeda
Jetzt hab ich folgenden Code:
Code: Alles auswählen
Repeat
Select WaitWindowEvent()
Case #pb_event_gadget
Select EventGadgetID()
Case 102
If EventType() = #PB_EventType_LeftDoubleClick
RunProgram(GetGadgetText(17))
SetGadgetText(17,"")
EndIf
EndSelect
EndSelect
ForEver
Warum geht das dann nicht? ich hab die gleichen bedingungen wie du mir gepostet hast nur hald nicht in einer schleife sondern in mehreren. Dein Programm funktioniert.
Verfasst: 26.03.2005 22:29
von pogi02
zigapeda hat geschrieben:Jetzt hab ich folgenden Code:
Code: Alles auswählen
Repeat
Select WaitWindowEvent()
Case #pb_event_gadget
Select EventGadgetID()
Case 102
If EventType() = #PB_EventType_LeftDoubleClick
RunProgram(GetGadgetText(17))
SetGadgetText(17,"")
EndIf
EndSelect
EndSelect
ForEver
Warum geht das dann nicht? ich hab die gleichen bedingungen wie du mir gepostet hast nur hald nicht in einer schleife sondern in mehreren. Dein Programm funktioniert.
Hallo
Dein Case #pb_event_gadget ist falsch das heisst: Case #PB_EventGadget
das könnte der Fehler sein

Verfasst: 26.03.2005 22:39
von zigapeda
nein das ist nicht der fehler. ich habe die ganzen anderen gadgets auch in der schleife (deshalb auch die Select Case schleifen) und die funktionieren auch.
Verfasst: 26.03.2005 22:41
von pogi02
Hallo
Entweder der beschriebene Fehler den ich dir beschriben habt oder: Case 102 vielleicht hast die falsche nummer
Verfasst: 26.03.2005 22:50
von zigapeda
nein bei case 102 hab ich auch noch einen anderen befehl der auch funktioniert