Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Neue Komponente erstellen?
Diach - So 27.10.02 15:45
Titel: Neue Komponente erstellen?
Hi!
Ich hätte da mal die Frage, wie ich eine Neue Komponente erstellen kann.
Sie soll z.B. ein Panel sein, dass aber von Anfang an, eine bestimmte Grösse, Farbe und Caption hat, damit ich das nicht jedesmal neu machen muss.
Wie genau mach ich das, dass das auch funzt?
Schonmal Danke :P
Diach
aogwaba - So 27.10.02 16:14
Hi!
leite eine neue Klasse von TLabel ab:
Quelltext
1: 2: 3:
| type TmyLabel=class(TLabel) constructor create(AOwner: TComponent;x,y:integer;farbe:TColor;text:String); end; |
dann die Implementation des Konstructors:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| constructor TMyLabel.create(AOwner: TComponent;x,y:integer;farbe:TColor;text:String); begin inherited create( AOwner); width:=x; height:=y; color:=farbe; caption:=text; end; |
und so wird Instantziert:
Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.Button1Click(Sender: TObject); var mylabel:TMyLabel; begin myLabel:=TMyLabel.create(self,100,100,clGray ,'test'); myLabel.parent:=self; end; |
beim beenden des Programms myLabel.free nicht vergessen!
cu
waba
Diach - So 27.10.02 16:26
Velen Dank schonmal!
KAnn ich das auch so lösen, dass meine Neue Komponente auch in der Komponentenpalette erscheint, damit ich meine neue Komponente auch in anderen Programmen verwenden kann?
Diach
Diach - So 27.10.02 19:52
Na ich werd mich da jetzt mal einlesen. :shock:
Vielen Dank nochmal!!!
Diach
Tino - So 27.10.02 20:48
aogwaba hat folgendes geschrieben: |
ja geht auch, is aber ein bissel mehr Arbeit: |
Das ist wohl die kleinste Arbeit beim Entwickeln von Komponenten:
Quelltext
1: 2: 3: 4:
| procedure Register; begin RegisterComponents ('Beispiele', [TMyLabel]); end; |
Gruß
TINO
aogwaba - So 27.10.02 21:23
so einfach geht das, wieder was gelernt ;)
cu
waba
Diach - So 27.10.02 21:34
so einfach geht das doch nicht!
ich habe mir das tuturial jetzt durchgelesen und weiss jetzt wie ich meine neue komponente in die Kompopalette bekomme. aber ich weiss immernoch nicht so recht, wie ich es anstelle, dass z.B. mein "MyPanel" von anfag an grün ist! also ich möchte es in der kompopalette anklicken und es ab die form bringen und es sollte sofort schön grün sein. wird da leider auch nicht beschrieben.
Diach
Tino - Mo 28.10.02 00:23
Diach hat folgendes geschrieben: |
so einfach geht das doch nicht! |
Meine Antwort bezog sich auf die Frage:
Diach hat folgendes geschrieben: |
KAnn ich das auch so lösen, dass meine Neue Komponente auch in der Komponentenpalette erscheint |
Und das ist mit dem von mir gepostenten Code beantwortet. Oder erscheint die Komponente nicht in der Komponentenpalette?
Damit Deine Komponenten von anfang an in grün dargestellt wird sollte dies hier helfen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| type TMyLabel = class (tLabel) Public Constructor Create (AOwner: tComponent); End;
{...}
Constructor TMyLabel.Create (AOwner: tComponent); Begin Inherited; Color := clRed; End; |
Gruß
TINO
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!