[Done] 5.20 - PB_EventType_Change Bug oder Feature
- 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
Re: 5.20 - PB_EventType_Change Bug oder Feature
Wenn ich nach einem SetGadgetText ein Event möchte, kann ich es selber feuern, dafür gibt es PostEvent.
Entfernen ist nicht so einfach, deswegen ist das SpinGadget zum Beispiel jetzt eigentlich unbenutzbar
Warum beharrt Ihr auf unnütze "Features", die nur Probleme bereiten und wenn tatsächlich benötigt, einfach
selber zu bewerkstelligen sind.
Muß ich jetzt nicht verstehen, und mein Beispiel zeigt genau, was es soll, nämlich es wird nach jedem
SetGadgetText ein Change Event gefeuert, was nicht sein sollte!
Entfernen ist nicht so einfach, deswegen ist das SpinGadget zum Beispiel jetzt eigentlich unbenutzbar
Warum beharrt Ihr auf unnütze "Features", die nur Probleme bereiten und wenn tatsächlich benötigt, einfach
selber zu bewerkstelligen sind.
Muß ich jetzt nicht verstehen, und mein Beispiel zeigt genau, was es soll, nämlich es wird nach jedem
SetGadgetText ein Change Event gefeuert, was nicht sein sollte!
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: 5.20 - PB_EventType_Change Bug oder Feature
ok, wenn ich also programmatisch den Inhalt eines TextGadgets
ändere, ist es OK, wenn kein Change-Ereignis gefeuert wird, weil
es ein unnützes Feature ist und ich bei Bedarf mit PostEvent das
Ereignis selber auslösen kann?
Wie sieht es denn mit ResizeWindow() aus? Das feuert ein Size-Event.
Ist das auch ein unnützes Feature? Nein! Denn wir machen uns das
zunutze, indem wir dann die Größen der im Fenster liegenden Gadgets
anpassen können.
Nach Deiner und Freds Argumentation müsste nun das Size-Event,
welches ResizeWindow() auslöst, entfernt werden. Man kann ja
dann bei Bedarf ein PostEvent ausführen...
Hier wird mit zweierlei Maß gemessen. Logisch ist das nicht.
Habe grade mal den Code von _JON_ in VB.Net nachgebastelt. Dort wird
das Change-Event erwartungsgemäß genau zweimal gefeuert. Scheint so,
als ob Das .NET-Entwicklerteam und tausende von .NET-Programmierern
keine Ahnung hätten...
Grüße ... Kiffi
ändere, ist es OK, wenn kein Change-Ereignis gefeuert wird, weil
es ein unnützes Feature ist und ich bei Bedarf mit PostEvent das
Ereignis selber auslösen kann?
Wie sieht es denn mit ResizeWindow() aus? Das feuert ein Size-Event.
Ist das auch ein unnützes Feature? Nein! Denn wir machen uns das
zunutze, indem wir dann die Größen der im Fenster liegenden Gadgets
anpassen können.
Nach Deiner und Freds Argumentation müsste nun das Size-Event,
welches ResizeWindow() auslöst, entfernt werden. Man kann ja
dann bei Bedarf ein PostEvent ausführen...
Hier wird mit zweierlei Maß gemessen. Logisch ist das nicht.
Habe grade mal den Code von _JON_ in VB.Net nachgebastelt. Dort wird
das Change-Event erwartungsgemäß genau zweimal gefeuert. Scheint so,
als ob Das .NET-Entwicklerteam und tausende von .NET-Programmierern
keine Ahnung hätten...

Grüße ... Kiffi
a²+b²=mc²
- 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
Re: 5.20 - PB_EventType_Change Bug oder Feature
Das Beispiel zum SpinGadget ist in der Hilfe, das funktioniert jetzt aber nicht mehr
Und ResizeGadget erzeugt ja kein #PB_Event_SizeWindow, warum behauptet Ihr sowas?
Ich sag jetzt lieber nichts mehr, wird mir zu Bunt hier. Denselben Bug gabs vor vielen Jahren
schon in einer PB3.x Version. Da mußte man dann als workaround ins EventLoop ein
WindowEvent() einfügen, was es ja wohl nicht sein kann.
Wenn von Programm der Text geändert wird, ist kein Change Ereignis erforderlich, das
Programm weiß, das sich was geändert hat und braucht normal nicht drauf reagieren.
Wird diese Event aber gefeuert, führt dies in vielen Situationen zu Endlosschleifen.
Einfach mal das SpinGadget Beispiel aus der Hilfe ausführen, sollte man sofort, nachdem
man am SpinGadget mit der Maus einen Wert geändert hat, merken das wir uns in einer
Endlosschleife befinden. Das hinzufügen von WindowEvent() ist die einzige Möglichkeit,
dieses Problem zu umgehen. Da verzichte ich lieber auf das unnütze ChangeEvent als
mit solchen WorkArounds arbeiten zu müssen.
Mir aber jetzt egal, wenn Ihr die Problematik nicht versteht
Gruß und bin raus hier
Thomas

