用Delphi的standalone程序能否画图? 用Delphi的standalone程序能否画图?我相信应该能的,但不知道怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TIWDynamicChart这是它里面画图的 给你个一直画线的,注意例子里的是bmp文件,如果想换成其他类型的,不能直接Load需要转换一下,你知道的。unit IWUnit1;{PUBDIST}interfaceuses IWAppForm, IWApplication, IWTypes, Classes, Controls, IWControl, IWCompDynamicChart, IWCompRectangle, IWCompButton, IWExtCtrls, Graphics, jpeg;type TformMain = class(TIWAppForm) IWImage1: TIWImage; procedure IWImage1MouseDown(ASender: TObject; const AX, AY: Integer); procedure IWAppFormCreate(Sender: TObject); public end;implementation{$R *.dfm}uses ServerController;procedure TformMain.IWImage1MouseDown(ASender: TObject; const AX, AY: Integer);var mCanvas:TCanvas;begin mCanvas:=IWImage1.Picture.Bitmap.Canvas; mCanvas.Pen.Width:=2; mCanvas.Pen.Color:=clRed; mCanvas.LineTo(Ax,AY);end;procedure TformMain.IWAppFormCreate(Sender: TObject);begin IWImage1.Picture.LoadFromFile('d:\test.bmp');end;end. 似乎无人知晓了,奇怪!一个事实是:用Delphi的standalone程序可以写汉字,例如uses sysutils;begin writeln('Hello,中国!');readln;end.就是一个完整的Delphi程序!汉字都能显示,一个点会显示不了吗? 何谓standalone?是否指的非GUI程序?一边就是canvas.point,canvas.line standalone就是用不到配dfm的单个的独立程序,也叫控制台应用程序。你可以在Delphi上,依次点选File、New、Other、ConsoleApplication四步,来创建一个控制台应用程序,这时delphi就会自动产生具有如下代码的控制台程序:program Project1;{$APPTYPE CONSOLE}uses SysUtils;begin { TODO -oUser -cConsole Main : Insert code here }end.你在begin end. 之间填入要做的事情,例如填入writeln('Hello,中国!');readln;屏幕上就会显示Hello,中国!非常简单。如果不画图形,只学Pascal的语法,这样就是入门了。我现在问,既然汉字“中国”都能显示,是否能画一个点? 注:在单元Sysutils中没有任何画图程序,需要另加,我想知道,为了画一个像素,最少要另加几个单元?什么单元? 为什么要用控制台,运行环境不能带图形API?控制台程序在Delphi中一般称为Console App在Console程序中“画图”至少让我想到上个世纪90年代,那时候Windows远没有现在流行当时的环境是UCDOS,最流行的软件是金山WPS对了,在Console程序中画图,是不是DOS版WPS那样的?UCDOS有一个特显模块(tx.com),如果有必要,楼主可参考一下 “为什么要用控制台,运行环境不能带图形API?”就是力求程序简单,容易入门,同时也是为了弄清加在unit前面被uses的每个单元的意义。例如,为了简单,对于我前面那个程序,标题行(program Project1;)可以不要,被uses的Sysutils单元也是不必要的,可以简化成:{$APPTYPE CONSOLE}begin write('hello!');readln;end.readln不写也是行的,它只是为了保持显示页面,否则一闪就回到操作系统,但语句{$APPTYPE CONSOLE}不可省去,否则出错!究竟用到其中什么东西,还有待考察。我就是希望类似这样,弄清加在delphi每个unit前面被uses的每个单元的意义,及被自动插入程序中的每一个语句的意义。这种要求对DOS程序是完全做得到的,但进入Windows编程后大家都不提了。 以下是一个空form所含的代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}end.我想弄清的就是uses语句中每一项的用途。 楼主获取分的明细:专题开发/技术/项目 :51277 , Delphi :3936 , Windows专区 :761 , 多媒体/设计/Flash/Silverlight 开发 :515 , 扩充话题 :491 , Web 开发 :456 , Java :428 , VB :305 , VC/MFC :240 , 社区支持 :91 , C++ Builder :71 , Linux/Unix社区 :60 , 其他开发语言 :60 , .NET技术 :43 , 硬件使用 :42 , PowerBuilder :40 , C/C++ :14 , Oracle :13 , 企业开发 :10 , MS-SQL Server :10 , 新版体验区 :6 , 移动平台 :3 , PHP :1 , 产品/厂家 :1 楼主,你的要求很不合常理。控制台程序一般不需要画图,如果你想输出一个点,你直接 write('.'); 不就可以了。如果你的点是在任意位置,那么需要用GetDC取得控制台程序的DC,然后用canvas来画,要复杂些,如果你想让程序足够小,就uses一个windows,用api直接画点。不过如果这样的话,你就失去用delphi的意义了,delphi是快速开发工具,你这等于跟用VC差不多。一般做图是在窗体上画,在onPaint事件里面来操作。如果你只是单纯的学delphi,你可以直接从窗体学起,控制台程序可以直接忽略。 Delphi虽然我也用了不少年,但都是零零星星自学获得,不成系统,不知道的东西非常多非常多,希望得到楼上各位高手的帮助,其中包括我在本帖中提出的原始问题。 你的回复使我的问题的求解向前走了一步:知道GetDC取得控制台程序的DC后就可用canvas来画点。为此非常高兴。(我并不求快,只希望弄清原理。)。 续我前面31贴:用delphi getDC不难,如uses windows,SysUtils;Var dc: HDC;begin dc := getdc(0); //0表示得到屏幕场景 // ???这里如何写,end.就行了,但进一步怎么写,才能在屏幕上画个点或线?就不知道了! 在网上搜到一个,但运行后没有出来任何图形,不知道为什么?以下代码以光标所在位置为中心,在全屏幕上绘制一个十字架:var FullscreenCanvas:TCanvas; DC:HDC;begin DC:=GetDC(0);//取得屏幕的DC,参数0指的是屏幕 FullscreenCanvas := TCanvas.Create;//创建一个CANVAS对象 FullscreenCanvas.Handle := DC; //将画布关联到屏幕句柄,以便能做图 FullscreenCanvas.MoveTo(mouse.CursorPos.X,0); FullscreenCanvas.LineTo(mouse.CursorPos.x,768); FullscreenCanvas.MoveTo(0,Mouse.CursorPos.Y); FullscreenCanvas.LineTo(1024,Mouse.CursorPos.y);end; 问题已经解决!结贴。感谢各位,尤其是mwy654321的启发特别重要! 获得结果的程序如下:program TestGraphic;{$APPTYPE CONSOLE}Uses Windows,Graphics;Var DC: HDC; ScreenCanvas : tcanvas;Begin DC:=GetDC(0); //取得屏幕的DC,参数0指的是屏幕 ScreenCanvas := TCanvas.Create; //创建一个CANVAS对象 ScreenCanvas.Handle := DC; //将画布关联到屏幕句柄,以便能做图 ScreenCanvas.Pen.Color := Clred; ScreenCanvas.MoveTo( 0, 0 ); ScreenCanvas.LineTo( 1023, 767 ); Readln;End.把被uses的unit减少成为2个!这应该差不多了。(这是画线,画点自然也会行的) 我最后认为,控制台画图非常重要,介绍计算机图形学,如果在Windows下,就要从这里开始。 求助~~数据库插入的时候提示错误。。 钩子函数控制键盘输入 求QQ 华夏 安全区跟非安全的基址 Access连接问题 delphi+sql server2000+win2000登录问题 监控数据、网络流量 请问:Delphi8,delphi9,delphi2005,delphi.net是四个版本吗,请简单介绍一下 我用动态数组动态的建了几个label可是我用什么办法可以删除他们呢: 光盘加密的问题 库存问题: Delphi7 Treeview控件使用? delphi谁帮我看看这个权限啊
这是它里面画图的
unit IWUnit1;
{PUBDIST}interfaceuses
IWAppForm, IWApplication, IWTypes, Classes, Controls, IWControl,
IWCompDynamicChart, IWCompRectangle, IWCompButton, IWExtCtrls, Graphics,
jpeg;type
TformMain = class(TIWAppForm)
IWImage1: TIWImage;
procedure IWImage1MouseDown(ASender: TObject; const AX, AY: Integer);
procedure IWAppFormCreate(Sender: TObject);
public
end;implementation
{$R *.dfm}uses
ServerController;procedure TformMain.IWImage1MouseDown(ASender: TObject; const AX,
AY: Integer);
var mCanvas:TCanvas;
begin
mCanvas:=IWImage1.Picture.Bitmap.Canvas;
mCanvas.Pen.Width:=2;
mCanvas.Pen.Color:=clRed;
mCanvas.LineTo(Ax,AY);
end;procedure TformMain.IWAppFormCreate(Sender: TObject);
begin
IWImage1.Picture.LoadFromFile('d:\test.bmp');
end;end.
begin
writeln('Hello,中国!');readln;
end.就是一个完整的Delphi程序!汉字都能显示,一个点会显示不了吗?
是否指的非GUI程序?一边就是canvas.point,canvas.line
SysUtils;begin
{ TODO -oUser -cConsole Main : Insert code here }
end.你在begin end. 之间填入要做的事情,例如填入writeln('Hello,中国!');readln;屏幕上就会显示Hello,中国!非常简单。如果不画图形,只学Pascal的语法,这样就是入门了。我现在问,既然汉字“中国”都能显示,是否能画一个点?
在单元Sysutils中没有任何画图程序,需要另加,
我想知道,为了画一个像素,最少要另加几个单元?什么单元?
控制台程序在Delphi中一般称为Console App
在Console程序中“画图”至少让我想到上个世纪90年代,那时候Windows远没有现在流行
当时的环境是UCDOS,最流行的软件是金山WPS
对了,在Console程序中画图,是不是DOS版WPS那样的?
UCDOS有一个特显模块(tx.com),如果有必要,楼主可参考一下
就是力求程序简单,容易入门,同时也是为了弄清加在unit前面被uses的每个单元的意义。例如,为了简单,对于我前面那个程序,标题行(program Project1;)可以不要,
被uses的Sysutils单元也是不必要的,可以简化成:{$APPTYPE CONSOLE}
begin
write('hello!');readln;
end.readln不写也是行的,它只是为了保持显示页面,否则一闪就回到操作系统,但语句{$APPTYPE CONSOLE}不可省去,否则出错!究竟用到其中什么东西,还有待考察。我就是希望类似这样,弄清加在delphi每个unit前面被uses的每个单元的意义,及
被自动插入程序中的每一个语句的意义。这种要求对DOS程序是完全做得到的,但进入Windows编程后大家都不提了。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}end.我想弄清的就是uses语句中每一项的用途。
希望得到楼上各位高手的帮助,其中包括我在本帖中提出的原始问题。
windows,SysUtils;
Var
dc: HDC;
begin
dc := getdc(0); //0表示得到屏幕场景 // ???这里如何写,end.就行了,但进一步怎么写,才能在屏幕上画个点或线?就不知道了!
var
FullscreenCanvas:TCanvas;
DC:HDC;
begin
DC:=GetDC(0);//取得屏幕的DC,参数0指的是屏幕
FullscreenCanvas := TCanvas.Create;//创建一个CANVAS对象
FullscreenCanvas.Handle := DC; //将画布关联到屏幕句柄,以便能做图
FullscreenCanvas.MoveTo(mouse.CursorPos.X,0);
FullscreenCanvas.LineTo(mouse.CursorPos.x,768);
FullscreenCanvas.MoveTo(0,Mouse.CursorPos.Y);
FullscreenCanvas.LineTo(1024,Mouse.CursorPos.y);
end;
Windows,Graphics;
Var
DC: HDC;
ScreenCanvas : tcanvas;
Begin
DC:=GetDC(0); //取得屏幕的DC,参数0指的是屏幕
ScreenCanvas := TCanvas.Create; //创建一个CANVAS对象
ScreenCanvas.Handle := DC; //将画布关联到屏幕句柄,以便能做图
ScreenCanvas.Pen.Color := Clred;
ScreenCanvas.MoveTo( 0, 0 );
ScreenCanvas.LineTo( 1023, 767 );
Readln;
End.把被uses的unit减少成为2个!这应该差不多了。(这是画线,画点自然也会行的)