Announcement

Collapse
No announcement yet.

Variable Records - weiter Variablen nach case?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Variable Records - weiter Variablen nach case?

    Beim import einer C-DLL mit vielen Records stehen wir vor dem Problem, nach des case noch weitere Variablen zu deklarieren, also in etwa:

    <PRE>TBeispiel = record
    Var1 : integer;
    Var2 : PChar;
    case Integer of
    0: (CVar1: integer);
    1: (CVar2: word);
    Var3: integer;
    end;</PRE>

    Da es nun so nicht klappen kann, da ja Var3 noch zum case gehört und da für eine Fehlermeldung sorgt, stellt sich nun die Frage: "Wie grenzt man das case ab?" Mit <i>end</i> funktioniert es nicht, da bei den Case-Records das <i>end</i> sofort für den Record gilt.

    Vielen Dank schonmal im voraus

  • #2
    Hi, Stefan!<br>
    Mir fällt als Lösung für dein Problem nur ein, aus dem varianten Teil einen eigenen Typ zu machen:
    <pre>
    TDummyTyp = record
    case Integer of
    0: (CVar1: integer);
    1: (CVar2: word);
    end;

    TBeispiel = record
    Var1 : integer;
    Var2 : PChar;
    d: TDummyTyp;
    Var3: integer;
    end;
    </pre>
    Ist nicht gerade oberelegant, aber müsste funktionieren.<br>
    Ciao, Uli

    Comment


    • #3
      Genau, der variante Teil eines Records geht immer bis zum Ende des Records. Du brauchst allerdings nicht unbedingt einen eigenen Typ fuer das eingebettete Record. Das kann man auch direkt hinschreiben

      Comment


      • #4
        Ich bin Konversionsexperte. Du kannst mich auch direkt um Rat fragen. [email protected]

        Comment

        Working...
        X