AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

procedure wird nicht aufgerufen

Ein Thema von JnZn558 · begonnen am 5. Sep 2010 · letzter Beitrag vom 6. Sep 2010
 
JnZn558

Registriert seit: 22. Aug 2004
98 Beiträge
 
#6

AW: procedure wird nicht aufgerufen

  Alt 5. Sep 2010, 15:58
so hier den ganzen komponente quellcode
ist nur so ne beispiel, deshalb kein besondere sagenhafte Name vergeben.
Delphi-Quellcode:
unit PageControl1;

interface

uses
  SysUtils, Classes, Controls, ComCtrls;

type
  TAb = class(TPersistent)
  private
    m_owndraw: Boolean;

  public
    constructor Create;

  published
    property DrawOwn: Boolean read m_owndraw write m_owndraw;

  end;

  TTest = class(TPageControl)
  private
    m_tab: TAb;

    procedure SetTab( ab: TAb );

  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

  published
    property DrawOwn: TAb read m_tab write SetTab;

  end;

procedure Register;

implementation

  procedure Register;
  begin
    RegisterComponents('Samples', [TTest]);
  end;

  { TAb }

  constructor TAb.Create;
  begin
    Self.m_owndraw := True;
  end;

{ TTest }

constructor TTest.Create(AOwner: TComponent);
begin
  inherited;
  Self.m_tab := TAb.Create;
end;

destructor TTest.Destroy;
begin
  Self.m_tab.Free;
  inherited;
end;

procedure TTest.SetTab(ab: TAb);
begin
  Self.m_tab := ab;
  Self.OwnerDraw := ab.DrawOwn;
end;

end.
was mache ich falsch?
Du hältst dich nicht an die Namenskonventionen von Borland und verwirrst dadurch die Mitleser und auch dich selbst.
Daher sollte der Code so aussehen:
Delphi-Quellcode:
private
  FDrawOwn : Boolean;
  procedure SetDrawOwn(const Value:Boolean);
public
 property DrawOwn: Boolean read FDrawOwn write SetDrawOwn;
So erkennt man leichter was zusammengehört (weil "DrawOwn" konsistent verwendet wird).

Wenn auf das Property DrawOwn niegends schreibend zugegriffen wird, dann optimiert der Kompiler die Procedure SetDrawOwn einfach weg.
Man erkennt es daran, dass die blauen Punkte nach dem Kompilieren fehlen.
ich komme von C++ da ist gewoehnlich membervariable mit einem m voranzustellen.

ich weiss nicht was F bei klassevariable bei delphi bedeutet, kann mir jemand bitte aufklaeren wofuer das steht?
Peace on the world
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz