Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Dynamisches Editfeld als Komponente (https://www.delphipraxis.net/97438-dynamisches-editfeld-als-komponente.html)

DelphiManiac 10. Aug 2007 13:29


Dynamisches Editfeld als Komponente
 
Hallo,

ich bin gerade dabei ein dynamisches Editfeld als Komponenten zu entwerfen, da mir das normale
RxSpinEdit nicht ausreicht.

Ich muss mein Editfeld über die Pfeiltasten schneller hochzählen lassen können, normalerweise macht ein Spinedit
ja nur die vorgegebenen Increment Schritte,

ich will aber, dass wenn man zB. länger (2sec) hochdrück, dass die Incrementschritte sich auch erhöhen.

Das müsste ich dann beim Loslassen der Linken Maustaste wieder zurücksetzen können.

Habt ihr eine Idee/Tipps für mich?

Gruß
DelphiManiac

SirThornberry 10. Aug 2007 13:50

Re: Dynamisches Editfeld als Komponente
 
Du könntest einen Timer starten und nach einber bestimmten Zeit (bezogen auf den Anfang der Aktion) den Interval das timers verringern.

DelphiManiac 10. Aug 2007 14:30

Re: Dynamisches Editfeld als Komponente
 
Ja so hatte ich mir das gedacht,

das erhöhen wie z.B.:

nach 2 sec Increment =10

nach 10 sec Increment=50....


bekomm ich hin, aber ich muss ja auch erkennen, ok der Benutzer klickt nicht mehr die Pfeiltaste nach oben/unten an,
und lässt die Maustaste los.

Ich habe das versuch über
WM_LBUTTONUP zu lösen, aber damit würde ich nur erkennen, wenn jemand die linke Maustaste im Editfeld(also nicht im Up/Down Feld)
loslässt :gruebel:

SirThornberry 10. Aug 2007 14:39

Re: Dynamisches Editfeld als Komponente
 
die Up-/Down-Buttons haben doch sicher auch Ereignisse wie OnMouseDown etc.

DelphiManiac 10. Aug 2007 14:58

Re: Dynamisches Editfeld als Komponente
 
Ja es gibt Up/Down Events,

aber leider nicht für die Hoch/-Runter Tasten, sondern nur für das Editfeld....

DelphiManiac 28. Aug 2007 09:19

Re: Dynamisches Editfeld als Komponente
 
Hat hier keiner vielleicht noch eine Idee, wie man es lösen könnte?

DelphiManiac 28. Aug 2007 10:19

Re: Dynamisches Editfeld als Komponente
 
Sollte ich das "linke Maustaste losgelassen" global abfangen?

Über Application Events?

Mein Problem ist, dass ich eine autarke Komponente haben will, und nicht jedes mal in der Form ein Methode bauen will,
die mir dann den Increment eines speziellen Edit-Feldes wieder zurücksetzt.
...

Sidorion 28. Aug 2007 11:12

Re: Dynamisches Editfeld als Komponente
 
Guck Dir mal unter den Samples das SpinEdit an (vorrausgesetzt, Du hast die Quellen). Die arbeiten da schon mit einem Timer für die 'Tastenwiederholung'. Hier noch einen zweiten einzubauen, der bei seinem Event den Step vergrößert sollte kein Problem sein. Beim Loslassen der Taste (das merken die auch irgendwo da drin) musst Du dann den Step wieder auf den Originalwert zurücksetzen. Das ganze macht aber schon die SpinButton-Klasse, die wird im Edit nur benutzt.

DelphiManiac 28. Aug 2007 12:31

Re: Dynamisches Editfeld als Komponente
 
@Sidorion:

Hi ich habe mir die Unit mal angeguckt, kann aber den Timer für die Tastenwiederholung nicht finden....

Sidorion 28. Aug 2007 13:01

Re: Dynamisches Editfeld als Komponente
 
TTimerSpeedButton hat einen Timer namens FRepeatTimer, der zwei verschiedene Delays kriegt. Beim Ersten MouseDown InitRepeatpause (400ms) beim Timerevent RepeatPause(100ms). Zusätzlich wird im Timerevent der Click aufgerufen.

p.s.: Hab ich jetzt in ca. 30sec rausgefunden...Entweder hast Du ne andere Spin.pas, als ich, oder ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 Uhr.
Seite 1 von 2  1 2      

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