![]() |
Komponente entwickeln- Deklarationen finden
Hallo alle...
- ich habe mich mal an meine erste eigene Komponente gemacht. :thumb: - es soll ein Planer werden, der auf meine Bedürfnisse zugeschnitten ist. (TMS Planner und TVPlanIt habe ich probiert) :?: hättet ihr einen Link zu einem ausführlichem Tutorial ? Google wirft zwar diverse Ergebnisse aber nichts ausführliches (oder ich bin blind :gruebel: ) 1.Problem: - ich habe die Komponente von TPanel abgeleitet. - ich möchte die procedure Resize überschreiben. Dazu muß ich ja die Originaldeklaration wissen. - wenn ich mit Ctrl-Mausklick auf TPanel bin ----> ExtCtrls.pas nicht gefunden (ist ja im Package irgendwo) :?: wie finde ich die Deklaration heraus. PS: ich bitte um Nachsicht, bin in der Lernphase :-D |
Re: Komponente entwickeln- Deklarationen finden
|
Re: Komponente entwickeln- Deklarationen finden
...dann zeige mir bitte aus der OH von D2007 die Deklaration von Resize des TPanel.
Delphi Hilfe: Zitat:
Delphi-Quellcode:
Fehler: Deklaration von Resize unterscheidet sich von vorhergehender Deklaration
constructor Resize; override;
PS: TControl hat laut OH keine Methode Resize. |
Re: Komponente entwickeln- Deklarationen finden
In der Hilfe von Delphi 6 steht:
Zitat:
Edit: in Delphi 2006 steht übrigens das selbe drin. |
Re: Komponente entwickeln- Deklarationen finden
Trotzdem Danke für Deine Bemühungen.
...mir ging es eigentlich um das allgemeine. Wie deklariere ich richtig ? Wo finde ich die Informationen ? Das mit dem Resize war jetzt nur der Anfang. :wink: wieso liefert
Delphi-Quellcode:
dann den Fehler: Deklaration von Resize unterscheidet sich von vorhergehender Deklaration
constructor Resize; override;
...viel zu lernen ! :roll: Zitat:
|
Re: Komponente entwickeln- Deklarationen finden
Resize ist auch kein Konstruktor.
|
Re: Komponente entwickeln- Deklarationen finden
:oops: procedure oder ?
|
Re: Komponente entwickeln- Deklarationen finden
Ja.
|
Re: Komponente entwickeln- Deklarationen finden
Danke...Resize haben wir :wink:
Was bedeutet "Elemet hat kein übergeordnetes Fenster" bei canvas.TextOut
Delphi-Quellcode:
...das ist doch der canvas des Panels oder ?
constructor TDMPlaner.Create(aOwner: TComponent);
begin inherited; Height:= 200; Width:= 300; canvas.TextOut(1,1,'Test'); end; PS: Learnig by doing :wink: |
Re: Komponente entwickeln- Deklarationen finden
Von was ist TDMPlaner abgeleitet? Was ist der Owner?
|
Re: Komponente entwickeln- Deklarationen finden
von TPanel.
|
Re: Komponente entwickeln- Deklarationen finden
Und der Owner?
|
Re: Komponente entwickeln- Deklarationen finden
TComponent :gruebel:
...ich merk schon, heftig Nachholbedarf :oops: |
Re: Komponente entwickeln- Deklarationen finden
Nicht den Typ des Parameters, sondern den Typ des übergebenen Objekts.
Sorry: Ich meine natürlich den Parent. |
Re: Komponente entwickeln- Deklarationen finden
...ich glaube ich lese noch einmal die Grundlagen zu OOP. :oops:
...ich kann im Moment nicht richtig folgen :( ich habe
Delphi-Quellcode:
das Create ist doch das Create des TPanel ?
TDMPlaner = class(TPanel)
public { Public-Deklarationen } constructor Create(aOwner: TComponent); override; constructor TDMPlaner.Create(aOwner: TComponent); begin inherited; Height:= 200; Width:= 300; canvas.TextOut(1,1,'Test'); end; - denn die Höhe und die Breite werden angepaßt. - das canvas ist doch dann auch der canvas des Panels. Die Programmierhilfe zeigt ja TextOut an. :gruebel: ...bevor ich mich noch weiter blamiere, lese ich lieber noch einmal :oops: Zitat:
|
Re: Komponente entwickeln- Deklarationen finden
Der Canvas hängt aber vom Canvas des Parents ab. der Parent muss deshalb auch einen Canvas haben.
|
Re: Komponente entwickeln- Deklarationen finden
das Formular hat doch einen canvas :gruebel:
...ich hätte aber gern den Text in der Komponente sprich auf TDMPlaner. |
Re: Komponente entwickeln- Deklarationen finden
Hast du dieses als Parent zugewiesen?
|
Re: Komponente entwickeln- Deklarationen finden
Zitat:
wo/wie :gruebel: |
Re: Komponente entwickeln- Deklarationen finden
Delphi-Quellcode:
Wie erzeugst du das Objekt
<Kompo>.Parent := <Form>;
|
Re: Komponente entwickeln- Deklarationen finden
die Komponente soll eine visuelle Entwurfszeit Komponente werden.
- der Quelltext der "Komponente" läßt sich fehlerlos compilieren . - Beim einfügen der Komponente auf ein Testformular kommt der Fehler. |
Re: Komponente entwickeln- Deklarationen finden
Hi,
zuerst muss die Komponente erzeugt werden, bevor ihr ein Parent zugewiesen werden kann. Das bedeutet, im Konstruktor, wo die Komponente ja gerade erzeugt wird, gibt es noch keinen Parent, da die Zuweisung erst später erfolgen kann. Daher kannst du dort auch nicht auf Parent/Canvas/ ... zugreifen. Es wäre empfehlenswert, die Methode Paint zu überschreiben und dort Canvas zu benutzen. Mfg FAlter |
Re: Komponente entwickeln- Deklarationen finden
Zitat:
...wieder was gelernt. ich muß mich halt an alles ranarbeiten :wink: Danke... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:35 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 by Thomas Breitkreuz