AGB  ·  Datenschutz  ·  Impressum  







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

Dynamisches Editfeld als Komponente

Ein Thema von DelphiManiac · begonnen am 10. Aug 2007 · letzter Beitrag vom 29. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Dynamisches Editfeld als Komponente

  Alt 10. Aug 2007, 13:29
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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Dynamisches Editfeld als Komponente

  Alt 10. Aug 2007, 13:50
Du könntest einen Timer starten und nach einber bestimmten Zeit (bezogen auf den Anfang der Aktion) den Interval das timers verringern.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#3

Re: Dynamisches Editfeld als Komponente

  Alt 10. Aug 2007, 14:30
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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Dynamisches Editfeld als Komponente

  Alt 10. Aug 2007, 14:39
die Up-/Down-Buttons haben doch sicher auch Ereignisse wie OnMouseDown etc.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#5

Re: Dynamisches Editfeld als Komponente

  Alt 10. Aug 2007, 14:58
Ja es gibt Up/Down Events,

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

Registriert seit: 5. Dez 2005
742 Beiträge
 
#6

Re: Dynamisches Editfeld als Komponente

  Alt 28. Aug 2007, 09:19
Hat hier keiner vielleicht noch eine Idee, wie man es lösen könnte?
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#7

Re: Dynamisches Editfeld als Komponente

  Alt 28. Aug 2007, 10:19
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.
...
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#8

Re: Dynamisches Editfeld als Komponente

  Alt 28. Aug 2007, 11:12
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.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#9

Re: Dynamisches Editfeld als Komponente

  Alt 28. Aug 2007, 12:31
@Sidorion:

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

Registriert seit: 23. Jun 2005
403 Beiträge
 
#10

Re: Dynamisches Editfeld als Komponente

  Alt 28. Aug 2007, 13:01
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 ...
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:34 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