kostenloser Webspace werbefrei: lima-city


Mausbereich verkleinern - ClipCursor funktioniert nicht

lima-cityForumProgrammiersprachenDelphi & Pascal

  1. Autor dieses Themas

    r2d2-aeg

    Kostenloser Webspace von r2d2-aeg

    r2d2-aeg hat kostenlosen Webspace.

    Hallo.
    Ich würde gerne den Maus-Bereich auf mein Form1 verkleinern, so dass die Maus nicht das Form verlassen kann.
    Ich hab schon fleißig gegoogelt aber bin immer auf ClipCursor gestoßen.

    Ich hab bei meinem Programm dann folgendes probiert:

    procedure TForm1.FormCreate(Sender: TObject);
    var
      Rec: TRect;
    begin
      Rec.Left := Left;
      Rec.Top := Top;
      Rec.Right := Left + Width;
      Rec.Bottom := Top + Height;
      ClipCursor(@Rec);
    end;


    Aber es funktioniert einach nicht. Ich hab schon andere Varianten probiert.
    Die Maus kann sich aber noch immer auf dem ganzen Bildschirm bewegen.
    Hab ich was vergessen? Oder falsch gemacht?
    Oder gibts einen anderen Weg?

    Danke im Vorraus
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    Grundsätzlich kannst du ClipCursor erst benutzen, wenn das Formular angezeigt wurde (und nicht bevor)! Darin wird auch das Problem bestehen. Wenn du den Code nicht in das OnShow-Event gibst, sondern in das OnActivate solltest du kein Problem damit haben (getestet :wink:)

    Der Code an sich läßt sich vereinfachen:

    var
      r: TRect;
    begin
      r := BoundsRect;
      ClipCursor(@r);


    Aufheben kannst du das mit
    ClipCursor(nil);


    RAD hat auch seine Tücken, wenn man nicht versteht, was sir im Hintergrund an Arbeit abgenommen wird :thumb:
    http://delphi.about.com/od/formsdialogs/a/delphiformlife.htm
  4. alternativ über einen Timer in TForm1

    procedure TForm1.Timer1Timer(Sender: TObject);
    var
    Rec: TRect;
    begin
    Timer1.enabled:=false;
    Rec.Left := Left;
    Rec.Top := Top;
    Rec.Right := Left + Width;
    Rec.Bottom := Top + Height;
    ClipCursor(@Rec);
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Timer1.Interval=1;
    Timer1.Enabled:=true;
    end;

  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!