AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Taster-Programm ---> brauche Hilfe!!

Ein Thema von KingMax · begonnen am 28. Okt 2009 · letzter Beitrag vom 28. Okt 2009
Antwort Antwort
KingMax

Registriert seit: 30. Aug 2009
7 Beiträge
 
#1

Taster-Programm ---> brauche Hilfe!!

  Alt 28. Okt 2009, 17:39
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.
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Taster-Programm ---> brauche Hilfe!!

  Alt 28. Okt 2009, 19:01
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
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
KingMax

Registriert seit: 30. Aug 2009
7 Beiträge
 
#3

Re: Taster-Programm ---> brauche Hilfe!!

  Alt 28. Okt 2009, 20:15
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!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:05 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