Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prism Name des Verursachers eines Events? (https://www.delphipraxis.net/63724-name-des-verursachers-eines-events.html)

gerald.schittenhelm 22. Feb 2006 08:53


Name des Verursachers eines Events?
 
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!

Luckie 22. Feb 2006 09:03

Re: Name des Verursachers eines Events?
 
Sollte doch im Parameter e drinne stehen diese Information.

smudo 22. Feb 2006 09:07

Re: Name des Verursachers eines Events?
 
Den Namen des Event-Verursachers bekommst du natürlich über Sender (wie der Name schon sagt)
Diesen musst du erstmal auf das Object casten, welches du benötigst,
also Beispielsweise TEdit(Sender).Name

René

Luckie 22. Feb 2006 09:21

Re: Name des Verursachers eines Events?
 
Äh ja. Sender natürlich. :oops:

gerald.schittenhelm 22. Feb 2006 09:47

Re: Name des Verursachers eines Events?
 
Mit TEdit(sender).Name geht das? Allright danke, werd ich probieren...
:lol:

Greetz

Elvis 22. Feb 2006 09:54

Re: Name des Verursachers eines Events?
 
Zitat:

Zitat von gerald.schittenhelm
Mit TEdit(sender).Name geht das? Allright danke, werd ich probieren...
:lol:

Geht sicher nicht, aber sender as Component, sender as Control, TextBox,... könnte gehen.
Irgendsoein TDing dürfte es wohl nicht mehr geben. ;)

gerald.schittenhelm 22. Feb 2006 10:00

Re: Name des Verursachers eines Events?
 
Wie jetzt? Ich nix verstehen, ich Anfänger...
Kannst du mir ein konkretes Codebeispiel liefern!? Bitte ? :cyclops:

Elvis 22. Feb 2006 10:12

Re: Name des Verursachers eines Events?
 
Zitat:

Zitat von gerald.schittenhelm
Wie jetzt? Ich nix verstehen, ich Anfänger...
Kannst du mir ein konkretes Codebeispiel liefern!? Bitte ? :cyclops:

Schonmal ein TIregndWas in .Net gesehen? Ein TEdit wirst du außerhalb irgendwelcher VCL.Net Libs so schnell nicht erleben. ;)

gerald.schittenhelm 22. Feb 2006 10:15

Re: Name des Verursachers eines Events?
 
Zitat:

Zitat von Elvis
Schonmal ein TIregndWas in .Net gesehen? Ein TEdit wirst du außerhalb irgendwelcher VCL.Net Libs so schnell nicht erleben. ;)

Es tut mir leid aber ich kenn mich noch immer nicht aus was du meinst.
Ein Beispiel bitte?! Wie komm ich jetzt konkret auf den Namen und wie kann ich ihn als Objekt weiterverwenden? Danke

kalmi01 22. Feb 2006 10:18

Re: Name des Verursachers eines Events?
 
Hallo gerald,

als Win32 würde es so aussehen
Delphi-Quellcode:
(sender as TTextBox).Name
wie das bei .Net aussieht, weiss ich nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:48 Uhr.
Seite 1 von 2  1 2      

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