Veröffentlicht 17. Juli 200223 j Hallo, ich möchte auf das Loslassen der Maustaste bei der verwendung eines TTrackBar reagieren. wenn ich mit void __fastcall TForm1::OnMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) arbeite, springt mein Prog nur dann in den Code, wenn ich außerhalb des TrackBars mit der Maus klicke. Es soll aber in den Code Gesprungen werden, wenn die Maus sich Über dem TrackBar befindet. Ich Hoffe, Ihr könnt mir helfen. Gruß Snypoo
17. Juli 200223 j Hmmmm...ich arbeite zwar mit dem VC, aber es sollte doch auch bei der VCL möglich sein benutzerdefinierte Klassenableitungen zu erstellen. Du beziehst Dich ja bei MouseUp auf Deine Form und nicht auf die TrackBar-Instanz. void __fastcall MyTTrackBar ::OnMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) So ähnlich würde es bei VC dann heissen *ggg* Schau mal unter abgeleitete Klassen und die Hierarchie der VCL.
17. Juli 200223 j Hallo gugelhupf, wie muß denn die MyTTrackBar aufgebaut sein, damit ich das so anwenden kann wie Du das beschrieben hast???
17. Juli 200223 j Original geschrieben von Snypoo Hallo gugelhupf, wie muß denn die MyTTrackBar aufgebaut sein, damit ich das so anwenden kann wie Du das beschrieben hast??? Also unter der MFC wäre so ein Control genauso mit allen Standardfunktionen und Membern zusammengesetzt wie sonst auch. Wie gesagt ich kenn die VCL nur vom Hören-Sagen. Gibt es denn beim Borland kein Hierarchie-Chart ? Hast mal nachgeschaut wie man eine Control-Klassen von den Standardklassen ableitet ?
22. Juli 200223 j Hallo, ich habe nun eine Lösung für mein Problem gefunden, die Wollte ich Posten, damit auch andere davon Profitieren können. // HEADER private: Controls::TWndMethod OldTrackBarProc; protected: void __fastcall NewTrackBarProc(TMessage&); // CPP-Datei __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { OldTrackBarProc = TrackBar1->WindowProc; TrackBar1->WindowProc = NewTrackBarProc; } //----------------------------------------------------------------------------- void __fastcall TForm1::NewTrackBarProc(TMessage& Msg) { switch(Msg.Msg) { case WM_LBUTTONDOWN: // Deine Behandlung break; case WM_LBUTTONUP: // Deine Behandlung break; // Evtl. andere Cases } OldTrackBarProc(Msg); } Gruß Snypoo
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.