寻求图像的例子! 寻求一个不用控件画出图形的例子(比如说画一个直方图),高分求! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GDI知道吗?当然TCanvas封装了这些基本的东东Rectangle(GetDC(Form1.Handle),10,10,100,100);或Canvas.Rectangle(10,10,100,100); TChart可画直方图,各种图形Delphi的例子中就有:$Delphi\Demos\TeeChart $Delphi\Demos\TeeChart下是什么东西?怎么只有代码,好像定义了很多类,能运行这些例子么? 试试看,带双缓冲的。放大和缩小就用StretchDraw就可以了。unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormPaint(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 { Private declarations } public { Public declarations } BufBMP,FormBuf : TBitmap; Position,FirstPt : TPoint; Down : Boolean; end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);begin BufBMP := TBitmap.Create; FormBuf := TBitmap.Create; FormBuf.Width := Width; FormBuf.Height := Height; BufBMP.LoadFromFile('c:\1.bmp'); Position := Point(0,0); Down := FALSE;end;procedure TForm1.FormDestroy(Sender: TObject);begin BufBMP.Free; FormBuf.Free;end;procedure TForm1.FormPaint(Sender: TObject);begin Canvas.Draw(Position.X,Position.Y,BufBMP);end;procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin Down := TRUE; FirstPt := Point(X,Y);end;procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin Position := Point(Position.X + X - FirstPt.X,Position.Y + Y - FirstPt.Y); Down := FALSE;end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begin if Down then begin FormBuf.Canvas.Pen.color := clBtnFace; FormBuf.Canvas.Brush.color := clBtnFace; FormBuf.Canvas.Rectangle(0,0,Width,Height); FormBuf.Canvas.Draw(Position.X + X - FirstPt.X,Position.Y + Y - FirstPt.Y,BufBMP); Canvas.Draw(0,0,FormBuf); end;end;end.***********type TForm1 = class(TForm) ... private Jpg: TJpegImage; StartX, StartY, px, py, mx, my: Integer; MouseDown: Boolean; procedure WMEraseBkGnd(var Msg: TWMEraseBkGnd); message WM_ERASEBKGND; ... end;...procedure TForm1.FormCreate(Sender: TObject);begin Jpg := TJpegImage.Create; Jpg.LoadFromFile(FileName); 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.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.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;procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin if MouseDown then MouseDown := False;end;procedure TForm1.WMEraseBkGnd(var Msg: TWMEraseBkGnd);begin Msg.Result := -1;end; D7程序转D2009问题 用dbgriden如何实现小结? 这个挺有意思的…… ComboBox控件无法显示全部内容 迎接国庆放分......祝大家国庆节快乐 WebBrowser1怎样得到网页中所有的标签? Re:*** 我找到了好东东---‘自动五笔拼音转换模块’,快进来看!!!!! 为什么我的程序这么慢?我用两个SQL控件分别返回了两个数据集,在访问第一个数据集每条记录时都检验第二个数据集的所有记录,不知道为什 用NMHTTP显示页面下载进度?????? 请问关于更新多表的问题? D7网络控件大全。(大家来添柴呀)
Canvas.Rectangle(10,10,100,100);
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormPaint(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
{ Private declarations }
public
{ Public declarations }
BufBMP,FormBuf : TBitmap;
Position,FirstPt : TPoint;
Down : Boolean;
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
begin
BufBMP := TBitmap.Create;
FormBuf := TBitmap.Create;
FormBuf.Width := Width;
FormBuf.Height := Height;
BufBMP.LoadFromFile('c:\1.bmp');
Position := Point(0,0);
Down := FALSE;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
BufBMP.Free;
FormBuf.Free;
end;procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Draw(Position.X,Position.Y,BufBMP);
end;procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Down := TRUE;
FirstPt := Point(X,Y);
end;procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Position := Point(Position.X + X - FirstPt.X,Position.Y + Y - FirstPt.Y);
Down := FALSE;
end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Down then begin
FormBuf.Canvas.Pen.color := clBtnFace;
FormBuf.Canvas.Brush.color := clBtnFace;
FormBuf.Canvas.Rectangle(0,0,Width,Height);
FormBuf.Canvas.Draw(Position.X + X - FirstPt.X,Position.Y + Y - FirstPt.Y,BufBMP);
Canvas.Draw(0,0,FormBuf);
end;
end;end.***********
type
TForm1 = class(TForm)
...
private
Jpg: TJpegImage;
StartX, StartY, px, py, mx, my: Integer;
MouseDown: Boolean;
procedure WMEraseBkGnd(var Msg: TWMEraseBkGnd); message WM_ERASEBKGND;
...
end;...procedure TForm1.FormCreate(Sender: TObject);
begin
Jpg := TJpegImage.Create;
Jpg.LoadFromFile(FileName);
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.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.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;procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if MouseDown then MouseDown := False;
end;procedure TForm1.WMEraseBkGnd(var Msg: TWMEraseBkGnd);
begin
Msg.Result := -1;
end;