activex问题 大家好 帮忙 100分 ( 积分: 100 )

  • 主题发起人 主题发起人 raul1126
  • 开始时间 开始时间
R

raul1126

Unregistered / Unconfirmed
GUEST, unregistred user!
我做出activex来了 但是想用它做个 画图板 发不到网页上 做这个画图板 就想电脑自带的程序附件中的

哪个画图板一样 只需要能想它那样变成笔型写字和可以改变线的粗细 和 颜色

拜托大家 100分 我想要这个能够帮助我成功的代码!!
 
我做出activex来了 但是想用它做个 画图板 发不到网页上 做这个画图板 就想电脑自带的程序附件中的

哪个画图板一样 只需要能想它那样变成笔型写字和可以改变线的粗细 和 颜色

拜托大家 100分 我想要这个能够帮助我成功的代码!!
 
雾水
请教activex 控件问题 想用activex 做个画图板的 程序 就想程序附件中自带的哪个画图板一样 只要求画时出现笔的形状 可以改变粗细 和颜色 !就这点功能 其他的就不要了

也可以用form做!就是 用delpji做一个上述要求的画图板 大哥可以帮帮我吗?
我初学delphi 老总给个项目 要在网页中调用delphi activex 制作的这个 画图板控件
拜托!
我以在delphi 中的开发里 提出这个问题了!很希望得到您的指点!!跪谢!
 
雾水
请教activex 控件问题 想用activex 做个画图板的 程序 就想程序附件中自带的哪个画图板一样 只要求画时出现笔的形状 可以改变粗细 和颜色 !就这点功能 其他的就不要了

也可以用form做!就是 用delpji做一个上述要求的画图板 大哥可以帮帮我吗?
我初学delphi 老总给个项目 要在网页中调用delphi activex 制作的这个 画图板控件
拜托!
我以在delphi 中的开发里 提出这个问题了!很希望得到您的指点!!跪谢!
 
這二個功能很容易啊!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Spin, ExtCtrls;

type
TMydrawTool=(dtLine,dtRectangle,dtEllipse,dtRoundRect,dtPolygon);
TForm1 = class(TForm)
ScrollBox1: TScrollBox;
Image1: TImage;
StatusBar1: TStatusBar;
SpinEdit1: TSpinEdit;
Label1: TLabel;
procedure lineClick(Sender: TObject);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormCreate(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
private
{ Private declarations }
public
procedure drawshape( topleft, bottomright:Tpoint;AMode:TpenMode);
end;

var
Form1: TForm1;
MydrawTool: TMydrawTool;
drawing:boolean;
origin,movept:Tpoint;
implementation

{$R *.dfm}

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
drawing:=true;
image1.Canvas.MoveTo(x,y);
origin:=point(x,y);
movept:=origin;
statusbar1.Panels[1].Text:=format('origin:(%d,%d)',[x,y]);
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if drawing then
begin
drawshape(origin,point(x,y),pmCopy);
drawing:=false;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
bitmap:Tbitmap;
begin
bitmap:=nil;
try
bitmap:=tbitmap.Create ;
bitmap.Width :=800;
bitmap.Height:=800;
image1.Picture.Graphic:=bitmap;
finally
bitmap.Free ;
end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if drawing then
begin
drawshape(origin,movept,pmNotXor);
movept:=point(x,y);
drawshape(origin,movept,pmNotXor);
end;
statusbar1.Panels[2].Text:=format('current:(%d.%d)',[x,y]);
statusbar1.Panels[0].Text:='你正在畫你所喜愛的圖形';
end;

procedure TForm1.drawshape(topleft, bottomright: Tpoint; AMode: TpenMode);
begin
with image1.Canvas do
begin
pen.Mode:=AMode ;
case MydrawTool of
dtLine:
begin
image1.Canvas.MoveTo( topleft.X ,topleft.Y);
image1.Canvas.LineTo(bottomright.X,bottomright.Y);
end;
dtRectangle:
begin
image1.Canvas.Rectangle(topleft.X,topleft.Y,bottomright.X,bottomright.Y);
end;
dtEllipse:
begin
image1.Canvas.Ellipse (topleft.X , topleft.Y,bottomright.X,bottomright.Y);
end;
dtRoundRect:
begin
image1.Canvas.RoundRect(topleft.X,topleft.Y,bottomright.X,bottomright.Y,(topleft.X -bottomright.X )div 2,(topleft.Y -bottomright.Y)div 2);
end;
dtpolygon:
begin
image1.Canvas.Polygon ([Point(topleft.X,bottomright.X),TopLeft,BottomRight]);
end;
end;
end;
end;

procedure TForm1.lineClick(Sender: TObject);
begin
MydrawTool:=dtLine;
statusbar1.Panels[0].Text:='你選擇了直線';
end;


procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
image1.Canvas.Pen.Width:=spinedit1.Value ;
end;

end.
你自己慢慢看吧。。。可以實現你要的功能
 
楼主可以在Delphi安装目录下面的Demos/Doc/Graphex去看看,它就是一个画图的程序
 
谢谢 !今天抱着看的想法上来
我的问题终于您打了 我正在实验
写出来给您100分
不会的地方您多指点
 
漂流的雲, 我试着执行了你的
我把 image放在spinedit1上 但是移动鼠标没出现任何东东
我想做的是 鼠标放在上面出现笔的形状 然后可以在上面自由写
可为什么 我执行没错误 却写不出东西呢
而把spinedit放在image中 一移动就出现错误:、list index out of bounds(2)
赐教
 
list index out of bounds(2)
一般就是越界,很容易调试出来的,自己跟一下吧

先看看系统带的那个吧,有学习参考价值
 
谢谢 哥哥
我看了 demos 下的哪个 我想做的没那么复杂!可是那个唯一的缺陷是不能任意画 你象我写个名字笔画都不能弯曲!widndows所带的哪个画图板可以 !我想实现的唯一就是可以任意写~ 能帮忙吧
 
我把错误给您
statusbar1.Panels[2].Text:=format('current:(%d.%d)',[x,y]);
statusbar1.Panels[0].Text:='你正在畫你所喜愛的圖形';
就是上面的代码运行出错 一移动就出现错误提示 : list index out of bounds(2)
 
哥哥 上面的问题解决了
但是我想得到的是 可以任意画 就是弯曲的线 上述代码执行的是直线
这不是我所想要的结果 ,很感谢您
就是把 image的move 写成循环 您应该知道 对我来说 简直太难了
拜托 啊 把这问题解决了呵
 
能做出 写字的效果!可以吗?拜托
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部