Lade...
 

OboxEdit

OboxEdit

Ohne Fenster:

Stack
Stack Position Beschreibung
Stack(In) Top ]
  Top-1 Objekt
  Top-2 [
Stack(Out)   -

oder

Stack
Stack Position Beschreibung
Stack(In) Top Objekt
Stack(Out) Top -

Das übergebene Objekt wird in der ObjectList/ObjectListView selektiert und in der entsprechenden Zeile zum Editieren angeboten. Hierfür wird für jede Spalte der Objekt-Darstellung in der ObjectList/ObjectListView (an der Stelle, an der das Objekt in der ObjectList/ObjectListView dargestellt wird) je ein Eingabefeld geöffnet. Durch Parameter in der zugehörigen SetFormat-Anweisung wird bestimmt, ob und in welcher Form (Combo- oder einfaches Editierfeld) der jeweilige Spalteneintrag bearbeitet wird.

219449 Falls eine Spalte mehrere Formate enthält (mehrzeilig oder Bitmap+Text), dann wird immer das letzte Format (Reihenfolge aus SetFormat) der Spalte editiert, das kein Bitmap enthält und einen Wert ≠ INVALID zurückgegeben hat.
Dieser Mechanismus beachtet nicht das NO_DRAIN-Flag. Falls das ausgewählte Format NO_DRAIN ist, dann wird für diese Spalte kein Eingabefeld generiert (auch wenn sie andere Formate enthält, die nicht NO_DRAIN sind).

Mit den Tasten "Pfeil nach oben"/"Pfeil nach unten" wird das vorherige bzw. das nächste Objekt zum Editieren geladen.

Stack
Stack Position Beschreibung
Stack(In) Top ]  
  Top-1 [
Stack(Out) Top -

Wie oben, hier wird allerdings das Objekt aus der selektierten (bzw. ersten) Zeile zum Editieren angeboten.

Über das Flag OBOXEDIT_OWNER_DRAIN kann bestimmt werden, ob das automatische Zurückschreiben der Änderungen in die ObjectList/ObjectListView (durch ein implizites DrainWindow) unterdrückt werden soll. Auch mit diesem Flag wird die Message OBOX_ENTRY_CHANGED-Message an die ObjectList/ObjectListView gesendet, die ansonsten gleich nach dem Drainen versendet wird.

 

Mit einem Fenster:

Stack
Stack Position Beschreibung
Stack(In) Top ]
  Top-1 Bezeichner eines Fensters
  Top-2 Objekt
  Top-3 [
Stack(Out)   -

oder

Stack
Stack Position Beschreibung
Stack(In) Top ]
  Top-1 Objekt
  Top-2 Bezeichner eines Fensters
  Top-3 [
Stack(Out)   -

oder

Stack
Stack Position Beschreibung
Stack(In) Top ]
  Top-1 Bezeichner eines Fensters
  Top-2 [
Stack(Out)   -

oder

Stack
Stack Position Beschreibung
Stack(In) Top Bezeichner eines Fensters
Stack(Out) Top -

Das übergebene Objekt wird im angegebenen Fenster zum Editieren angeboten. Das Fenster wird  über der Zeile geöffnet, die das Objekt in der ObjectList/ObjectListView darstellt. Durch Parameter in der zugehörigen SetFormat-Anweisung wird bestimmt, ob und in welcher Form (Combo- oder einfaches Editierfeld) Editierfelder auf dem Fenster automatisch generiert werden.

In das Fenster wird das nächste (bzw. das vorherige) Objekt aus der Liste zum Editieren geladen, wenn in Eingabefeldern die Tasten "Pfeil nach oben"/"Pfeil nach unten" betätigt werden (nur wenn die Eingabefelder selbst die Tasten nicht bearbeiten).

Das Fenster bekommt vom System folgende Messages:
OBOX_PRE_ENTRY_DISPLAY - vor impliziert ausgeführtem FillWindow-Befehl
OBOX_POST_ENTRY_DISPLAY (auch OBOX_ENTRY_DISPLAYED geschrieben) - nach impliziert ausgeführtem FillWindow-Befehl

Wenn ein Feld editiert wurde wird zunächst, wenn das Flag OBOXEDIT_OWNER_DRAIN fehlt, ein DrainWindow-Befehl an die  ObjectList/ObjectListView gesendet. Anschließend folgt immer (auch mit dem Flag) eine OBOX_ENTRY_CHANGED-Message an die ObjectList/ObjectListView.

Mit der Kombination OBOXEDIT_OWNER_DRAIN-Flag/OBOX_ENTRY_CHANGED-Message kann also selbstständig das Verhalten des OboxEdit-Fensters in InstantView® programmiert werden. Wird das Fenster einfach in das der Message übergebene Objekt gedraint, verhält es sich, wie bei automatischem drainen.
Alternativ kann dieses Drainen aber an eine Bedingung geknüpft werden, zusätzlich eine Message-Box aufgehen, weitere Daten (innerhalb der selben Datenbank-Transaktion) geändert werden usw.

Manipulationen an der Liste selber (z.B. Löschen eines Objektes oder Sortieren der Liste) innerhalb einer durch OboxEdit ausgelösten Message  können jedoch nicht vorgenommen werden. Solche Befehle führen zu einer Fehlermeldung. (Die Liste ist so zu sagen während des OboxEdits geschützt.)

Hinweis:
Die Rücknahme einer Änderung kann per STRG+Z erfolgen solange man sich noch im Bearbeitungsmodus der Zeile befindet.

 

OboxEdit gehört zur Befehlsfamilie der Obox...-Befehle.