Erstmal vielen Dank für Eure Beteiligung. Leider ist mir folgendes noch nicht klar:
1. Der Designer hat mir bei einer anderen Eigenschaft den Getter und Setter (für FDiologTextSize) in den Public-Bereich geschrieben, deshalb habe ich es - entgegen meiner Überzeugung - auch so gemacht. So sieht meine komplette Typ-Deklaration aus:
Delphi-Quellcode:
type
StringEdit = class(System.Windows.Forms.TextBox)
{$REGION 'Vom Designer verwalteter Code'}
strict private
/// <summary>
/// Erforderliche Designervariable.
/// </summary>
components: System.ComponentModel.IContainer;
Timer1: System.Windows.Forms.Timer;
/// <summary>
/// Erforderliche Methode zur Unterstützung des Designers -
/// ändern Sie die Methode nicht mit dem Quelltext-Editor
/// </summary>
procedure InitializeComponent;
procedure StringEdit_MouseEnter(sender: System.Object; e: System.EventArgs);
procedure StringEdit_Enter(sender: System.Object; e: System.EventArgs);
{$ENDREGION}
strict protected
/// <summary>
/// Ressourcen nach der Verwendung bereinigen
/// </summary>
procedure Dispose(Disposing: Boolean); override;
private
{ Private-Deklarationen }
FHintDelay : integer;
FDialogTextSize: System.Double;
FDefText : string;
FDialogVisible : boolean;
function getFDefText: System.string;
procedure setFDefText(Value: System.string);
public
constructor Create;
function get_DialogTextSize: System.Double;
procedure set_DialogTextSize(Value: System.Double);
published
property HintDelay : integer read FHintDelay write FHintDelay default 1000;
property DialogTextSize: System.Double read get_DialogTextSize write set_DialogTextSize;
[DefaultValue('DefText')]
property DefText : string read getFDefText write setFDefText;
property DialogVisible : boolean
read FDialogVisible write FDialogVisible default true;
end;
2. Das mit dem Instanziieren ist mir an dieser Stelle nicht so ganz klar. Es handelt sich hier um die
Unit uStringEdit, in der die (künftige) selbstentwickelte Komponente StringEdit enthalten ist. In dem Programm, in dem ich die Komponente verwende sieht es dann so aus:
Delphi-Quellcode:
type
aTextBox = StringEdit;
var
MyTextBox : aTextBox;
....
constructor MyForm.Create;
begin
MyTextBox := aTextBox.Create;
....
end;
Muss ich denn hier noch einmal eine Instanz erzeugen? Ich kann ja z.B. in "StringEdit.StringEdit_Enter" auf die Eigenschalften von StringEdit zugreifen. Allerdings gelingt es nicht aus einer Methode, die zu einem zur Laufzeit erzeugten Dialog gehört.
Wie Ihr seht, bin ich ziemlich ratlos. Vielleicht lichtet sich mit Eurer Hilfe der Schleier ein wenig?!
Gruß Jürgen.