Wie man einer Textbox ein Click ereignis zur Laufzeit hinzufügt, ist mir bekannt. Doch da es sich um viele viele Textboxen handelt, möchte ich gerne eine eigene Komponente schreiben, wo man dies bereits über den Objectinspektor machen kann. Wie mache ich das?
Das ich dieses Erben muß ist mir klar, aber er findet angeblich nie etwas in der Basisklasse. Hier mein bisheriger Versuch
Delphi-Quellcode:
unit CTalasTextBox;
interface
uses
System.Windows.Forms, System.Drawing, System.Collections, System.ComponentModel;
type
TalasTextBox =
class(System.Windows.Forms.Textbox)
{$REGION 'Vom Designer verwalteter Code'}
strict private
/// <summary>
/// Erforderliche Designervariable.
/// </summary>
Components: System.ComponentModel.Container;
/// <summary>
/// Erforderliche Methode zur Unterstützung des Designers -
/// ändern Sie die Methode nicht mit dem Quelltext-Editor
/// </summary>
procedure InitializeComponent;
{$ENDREGION}
strict protected
/// <summary>
/// Ressourcen nach der Verwendung bereinigen
/// </summary>
procedure Dispose(Disposing: Boolean);
override;
procedure OnClick(sender: System.
Object; e: System.EventArgs);
override;
private
{ Private-Deklarationen }
public
constructor Create;
overload;
constructor Create(Container: System.ComponentModel.IContainer);
overload;
published
Property Click : OnClick;
end;
implementation
uses
System.Globalization;
{$AUTOBOX ON}
{$REGION 'Vom Windows Form-Designer erzeugter Code'}
/// <summary>
/// Erforderliche Methode zur Unterstützung des Designers -
/// ändern Sie die Methode nicht mit dem Quelltext-Editor
/// </summary>
procedure TalasTextBox.InitializeComponent;
begin
Self.Components := System.ComponentModel.Container.Create;
end;
{$ENDREGION}
constructor TalasTextBox.Create;
begin
inherited Create;
//
// Erforderlich für die Unterstützung des Windows Forms-Designers
//
InitializeComponent;
//
// TODO: Fügen Sie nach dem Aufruf von InitializeComponent Konstruktorcode hinzu.
//
end;
constructor TalasTextBox.Create(Container: System.ComponentModel.IContainer);
begin
inherited Create;
//
// Erforderlich für die Unterstützung des Windows Forms-Designers
//
Container.Add(Self);
InitializeComponent;
//
// TODO: Fügen Sie nach dem Aufruf von InitializeComponent Konstruktorcode hinzu.
//
end;
procedure TalasTextBox.Dispose(Disposing: Boolean);
begin
if Disposing
then
begin
if Components <>
nil then
Components.Dispose();
end;
inherited Dispose(Disposing);
end;
end.