Objekte zu Gruppen zusammenfassen?!
Hi Leute,
Ich hab folgendes Problem. Und zwar will ich mehrere Objekte (Buttons) zu einer Gruppe zusammenfassen. Ich muss sagen das ich gerade dabei bin Delphi zu lernen deswegen kenne ich leider erst einen Teil. Also ich habe versucht mit SpeedButtons weiterzukommen, was mir aber nicht geholfen hat (dachte wegen GroupIndex). Würde mich freuen wenn ihr schnell antwortet. :) |
Re: Objekte zu Gruppen zusammenfassen?!
erst mal:
:party: :party: Herzlich willkommen in der dp!!! :party: :party: (darf ich das auch ma sagen) du könntest das alles in eine GroupBox tuen... |
Re: Objekte zu Gruppen zusammenfassen?!
Danke! :-D
Daran habe ich auch schon gedacht aber geht das nicht auch noch irgendwie anders, weil das in meinem Fall schlecht geht, da die Buttons relativ weit auseinander liegen und noch Objekte dazwischen sind die nicht in die GroupBox reingehören. Also bitte noch andere Lösungsvorschläge!!!!! |
Re: Objekte zu Gruppen zusammenfassen?!
Was heisst denn zu einer Gruppe zusammenzufassen? :gruebel:
Was möchtest du denn damit erreichen? |
Re: Objekte zu Gruppen zusammenfassen?!
Na ja eigentlich möchte ich nur, dass wenn ein Button betätigt wird alle anderen unsichtbar werden. Aber ich habe keine Lust für alle 20 Buttons immer:
Delphi-Quellcode:
Button2.Visible:=false;
Button3.Visible:=false; etc... zu schreiben. Da dachte ich mir ich könnte die Buttons zu Gruppen zusammenfassen. Oder geht das noch irgendwie anders? |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Programmieren allgemein" nach "VCL-Komponenten und Controls" verschoben.
Achtet doch bitte etwas mehr auf die Beschreibung der einzelnen Sparten. Danke |
Re: Objekte zu Gruppen zusammenfassen?!
Ein kleines Komplettbeispiel:
Delphi-Quellcode:
In dem Beispiel habe ich 9 Buttons. Diesen wird allen die gleichen OnClick-Routine zugeweisen, nämlich MakeAllOtherButtonsInvisible. In dieser werden dann einfach an Hand von ButtonCount alle Buttons durchlaufen und, sofern sie nicht der Auslöser des Click-Events sind, unsichtbar gemacht.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; procedure MakeAllOtherButtonsInvisible(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; ButtonCount: integer = 9; implementation {$R *.dfm} procedure TForm1.MakeAllOtherButtonsInvisible(Sender: TObject); var a: integer; begin for a := 1 to ButtonCount do // ButtonCount gibt die Anzahl deiner Buttons an if not (TButton(FindComponent('Button'+inttostr(a))) = Sender) then TButton(FindComponent('Button'+inttostr(a))).visible := false; end; procedure TForm1.FormCreate(Sender: TObject); var a: integer; begin for a := 1 to ButtonCount do TButton(FindComponent('Button'+inttostr(a))).OnClick := MakeAllOtherButtonsInvisible; end; end. |
Re: Objekte zu Gruppen zusammenfassen?!
Andere Möglichkeit (imho schöner): Verwendung von Array(s)
Delphi-Quellcode:
Gruß
arrBtns : ARRAY[0..9] OF TButton;
BtnClick : TNotifyEvent; ... FOR i:=0 TO 9 DO BEGIN arrBtns[i] := TButton.Create(xyz); {usw.} arrBtns[i].Tag := i; arrBtns[i].OnClick := BtnClick; {usw.} END; Stephan :dance: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:14 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