Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Package compiliert nicht (https://www.delphipraxis.net/3781-package-compiliert-nicht.html)

APP 29. Mär 2003 19:56

Hallo,
probier mal das:

Delphi-Quellcode:
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.
Aufruf:
Delphi-Quellcode:
PROCEDURE TForm1.Button1Click(Sender: TObject);
BEGIN
   CustEd1.SetWriteLabel('fer');
END;
Ist vielleicht nicht ganz das was Du willst, aber ausbaufähig...

[edit=Daniel B]Tags korrigiert. MfG Daniel B.[/edit]

@Daniel, Danke!

Leider verschwand mein
[EDIT] Constructor Create ist unnötig! [/EDIT]

APP 29. Mär 2003 20:05

Noch ein Fehler von mir: :oops:

Delphi-Quellcode:
PROCEDURE TForm1.Button1Click(Sender: TObject);
BEGIN
   CustEd1.WriteLabel :='df'; //    .SetWriteLabel ('fer'); ist Blödsinn!!!!
END;

Hansa 29. Mär 2003 20:16

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.

APP 29. Mär 2003 21:02

Naja, viel Spaß dann noch :dancer:

Trotzdem, der Vollständigkeit halber:

Delphi-Quellcode:
...
TYPE
   TCustEd = CLASS(TEdit)
   PRIVATE
      FDBfeldLabel: TLabel;
      FWriteLabel: STRING;
      PROCEDURE SetWriteLabel(CONST Value: STRING);
      { Private-Deklarationen }
...
PROCEDURE SetWriteLabel(CONST Value: STRING);
sollte in PRIVATE stehen, dann passiert Dir mein Fauxpas von oben nicht mehr.



p.s. Zur Komponentenentwicklung habe ich schon mal was gepostet:
Creating Custom Delphi Components, Part I
Creating Custom Delphi Components, Part II
Creating Custom Delphi Components, Part III
Sind meiner Meinung nach die besten Tips im Netz!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:51 Uhr.
Seite 2 von 2     12   

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