![]() |
HangMan Button Interface
Hi ich hab mir gedacht ob es evtl möglcih ist ne Klasse zu schreiben, die einem für jeden Buchstaben nen Button erstellt, dessen Erreignisse sie dann auch verwalten kann...
Hatte mir überlegt, es wär evtl am einfachsten ne Grouptbox als überklasse zu benutzen, nur komme ich jetzt nciht weiter |
Re: HangMan Button Interface
Schildere mal deine genauen Probleme, mit "Ich komme nicht weiter" kommt hier niemand weiter :wink: :gruebel:
|
Re: HangMan Button Interface
ich brauch nen kleienn denk anstoß wie ich die buttons create und nachher trotzdem verwalten kann bzw wo ich das tun muss. also eigenltich ist mir nicht klar wie ich die ganzen buttons erstellen kann ohne tausende von globalen variablen als folge zu haben, ich steh einfach aufm schlauch...
|
Re: HangMan Button Interface
Zitat:
Delphi-Quellcode:
FindControl()
TForm.Controls[] |
Re: HangMan Button Interface
Also ich würde die Buttons in einem Array verwalten. Du könntest zum Beispiel eine Variable
Delphi-Quellcode:
anlegen. Das müsste eigentlich funktionieren. Und sonst schau mal hier im Forum nach TList oder so :gruebel:
Buttons: array['a'..'z'] of TButton;
|
Re: HangMan Button Interface
kann ich danne vtl auch alle onklick ereignisse der buttons in einer procedure verwalten?
|
Re: HangMan Button Interface
ok soweit so gut, die buttons hab ich erfolgreich erstellt, nun aber mein nächstes problem, ich will ncith für jeden der buttons ne OnKLick schreiben, kann man das irgendwie in einer Procedure bewältigen?
hier noch mal mein Code:
Delphi-Quellcode:
[...]
type
THangManWordInterface = class private public Buttons: array[0..25] of TButton; constructor Create(top,left:integer; owner: TComponent); end;
Delphi-Quellcode:
constructor THangManWordInterface.Create(top,left: integer; owner: TComponent);
var i:integer; abc: string; begin abc:='ABCDEFGHIJKLMNOPQRSTUVWXYZ'; for i:=0 to 25 do begin Buttons[i]:=TButton.Create(owner); Buttons[i].Parent:=TWincontrol(owner); Buttons[i].left:=i*20+left; Buttons[i].Top:=top; Buttons[i].Width:=20; Buttons[i].Height:=20; Buttons[i].Caption:=abc[i+1]; end; end; |
Re: HangMan Button Interface
Schreib einfach eine Prozedur, die die fleichen Parameter hat, wie die Normale ButtonClick Prozedur.
Dann kannst du diese Prozedur jedem Button zuweisen. Über den Sender Parameter weißt du, welcher Button gedrückt wurde. |
Re: HangMan Button Interface
Bin schon lange am rumprobieren damit, aber ich kriegs nicht geschissen, das es funktioniert... der code ist ja da oben... in der OnKlick der gesammten buttons soll dann die cpation ausgelsen werden, aber er übergibt mir nichts.
|
Re: HangMan Button Interface
Hallo,
zumindest so funktioniert es:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } procedure HangKlick(Sender: TObject); public { Public declarations } end; type THangManWordInterface = class private public Buttons: array[0..25] of TButton; constructor Create(top,left:integer; owner: TComponent); end; var Form1: TForm1; implementation {$R *.dfm} constructor THangManWordInterface.Create(top,left: integer; owner: TComponent); var i:integer; abc: string; begin abc:='ABCDEFGHIJKLMNOPQRSTUVWXYZ'; for i:=0 to 25 do begin Buttons[i]:=TButton.Create(owner); Buttons[i].Parent:=TWincontrol(owner); Buttons[i].left:=i*20+left; Buttons[i].Top:=top; Buttons[i].Width:=20; Buttons[i].Height:=20; Buttons[i].Caption:=abc[i+1]; end; end; procedure TForm1.Button1Click(Sender: TObject); var HangMan: THangManWordInterface; i : integer; begin HangMan:= THangManWordInterface.Create(10, 10, self); for i:= low(HangMan.Buttons) to high(HangMan.Buttons) do HangMan.Buttons[i].OnClick:= HangKlick; end; procedure TForm1.HangKlick(Sender: TObject); begin if Sender is TButton then Caption:= TButton(Sender).Caption end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz