AGB  ·  Datenschutz  ·  Impressum  







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

Neue Komponente mit 2 TEdit Komponenten

Ein Thema von Optiplex · begonnen am 28. Mai 2009 · letzter Beitrag vom 15. Jun 2009
 
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Neue Komponente mit 2 TEdit Komponenten

  Alt 28. Mai 2009, 15:57
Delphi-Quellcode:
TMyCustomControl = class(TCustomControl)
privat
  FEdit1 : TEdit;
  FEdit2 : TEdit;
  FOnEditChange : TNotifyEvent;
  ...
protected
  procedure CreateWnd; override;
  procedure EditChangeEvent(Sender : TObject);
published
  property OnEditChange : TNotifyEvent read FOnEditChange write FOnEditChange;
...

procedure TMyCustomControl.CreateWnd;
begin
  Edit1.Parent := self;
  Edit1.OnChange := EditChangeEvent;
  Edit2.Parent := self;
  Edit2.OnChange := EditChangeEvent;
  ...
end;
...
procedure TMyCustomControl.EditChangeEvent(Sender : TObject);
begin
  if Assigned(FOnEditChange) then
    FOnEditChange(Sender);
end;
Der Owner muss nil sein, weil sonst beim Speichern des Formulares in dem du deine neue Kompo verwendest deine Edits mit serialisiert werden (stehen dann in der dfm mit drin). Beim nächsten Laden wird dann ein Edit durch den Construktor erstellt und eins durch die IDE beim Lesen der dfm. Wieder speichern, sind beim nächsten mal schon 3 ....

Verpasse deiner Komponente ein eigenes Ereignis OnEditChange vom Typ TNotifyEvent. Dann so wie oben. Willst du nicht mit dem Sender arbeiten, so kannst du dir da auch eine eigene Ereignisprocedure anlegen und alles was so interessant ist mit hoch reichen.
Bsp.:
  TEditChangeTextEvent = procedure(Sender : TObject; EditText : String) of Object; Das dann anstelle TNotifyEvent, die Ereignisproceduren anpassen, Text des sendenden Edit mit hochreichen etc.
Oder was immer du oben auch brauchst.

Gruß oki
42
  Mit Zitat antworten Zitat
 


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 14:20 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