AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi SpinEdit - bei gedrückter Maustaste kein OnChange auslösen
Thema durchsuchen
Ansicht
Themen-Optionen

SpinEdit - bei gedrückter Maustaste kein OnChange auslösen

Ein Thema von Keldorn · begonnen am 14. Mär 2004 · letzter Beitrag vom 16. Mär 2004
Antwort Antwort
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

SpinEdit - bei gedrückter Maustaste kein OnChange auslösen

  Alt 14. Mär 2004, 18:54
Hallo

Ich steh momentan ein wenig auf dem Schlauch. Ich habe ein Spinedit und bei jeder Änderung wird eine etwas lang andauernde Aktion durchgeführt. Wenn der User die Werte mit den Up/down -Schalter verändert, soll die Aktion nur durchgeführt werden, wenn er die Schalter am Ende wieder "losläßt", sonst soll sich nur die Wertanzeige ändern. Und dort haperts. Ich habe im Onchange mir erstmal mit einem
if GetAsyncKeyState(VK_LBUTTON)=0 then Mach_eine_langwierige_Aktion; beholfen, dann wird die Aktion nur ausgeführt, wenn der User lange auf einem der Buttons bleibt und zum Schluß losläßt. Leider wird die Aktion nicht ausgeführt, wenn der User nur einmal kurz auf einen der beiden Buttons drückt um den Wert einmal zu ändern.

hat jemand eine Idee, wie ich das realiseren könnte? Ich möchte nach Möglichkeit beim Original-spinedit bleiben und in meinem Programm reagieren und nicht die Sourcen ändern.

Danke im Voraus

Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: SpinEdit - bei gedrückter Maustaste kein OnChange auslös

  Alt 14. Mär 2004, 19:23
Du könntest es mit einem TUpDown und einem TEdit zusammen versuchen.
Vielleicht hat das TUpDown ein Event, dass dir weiterhilft.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: SpinEdit - bei gedrückter Maustaste kein OnChange auslös

  Alt 14. Mär 2004, 19:48
Danke, hmm, dort geht es. Dort kann ich auf mousedown und mouseup reagieren und dann würde es gehen.
Allerdings bin ich mit dem Spinedit schon ziemlich weit. Hätte noch jemand ne Alternativ idee?

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Wheelie

Registriert seit: 21. Okt 2003
Ort: Dresden
177 Beiträge
 
#4

Re: SpinEdit - bei gedrückter Maustaste kein OnChange auslös

  Alt 14. Mär 2004, 19:58
Du könntest nach Veränderung des Wertes des SpinEdits eine "Pause" (siehe unten) im Programm einlegen, bevor die lange Prozedur ausgeführt wird. Die Pause muss wahrscheinlich nicht mal eine halbe Sekunde lang sein. Falls nun der Wert des SpinEdits vor dem Ende der Pause verändert wird, fängt die Pause von vorne an etc. Notfalls musst du noch von ein paar Boolean-Variablen gebrauch machen. Ich hoffe du weißt so ungefähr was ich meine.

Hier eine Prozedur, die dir das aus Turbo Pascal bekannte "Delay()" simuliert:
Delphi-Quellcode:
procedure Wait(Time: Word);
var Start: Integer;
begin
  Start := GetTickCount;
  While GetTickCount - Start <= Time do
    Application.ProcessMessages;
end;
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: SpinEdit - bei gedrückter Maustaste kein OnChange auslös

  Alt 16. Mär 2004, 20:24
Also ein Delay möchte ich nicht einbauen, da könnte ich auch meine Prozedure laufen lassen, das wär das gleiche. Wenn dann könnte ich die Zwischenzeit der Onchanges abfragen , aber das ist mir irgednwie zu ungenau.

Ich habs jetzt anders gemacht, und doch eine eigene Kompoonente anhand des Spinedit-sourcen erstellt, eine zusätzliche Bool-Eigenschaft hinzugefügt und bei timer-ereignis der Hoch-Runterbuttons setzte ich diese und weiß, ob der Click durch den Timer ausgelöst wurde oder normal durch Klicken.

Trotzdem Danke für die Vorschläge

Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  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 14:24 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