![]() |
Hallo,
probier mal das:
Delphi-Quellcode:
Aufruf:
UNIT CustEd;
INTERFACE USES Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; TYPE TCustEd = CLASS(TEdit) PRIVATE FDBfeldLabel: TLabel; FWriteLabel: STRING; { Private-Deklarationen } PROTECTED { Protected-Deklarationen } PUBLIC PROCEDURE SetWriteLabel(CONST Value: STRING); { Public-Deklarationen } PUBLISHED PROPERTY DBfeldLabel: TLabel READ FDBfeldLabel WRITE FDBfeldLabel; // Jetzt kannst Du einen Label im OI einbinden PROPERTY WriteLabel: STRING READ FWriteLabel WRITE SetWriteLabel; { Published-Deklarationen } END; PROCEDURE Register; IMPLEMENTATION PROCEDURE TCustEd.SetWriteLabel(CONST Value: STRING); BEGIN IF Assigned(FDBfeldLabel) THEN BEGIN FDBfeldLabel.Caption := Value; FDBfeldLabel.Refresh; END; END; PROCEDURE Register; BEGIN RegisterComponents('app', [TCustEd]); END; END.
Delphi-Quellcode:
Ist vielleicht nicht ganz das was Du willst, aber ausbaufähig...
PROCEDURE TForm1.Button1Click(Sender: TObject);
BEGIN CustEd1.SetWriteLabel('fer'); END; [edit=Daniel B]Tags korrigiert. MfG Daniel B.[/edit] @Daniel, Danke! Leider verschwand mein [EDIT] Constructor Create ist unnötig! [/EDIT] |
Noch ein Fehler von mir: :oops:
Delphi-Quellcode:
PROCEDURE TForm1.Button1Click(Sender: TObject);
BEGIN CustEd1.WriteLabel :='df'; // .SetWriteLabel ('fer'); ist Blödsinn!!!! END; |
Nur keine Hektik. Geht sowieso noch nicht. Warum ? 8) Hmmm. Im OI ist jetzt wie gesagt das Feld drin, aber es müßte so laufen wie mit "Font" etc. Notfalls auf das + Klicken. Dann müßten die anderen Eigenschaften verfügbar sein. Das hab ich auch schon hingekriegt, muß anscheinend noch üben. Das Ganze ist etwas gewöhnungsbedürftig und entspricht nicht ganz der Pascal-Syntax. Aber Übung macht den Meister. Rentieren wird sich der Aufwand allemal.
|
Naja, viel Spaß dann noch :dancer:
Trotzdem, der Vollständigkeit halber:
Delphi-Quellcode:
PROCEDURE SetWriteLabel(CONST Value: STRING);
...
TYPE TCustEd = CLASS(TEdit) PRIVATE FDBfeldLabel: TLabel; FWriteLabel: STRING; PROCEDURE SetWriteLabel(CONST Value: STRING); { Private-Deklarationen } ... sollte in PRIVATE stehen, dann passiert Dir mein Fauxpas von oben nicht mehr. p.s. Zur Komponentenentwicklung habe ich schon mal was gepostet: ![]() ![]() ![]() Sind meiner Meinung nach die besten Tips im Netz! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:17 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