Hi Harald,
Ich war bisher der Meinung, daß meine Beiträge überwiegend nützlich waren und oft neues nicht allgemein vorhandenes Wissen und Knowhow rüberbringen.
Dagegen habe ich kein Argument, und suche auch keines.
Deine Beiträge sind fachlich zu 99,99% richtig, und nie unüberlegt geschrieben.
Über deine Fachkentnisse brauchen wir nicht zu diskutieren.
Aber da ist halt die Haarspalterei.
Was nützt mir ne Aussage wie:
Das ist nicht ganz richtig.
Das AR2 ist beim FB-Aufruf DW#16#84000000 = P#DBX0.0 . Später P#0.0 in AR2 schreiben ist genau genommen keine korrekte Restauration.
Doch zum Glück wird beim Zugriff auf Multi-Instanzdaten die Bereichskennung im AR2 ignoriert und immer durch DIB (16#85..) ersetzt.
Wen interessiert das?
Das ist mir viel zu theoretisch.
Du hast ja mittlerweile selbst geschrieben, dass es doch so funktioniert.
Ich bin Praktiker.
Sag mal ehrlich: Hast du das mit dem "DW#16#84000000" auswendig gelernt, oder ausprobiert???
Ich habe einfach so gepostet.
Aber ich wusste, dass ne "null" das AR2 restauriert (ohne Multiinstanz).
Wenn man einen FB schreibt, der nicht als Multiinstanz verwendet werden soll, dann sollte man den auch als "nicht Multiinstanz-fähig" anlegen.
Netter Nebeneffekt: der MC7-Code des Bausteins wird dann kürzer.
Das ist auch richtig, aber wer hakt denn den Multiinstanzhaken schon ab???
Das will ich nicht so allgemein stehen lassen.
Das AR2 wird beim Aufruf eines anderen FB automatisch gesichert und wieder hergestellt, das AR1 aber nicht.
Wird nun in einem Baustein A, der AR1 benutzt, ein weiterer Baustein B aufgerufen, der ebenfalls das AR1 benutzt, dann erwarte ich, daß der
Baustein B das AR1 unverändert an Baustein A zurückgibt - das AR1 also ggf. sichert und restauriert.
Es kann nicht schaden, Bausteine immer so zu programmieren, daß man bei Nutzung dieser Bausteine nicht erst deren Code durchlesen muß,
um zu sehen, ob diese mit dem aufrufenden Baustein verträglich sind.
Dazu erst mal danke am den Perfektionisten.
Er ist mir zuvor gekommen.
Aber da hast ja auch schon eingelenkt.
Eines möchte ich noch mal betonen:
Ich verwende den im Beispiel genannten Code nicht.
Aber ich fand die Idee!? nicht schlecht.
Meine Bausteine sind sauber restauriert.
Da halt ichs wie Kollege 4L:
mir ist das ja sowieso alles wurscht, ich schreib FBs grundsätzlich MI-fähig...
@Perfektionist:
ähhhmmmm, nein, nicht sicher. Das AR2 braucht ja erst beim Auftreten eines Call innerhalb des OB35 weggeräumt und danach wiederhergestellt zu werden. Oder?
Ich verstehe nicht genau was du damit meinst.
Aber ich würde nie Variablen in einem Baustein über AR1 oder AR2 lesen oder beschreiben, bevor ich die AR nicht definiert habe.
Damit bist du immer aus der theoretischen Kacke raus.
Das Ganze ist recht ähnlich zu Lokalvariablen, die vor einem lesenden Zugriff beschrieben werden müssen.
Ansonsten liebe ich es mal ein oder ... Bier zu trinken, gerne auch mit dir Harald.
Bis dann.
Micha