Announcement

Collapse
No announcement yet.

Gibt es Zeiger auf Objekt-Eigenschaften?

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

  • Gibt es Zeiger auf Objekt-Eigenschaften?

    Hallo!
    Ich möchte einer Routine in einer anderen Unit einen Zeiger auf eine Eigenschaft übergeben, habe aber noch keine Lösung gefunden. <br>
    Hintergrund: <br>
    Unit1 enthält Form1 und Form1 hat eine Statusbar(SimpleText). Nun wird aus Form1 die Routine in Unit2 aufgerufen und ihr als Parameter die Statusbar übergeben. Die Routine kann nun die Eigenschaft SimplText ändern.<br>
    Soweit ist ja alles trivial. <br>
    Die Routine in Unit2 soll aber flexibel sein und JEDE Art von Komponente ändern können. Somit fällt auch Typumwandlung weg, da ich ja nicht weiß, was für eine Klasse übergeben wird.<br>
    Was ich erreichen will ist, daß die Routine alle Arten von Text-Eigenschaften ändern kann. Ich müßte ihr also etwas übergeben wie Routine(Label2.Caption) oder Routine(StatusBar3.Panels[2].Text). <br>
    Kann mir jemand helfen? <br>
    Bitte auch kurze Benachrichtigungs-Mail an [email protected] <br>
    <br>
    Vielen Dank!

  • #2
    <p>Hallo,<br>
    <br>
    alle Objekte leiten sich in Delphi von TObjekt ab. Alle Objekte sind im prinzip auch Zeiger...<br>
    Mit dem Operator <b>is</b> kannst Du den Object-Typ ermitteln.<br>
    <br>
    <pre>
    procedure AendereText(aObj:TObject);
    begin
    if (aObj is TPanel) then
    begin
    (aObj as TPanel).Caption:='Irgenein Text';
    end
    else if (aObj is TEdit) then
    begin
    TEdit(aObj).Text:='wieder ein Text...';
    end else ...
    ...
    end;
    </pre>
    Gruß Thomas</p&gt

    Comment


    • #3
      Hi,

      wenn du die procedure nur auf Strings begrenzen willst, dann reicht es wenn es folgendermaßen aussieht:

      procedure Routine(var Text: String);
      begin
      ...
      end;

      durch die Definition von Text als var wird statt einer Kopie von dem übergebenen String ein Pointer auf diesen übergeben. Folgendermaßen wirken sich alle Änderungen auch auf den übergebenen String aus.

      Motz

      Comment


      • #4

        Comment

        Working...
        X