Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Herausfinden auf welches Objekt geklickt wurde (https://www.delphipraxis.net/3624-herausfinden-auf-welches-objekt-geklickt-wurde.html)

Stanlay Hanks 22. Mär 2003 08:01


Herausfinden auf welches Objekt geklickt wurde
 
Hallo erstmal. Bin neu hier. Hoffentlich könnt ihr mir helfen. Ich bin fast am verzweifeln.

Also:
Ich schreibe ein Programm, das notizen verwaltet. Wenn das Programm gestartet wird, liest es aus der ersten Section einer Ini Datei zuerst die Anzahl der vorhandenen Notizen aus und übergibt sie einer Variable.
Dann wírd ein Timer enabled, der soviele dynamische (oder so :?: ) createt, wie es Notizen in der Ini gibt. Jedesmal wenn er einen Button createt hat, kriegt der die Nummer von der Section (Wenn es also die 5. Notiz ist, heißt der Button "Notiz5". Die Caption von dem Button ist die Betreffzeile in der Section. Der eigentliche text kommt gleich darunter. die INi sieht also so aus.

[Notiz1]
Betreff = Termin um ...
Nachricht= Du hast einen Termin um...

Jetzt kommt das Problem:
Ich möchte, dass wenn ich auf einen von diesen Buttons klicke, die Nachricht in einem RichEdit angezeigt wird. Aber der Button weiss ja nicht mehr wie er heißt, weil ich ihm ja den Namen von der Section gegeben habe. Normalerweise hätte ich gesagt, er soll als Namen der Section die ausgelesen werden soll, den Namen des Buttons verwenden.

Kurz und bündig: Kann ich irgendwie den Namen von einer Komponente herausfinden wenn ich auf sie klicke? (Vielleicht mit Sender oder so :oops: )

Danke schon mal für's Lesen von dem Roman
Stanlay :bounce1:

Daniel B 22. Mär 2003 08:13

Hallo und herzlich willkommen im Forum!

Ich verschiebe mal diesen Thread nach Delphi-Language, mit Datenbanken hat das nicht wirklich was zutun. ;)

Grüsse, Daniel :hi:

Chewie 22. Mär 2003 09:16

Re: Herausfinden auf welches Objekt geklickt wurde
 
Zitat:

Zitat von Stanlay Hanks
Kurz und bündig: Kann ich irgendwie den Namen von einer Komponente herausfinden wenn ich auf sie klicke? (Vielleicht mit Sender oder so :oops: )

Richtig, mit dem Sender. Da der Sender formal vom Typ TObject ist, du aber einen Button brauchst, müssen wie eine Typumwandlung (Typecast) vornehmen:

Delphi-Quellcode:
procedure ButtonClick(Sender: TObject);
begin
  if Sender is TButton then //falls Sender wirklich Button ist
  begin
    ShowMessage((Sender as TButton).Name); //zeigr den Namen des Buttons
  end;
end;
Neben [I]Name[B] kannst du natürlich auch alle anderer Eigenschaften und Methoden von TButton benutzen.

Stanlay Hanks 22. Mär 2003 11:53

Ihr seid echt genial.Genau das was ich gesucht habe Vielen Dank und Entschuldigung, dass ich im falschen Forum gepostet habe. :party: :spin: :P

Luckie 22. Mär 2003 14:04

Warum werden die Buttons in einem Timer-Ereignis erstellt? :shock: Warum keine for-Schleife?

Alternativ könnte man auch die Tag-Eigenschaft des Buttons nutzen und dann sowas machen:
Delphi-Quellcode:
case (Sender as TButton).Tag of
1:
2:
3:
end;

Stanlay Hanks 22. Mär 2003 14:39

Weil ich ehrlich gesagt, keine Ahnung habe, was eine for-Schleife ist. :cry: Bin noch ein ziemlicher Neuling, der immer alles ausprobieren muss. :oops:

Daniel B 22. Mär 2003 14:42

Hallo Stanley,
Zitat:

Zitat von Stanlay Hanks
Weil ich ehrlich gesagt, keine Ahnung habe, was eine for-Schleife ist. :cry: Bin noch ein ziemlicher Neuling, der immer alles ausprobieren muss. :oops:

Hmm, dann solltest Du mal schleunigst im Quelltext mal for schreiben und dann F1 drücken, oder Du gehst direkt in die Hilfe und suchst nach for. ;)

Ansonsten ist es eine Schleife, wo Du bstimmen kannst wie oft etwas durchlaufen werden soll. Die passiert halt so oft Du willst.

Grüsse, Daniel :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz