An alle Delphi-Profis:
Wie ist es möglich, in einer Prozedur an den Namen des Event-Verursachers zu kommen?
Ich denke, ich werde diese recht unbeholfene Formulierung meiner Frage mit einem konkreten Beispiel verdeutlichen:
Delphi-Quellcode:
{...}
// In einer Schleife werden mehrere TextBox-Elemente erstellt,
// welche die Namen menge0, menge1, menge2, ... tragen.
nMenge := System.Windows.Forms.TextBox.Create;
nMenge.Location := System.Drawing.Point.Create(0, LineNumber * LineSpace);
// Hier wird der Name der TextBox festgelegt,
// den ich später wieder ermitteln möchte:
nMenge.Name := 'menge'+LineNumber.ToString;
nMenge.Size := System.Drawing.Size.Create(55, 21);
nMenge.Text := '';
nMenge.TextAlign := System.Windows.Forms.HorizontalAlignment.Center;
LinePanel.Controls.Add(nMenge);
// Jetzt wird das TextChanged-Ereignis der Box
// mit der Prozedur Menge_TextChanged verknüpft:
Include(nMenge.TextChanged, Menge_TextChanged);
{...}
Inc(LineNumber);
{...}
// Die Ereignisprozedur:
procedure fRechnung.Menge_TextChanged(sender: System.Object; e: EventArgs);
begin
TEXTBOXNAME.Text := 'Irgendein Text';
end;
Soweit so gut.
Logischerweise würde ich aber gerne statt TEXTBOXNAME den richtigen Namen der TextBox erhalten, also im konkreten Fall: menge0, menge1, menge2, ...
Dieser Name nützt mir aber als String auch nicht viel: Wie kann ich das Steuerelement ansprechen, wenn ich z.B. nur einen String mit dem Namen der TextBox habe?
Kann mir jemand bei diesen Problemen behilflich sein? Ich probier schon den ganzen Tag herum...
Vielen Dank!