Ich hatte hier auch nur einen kleinen Demo-Code geschrieben, in dem der Effekt wenn die Selektion aufgehoben wird nachvollziehbar (also zu sehen) sein sollte, und in dem es kein Popup-Menü o.Ä. gibt.Bisonte hat geschrieben:Und nochmal nebenbei : Wenn das "deselektieren" automatisch bei LostFocus
gemacht wird, kann man mit dem selektierten Inhalt nichts anfangen (Rechtsklick und kopieren
ist Fokusverlust, weil ein Popupmenu aufgeht!)
StringGadgetInhalt Selektieren bei Fokuserhalt
Re: StringGadgetInhalt Selektieren bei Fokuserhalt
Re: StringGadgetInhalt Selektieren bei Fokuserhalt
Hi Linuxianer,
so würde es gehen:
so würde es gehen:
Code: Alles auswählen
Global sel = #False
Procedure.i MyStringEvent()
If Not sel
sel = #True
EndIf
EndProcedure
OpenWindow(0, 0, 0, 200, 100, "Autoselect text", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(1, 10, 10, 20, 20, "A")
StringGadget(2, 50, 40, 100, 20, "Test")
BindGadgetEvent(2, @MyStringEvent(), #PB_EventType_Focus)
Repeat
If sel
gtk_editable_select_region_(GadgetID(2), 0, Len(GetGadgetText(2)))
sel = #False
EndIf
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: StringGadgetInhalt Selektieren bei Fokuserhalt
Ok, aber nun stell dir das mit ein paar mehr StringGadgets vor
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
- TroaX
- Beiträge: 661
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
- Wohnort: NRW
- Kontaktdaten:
Re: StringGadgetInhalt Selektieren bei Fokuserhalt
Kannst auch statt #True oder #False auch einfach die Gadget-ID als Wert für sel nehmen und wenn keines selektiert ist, den Wert auf 0 setzen. Es kann eh nur ein Gadget zur Zeit selektiert seinBisonte hat geschrieben:Ok, aber nun stell dir das mit ein paar mehr StringGadgets vor
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Re: StringGadgetInhalt Selektieren bei Fokuserhalt
Dann ist meine kleine AutoSelString() Proc genau das gleiche in grün ... In beiden hat man
in der Eventloop etwas zu bestellen... Wobei dann bei mir das BindGadgetEvent völlig
wegfällt, also eine Fehlerquelle weniger
in der Eventloop etwas zu bestellen... Wobei dann bei mir das BindGadgetEvent völlig
wegfällt, also eine Fehlerquelle weniger
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
- TroaX
- Beiträge: 661
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
- Wohnort: NRW
- Kontaktdaten:
Re: StringGadgetInhalt Selektieren bei Fokuserhalt
Mal so als Frage. Hast du mal versucht, mit
das setzen der Cursor-Position vorab zu erzwingen?
Also:
Denn ich werde irgendwie dieses merkwürdige Gefühl nicht los, das dieser Effekt daher kommt, das durch BindEventGadget erst der Cursor nach der Ausführung gesetzt wird, wodurch die Slektierung aufgehoben werden könnte. Vielleicht kannst du das damit brechen. ich kann es selber nicht testen, da kein Linux und somit kein GTK. Aber das hätte ich auch jeden Fall mal probiert.
Code: Alles auswählen
gtk_editable_set_position_(GadgetID(Gadget),-1)
Also:
Code: Alles auswählen
gtk_editable_set_position_(GadgetID(Gadget),-1)
gtk_editable_select_region_(GadgetID(Gadget), 0, Len(GetGadgetText(Gadget)))
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
- HeX0R
- Beiträge: 2959
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 - Kontaktdaten:
Re: StringGadgetInhalt Selektieren bei Fokuserhalt
Eine "von hinten durch die Brust ins Auge"-Lösung
Code: Alles auswählen
#MY_EVENT = #PB_Event_FirstCustomValue
Procedure.i MyStringEvent()
Gadget = EventGadget()
gtk_editable_select_region_(GadgetID(Gadget), 0, Len(GetGadgetText(Gadget)))
EndProcedure
Procedure MyStringEventA()
PostEvent(#MY_EVENT, 0, EventGadget())
EndProcedure
OpenWindow(0, 0, 0, 200, 100, "Autoselect text", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(1, 10, 10, 20, 20, "A")
StringGadget(2, 50, 40, 100, 20, "Test")
BindGadgetEvent(2, @MyStringEventA(), #PB_EventType_Focus)
BindEvent(#MY_EVENT, @MyStringEvent(), 0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}
Re: StringGadgetInhalt Selektieren bei Fokuserhalt
Also der Versuch, die Position vorher zu setzen bringt auch nichts.
Und die Lösung von HeX0r gefällt mir (Sie funktioniert)
Fehlt jetzt nur noch Mac
Und die Lösung von HeX0r gefällt mir (Sie funktioniert)
Fehlt jetzt nur noch Mac
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom