Hallo zusammen,
ich habe folgendes Problem bei dem ich nicht weiterkomme.
Ich habe eine Eingabemaske mit 5 Stringgadgets. Beim Anspringen mit der TAB-Taste werden diese in der richtigen Reihenfolge (= Reihenfolge in der die Gadgets erzeugt wurden) angesprungen.
Das dritte Stringgadget wird während des Programmablaufes durch ein ComboBox-Gadget (an der gleichen Screen Position) mit der selben ID ersetzt. Das Stringgadget ist dadurch "gefreed".
Jetzt wird beim Anspringen mit der Tab-Taste Stringgadget 1, dann 2, 4,5 und dann erst die ComboBox angesprungen anstatt Stringgadget1, 2 ComboBox, Stringgadget 4,5.
Wie kann ich die "richtige" Reihenfolge wieder einrichten.
Danke im Voraus.
NicknameFJ
			
			
									
									Gadgetreihenfolge beim Anspringen mit der TAB-Taste
- NicknameFJ
- Beiträge: 324
- Registriert: 03.06.2007 14:36
- Wohnort: Von der Sonne aus gesehen der dritte Planet
Gadgetreihenfolge beim Anspringen mit der TAB-Taste
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

						
Re: Gadgetreihenfolge beim Anspringen mit der TAB-Taste
Das besagte Stringgadget und Combogadget unterschiedliche IDs geben und mittels DisableGadget und HideGadget verstecken. 
Generell würde ich Gadgets immer unterschiedliche IDs geben, besser mit #pb_any arbeiten.
			
			
									
									Generell würde ich Gadgets immer unterschiedliche IDs geben, besser mit #pb_any arbeiten.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
						- NicknameFJ
- Beiträge: 324
- Registriert: 03.06.2007 14:36
- Wohnort: Von der Sonne aus gesehen der dritte Planet
Re: Gadgetreihenfolge beim Anspringen mit der TAB-Taste
Danke GPI. 
Das hätte ich auch so gemacht aber ......
mein Programm ist schon sehr weit und ich habe das mit der ComboBox erst nachträglich eingebaut.
Habe noch eine eigene Routine die mit der ENTER Taste die Gadgets durchgeht. Da brauche die selbe Gadgetnummer. Habe auch ein Autovervollständigen mit Drin usw. das an allen Stellen anzupassen ist ne Menge Arbeit.
Dachte es wäre einfacher dem OS die neue Reihenfolge beizubringen an der Stelle wo die Combobox eingeblendet wird.
Hat jemand eine Idee wie ich die Reihenfolge dem OS beibringen kann sonst muss ich in den saueren Apfel beißen und die Fleißarbeit erledigen.
NicknameFJ
			
			
									
									Das hätte ich auch so gemacht aber ......
mein Programm ist schon sehr weit und ich habe das mit der ComboBox erst nachträglich eingebaut.
Habe noch eine eigene Routine die mit der ENTER Taste die Gadgets durchgeht. Da brauche die selbe Gadgetnummer. Habe auch ein Autovervollständigen mit Drin usw. das an allen Stellen anzupassen ist ne Menge Arbeit.
Dachte es wäre einfacher dem OS die neue Reihenfolge beizubringen an der Stelle wo die Combobox eingeblendet wird.
Hat jemand eine Idee wie ich die Reihenfolge dem OS beibringen kann sonst muss ich in den saueren Apfel beißen und die Fleißarbeit erledigen.
NicknameFJ
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

						
- HeX0R
- Beiträge: 3055
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
 96Gig Ram
 NVIDIA GEFORCE RTX 3060TI/8Gig
 Win11 64Bit
 G19 Tastatur
 2x 24" + 1x27" Monitore
 Glorious O Wireless Maus
 PB 3.x-PB 6.x
 Oculus Quest 2 + 3
