Doppelklick auf IPAddressGadget erfassen. [erledigt]

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Doppelklick auf IPAddressGadget erfassen. [erledigt]

Beitrag 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
Zuletzt geändert von Elektrolurch am 07.05.2009 18:06, insgesamt 1-mal geändert.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag 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)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag 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
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag 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
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag 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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

du benutzt eine ältere PB-Version...?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten