ButtonDown dauerhaftes ereignis (erledigt)
-
Hi!
Ich hab einen Button mit dem Ich einen Wert um 1 Hochzähle.
Dies Passiert bei MouseDown!Jezt wir dabei aber nur 1x +1 gerechnet. Warum??
Ich will sollange hochzählen lassen wie ich auf den Button drücke!
Dabei soll meine Form auch immer aktuell gehalten werden!Ich habs versucht mit einer While-chleife!
while(buttondown==true)
{
}Und wenn das Event MouseUp kommt wird buttondown=false gesetzt.
Leider hängt sich das programm dann in der schleife auf!:<
wie könnte ich das geschickter lösen?
Die Schleife befindet sich in einer eigenen Funktion...
-
Warum nimmst Du nicht ein SpinEdit? Findest Du unter dem Komponentenreiter Beispiele als CSpinEdit.
-
was macht das anders ???
es muss doch aber auch irgendwie mit dem buttton un den events gehen oder??
-
Du könntest bei MouseDown einen Timer starten der das Hochzählen übernimmt.
-
Timer macht keinen sinn,
da ja ständig das fenster aktualliesiert werden solL! und bei jeder aktuallisierung +1 gerechnet werden soll....
solange wie halt der button down! :< muss doch gehen oder?
nich?
-
Wieso macht ein Timer keinen Sinn?
Mir fällt keine Lösung ein, die ohne einen Timer auskommt.
-
Hi,
int i = 0; bool down = false; //--------------------------------------------------------------------------- void __fastcall TForm1::Button1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { down = true; while (down && Shift.Contains(ssLeft)) { Edit1->Text = IntToStr(i); i++; Application->ProcessMessages(); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { down = false; } //---------------------------------------------------------------------------... das is aber rasend schnell, also um Punktgenau eine Zahl zu treffen sollte man schon ein sehr hohes Reaktionsvermögen haben! Ich würde auch den Timer bevorzugen.
mfg, Micha!
//Edit: das ganze lässt sich natürlich durch z.B. Sleep(100) verlangsamen!
-
THX!
Das funtz wunderbar

So hab ich mir das gedacht
nich mit timer