AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi neue basiscomponente von Tcustomcontrol ableiten
Thema durchsuchen
Ansicht
Themen-Optionen

neue basiscomponente von Tcustomcontrol ableiten

Ein Thema von kiar · begonnen am 27. Sep 2003 · letzter Beitrag vom 27. Sep 2003
Antwort Antwort
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#1

neue basiscomponente von Tcustomcontrol ableiten

  Alt 27. Sep 2003, 16:41
ich leite eine neue basiscomponente von TCustomcontrol ab. in dieser will ich nur einen container bereitstellen auf dem ich die grafischen symbole zeichnen will. das die paint methode virtuell ist, muß ich doch in der basiscompo diese paintmethode doch nicht überschreiben, wenn ich diese nicht brauche, sondern nur in den nachfahren der basiscomponente, oder ??
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: neue basiscomponente von Tcustomcontrol ableiten

  Alt 27. Sep 2003, 16:47
Moin Kiar,

ausser bei abstrakten Methoden (soweit vorhanden), braucht man sich nicht um die Methoden des Vorfahren zu kümmern, wenn sie so wie sie sind in der abgeleiteten Klasse verwendet werden können.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#3

Re: neue basiscomponente von Tcustomcontrol ableiten

  Alt 27. Sep 2003, 16:53
das kann ich nicht ganz verstehen . in der paintmethode von customcontrol steht ja nichts drin?
Delphi-Quellcode:

basiscopo = class(Tcustomcontrol)

 private
   hbm: TBitmap;
 public
   constructor create(AOwner TComponent); override;
   destructor destroy; override;
end;

nachfahre = class( TBasiscompo)
 
 public
   procedure paint; override; // muss diese nicht schon in der vorherigen deklaration aufgerufen werden ?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: neue basiscomponente von Tcustomcontrol ableiten

  Alt 27. Sep 2003, 17:24
Moin kiar,

nein, dadurch, dass TBasisCompo von TCustomControl abgeleitet wird, und diese die Methode Paint enthält (mindestens als proteced deklariert), enthält TBasisCompo die Methode auch. Durch das überschreiben hat man nur die Möglichkeit die Arbeitsweise einer geerbten Methode (virtual/dynamic) zu verändern, man muss es nur nicht.
Da in diesem speziellen Falle die Methode unter protected deklariert ist, kann auf diese allerdings nicht in einer anderen Unit darauf zugreifen, wenn man eine Instanz von TBasisCompo bildet.

Schau Dir dazu auch mal den Abschnitt über private, protected und public in der Hilfe an.

Beispiel:
In der Unit1 wird TBasisCompo deklariert, in Unit2 TNachfahr (hier wird Paint veröffentlicht), und in Unit3 wird eine Instanz von TNachfahr gebildet

Delphi-Quellcode:
// Unit1

type
  TBasisCompo = class(TCustomControl)
  end;

// Unit2

uses ..., unit1;

type
  TNachfahr = class(TBasisCompo)
  public
    procedure Paint; override;
  end;

implementation

procedure TNachfahr.Paint;
begin
  //...
end;

// Unit3

implementation
uses unit2;

procedure TForm3.Button1Click(Sender: TObject);

var
  nf : TNachfahr;

begin
  nf := TNachfahr.Create(self);
  nf.Paint;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#5

Re: neue basiscomponente von Tcustomcontrol ableiten

  Alt 27. Sep 2003, 17:41
ich denke iich habe es begriffen

danke chris
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz