Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Objekte zu Gruppen zusammenfassen?! (https://www.delphipraxis.net/33828-objekte-zu-gruppen-zusammenfassen.html)

inttostr-Help- 13. Nov 2004 11:30


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. :)

glkgereon 13. Nov 2004 11:41

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...

inttostr-Help- 13. Nov 2004 11:56

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!!!!!

jim_raynor 16. Nov 2004 05:49

Re: Objekte zu Gruppen zusammenfassen?!
 
Was heisst denn zu einer Gruppe zusammenzufassen? :gruebel:

Was möchtest du denn damit erreichen?

inttostr-Help- 16. Nov 2004 13:25

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 16. Nov 2004 14:04

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

Elite 16. Nov 2004 14:15

Re: Objekte zu Gruppen zusammenfassen?!
 
Ein kleines Komplettbeispiel:
Delphi-Quellcode:
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.
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.

Steve 16. Nov 2004 14:26

Re: Objekte zu Gruppen zusammenfassen?!
 
Andere Möglichkeit (imho schöner): Verwendung von Delphi-Referenz durchsuchenArray(s)
Delphi-Quellcode:
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;
Gruß
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