請可以答答我嗎?
解决方案 »
- Delphi能实现这样的程序吗?
- 将16进制数C9,BA转换成字符串“上海”,该怎样做?有专门的函数吗
- 有谁知道FoxBoro 718Tc的通讯协议(与计算机)。
- 请问怎样进行远程开机关机??
- 我是DELPHI新手,请问大家,有没有类似VC知识库那样的站点,提供DELPHI程序源代码的。
- 关于locate的使用问题
- 动态调用ADO数据库的问题,怎样才能使其不设置ODBC直接在程序中设置路径就可连接的?
- 想认识几个Delphi朋友共同进步,来者有分!!!
- 如何用install sheild做数据库应用程序的安装,详细点..
- 菜鸟问题(4):哪位仁兄做过进销存软件,给个例子好吗?
- 怎样将字符串中的某几个字符删除?
- 如何用LOOKUP呢!
Good luck
ACTIVE:=TRUE;
好象是Active和AutoDectet吧,记不清了
//////////////////////////////////////////////////////////////
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls, ImgList, ShellApi;type
TForm1 = class(TForm)
Memo1: TMemo;
PopupMenu1: TPopupMenu;
mnuBold: TMenuItem;
mnuItalic: TMenuItem;
mnuUnderline: TMenuItem;
N1: TMenuItem;
mnuGoDelphi: TMenuItem;
mnuNewsletter: TMenuItem;
mnuForum: TMenuItem;
ImageList1: TImageList;
procedure mnuBoldDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
procedure mnuItalicDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
procedure mnuUnderlineDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
procedure mnuBoldMeasureItem(Sender: TObject; ACanvas: TCanvas;
var Width, Height: Integer);
procedure mnuGoDelphiDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
procedure mnuNewsletterDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
procedure mnuForumDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
procedure mnuBoldClick(Sender: TObject);
procedure mnuItalicClick(Sender: TObject);
procedure mnuUnderlineClick(Sender: TObject);
procedure mnuGoDelphiClick(Sender: TObject);
procedure mnuNewsletterClick(Sender: TObject);
procedure mnuForumClick(Sender: TObject);
private
procedure DrawItemText(X: integer;ACanvas: TCanvas;ARect: TRect;Text: string);
procedure DrawBar(ACanvas: TCanvas);
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.DrawBar(ACanvas: TCanvas);
var
lf : TLogFont;
tf : TFont;
begin
with ACanvas do begin
Brush.Color := clGray;
FillRect(Rect(0,0,20,150));
Font.Name := 'Tahoma';
Font.Style := Font.Style + [fsBold];
Font.Color := clWhite;
tf := TFont.Create;
try
tf.Assign(Font);
GetObject(tf.Handle, sizeof(lf), @lf);
lf.lfEscapement := 900;
lf.lfHeight := Font.Height - 2;
tf.Handle := CreateFontIndirect(lf);
Font.Assign(tf);
finally
tf.Free;
end;
TextOut(2, 115, 'delphi.about.com');
end;
end;procedure TForm1.DrawItemText(X: integer;ACanvas: TCanvas;ARect: TRect;Text: string);
begin
ARect.Left := X;
DrawText(ACanvas.Handle, PChar(Text), -1, ARect, DT_LEFT or DT_VCENTER or DT_SINGLELINE or DT_NOCLIP);
end;procedure TForm1.mnuBoldDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
var
ImgID: integer;
begin if Selected then
ACanvas.Brush.Color := clHighlight
else
ACanvas.Brush.Color := clMenu; ARect.Left := 20;
ACanvas.FillRect(ARect); if mnuBold.Checked then
ImgID := 1
else
ImgID := 0; ImageList1.Draw(ACanvas,22,ARect.Top + 2,ImgID); ACanvas.Font.Style := [fsBold];
DrawItemText(45,ACanvas,ARect,'Bold');
end;procedure TForm1.mnuItalicDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
var
ImgID: integer;
begin if Selected then
ACanvas.Brush.Color := clHighlight
else
ACanvas.Brush.Color := clMenu; ARect.Left := 20;
ACanvas.FillRect(ARect); if mnuItalic.Checked then
ImgID := 1
else
ImgID := 0;
ImageList1.Draw(ACanvas,22,ARect.Top + 2,ImgID); ACanvas.Font.Style := [fsItalic];
DrawItemText(45,ACanvas,ARect,'Italic');
end;procedure TForm1.mnuUnderlineDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
var
ImgID: integer;
begin if Selected then
ACanvas.Brush.Color := clHighlight
else
ACanvas.Brush.Color := clMenu; ARect.Left := 20;
ACanvas.FillRect(ARect); if mnuUnderline.Checked then
ImgID := 1
else
ImgID := 0;
ImageList1.Draw(ACanvas,22,ARect.Top + 2,ImgID); ACanvas.Font.Style := [fsUnderline];
DrawItemText(45,ACanvas,ARect,'Underline');
end;procedure TForm1.mnuBoldMeasureItem(Sender: TObject; ACanvas: TCanvas;
var Width, Height: Integer);
begin
Width := 140;
end;procedure TForm1.mnuGoDelphiDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin if Selected then
ACanvas.Brush.Color := clHighlight
else
ACanvas.Brush.Color := clMenu; ARect.Left := 20;
ACanvas.FillRect(ARect);
ACanvas.Font.Color := clGreen;
DrawItemText(45,ACanvas,ARect,'Go delphi.about.com');
ACanvas.Brush.Color := clGreen;
ACanvas.Rectangle(ARect.Left + 2,ARect.Top + 1,ARect.Left + 22,ARect.Bottom - 1);
ImageList1.Draw(ACanvas,24,ARect.Top + 2,mnuGoDelphi.ImageIndex);
end;procedure TForm1.mnuNewsletterDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
if Selected then
ACanvas.Brush.Color := clHighlight
else
ACanvas.Brush.Color := clMenu; ARect.Left := 20;
ACanvas.FillRect(ARect);
ACanvas.Font.Color := clBlue;
DrawItemText(45,ACanvas,ARect,'Get free Newsletter');
ACanvas.Brush.Color := clBlue;
ACanvas.Rectangle(ARect.Left + 2,ARect.Top + 1,ARect.Left + 22,ARect.Bottom - 1);
ImageList1.Draw(ACanvas,24,ARect.Top + 2,mnuNewsletter.ImageIndex); //when all the menu items are drawn we draw the 'delphi.about.com' bar
DrawBar(ACanvas);
end;procedure TForm1.mnuForumDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin if Selected then
ACanvas.Brush.Color := clHighlight
else
ACanvas.Brush.Color := clMenu; ARect.Left := 20;
ACanvas.FillRect(ARect);
ACanvas.Font.Color := clRed;
DrawItemText(45,ACanvas,ARect,'Discuss in Forum');
ACanvas.Brush.Color := clRed;
ACanvas.Rectangle(ARect.Left + 2,ARect.Top + 1,ARect.Left + 22,ARect.Bottom - 1);
ImageList1.Draw(ACanvas,24,ARect.Top + 2,mnuForum.ImageIndex);
end;procedure TForm1.mnuBoldClick(Sender: TObject);
begin
mnuBold.Checked := not mnuBold.Checked; if mnuBold.Checked then
Memo1.Font.Style := Memo1.Font.Style + [fsBold]
else
Memo1.Font.Style := Memo1.Font.Style - [fsBold];
end;procedure TForm1.mnuItalicClick(Sender: TObject);
begin
mnuItalic.Checked := not mnuItalic.Checked; if mnuItalic.Checked then
Memo1.Font.Style := Memo1.Font.Style + [fsItalic]
else
Memo1.Font.Style := Memo1.Font.Style - [fsItalic];
end;procedure TForm1.mnuUnderlineClick(Sender: TObject);
begin
mnuUnderline.Checked := not mnuUnderline.Checked; if mnuUnderline.Checked then
Memo1.Font.Style := Memo1.Font.Style + [fsUnderline]
else
Memo1.Font.Style := Memo1.Font.Style - [fsUnderline];
end;procedure TForm1.mnuForumClick(Sender: TObject);
begin
ShellExecute(Handle, 'open', 'http://delphi.about.com/mpboards.htm',nil,nil, SW_SHOWNORMAL);
end;procedure TForm1.mnuGoDelphiClick(Sender: TObject);
begin
ShellExecute(Handle, 'open', 'http://delphi.about.com',nil,nil, SW_SHOWNORMAL);
end;procedure TForm1.mnuNewsletterClick(Sender: TObject);
begin
ShellExecute(Handle, 'open', 'http://delphi.about.com/library/blnewsletter.htm',nil,nil, SW_SHOWNORMAL);
end;end.