[Allegro] globales löschen eines subfeldes: wie?

Bernhard Eversberg ev at biblio.tu-bs.de
Mo Jan 27 08:01:30 CET 2014


Am 26.01.2014 12:31, schrieb Klaus Lehmann:
>
> aber: 2 sachen....
> am flex fehlt was: man sieht nicht sofort das ergebnis. man muss den
> datensatz wechslen und wieder zurückgehen (ich weiss gerade den
> "aktualisier"-befehl nicht. =nicht wichtig gerade...
>
> unschön, sehr unschön: aber das ist das !prinzipielle! verhalten von
> a99. die bildschirmanzeige hält nicht durch!

Das klingt, als scheitere sie in dem Bemühen, mitzuhalten.
Was aber dahintersteckt, ist: sie wird während des Schleifenablaufs
nicht aktualisiert. Der Fensterprozeß "denkt" dann, es passiere wohl
nichts  mehr, d.h. der Eigentümer des Fensters (also a99) habe sich
womöglich aufgehängt.
[Dies gilt nicht für die Phasen der Untätigkeit des Nutzers! Da läuft
eine Schleife, die ständig Tastatur und Maus abfragt, und das wird
vom Fensterprozess nicht als "es passiert nichts" gewertet.]

Das geschieht aus, zugegeben, undurchsichtigem Grund: Aktualisierung des
Fensters kostet Zeit. Wenn man hier also das eine Übel ausmerzen will,
bezahlt man das mit einem anderen. Zeit erscheint uns aber manchmal
doch kostbarer als Transparenz.
Es ist aber nicht so, daß wir das als zumutbar dekretieren und dem
Nutzer keine Wahl bieten würden. Nur leider ist diese Wahlmöglichkeit
zu gut versteckt. Im Text  h xkeychk  findet man sie.
Kurz: Bauen Sie in die Schleife an passender Stelle diesen Befehl ein:

keycheck
if yes jump ...

und Sie gewinnen, nicht ganz ohne Zeiteinbuße, noch hinzu die
Möglichkeit, die laufende Schleife mit Esc abzubrechen.

B.E.





Mehr Informationen über die Mailingliste Allegro