Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi feststellen ob geklickt ohne Klick-Prozedur (https://www.delphipraxis.net/35316-feststellen-ob-geklickt-ohne-klick-prozedur.html)

TheAn00bis 5. Dez 2004 14:46


feststellen ob geklickt ohne Klick-Prozedur
 
Hi,

Ich habe 40Panels und will herausfinden, welches geklickt wurde. Natürlich könnte ich für jedes die onClick-Procedur festlegen und dann in eine Variable schreiben ob es geklickt wurde, allerdings wäre das bei der Menge sehr aufwändig. Gibt es eine andere Möglichkeit festzustellen, welche geklickt wurde? (so Ereignisprozedur artig - ich weiß nicht ob der Begriff in Delphi anwendbar ist)

Dani 5. Dez 2004 14:50

Re: feststellen ob geklickt ohne Klick-Prozedur
 
Zitat:

Zitat von TheAn00bis
Natürlich könnte ich für jedes die onClick-Procedur festlegen und dann in eine Variable schreiben ob es geklickt wurde, allerdings wäre das bei der Menge sehr aufwändig.

Du kannst doch einfach allen Panel dieselbe OnClick Prozedur zuweisen :)
(Designzeit: Panels markieren -> Ereignisse -> OnClick -> Doppelklick)

TheAn00bis 5. Dez 2004 14:52

Re: feststellen ob geklickt ohne Klick-Prozedur
 
Und wie finde ich dann raus welches Panel es war das geklickt wurde?

mirage228 5. Dez 2004 14:53

Re: feststellen ob geklickt ohne Klick-Prozedur
 
Zitat:

Zitat von TheAn00bis
Und wie finde ich dann raus welches Panel es war das geklickt wurde?

OnClick hat einen Parameter "Sender", der gleich der Komponente ist, die geklickt wurde (bzw. von welcher die Aktion ausgeht). :)=

mfG
mirage228

Dani 5. Dez 2004 14:53

Re: feststellen ob geklickt ohne Klick-Prozedur
 
Im OnClick Event gibt es den Parameter Sender. Dieses Objekt hat den Event ausgelöst.

TheAn00bis 5. Dez 2004 14:57

Re: feststellen ob geklickt ohne Klick-Prozedur
 
Sorry, das ich mich vielleicht so dumm anstelle, aber wie kann ich den Namen des Senders in einer Variable speichern?

mirage228 5. Dez 2004 15:00

Re: feststellen ob geklickt ohne Klick-Prozedur
 
Zitat:

Zitat von TheAn00bis
Sorry, das ich mich vielleicht so dumm anstelle, aber wie kann ich den Namen des Senders in einer Variable speichern?

Hi,

z.B. so

Delphi-Quellcode:
var
  CompName: string;
begin
  if (Sender is TComponent) then
    CompName := TComponent(Sender).Name else
  CompName := Sender.Classname; // falls es keine Komponente ist
end;
mfG
mirage228

Neutral General 5. Dez 2004 15:01

Re: feststellen ob geklickt ohne Klick-Prozedur
 
Sender : TObject

->

Delphi-Quellcode:
var DeinObject : TObject;

procedure TPanel1.Click(Sender : TObject);
begin
  DeinObject := Sender;
end;
So würde ichs machen

Neutral General 5. Dez 2004 15:02

Re: feststellen ob geklickt ohne Klick-Prozedur
 
Zitat:

Zitat von mirage228
Hi,

z.B. so

Delphi-Quellcode:
var
  CompName: string;
begin
  if (Sender is TComponent) then
    CompName := TComponent(Sender).Name else
  CompName := Sender.Classname; // falls es keine Komponente ist
end;
mfG
mirage228

Sokann man aber nicht auf das Panel zugreifen oder ?? :gruebel:

[edit]Ups... Doppelpost :duck: [/edit]

mirage228 5. Dez 2004 15:04

Re: feststellen ob geklickt ohne Klick-Prozedur
 
Zitat:

Zitat von Neutral General
Zitat:

Zitat von mirage228
Hi,

z.B. so

Delphi-Quellcode:
var
  CompName: string;
begin
  if (Sender is TComponent) then
    CompName := TComponent(Sender).Name else
  CompName := Sender.Classname; // falls es keine Komponente ist
end;
mfG
mirage228

Sokann man aber nicht auf das Panel zugreifen oder ?? :gruebel:

Nun, er hat gefragt, wie er den Namen des Senders (= des Panels) speichern kann. Was er damit macht, weiss nicht.
Wenn man wieder das Panel haben will, muss man halt Delphi-Referenz durchsuchenFindComponent verwenden.

mfG
mirage228


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr.
Seite 1 von 2  1 2      

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