Autor Beitrag
Nagelbrett
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Mo 01.07.02 15:37 
Hi.
Ich möchte ein kleines Spielchen schreiben, für welches ich viele SpeedButtons auf der Form benötige, die ich gern als Array anlegen würde, da ich ja sonst für jeden Button einen eigenen OnClick-Trigger festlegen müsste, obwohl es per Array viel einfacher ginge (doch nicht nur deswegen...).
Nun weiß ich jedoch nicht, wie ich es hinbekomme, die Buttons direkt schon in der IDE als Array zu erstellen...
Kann mir da jemand weiterhelfen?

Grüße
Nagelbrett
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 01.07.02 17:17 
Markiere doch einfach alle Buttons und fügst einfach allen gleichzeitig EIN OnClick-Event zu!
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 01.07.02 18:14 
Hallo,

Nagelbrett hat folgendes geschrieben:

Nun weiß ich jedoch nicht, wie ich es hinbekomme, die Buttons direkt schon in der IDE als Array zu erstellen...


wenn du dabei an ein Äquivalent zu den Objectgruppen von Visual Basic denkst, soetwas gibt es in Delphi nicht. Du kannst, wie Tino schon sagte alle markieren und dann im Objectinspektor einen Evendhandler für alle anlegen.
Wenn du Delphie ab Version 5 hast solltest du auch einmal einen Blich auf das Object tAction-List werfen. Wenn du immer alle Buttons gleich behandels (z.B. Disablest) kann dir das einige neue Möglichkeiten bieten.

Gruß
Klabautermann
Nagelbrett Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Mo 01.07.02 19:41 
Ah, ich danke :)

Hatte eigentlich doch noch eine andere Frage, aber das hat sich erledigt, ich bin schon selbst drauf gekommen

Grüße..


Zuletzt bearbeitet von Nagelbrett am Mo 01.07.02 20:11, insgesamt 1-mal bearbeitet
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 01.07.02 20:10 
Hallo,

unterscheiden kannst du so:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Button1Click(Sender: TObject);
begin
  IF (Sender=Button1) THEN
    ShowMessage('Button 1')
  ELSE IF (Sender=Button2) THEN
    ShowMessage('Button 2');
end;


Gruß
Klabautermann
Nagelbrett Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Mo 01.07.02 20:12 
ja, danke nochmal

(Sender As TSpeedButton).Eigenschaft war das, was ich suchte.. :)
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 01.07.02 20:14 
Hallo nochmal,

da habe ich etwas voreilig gelesen.
Wenn du nur eine Eugenschaft ändern willst musst du gar nicht abfragen welcher Button geclickt wurde. Du must nur Abfragen ob die Funktion von Einem Button aufgerufen wurde und dann kanst du Hart-Typecasten.

Ich glaube ein Beispiel sagt auch hier mehr als 1000 Worte:
ausblenden Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Button1Click(Sender: TObject);
begin
  IF (Sender IS tButton) THEN
    tButton(Sender).Caption := 'Ich war''s';
end;


Gruß
Klabautermann