Seite 1 von 2
Doppelklick auf IPAddressGadget erfassen. [erledigt]
Verfasst: 06.05.2009 20:00
von Elektrolurch
Hi all
Ich suche jetzt schon über eine Stunde und finde nichts.
Ich habe ein IPAdressgadget. Bei allen Usereingaben werden die Daten übernommen.
Nun möchte ich bei einem Doppelklick auf das IPAdessgadget den Namen erfragen und so die IP ermitteln.
Wie kann ich diesen Doppelklick auf das Gadget erfassen?
Code: Alles auswählen
If EventGadget = #IPAddress_0
If "Doppelklick"
Get_IP_by_Host
Endif
IP_Adr.s = GetGadgetText(#IPAddress_0)
Ziel.s = "\\" + IP_Adr.s + "\import\"
So in der Art soll es dann aussehen.
Hat d jemand eine Idee
Bye Andre
Verfasst: 06.05.2009 20:07
von STARGÅTE
Code: Alles auswählen
If EventGadget = #IPAddress_0
If EventType() = #PB_EventType_LeftDoubleClick
Get_IP_by_Host
Endif
IP_Adr.s = GetGadgetText(#IPAddress_0)
Ziel.s = "\\" + IP_Adr.s + "\import\"
weiß aber nicht ob das auch mit dem IPGadget geht, aber bei vielen anderen Gadgets gehts (StringGadget, zB.)
Ich rate dir auch lieber das StringGadget zu nutzen, damit Nutzer eine IP einfacher einfügen können, weil man ja beim IPGadget immer jede nummer einzeln eingeben muss, (das nervt manche)
Verfasst: 06.05.2009 20:08
von ts-soft
Wenn der EventType #PB_EventType_LeftDoubleClick nicht unterstützt wird,
mußte das Control subclassen oder nutze EasyVENT von srod, was sowieso
sinnvoll ist.
Aber auch bei einem Doppelklick tritt ein Einfachklick Ereignis ein!
Verfasst: 06.05.2009 20:27
von Elektrolurch
Hi
@Stargate
Hat leider nicht funktioniert, habe sowas ähnlich auch schon probiert.
@ts-soft
Ich glaube eben fuhr ein Zug vorbei, das verstehe ich leider nicht, bin halt Anfänger.
@all
Ein User meines Programms nutzt DHCP und so wäre es für ihn einfacher den Hostnamen einzugeben. Ich möchte dafür aber keine allzu großen Klimmzüge veranstalten. So ein doppelklick auf das Gadget, eine Inputbox und dann die kleine Prozedure wäre halt einfach "gewesen"???
Bye Andre
Verfasst: 06.05.2009 20:32
von ts-soft
Verfasst: 06.05.2009 20:47
von Elektrolurch
Hi
@ts-soft
Die Links auf dieser Seite funktionieren leider nicht.
Ich glaube ich mache es mir einfach und füge einen neuen Menüpunkt ein.
Bye Andre
Verfasst: 06.05.2009 21:03
von Fluid Byte
Code: Alles auswählen
OpenWindow(0,0,0,320,240,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
IPAddressGadget(0,10,10,180,25)
Repeat
EventID = WaitWindowEvent()
If EventID = #WM_LBUTTONDBLCLK
GetCursorPos_(cpt.POINT)
ScreenToClient_(GadgetID(0),cpt.POINT)
GetClientRect_(GadgetID(0),crc.RECT)
If GetParent_(GetFocus_()) = GadgetID(0) And PtInRect_(crc,cpt\x | cpt\y << 32)
Debug "DOPPELKLICK!"
EndIf
EndIf
Until EventID = #PB_Event_CloseWindow
Verfasst: 06.05.2009 21:03
von ts-soft
Elektrolurch hat geschrieben:Hi
@ts-soft
Die Links auf dieser Seite funktionieren leider nicht.
Ich glaube ich mache es mir einfach und füge einen neuen Menüpunkt ein.
Bye Andre
Hier der Link zur PB 4.30 Version:
http://www.purecoder.net/easyvent_pb4-3.zip
ansonsten
@FluidByte
Auf die Idee mit der Cursorpostion wäre ich nie gekommen, nette Idee

Verfasst: 06.05.2009 21:48
von Elektrolurch
Hi
@Fluid Byte
Dein Code sieht vielversprechen aus, nur verstehe ich ihn nicht ganz.
außerdem erzeugt er bei mir einen Fehler.
Code: Alles auswählen
OpenWindow(0,0,0,320,240,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
IPAddressGadget(0,10,10,180,25)
Repeat
EventID = WaitWindowEvent()
If EventID = #WM_LBUTTONDBLCLK
GetCursorPos_(cpt.POINT)
ScreenToClient_(GadgetID(0),cpt.POINT)
GetClientRect_(GadgetID(0),crc.RECT)
If GetParent_(GetFocus_()) = GadgetID(0) And PtInRect_(crc,cpt\x | cpt\y << 32)
Debug "DOPPELKLICK!"
EndIf
EndIf
Until EventID = #PB_Event_CloseWindow
Code: Alles auswählen
[21:39:16] [COMPILER] Zeile 12: The specified number is incorrect For '<<' Or '>>' operators (must be 0-31)
@ts-soft
Danke für die Mühe, ich werde aber zuerst obigen Weg testen.
Bye Andre
Verfasst: 06.05.2009 21:54
von Kaeru Gaman
du benutzt eine ältere PB-Version...?