![]() |
Taster-Programm ---> brauche Hilfe!!
Guten Tag,
ich muss ein Programm programmieren, indem per Button-Klick jedemenge BitButtons auf der Form in zufälliger Position erscheinen. Jeder Dieser Button hat die Caption "Aus" und sollte, sobald man mit der maus draufklickt, auf "an" springen. Lässt man die Maustaste wieder los, wird es wieder "aus". Also nur "an" wenn die maus auf dem Button gedrückt ist. Dazu benutze ich 3 Units, deren Quelltext unten steht. Ich bin jetzt soweit, dass die Buttons zufällig erstellt werden, jedoch nicht auf "Aus" wechseln, wenn ich darauf klicke. Ich vermute dass ich einen Button implementieren muss, der dafür sorgt dass dem so ist. Allerdings weis ich weder wo noch wie ich diesen einbinden soll. MFG Max
Delphi-Quellcode:
unit Panel3;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,mPanelDemo, StdCtrls, Buttons, mTaster1; type TForm1 = class(TForm) BtGruenPanel: TButton; procedure BtGruenPanelClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; type TBuntTaster = Class (TBuntPanel) protected procedure MouseDown (Button: TMouseButton; Shift: TShiftState; X,Y: Integer);override; procedure MouseUp (Button: TMouseButton; Shift: TShiftState; X,Y: Integer);override; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BtGruenPanelClick(Sender: TObject); var GruenPanel: TGruenPanel;BuntPanel:TBuntpanel; begin GruenPanel:=TGruenPanel.Create(Form1); GruenPanel.Parent:=Form1; GruenPanel.Left:=200; GruenPanel.Height:=50; BuntPanel:=TBuntPanel.Create(Form1); BuntPanel.Parent:=Form1; BuntPanel.BringToFront; end; procedure TBuntTaster.MouseDown (Button: TMouseButton; Shift: TShiftState; X,Y: Integer); begin BevelInner := bvLowered; Caption := 'an'; inherited MouseDown (Button, Shift, X, Y); end; procedure TBuntTaster.MouseUp (Button: TMouseButton; Shift: TShiftState; X,Y: Integer); begin BevelInner := bvRaised; Caption := 'aus'; inherited MouseUp (Button, Shift, X, Y); end; end.
Delphi-Quellcode:
unit mTaster1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ExtCtrls, Buttons; implementation end.
Delphi-Quellcode:
unit mPanelDemo;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ExtCtrls, Buttons; type TGruenPanel = class (TBitBtn) public constructor Create (AOwner:TComponent);virtual; end; type TBuntPanel = class (TBitBtn) public constructor Create (AOwner:TComponent);virtual; end; implementation constructor TGruenPanel.Create (AOwner:TComponent); begin inherited Create (AOwner); Color:=clGreen; BorderWidth:=1; BevelOuter:=bvNone; BevelInner:=bvRaised; BevelWidth:=4; end; constructor TBuntPanel.Create (AOwner:TComponent); begin inherited Create (AOwner); randomize; Color:=RGB(Random(256), Random(256), Random(256)); BorderWidth:=1; BevelOuter:=bvNone; BevelInner:=bvRaised; BevelWidth:=4; left:=random(200); Width:=random(300); height:=random (200); top:=random(450); Caption := 'aus'; end; end. |
Re: Taster-Programm ---> brauche Hilfe!!
Oh man, das ist ja...wie beschreibt man das... also irgendwie blick ich nicht durch. Hast du den Code selber geschrieben oder ist der von irgendeinem (Achtung: Wortwitz) Leerkörper?
Die Beizeichnungen sind auch furchtbar gewählt. Wie kann man einer von einem BitBtn Abgeleiteten Komponente den Namen "Gruenpanel" geben? Da denk ich, die Komponente wäre von einem Panel abgeleitet... Hm also wenn ich deinen Code richtig verstanden habe, müsste er weitestgehen stimmen, allerdings erstellt du einfach nie einen TBuntTaster, sondern nur die komischen Gruen- und BuntPanels. Die Möglichkeit, die Caption beim Mousedown und Mouseup zu ändern hat aber nur der TBuntTaster, welchen du gar nicht verwendest. Ich würde also den Code von BtGruenPanelClick ändern:
Delphi-Quellcode:
procedure TForm1.BtGruenPanelClick(Sender: TObject);
var GruenPanel: TGruenPanel; MyBuntTaster: TBuntTaster; begin GruenPanel:=TGruenPanel.Create(Form1); GruenPanel.Parent:=Form1; GruenPanel.Left:=200; GruenPanel.Height:=50; MyBuntTaster:=TBuntTaster.Create(Form1); MyBuntTaster.Parent:=Form1; MyBuntTaster.BringToFront; end; Grüße |
Re: Taster-Programm ---> brauche Hilfe!!
ja vielen vielen dank erstnal für die schnelle antwort! Ich probier es gleich ma aus. Das mit den GruenPanels liegt ganz einfach daran, dass das vorherige programm per knopfdruck ein grünes panel erstellen sollte, und jede menge zufallspanel (BuntPanel). Dieses Programm habe ich als Grundlage genommen, und um fehler zu vermeiden die Namen beibehalten. Also nochmals danke, ich werde es gleich mal versuchen!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 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