AGB  ·  Datenschutz  ·  Impressum  







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

button mit wiederolfunktion

Ein Thema von Noob · begonnen am 26. Mär 2013 · letzter Beitrag vom 26. Mär 2013
 
Noob

Registriert seit: 26. Mär 2013
3 Beiträge
 
#1

button mit wiederolfunktion

  Alt 26. Mär 2013, 18:31
Delphi-Version: XE2
Hallo, habe folgendes Problem...
also ich bin delphi Anfänger (am Namen zu lesen^^) also, ich Habs gerade geschafft, meine erste Komponente nach Tutorial und selberbastelei in delphi Xe3 starter wenigstens in
die Komponentenleiste zum ziehen aufs formular zu bringen. aber der Wiederholbutton Funktioniert nicht so wie er soll sondern nur wie ein normaler Button von dem er abstammt.
Es soll ein Button sein, der die gewünschte Aktion beim "gedrückt halten" mit timer wiederholen soll.
Kann mir jemand sagen was hier falsch läuft ?

hier mal der Code :

unit Wiederholbutton;


interface

uses
System.SysUtils, System.Classes, Vcl.Controls, Vcl.StdCtrls, extctrls;

type
TWiederholbutton = class(TButton)

private
FInitRepeatPause : Cardinal;
FRepeatPause : Cardinal;
FAllowRepeat : Boolean;


{ Private-Deklarationen }
protected
FRepeatTimer: TTimer;
{ Protected-Deklarationen }
public
procedure MouseDown(Button : TMouseButton; Shift : TShiftState; X, Y : Integer);
procedure TimerExpired(Sender: TObject);
procedure MouseUp(Button : TMouseButton; Shift : TShiftState; X, Y : Integer);
{ Public-Deklarationen }
published
Property InitRepeatPause : Cardinal read FInitRepeatPause write FInitRepeatPause;
Property RepeatPause : Cardinal read FRepeatPause write FRepeatPause;
Property AllowRepeat : Boolean read FAllowRepeat write FAllowRepeat;
{ Published-Deklarationen }
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Standard', [TWiederholbutton]);
end;



procedure TWiederholbutton.TimerExpired(Sender: TObject);
begin
FRepeatTimer.Interval := FRepeatPause;
Click;
end;

procedure TWiederholbutton.MouseDown(Button : TMouseButton; Shift : TShiftState; X, Y : Integer);
begin
inherited MouseDown(Button, Shift, X, Y);
If FAllowRepeat = False then Exit;
if
FRepeatTimer = nil
then
FRepeatTimer := TTimer.Create(Self);

FRepeatTimer.OnTimer := TimerExpired;
FRepeatTimer.Interval := fInitRepeatPause;
FRepeatTimer.Enabled := True;
end;


procedure TWiederholbutton.MouseUp(Button : TMouseButton; Shift : TShiftState; X, Y : Integer);
begin
inherited MouseUp(Button, Shift, X, Y);
If FAllowRepeat = False then Exit;
if FRepeatTimer <> nil
then FRepeatTimer.Enabled := false;
end;



end

Geändert von Noob (26. Mär 2013 um 18:56 Uhr)
  Mit Zitat antworten Zitat
 


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 18:15 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