[C/C++] Label Activate On Click

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von klaiser, 26. Juni 2007 .

Schlagworte:
  1. 26. Juni 2007
    Label Activate On Click

    Hallo Rushis,

    ich habe wieder ein kleines Problem vielleicht könnt ihr mir helfen. Es sind immer kleine Problemchen
    aber ich finde keinen Fehler.

    Ich möchte auf einem Formular wo ich ein Bild implemetiert habe wenn man mit der Maus darüber geht ein label erscheint:

    bsp.
    Code:
    void __fastcall Tbeweis::Image1MouseMove(TObject *Sender, TShiftState Shift,
     int X, int Y)
    {
    Label1->Visible=true;
    Label2->Visible=false;
    }
    
    funktioniert.

    Aber wenn man auf das Bild klicken soll, soll das alte Label1 verschwinden und Label2 soll erscheinen das habe ich so gelöst:

    Code:
    void __fastcall Tbeweis::Image1Click(TObject *Sender)
    {
    Label1->Visible=false;
    Label2->Visible=true;
    }
    
    funktioniert nicht.

    Worran liegt es? Jede hilfe wird mit einer Bewertung belohnt! :>

    mfg
     
  2. 26. Juni 2007
    AW: Label Activate On Click

    Solange du die Maus nicht weiter bewegst nach dem klicken wird es auch funktionieren, aber sobald
    die Maus einwenig Bewegt wird, wird nochmal die Funktion MouseMove aufgerufen.

    Du musst den MouseMove Event am besten abschalten, sobald die Maus über der Komponente ist,
    sodass dieses nicht wieder nach dem Klick und nach der möglichen Bewegung aufgerufen wird.
    Und wieder einschalten wenn die Maus nicht mehr Über der Komponente ist.

    Mfg

    Rushh0ur
     
  3. 26. Juni 2007
    AW: Label Activate On Click

    Ja das habe ich gemacht. Bei FormActive. Aber mein problem ist halt wen ich auf das Bild klicken kommt nicht das andere label.

    thx für post! bw ist raus!

    mfg
     
  4. 26. Juni 2007
    AW: Label Activate On Click

    Anscheinend wird nach dem Klick Ereigniss immer noch dazu das MouseMove Ereigniss aufgeruffen.

    Kannst dies so lösen:

    Code:
    [B]bool[/B] Image_Click;
    [...]
    
    [B]void __fastcall[/B] Tbeweis::Image1MouseMove(TObject *Sender, TShiftState Shift,
     [B]int [/B]X, [B]int [/B]Y)
    {
    if (Image_Click == [B]false[/B])
     {
     Label1->Visible=[B]true[/B];
     Label2->Visible=[B]false[/B];
     }
    Image_Click = [B]false[/B];
    }
    
    [...]
    
    [B]void [/B][B]__fastcall[/B] Tbeweis::Image1Click(TObject *Sender)
    {
    Label1->Visible=[B]false[/B];
    Label2->Visible=[B]true[/B];
    Image_Click = [B]true[/B];
    }
    
    Mfg Rushh0ur
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.