Und ResizeGadget erzeugt ja kein #PB_Event_SizeWindow, warum behauptet Ihr sowas?
Ich sag jetzt lieber nichts mehr, wird mir zu Bunt hier. Denselben Bug gabs vor vielen Jahren
schon in einer PB3.x Version. Da mußte man dann als workaround ins EventLoop ein
WindowEvent() einfügen, was es ja wohl nicht sein kann.
Wenn von Programm der Text geändert wird, ist kein Change Ereignis erforderlich, das
Programm weiß, das sich was geändert hat und braucht normal nicht drauf reagieren.
Wird diese Event aber gefeuert, führt dies in vielen Situationen zu Endlosschleifen.
Einfach mal das SpinGadget Beispiel aus der Hilfe ausführen, sollte man sofort, nachdem
man am SpinGadget mit der Maus einen Wert geändert hat, merken das wir uns in einer
Endlosschleife befinden. Das hinzufügen von WindowEvent() ist die einzige Möglichkeit,
dieses Problem zu umgehen. Da verzichte ich lieber auf das unnütze ChangeEvent als
mit solchen WorkArounds arbeiten zu müssen.
Mir aber jetzt egal, wenn Ihr die Problematik nicht versteht

Gruß und bin raus hier
Thomas
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- 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
Re: 5.20 - PB_EventType_Change Bug oder Feature
Was interessiert mich der komische Vergleich? Es geht darum, das bestimmte Dinge einfach
nicht mehr funktionieren, bzw. das ein alter Bug von vor Jahren wieder vorhanden ist.
Das Ihr mein durch diesen Bug ein ziemlich sinnloses Feater erhalten zu haben, muß ich jetzt
nicht verstehen, zu mal das bisher niemanden aufgefallen ist, das SetGadgetText kein Event
feuert.
nicht mehr funktionieren, bzw. das ein alter Bug von vor Jahren wieder vorhanden ist.
Das Ihr mein durch diesen Bug ein ziemlich sinnloses Feater erhalten zu haben, muß ich jetzt
nicht verstehen, zu mal das bisher niemanden aufgefallen ist, das SetGadgetText kein Event
feuert.
Zuletzt geändert von ts-soft am 27.06.2013 22:48, insgesamt 1-mal geändert.
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: 5.20 - PB_EventType_Change Bug oder Feature
lies bitte richtig: ResizeWindow()ts-soft hat geschrieben:Und ResizeGadget erzeugt ja kein #PB_Event_SizeWindow, warum behauptet Ihr sowas?
... was leider zu erwarten war...ts-soft hat geschrieben:Mir aber jetzt egal, wenn Ihr die Problematik nicht versteht![]()
Gruß und bin raus hier
a²+b²=mc²
- 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
Re: 5.20 - PB_EventType_Change Bug oder Feature
Wenn Ihr es nicht verstehen wollt oder könnt? Was kann ich dafür.Kiffi hat geschrieben: ... was leider zu erwarten war...
Das poste doch mal das Beispiel in der Hilfe zum SpinGadget, so das es wieder funktioniert.
Bin ich aber gespannt. Aber bitte ohne Events zu verschlucken. Oder sollen wir das Gadget
zugunsten des ChangeEvents wieder entfernen lassen?

Code: Alles auswählen
If OpenWindow(0, 0, 0, 140, 70, "SpinGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SpinGadget (0, 20, 20, 100, 25, 0, 1000)
SetGadgetState (0, 5) : SetGadgetText(0, "5") ; legt den Anfangswert fest
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
If EventGadget() = 0
SetGadgetText(0, Str(GetGadgetState(0)))
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: 5.20 - PB_EventType_Change Bug oder Feature
in unserer jetzigen Diskussion geht es nicht um dieses belämmertets-soft hat geschrieben:Das poste doch mal das Beispiel in der Hilfe zum SpinGadget [...]
SpinGadget, sondern um das TextGadget. Schweif bitte nicht ab.
Lieber Thomas, ich schätze Dein Fachwissen in Sachen PB sehr und habe auchts-soft hat geschrieben:Wenn Ihr es nicht verstehen wollt oder könnt? Was kann ich dafür.Kiffi hat geschrieben: ... was leider zu erwarten war...
so manches von Dir gelernt. Du bist einer der Leistungsträger hier und ohne Dich
wäre das PureBoard um viele nützliche Informationen ärmer.
Bei allem Respekt: Was mich aber aufregt ist Dein verbohrter Sturkopf. Wenn
Du Dir einmal Deine Meinung gebildet hast, bist Du auch nicht mehr mit den
besten Argumenten umzustimmen. Du bist noch nicht einmal bereit, Deinen
Diskussionspartnern auch nur einen Zentimeter entgegenzukommen.
Wenn ResizeWindow() ein Event erzeugt ist es OK
Wenn SetGadgetText() ein Event erzeugt, ist es ein Bug.
Erklär das doch mal einem logisch denkenden Mensch.
Grüße ... Kiffi
a²+b²=mc²