[Done] 5.20 - PB_EventType_Change Bug oder Feature

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
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

Re: 5.20 - PB_EventType_Change Bug oder Feature

Beitrag von ts-soft »

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!
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
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: 5.20 - PB_EventType_Change Bug oder Feature

Beitrag von Kiffi »

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

Grüße ... Kiffi
a²+b²=mc²
mirca
Beiträge: 169
Registriert: 13.11.2011 16:05

GELÖSCHT

Beitrag von mirca »

GELÖSCHT
Zuletzt geändert von mirca am 17.10.2013 12:03, insgesamt 1-mal geändert.
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

Re: 5.20 - PB_EventType_Change Bug oder Feature

Beitrag von ts-soft »

Das Beispiel zum SpinGadget ist in der Hilfe, das funktioniert jetzt aber nicht mehr :mrgreen:

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 :mrgreen:

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.
Bild
mirca
Beiträge: 169
Registriert: 13.11.2011 16:05

GELÖSCHT

Beitrag von mirca »

GELÖSCHT
Zuletzt geändert von mirca am 17.10.2013 12:04, insgesamt 1-mal geändert.
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

Re: 5.20 - PB_EventType_Change Bug oder Feature

Beitrag von ts-soft »

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.
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.
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: 5.20 - PB_EventType_Change Bug oder Feature

Beitrag von Kiffi »

ts-soft hat geschrieben:Und ResizeGadget erzeugt ja kein #PB_Event_SizeWindow, warum behauptet Ihr sowas?
lies bitte richtig: ResizeWindow()
ts-soft hat geschrieben:Mir aber jetzt egal, wenn Ihr die Problematik nicht versteht :mrgreen:
Gruß und bin raus hier
... was leider zu erwarten war...
a²+b²=mc²
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

Re: 5.20 - PB_EventType_Change Bug oder Feature

Beitrag von ts-soft »

Kiffi hat geschrieben: ... was leider zu erwarten war...
Wenn Ihr es nicht verstehen wollt oder könnt? Was kann ich dafür.

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? :freak:

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.
Bild
mirca
Beiträge: 169
Registriert: 13.11.2011 16:05

GELÖSCHT

Beitrag von mirca »

GELÖSCHT
Zuletzt geändert von mirca am 17.10.2013 12:04, insgesamt 1-mal geändert.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: 5.20 - PB_EventType_Change Bug oder Feature

Beitrag von Kiffi »

ts-soft hat geschrieben:Das poste doch mal das Beispiel in der Hilfe zum SpinGadget [...]
in unserer jetzigen Diskussion geht es nicht um dieses belämmerte
SpinGadget, sondern um das TextGadget. Schweif bitte nicht ab.
ts-soft hat geschrieben:
Kiffi hat geschrieben: ... was leider zu erwarten war...
Wenn Ihr es nicht verstehen wollt oder könnt? Was kann ich dafür.
Lieber Thomas, ich schätze Dein Fachwissen in Sachen PB sehr und habe auch
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²
Antworten