张志峰的博客

水滴石川,积少成多。

导航

2011年7月22日

摘要: Function NewColor(color1,color2:Tcolor):TColor; type TRGB=packed record R:Byte ; G:Byte ; B:Byte ; A:Byte ; end ; var p1:^TRGB ; p2:^TRGB ; P3:^TRGB ; begin Result := color1 ; P1 :=@color1 ; P2 :=@color2 ; P3 := @Result ; p3.R := (P1^.R+P2^.R) div 2 ; p3.G := (P1^.G+P2^.G) div 2 ; p3.B := (P1^.B+P2^ 阅读全文

posted @ 2011-07-22 14:20 ╰★张志峰★╮ 阅读(404) 评论(0) 推荐(0) 编辑

摘要: TShape组件的属性,事件和方法TImage组件的属性,事件和方法Paintbox组件的属性,事件和方法使用鼠标事件的绘图第 9章 图像图形应用编程9.1 图形应用编程本章主要是讲解图形图像对象的概念以及如何在程序运行时绘制图形图像等内容,主要是通过一些例子来讲解 Delphi 7.0 对图形图像强大的处理功能。在 Delphi 7.0中,专门定义了一组对象和部件用以绘制图形,完成一些简单的图像功能。利用这些对象、部件的方法,可以方便地绘制各种常用图形;通过设置它们的属性,得到不同风格的图形。另外,通过鼠标事件的定义,可以方便地设计图形绘制程序。9.1.1 画布对象属性在图形应用编程中,最常 阅读全文

posted @ 2011-07-22 10:24 ╰★张志峰★╮ 阅读(14215) 评论(0) 推荐(1) 编辑

2011年7月21日

摘要: RzComboBox_ProjectionType.Items.Clear; RzComboBox_ProjectionType.AddItemValue('三角形','0'); RzComboBox_ProjectionType.AddItemValue('原形','1'); RzComboBox_ProjectionType.ItemIndex := 0;procedure TRzComboBox.ClearItemsValues;begin Items.Clear; Values.Clear;end;procedure TR 阅读全文

posted @ 2011-07-21 09:54 ╰★张志峰★╮ 阅读(3220) 评论(0) 推荐(0) 编辑

2011年7月19日

摘要: procedure TForm1.FormCreate(Sender: TObject);begin pb := TPaintBox.Create(Self); pb.Parent := Self;end;procedure TForm1.Button1Click(Sender: TObject); begin pb.Canvas.Pen.Color := clBlue; pb.Canvas.Brush.Color := clRed; pb.Canvas.Rectangle(0,0,50,50);end; 阅读全文

posted @ 2011-07-19 14:58 ╰★张志峰★╮ 阅读(1723) 评论(0) 推荐(0) 编辑

摘要: 1.在窗体的public里写procedure WmMouseSheel(var msg:TWMMOUSEWHEEL);message WM_MOUSEWHEEL;函数。具体的实现部分如下: procedure TMapChildFrm.WmMouseSheel(var msg: TWMMOUSEWHEEL);var pt: TPoint;begin GetCursorPos(pt); //{这是获取的相对于屏幕的坐标} pt := ScreenToClient(pt); //{转换成本地坐标} if (pt.X>ScrollBox1.Left) and(pt.X<ScrollBo 阅读全文

posted @ 2011-07-19 14:06 ╰★张志峰★╮ 阅读(992) 评论(0) 推荐(0) 编辑

摘要: 前段时间在论坛里看了一篇关于剖析VCL结构的文件,其中不少高手的开怀畅谈让小辈们心里感觉非常的痛快!看完余又觉得不能光看,也该将自己的心得拿出来与大家分享,于是就边夜翻看VCL源码,终于将VCL如何实现DragDrop功能的过程弄个“基本明白”,其中可能会有不当之处,再加上小弟的文学水平也只是初中毕业,有些地方也许会表达不当,但其意思也基本上八九不离十了,故也请大家开怀畅言、批评指正,都是为了进步嘛!哈哈…… 虽然DragDock操作与DragDrop操作是密切相关,并且很大一部分操作是相同的,但本文暂且不讨论与DragDock有关的部分,留待下回分解或也给大家表现表现……………… 一、与Dr 阅读全文

posted @ 2011-07-19 10:07 ╰★张志峰★╮ 阅读(2556) 评论(0) 推荐(0) 编辑

摘要: 刷新一下 PaintBox1.Refresh;procedure TForm1.Button2Click(Sender: TObject); begin PaintBox1.Canvas.MoveTo(0,0); PaintBox1.Canvas.LineTo(100,100); end;procedure TForm1.Button3Click(Sender: TObject); begin PaintBox1.Canvas.Brush.Color := clBtnFace; PaintBox1.Canvas.FillRect(PaintBox1.ClientRect); 阅读全文

posted @ 2011-07-19 09:40 ╰★张志峰★╮ 阅读(3026) 评论(0) 推荐(0) 编辑

2011年7月18日

摘要: Delphi 的 TForm.FormStyle 具有 fsStayOnTop 属性,但只是对其程序本身而言的,也就是说只在此应用程序本身的窗口中是前端显示的,其他的程序的窗口仍然可以覆盖此类型的窗口。这是因为此窗口的父窗口是 TApplication 。要让悬浮窗口独立的显示在屏幕前端,应在创建窗口时将其父窗口设置为"桌面"。 Form2 := TForm2.CreateParented(GetDesktopWindow); CreateParented与Create的区别?CreateParented={ParentWindow=指定的窗口句柄,create(nil)} 阅读全文

posted @ 2011-07-18 18:28 ╰★张志峰★╮ 阅读(1921) 评论(1) 推荐(0) 编辑

2011年7月15日

摘要: 1、Invalidate介绍 void Invalidate( BOOL bErase = TRUE ); 该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘。这时Windows会在应用程序的消息队列中放置WM_PAINT消息。MFC为窗口类提供了WM_PAINT的消息处理函数OnPaint,OnPaint负责重绘窗口。视图类有一些例外,在视图类的OnPaint函数中调用了OnDraw函数,实际的重绘工作由OnDraw来完成。参数bErase为TRUE时,重绘区域内的背景将被擦除,否则, 阅读全文

posted @ 2011-07-15 15:29 ╰★张志峰★╮ 阅读(3615) 评论(0) 推荐(1) 编辑

摘要: 在Delphi中,可利用类Tcanvas的CopyRect方法实现图象的放大和缩小。其功能是将源画布上的一个指定矩形区域(简称源矩形)内的象素,拷贝到目的画布上的一个指定矩形区域(简称目的矩形)中。亦可称之为象素块复制。 由CopyMode属性确定拷贝的模式。在直接拷贝模式(cmSrcCopy)下,当源矩形与目的矩形相等时,图象不变;若源矩形大于目的矩形,图象则缩小;而当源矩形小于目的矩形时,图象便被放大(在目的矩形中扩展)。源矩形与目的矩形大小之比,决定图象的缩放倍数。CopyRect方法声明如下: Procedure CopyRect(const Dest: TRect; Canvas: 阅读全文

posted @ 2011-07-15 11:43 ╰★张志峰★╮ 阅读(6762) 评论(0) 推荐(0) 编辑