Seite 1 von 2

Doppelklick auf Gadget

Verfasst: 30.12.2010 09:10
von Velindos
Hallo,
anscheinend stehe ich auf der Leitung! Wie geht ein Ereignis mit Doppelklick auf ein Gadget. Möchte auf mein Stringgadget klicken und eine größeres Windows zum komfortablen eingeben zu machen!
Wer kann mir da helfen?
Gruss ... Velindos

Re: Doppelklick auf Gadget

Verfasst: 30.12.2010 10:11
von walker
Tip: gib mal EventType() in der IDE ein und stelle den Cursor in das Wort und drücke F1. (Oder suche in der Hilfe nach: EventType)
Es werden Dir alle Gadgets angezeigt, die Eventtypes unterstützen (dazu gehört auch der Doppelklick im Stringgadget). Ein Beispiel ist auch zu sehen :-)

Re: Doppelklick auf Gadget

Verfasst: 30.12.2010 11:39
von Velindos
Hallo,
habs gemacht und hat gekracht! Siehe Beispiel obwohl ich´s gelesen habe!

Code: Alles auswählen

  If OpenWindow(0, 0, 0, 230, 120, "Eventtypes Beispiel...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
     ;ListIconGadget(1, 10, 10, 150, 100, "ListIcon", 140, #PB_ListIcon_GridLines) 
     ;For a= 1 To 4
     ;  AddGadgetItem(1, -1, "Line "+Str(a))
     ;Next a
     StringGadget(1, 10, 10, 150, 100, "TEST")

     Repeat
       Event = WaitWindowEvent()
       
       Select Event
       
         Case #PB_Event_Gadget
           Select EventGadget()
             Case 1 
               Select EventType()
                 Case #PB_EventType_LeftClick        : Debug "Klick mit der linken Maustaste"
                 Case #PB_EventType_RightClick       : Debug "Klick mit der rechten Maustaste"
                 Case #PB_EventType_LeftDoubleClick  : Debug "Doppelklick mit der linken Maustaste"
                 Case #PB_EventType_RightDoubleClick : Debug "Doppelklick mit der rechten Maustaste"
               EndSelect
           EndSelect
       
       EndSelect
     Until Event = #PB_Event_CloseWindow
  EndIf

Warum nicht?

Gruss ... Velindos

Re: Doppelklick auf Gadget

Verfasst: 30.12.2010 13:44
von c4s
Ein bisschen Eigeninitiative ist auch gefragt. Mal bei StringGadget() vorbeischauen... /:->

Re: Doppelklick auf Gadget

Verfasst: 30.12.2010 14:04
von Andesdaf

Code: Alles auswählen

EnableExplicit

Global gOldEditProc

Procedure editproc(hWnd, uMsg, wParam, lParam)
  Protected result
    Select uMsg
        Case #WM_LBUTTONDBLCLK
          MessageRequester("Ausgabe", "Links doppelt geklickt")
          result = 0
      Default
        result = CallWindowProc_(gOldEditProc, hWnd, uMsg, wParam, lParam)
    EndSelect
ProcedureReturn result
EndProcedure

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  StringGadget(1,10,10,200,20,"Klicke doppelt linke Maustaste...",0)

  gOldEditProc = SetWindowLongPtr_(GadgetID(1), #GWL_WNDPROC, @editproc())

  Repeat
    Define Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow
EndIf
Für andere Maustasten: http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Musst noch einbauen, dann dürftes gehen.

Re: Doppelklick auf Gadget

Verfasst: 30.12.2010 14:10
von ts-soft
@Andesdaf
Jetzt wird aber das Wort unter dem Mauszeiger nicht mehr selektiert :mrgreen:

Der falsche Gebrauch des Doppelklicks ist ein Designfehler. Sollte in dieser Art
und Weise jedenfalls nicht mit dem StringGadget verwendet werden. Damit
bringt man die Nutzer nur zur Weisglut :mrgreen:

Re: Doppelklick auf Gadget

Verfasst: 30.12.2010 16:50
von Velindos
Hallo,
habe mir die Sache gerade angesehen, super! Also bei diesen Kürzel hatte ich keine Chance.
Werde Sie jetzt einbauen und nochmals Danke für eure Hilfe und Tips.

Gruss ... Velindos

Re: Doppelklick auf Gadget

Verfasst: 30.12.2010 17:12
von ts-soft
Du solltest lieber einen Button oder ähnlich einbauen, der das Fenster vergrößert,
ein nicht richtig funktionierendes StringGadget kann doch nicht die Lösung sein :mrgreen:

Doppelklick selektiert das Wort unter dem Mauszeiger und nichts anderes!

Es soll doch ein Windows-Programm sein, dann hält man sich auch an das normale
Verhalten des OS.

Re: Doppelklick auf Gadget

Verfasst: 30.12.2010 17:23
von Velindos
Hallo,
das Problem stellt sich folgend dar! Ich habe das Editorgadget in meinen Minibook. Für Button habe ich keinen Platz mehr im Fenster, somit suche ich einen Weg, um das Editorgadget zu vergrössern, um eine komfortable Eingabe auf die kleine Fläche zu haben.
In meiner Accessdatenbank hatte ich den Doppelklick und war auch nicht zufrieden damit! Da es wie du schon sagtest, es dem Editorgadget eine Funktion nimmt. Momentan denke ich, dass ich noch die Daumentaste an der Maus für den Aufruf verwenden könnte, aber damit wäre ich an eine Maus mit Daumentaste gebunden.
Weiter bin ich noch nicht gekommen.
Gruss ... Velindos

Re: Doppelklick auf Gadget

Verfasst: 30.12.2010 17:30
von ts-soft
Wie wäre es mit einem KeyboardShortcut?