beliebige OnMouseUp Position (???)



  • hi.
    ich steht vor einem problem.

    und zwar gib ich per klick auf einen button dem mouse cursor ein anderes icon.
    und das soll rückgängig gemacht werden, sobald die linke maustaste gedrückt wird.

    aber ich hab überhaupt keine ahnung, wie man das machen könnte. ich habe in der OH nach "maus" gesucht, aber nicht wirklich was gefunden.

    ich müsste sonst jedem widget ein OnMouseUp - Ereignis geben, und das ist mir (sicher verstänlich) zu viel Arbeit.

    mfg Olf



  • Hi,
    zur Not würde es vielleicht gehen, wenn du ein durchsichtiges Control z.B. die PaintBox mit Align = Client nehen würdest und es dann bei Bedarf auf Visible = true setzen würdest...

    Sonst musst du mal bei Application->OnMessage schauen oder in der FAQ unter Hook suchen...

    MfG

    Alexander Sulfrian



  • aha. und was soll das align = Client bewirken? dass die PaintBox die ganze Form "bedeckt"? dann müsste ich es ja irgendwie permanent im vordergrund haben...

    mfg Olf


  • Mod

    Hallo

    ch müsste sonst jedem widget ein OnMouseUp - Ereignis geben, und das ist mir (sicher verstänlich) zu viel Arbeit.

    wieso "jedem einen" gib doch allen Buttons EINEN "OnMouseUp"
    (das sollte doch in 1-2 Minuten gemacht sein) 🙂

    MfG
    Klaus



  • olf schrieb:

    aha. und was soll das align = Client bewirken? dass die PaintBox die ganze Form "bedeckt"? dann müsste ich es ja irgendwie permanent im vordergrund haben...
    mfg Olf

    Hi,
    hab mir das so gedacht, dass du die PaintBox nur einblendest wenn du dieses Ereigniss brauchst. Wenn du es dann nicht mehr brauchst einfach wieder Visible = false und weg ist's....

    MfG

    Alexander Sulfrian



  • Hi!

    Im Button-Click - Ereignis schreibst du sowas in der Art:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      Screen->Cursor = crHandPoint;
      Button1->Tag = 1;
    }
    

    Auf dein Form legst du dir dann die Komponente "TApplicationEvents" (Register "Zusätzliches") und bestückst das "OnMessage" - Ereignis folgendermassen:

    void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
          bool &Handled)
    {
      if ((Button1->Tag) && (Msg.message == WM_LBUTTONDOWN))
      {
        Button1->Tag = 0;
        Screen->Cursor = crDefault;
      }
    }
    

    tschüss
    Robert



  • hm...schaut gut aus, aber was ist Tag?
    (nur zur info will ichs wissen, da ich das problem bereits gelöst hab --> konzept verändert)

    mfg Olf



  • Hi!

    Aus der Hilfe zu TComponent::Tag :

    Tag hat keine vordefinierte Bedeutung. Sie können in dieser Eigenschaft zusätzliche Informationen über die Komponente in Form einer Ganzzahl speichern oder die Eigenschaft in einen 32-Bit-Wert, wie z.B. in eine Komponentenreferenz oder einen Zeiger, umgewandelt werden.

    tschüss
    Robert



  • und das heißt dann genau? 🙄

    mfg Olf



  • Dass du Tag frei verwenden kannst - wofür du möchtest. Kann darin jeden X-Beliebigen integer-Wert speichern.

    tschüss
    Robert



  • achso....hehe, da nehm ich lieber ne extra variable^^

    mfg Olf


Anmelden zum Antworten