AGB  ·  Datenschutz  ·  Impressum  







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

Visuelle Komponente entwickeln

Ein Thema von guidok · begonnen am 30. Nov 2007 · letzter Beitrag vom 30. Nov 2007
Antwort Antwort
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#1

Visuelle Komponente entwickeln

  Alt 30. Nov 2007, 12:18
Hallo, ich bins mal wieder...

Ich habe mir eine Klasse von TPanel abgeleitet, im Constructor ein paar Eingenschaften angepasst und noch ein paar zusätzliche Sachen eingebaut. Soweit so gut.

Da ich mit Turbo Explorer unterwegs gewesen bin habe ich mir auch keine Gedanken zu Komponenten gemacht, weil ich die Klasse sowieso aus dem Quelltext erstellt habe und das funktionierte auch mit allen gewünschten Funktionen.

Jetzt habe ich Turbo Professional und möchte natürlich daraus eine Komponente entwickeln, um die Programmoberfläche auch schnell und einfach grafisch zur Entwurfszeit erstellen zu können und da fangen die Probleme auch schon an.

Wie ich ein Package erstelle und die Komponente installiere, habe ich jetzt schon hingekriegt. Der Einfachheit halber habe ich auch erst mal nur eine Klasse von TPanel abgeleitet und möchte einfach, dass der Rahmen optisch meinen Gegebenheiten entspricht. Ich habe das, wie bisher, in den Constructor geschrieben, aber weder zur Entwurfs- noch zur Laufzeit ändert sich etwas im Vergleich zum eigentlichen TPanel. Jetzt steh ich grad auf dem Schlauch. Wie geht das sinnvoll??

Delphi-Quellcode:
type
  TbrosePanel = class(TPanel)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); Reintroduce;
  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation

uses Forms;

procedure Register;
begin
  RegisterComponents('Brose', [TbrosePanel]);
end;

constructor TbrosePanel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  BevelInner := bvNone;
  BevelKind := bkFlat;
  BevelOuter := bvNone;
  BorderStyle := bsNone;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Visuelle Komponente entwickeln

  Alt 30. Nov 2007, 12:28
Nebenbei:
Zitat von guidok:
constructor Create(AOwner: TComponent); Reintroduce;
Ändere das reintroduce mal bitte in override
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Visuelle Komponente entwickeln

  Alt 30. Nov 2007, 13:06
Zitat von Deep-Sea:
Nebenbei:
Wieso nebenbei? Das ist der Fehlergrund! Die VCL ruft den virtuellen Constructor auf und er führt einen neuen ein. Somit wird der von TPanel vererbte durchlaufen aber nicht sein neu eingeführter (was ja verständlich ist) und somit werden seine Einstellungen nicht übernommen.
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Visuelle Komponente entwickeln

  Alt 30. Nov 2007, 13:09
Zitat von Muetze1:
Zitat von Deep-Sea:
Nebenbei:
Wieso nebenbei?
Lass mir doch etwas Sarkasmus
(reintroduce ist etwas, was man soo selten nutzen kann, wie kommt man also da drauf, das so zu machen?)
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#5

Re: Visuelle Komponente entwickeln

  Alt 30. Nov 2007, 16:19
Ok, bei override, virtual, reintroduce habe ich noch so meine Probleme...

Bei meiner Klassenversion (nicht Komponente) lautete der Konstruktor noch anders, weil ich mit dem Erzeugen der Instanz auch gleich den Parent angeben wollte. Hat so auch funktioniert.
constructor Create(AOwner: TComponent, AParent: TControl); Reintroduce; Da hatte ich vorher "reintroduce" weggelassen und bekam dafür zumindest eine Warnung.

Vielleicht kann man mir das mal mit verständlichen Worten erklären, wäre schön?

Ich bin mit meiner Komponente nun auch auf gutem Wege, so am Rande...
  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 11:45 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