Announcement

Collapse
No announcement yet.

Funktions-Aufruf immer gleich 3mal

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Funktions-Aufruf immer gleich 3mal

    Hi zusammen,

    Hab ein kleines Problem. Ich hab ein Programm bei dem ich mit dem ScrollWheel eine ScrollBar durchScrollen kann. Ich hab dafür auf der Main Form "KeyPreview" auf true gesetzt. Jetzt kann ich mit dem Ereigniss OnMouseWheel darauf regieren un die ScrollBar bewegen. Mein Problem: Die Funktion FormMouseWheel wird am Anfang immer gleich 3 mal aufgerufen. Nach ein paar Minuten "fängt" sich die Funktion und alles klappt Prima. Wie kann ich verhindern das am Anfang die Funktion immer 3mal aufgerufen wird?

    Hier der Code zum OnMouseWheel Ereigniss:
    <PRE>
    void __fastcall TFORM_MAIN::FormMouseWheel(TObject *Sender,
    TShiftState Shift, int WheelDelta, TPoint &MousePos, bool &Handled)
    {

    Application->ProcessMessages();

    if (WheelDelta == -120) // hoch Scrollen
    {
    try
    {
    ScrollBar1->Position += 1;
    }
    catch(...)
    {
    Application->ProcessMessages();
    }
    }
    }
    </PRE>

  • #2
    <html>

    <head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=iso-8859-1">
    <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
    <title>Normale Seite ohne Titel</title>
    </head>

    <body bgcolor="#FFFFFF">

    <pre>static int i=0;
    if(i&lt;3)
    {
    i++;
    return;
    }</pre>
    Gruß - Günther
    </body>
    </html&gt
    Günther

    Comment


    • #3
      Leider haut das nicht so ganz hin. Der Code würde dafür sorgen das nach dem ersten Aufruf i = 3 ist, und dann läuft alles wie vorher. Es ist ja nicht so das er nur beim ersten Scrollen die Funktion 3mal aufruft. Das macht er 10,15 oder 20mal, oder öfter. Aber irgendwann fängt er sich und ruft die Funktion einmal auf bei einem "Scroll". Ist absolut zufällig!

      Mfg Brun

      Comment


      • #4
        Dann merk Dir die Zeit. Wenn zwei Aufrufe innerhalb von 0,X Sekunden auftreten ignorierst Du den Folgeaufruf
        Günther

        Comment


        • #5
          gute Lösung, Danke !!!

          Mfg Brun

          Comment

          Working...
          X