線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1153
推到 Plurk!
推到 Facebook!

怎樣在畫面上顯示座標

尚未結案
isttoday
一般會員


發表:1
回覆:0
積分:0
註冊:2005-10-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-01 00:57:23 IP:202.175.xxx.xxx 未訂閱
我是一個新手還不理解delphi的運作 請大家教教我~~~~ 怎樣在畫面上顯示座標?< >< >
ralph921
一般會員


發表:17
回覆:31
積分:14
註冊:2005-08-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-02 09:38:14 IP:218.24.xxx.xxx 未訂閱
isttoday你好,    你用什么图像控件呢?我做过一个用Kodak控件的,看看是否对你有所帮助。    要画面随着鼠标移动,只要在MouseDown事件中取当前坐标值,在MouseMove事件中随时变化坐标原点的值就可以了。    具体代码如下: { procedure TMain.ImgEdit1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if (Button= mbRight) then //你按下的鼠标键,可自设 begin CurrX:= X Main.ImgEdit1.ScrollPositionX; CurrY:= Y Main.ImgEdit1.ScrollPositionY; //X,Y为鼠标的当前坐标 end; end; procedure TMain.ImgEdit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if Shift= [ssRight] then //按住某键(当前为右键)进行移动 begin Main.ImgEdit1.ScrollPositionX:= CurrX - X; Main.ImgEdit1.ScrollPositionY:= CurrY - Y; //变化坐标值 end; end; } 至于显示坐标,你可以用一个StatusBar,分别显示当前原点坐标,以及当前鼠标坐标。 Main.StatusBar1.Panels[0].Text := 'X : ' inttostr(Main.ImgEdit1.ScrollPositionX); Main.StatusBar1.Panels[1].Text := 'Y : ' inttostr(Main.ImgEdit1.ScrollPositionY); Main.StatusBar1.Panels[2].Text := 'MX : ' inttostr(X); Main.StatusBar1.Panels[3].Text := 'MY : ' inttostr(Y); 發表人 - Ralph921 於 2005/10/02 09:39:32
T.J.K
中階會員


發表:3
回覆:35
積分:57
註冊:2005-06-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-03 18:44:18 IP:211.78.xxx.xxx 未訂閱
isttoday 您好: 1.先在Form上放兩個Label 2.再隨便放一個bmp檔,並改名為111.bmp 3.
 
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;    type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
    Abmp: TBitmap;
    procedure SetFoucs(var AMessage: TWMSetFocus);
      message WM_SETFOCUS;
    procedure KillFoucs(var AMessage: TWMKillFocus);
      message WM_KILLFOCUS;
  end;    var
  Form1: TForm1;    implementation    {$R *.dfm}    procedure TForm1.SetFoucs(var AMessage: TWMSetFocus);
BEGIN
  Abmp := TBitmap.Create;
  Abmp.LoadFromFile('d:\111.bmp');
  CreateCaret(Handle, Abmp.Handle, 0, 0);
  showcaret(Handle);
END;    procedure TForm1.KillFoucs(var AMessage: TWMKillFocus);
begin
  destroycaret;
  Abmp.Free;
  Abmp := nil;
end;    // From 事件 OnMouseMove
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  LABEL1.Caption := 'X : '   IntToStr(X);
  LABEL2.Caption := 'Y : '   IntToStr(Y);
  setcaretpos(x,y);
end;    end.    
供你測試,希望對你有用 kTOP裡我是一粒沙
系統時間:2024-07-01 5:39:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!