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. :lol:

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. :lol:

Bye Andre
Hier der Link zur PB 4.30 Version: http://www.purecoder.net/easyvent_pb4-3.zip

ansonsten :freak:

@FluidByte
Auf die Idee mit der Cursorpostion wäre ich nie gekommen, nette Idee :wink:

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...?