- Kontaktdaten:
Re: Gadgetreihenfolge beim Anspringen mit der TAB-Taste
Code: Alles auswählen
Procedure ChangeTabOrder(List Gadgets.i())
	
	If LastElement(Gadgets())
		Repeat
			If IsGadget(Gadgets())
				SetWindowPos_(GadgetID(Gadgets()), 0, 0, 0, 0, 0, #SWP_NOMOVE | #SWP_NOSIZE)
			EndIf
		Until PreviousElement(Gadgets()) = 0
	EndIf
EndProcedure
If OpenWindow(0, 0, 0, 222, 200, "ButtonGadgets", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
	ButtonGadget(0, 10, 10, 200, 20, "Eins")
	ButtonGadget(1, 10, 40, 200, 20, "Zwei")
	ButtonGadget(2, 10, 70, 200, 20, "Drei")
	ButtonGadget(3, 10, 100, 200, 60, "Vier")
	ButtonGadget(4, 10, 170, 200, 20, "Change TabOrder")
	Repeat
		Select WaitWindowEvent()
			Case #PB_Event_CloseWindow
				Break
			Case #PB_Event_Gadget
				If EventGadget() = 4
					NewList G.i()
					AddElement(G()) : G() = 2 : SetGadgetText(2, "Eins")
					AddElement(G()) : G() = 4 : SetGadgetText(4, "Zwei")
					AddElement(G()) : G() = 0 : SetGadgetText(0, "Drei")
					AddElement(G()) : G() = 3 : SetGadgetText(3, "Vier")
					AddElement(G()) : G() = 1 : SetGadgetText(1, "Fuenf")
					ChangeTabOrder(G())
				EndIf
		EndSelect
	ForEver
	
EndIf{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
						- NicknameFJ
- Beiträge: 324
- Registriert: 03.06.2007 14:36
- Wohnort: Von der Sonne aus gesehen der dritte Planet
Re: Gadgetreihenfolge beim Anspringen mit der TAB-Taste
Hallo HeXOR,
danke für Deine Antwort.
Ich teste dies mal.
Über kurz oder lang muss ich die Fleißarbeit mal angehen aber erstmal ist es gut wenn ich da nicht ran muss.
NicknameFJ
			
			
									
									danke für Deine Antwort.
Ich teste dies mal.
Über kurz oder lang muss ich die Fleißarbeit mal angehen aber erstmal ist es gut wenn ich da nicht ran muss.
NicknameFJ
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

						
- HeX0R
- Beiträge: 3055
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
 96Gig Ram
 NVIDIA GEFORCE RTX 3060TI/8Gig
 Win11 64Bit
 G19 Tastatur
 2x 24" + 1x27" Monitore
 Glorious O Wireless Maus
 PB 3.x-PB 6.x
 Oculus Quest 2 + 3
- Kontaktdaten:
Re: Gadgetreihenfolge beim Anspringen mit der TAB-Taste
Ich hab mir das nochmal durchgelesen, das was Du willst geht ja noch viel einfacher:
			
			
									
									Code: Alles auswählen
If OpenWindow(0, 0, 0, 222, 200, "ButtonGadgets", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
	ButtonGadget(0, 10, 10, 200, 20, "Eins")
	ButtonGadget(1, 10, 40, 200, 20, "Zwei")
	ButtonGadget(2, 10, 70, 200, 20, "Drei")
	ButtonGadget(3, 10, 100, 200, 60, "Vier")
	ButtonGadget(4, 10, 170, 200, 20, "Lösche Drei und erstelle neu")
	Repeat
		Select WaitWindowEvent()
			Case #PB_Event_CloseWindow
				Break
			Case #PB_Event_Gadget
				If EventGadget() = 4
					FreeGadget(2)
					UseGadgetList(WindowID(0))
					ButtonGadget(2, 10, 70, 200, 20, "Drei")
					SetWindowPos_(GadgetID(2), GadgetID(1), 0, 0, 0, 0, #SWP_NOMOVE | #SWP_NOSIZE)
				EndIf
		EndSelect
	ForEver
	
EndIf
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
						- NicknameFJ
- Beiträge: 324
- Registriert: 03.06.2007 14:36
- Wohnort: Von der Sonne aus gesehen der dritte Planet
Re: Gadgetreihenfolge beim Anspringen mit der TAB-Taste
Danke HeXOR,
funktioniert sehr gut.
Ich baue das erstmal in mein Programm ein.
NicknameFJ
			
			
									
									funktioniert sehr gut.
Ich baue das erstmal in mein Programm ein.
NicknameFJ
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

						

