[Allegro] a99.exe: formularfeld bringt plötzlichen absturz (ist evtl hervorgerufen durch alt-020?)

Bernhard Eversberg b-eversberg at gmx.de
Fr Sep 3 07:59:59 CEST 2021


> Gesendet: Donnerstag, 02. September 2021 um 23:37 Uhr
> Von: "Klaus Lehmann" <lehmann_klaus at t-online.de>
> 
> wenn man den datensatz verändern will, gelingt es einem NUR, wenn man das datenfeld in das schreibfeld holt, 
> editiert und speichert. Dann kein absturz.
> 

Das Schreibfeld und die Formularfelder gehören zur selben Elementklasse: das sog. "EDITTEXT control":
   https://docs.microsoft.com/en-us/windows/win32/menurc/edittext-control
Die Doku ist sehr umfangreich, sagt aber nichts Konkretes (soweit ich sehe) über Längenprobleme 
oder problematische Zeichencodes.
Daher nochmals diese Nachfragen:

 Gibt es wirklich NUR dann einen Absturz, wenn der Satz besonders groß ist UND ein Code 20 vorkommt? 

Wenn es so ist, sehe ich nur einen Weg aus der Malaise, und zwar Eingriffe
in die FLEXe  onforms.flx und onput.flx: (nicht in die C-Programme, d.h. a99.exe bliebe unberührt) 

onforms.flx wird aktiv, bevor das Formular erscheint. Darin könnte man daher den Code 20
im gesamten Satz ersetzen durch eine eindeutige, sonst nie vorkommende Zeichenkombination ohne 20 

onput.flx wird ausgeführt, bevor der aktuelle Satz gespeichert wird.
Darin hätte man die besagte Kombination wieder zu ersetzen durch Code 20.

Beides würde ablaufen ohne dass der Nutzer was merkt, jedoch müßte er/sie wissen,
dass Code 20 nicht vorkommen darf, sondern nur für den Zweck des Editierens durch die 
besagte Kombination ersetzt wird bzw. bei Eingabe durch diese zu ersetzen ist 
(und beim Speichern wieder rück-übersetzt wird)

Falls es sich als nötig erweist, diesen Weg zu beschreiten, könnte ich Hinweise geben zu den
Änderungen in den FLEXen.

B.E.


Mehr Informationen über die Mailingliste Allegro