图像浏览的问题!(0分)

  • 主题发起人 主题发起人 lhdyesok
  • 开始时间 开始时间
L

lhdyesok

Unregistered / Unconfirmed
GUEST, unregistred user!
请问当全屏浏览图像时!
如果图像大小大于屏幕大小,怎么实现用手拖动它,而浏览它的某动分!
 
你是指IE上,不能拖动吗???不是有滚轴吗
 
要么就装ACDSee或photoshop,就可以用手拖动了
 
就是楼上那个大哥所说的哪样!

我现在要用DELPHI编程实现它,请哥哥指点一下小弟,有源码最好!

谢谢!
 
怎么还是没人顶啊!
 
我这里有一段例程,你可以试试。图片可以换成你自己需要显示的图片。该程序我在
DELPHI 7.0 下调试通过。

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Jpeg, StdCtrls;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormPaint(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
Jpg : TJpegImage;
StartX,StartY,px,py,mx,my : Integer;
MouseDown : Boolean;
Procedure WMEraseBkGnd(var Msg: TWMEraseBkGnd); message WM_ERASEBKGND;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Jpg := TJpegImage.Create;
Jpg.LoadFromFile('C:/My Documents/My Pictures/fs_akane_souma036.jpg');
px := 0;
py := 0;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Jpg.Free;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Draw(px,py,Jpg);
end;

procedure TForm1.WMEraseBkGnd(var Msg: TWMEraseBkGnd);
begin
Msg.Result := -1;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
if Assigned(Jpg) then
begin
mx := ClientWidth - Jpg.Width;
my := ClientHeight - Jpg.Height;
end;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if not MouseDown then begin
MouseDown := True;
StartX := X;
StartY := Y;
end;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if MouseDown then begin
MouseDown := False;
end;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if MouseDown then begin
Dec(px, StartX - X);
Dec(py, StartY - Y);
if px > 0 then px := 0;
if px < mx then px := mx;
if py > 0 then py := 0;
if py < my then py := my;
StartX := X;
StartY := Y;
Refresh;
end;
end;


end.
 
这位大哥可能理解错我的意思了!

我的意思就是!

做一个图像浏览器!

当在全屏浏览的情况下如果图像大小大于屏幕大小,不用滚轴,而是用比如手的鼠标指针拖

动它,而浏览图像的其它部分!(就像ACDSee或photoshop全屏浏览那样!)

 
不好意思,还忘记谢lippo了,lippo谢谢您的支持!
 
各位,帮我顶顶吧!
 
后退
顶部