AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Cursor auf Komponente legen

Ein Thema von Ajintaro · begonnen am 12. Mai 2014 · letzter Beitrag vom 13. Mai 2014
Antwort Antwort
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#1

Cursor auf Komponente legen

  Alt 12. Mai 2014, 20:15
Delphi-Version: XE5
Hi DP !

Ich habe einen TWebBrowser auf meiner Form liegen und möchte den Cursor an der Ecke unten links vom Browser platzieren. D.h. unabhängig von der Desktop-Auflösung oder der Screen-Position der Anwendung wird der Cursor immer an der Ecke unten links vom Browser platziert.

Delphi-Quellcode:
procedure TFmain.Button1Click(Sender: TObject);
var
  pt: TPoint;
begin
  WB_ScrollTo(WebBrowser1, wbPosBottom); //Webbrowser: an das ende scrollen
  pt := WebBrowser1.ScreenToClient(Mouse.CursorPos);

  e_x.Text:=IntToStr(pt.X);
  e_y.Text:=IntToStr(pt.Y);
  SetCursorPos(pt.X,pt.Y); //mouseposition setzen
Ich dachte damit kann ich zumindest den Cursor auf den Webbrowser der Anwendung setzen, aber der Cursor verlässt das Fenster der Anwendung.
Gibt es eine Methode, den Cursor auf den Ursprung (0/0) einer Komponente zu platzieren ?
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: Cursor auf Komponente legen

  Alt 12. Mai 2014, 22:08
Hallo,

suchst Du vielleicht etwas in der Richtung?
Delphi-Quellcode:
type
  TCursorPos = (cpTopLeft, cpTopRight, cpBottomLeft, cpBottomRight, cpCentered);

procedure SetControlCursorPos (const Form : TForm; const Control : TControl; const CursorPos : TCursorPos);
var
  p : TPoint;
begin
  case CursorPos of
    cpTopLeft : p := Form.ClientToScreen (Point (Control.Left, Control.Top));
    cpTopRight : p := Form.ClientToScreen (Point (Control.Left + Control.Width, Control.Top));
    cpBottomLeft : p := Form.ClientToScreen (Point (Control.Left, Control.Top + Control.Height));
    cpBottomRight : p := Form.ClientToScreen (Point (Control.Left + Control.Width, Control.Top + Control.Height));
    cpCentered : p := Form.ClientToScreen (Point (Control.Left + Control.Width div 2, Control.Top + Control.Height div 2));
  end;

  SetCursorPos (p.X, p.Y)
end;

procedure TFmain.Button1Click(Sender: TObject);
begin
  SetControlCursorPos (Self, WebBrowser1, cpBottomLeft)
end;
Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Cursor auf Komponente legen

  Alt 13. Mai 2014, 07:44
Etwas vereinfacht ohne Form-Parameter:
Delphi-Quellcode:
procedure SetControlCursorPos(const Control : TControl; const CursorPos : TCursorPos);
var
  P: TPoint;
begin
  Assert(Assigned(Control), 'Kein Control zur Ausrichtung übergeben');
  case CursorPos of
    cpTopLeft:
      P := Control.ClientToScreen(Point(0, 0));
    cpTopRight:
      P := Control.ClientToScreen(Point(Control.Width, 0));
    cpBottomLeft:
      P := Control.ClientToScreen(Point(0, Control.Height));
    cpBottomRight:
      P := Control.ClientToScreen(Point(Control.Width, Control.Height));
    cpCentered:
      P := Control.ClientToScreen(Point(Control.Width div 2, Control.Height div 2));
  end;
  SetCursorPos(P.X, P.Y);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#4

AW: Cursor auf Komponente legen

  Alt 13. Mai 2014, 09:30
Guten Morgen DP !

Ja genau das ist was ich versucht habe zu bauen. Von ClientToScreen(Point(0, 0) ausgehend, hätte ich wirklich nur die "Ecken" mit Control.Width und Control.Height selbst errechnen können.

Super Sache, werde ich mir merken. Vielen Dank !
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz