Announcement

Collapse
No announcement yet.

Meine erste Komponente

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

  • Meine erste Komponente

    Hallo.<br><br>
    Ich möchte ein abgeleitetes TPanel erstellen und bekomme in der Zeile <br><br>

    property FussballerName: string read GetFName write SetFName; <br><br>

    den Fehler "incompatible types". Kann man keine Strings schreiben? Hier der Komponentencode:<br><br>

    type<br>
    TFussball = class(TPanel)<br><br>

    private<br>
    FName:string;<br>
    FAlter:integer;<br>
    FStaerke:integer;<br>
    FVerletzungsgrad:integer;<br>
    FKrank:integer;<br><br>

    public<br><br>

    function GetFName: string;<br>
    function SetFName(Value:string): string;<br><br>

    published<br><br>

    property FussballerName: string read GetFName write SetFName;<br>
    end;
    <br><br>
    procedure Register;
    <br><br>
    implementation
    <br><br>
    function TFussball.GetFName:string;<br>
    begin<br>
    result:=FName;<br>
    end;
    <br><br>
    function TFussball.SetFName(Value:string):string;<br>
    begin<br>
    FName:=Value;<br>
    end;
    <br><br>
    procedure Register;<br>
    begin<br>
    RegisterComponents('Additional', [Fussball]);<br>
    end;
    <br><br><br>
    ich weiss, das diese Art umständich ist... könnte direkt mit write und read die variablen schreiben.... wollte jedoch später noch einige andere Anweisungen zwecks Nachbearbeitung hinzufügen. <br><br>

    Schöne Grüße aus dem Odenwald,<br><br>

    Alexander Lohnes

  • #2
    <B>Herzlichen Glückwunsch !<BR></B>
    <BR>
    function SetFName(Value:string): string;<BR>
    ist eine Procedure.<BR>
    SetFName und GetFName sollten im privaten Abschnitt liegen.<BR>
    Mfg<BR>
    Sigber

    Comment


    • #3
      Ich habe hier noch einen prima Tip für neue Komponenten(und Klassen-)programmierer:
      Einfach die Eigenschaft in der Art

      <PRE>
      property Dingsbums : string read GetDingsbums write SetDingsbums;
      </PRE>

      tippen und dann Strg+Shift+C drücken. Spart ne Menge Tipparbeit und die Eigenschaftsprozeduren/-funktionen erscheinen an der korrekten Stelle (klappt ab Delphi 5)

      Comment


      • #4
        Es reicht sogar "property Dingsbums : string;". Delphi erzeugt dann eine Variable und eine Set-Methode. Wenn man das "F" vorne an der Variablen gegen "Get" austauscht und nochmal Strg+Shift+C drückt, hat man Get- und Set-Methode. Da haben die Borländer scheinbar ein bisschen Erkennungslogik reingesteckt. :-)

        <br>Ciao, Uli

        Comment

        Working...
        X