ExplorerListGadget

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

ExplorerListGadget

Beitrag 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?
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag 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?
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

kannst du mir zu letzterem einen Codeschnipsel posten?
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag 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.
pogi02
Beiträge: 131
Registriert: 30.10.2004 00:52
Wohnort: Österreich
Kontaktdaten:

Beitrag 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 ;)
MfG pogi02

- www.apware.net
Aktuelles Projekt:
-
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag 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.
pogi02
Beiträge: 131
Registriert: 30.10.2004 00:52
Wohnort: Österreich
Kontaktdaten:

Beitrag von pogi02 »

Hallo


Entweder der beschriebene Fehler den ich dir beschriben habt oder: Case 102 vielleicht hast die falsche nummer
MfG pogi02

- www.apware.net
Aktuelles Projekt:
-
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

nein bei case 102 hab ich auch noch einen anderen befehl der auch funktioniert
Antworten