Autor Beitrag
Mike19
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Di 04.09.07 18:40 
Hallo,

Ich mehrere ComboBoxen zur Laufzeit erstellt.
Wird auch alles richtig dargestellt.

Wie kann ich nun jeder Combobox[i] ein OnClick Ereignis zuweisen ?

Danke im voraus.
Andreas Schilling
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128
Erhaltene Danke: 1

WIN XP, WIN 7
Delphi 5 Ent, Delphi 2007 Pro, XE4
BeitragVerfasst: Mi 05.09.07 07:20 
Proceduren schreiben
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
private
  procedure Procedurename(sender : TObjekt);

procedure Form1.Procedurename(sender : Tobjekt)
begin
  ...
end


und dann der Combobox zuweisen

ausblenden Delphi-Quelltext
1:
Combobox1.onclick := Procedurename; // ohne sender					
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mi 05.09.07 10:14 
am einfachsten über die Objectinspektor, :wink:

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 05.09.07 10:57 
user profile iconKroko hat folgendes geschrieben:
am einfachsten über die Objectinspektor, :wink:
Wie das? Bei einer zur Laufzeit erzeugten ComboBox musst du mir mal den Objektinspektor zeigen... :lol: :wink:
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mi 05.09.07 11:02 
Wenn du nicht grad ein Array of TComboBox hast, wäre Suche in der Entwickler-Ecke FINDCOMPONENT noch ganz interessant um jede ComboBox anzusprechen.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mi 05.09.07 13:14 
user profile iconjaenicke hat folgendes geschrieben:
user profile iconKroko hat folgendes geschrieben:
am einfachsten über die Objectinspektor, :wink:
Wie das? Bei einer zur Laufzeit erzeugten ComboBox musst du mir mal den Objektinspektor zeigen... :lol: :wink:

sch..., wieder mal nicht alles gelesen, :wink:

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Mike19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Mi 05.09.07 14:40 
Danke,

es handelt sich um ein Array[1..99], und da ist die Zuweisung über OnClick bei der Erstellung schon richtig.
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mi 05.09.07 16:16 
Welche arme S.. soll sich denn durch 99 Combobox hangeln :?:

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Mike19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Do 06.09.07 17:29 
Hallo,

das mit der Zuweisung des OnClick Event klappt gut, aber bei der Verarbeitung der der zugewiesenen Procedure kommt dann der Fehler "Range check error". Ich denke, dass die Zuordnung fehlt, welche Komponente die Procedure ausgelöst hat.

hier mal der Code für das OnClick Event.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm2.SchichtClick;

begin
  begin
   Label1.Caption:=aschicht[i].Name; //Prüfen, welche ComboBox die Procedure aufgerufen hat
  end;

end;


aschicht[i] ist die zur Laufzeit erzeugte Combobox als Array[1..31].

Was mache ich Falsch ?
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Do 06.09.07 19:29 
So geht das nicht, du musst der Prozedur einen Sender übergeben, sonst weiß die Prozedur nicht, welche ComboBox sie aufgerufen hat.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm2.SchichtClick(Sender: TObject);  
begin   
  Label1.Caption := (Sender as TComboBox).Name; //Prüfen, welche ComboBox die Procedure aufgerufen hat  
end;

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Mike19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Do 06.09.07 20:00 
Danke,

so gehts.

Bis zur nächsten Frage

Micha