【发布时间】:2012-02-04 17:38:02
【问题描述】:
我有一个包含 2 个表单的应用程序,每个表单和应用程序都有单独的图标。在 Form1BitBtn1.Click 上,Form2 显示为非模态,在 Form1BitBtn2.Click 上,Form1 已关闭。在 Form2BitBtn1.Click 上 Form2 已关闭并且 Form2BitBtn2.Click Form1 已关闭。它工作正常。但问题是在 Windows 7 任务栏中 Form1 图标是模糊的,另一个问题是当 Form2 使用 Form1BitBtn1 显示时。单击应用程序仅显示 Form1 图标而不显示 Form2 图标。 请帮帮我。
这里是我的项目文件的下载链接是“http://hotfile.com/dl/140219264/04ce49c/Delphi_XE2_Form_Handler.7z.html”
我的代码如下:
unit KoushikHalder01;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Vcl.ExtCtrls,
Vcl.ComCtrls;
type
TForm01 = class(TForm)
BitBtn01: TBitBtn;
BitBtn02: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure FormHide(Sender: TObject);
procedure BitBtn01MouseEnter(Sender: TObject);
procedure BitBtn02MouseEnter(Sender: TObject);
procedure BitBtn01MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BitBtn02MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BitBtn01MouseLeave(Sender: TObject);
procedure BitBtn02MouseLeave(Sender: TObject);
procedure BitBtn02Click(Sender: TObject);
procedure BitBtn01Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form01: TForm01;
implementation
{$R *.dfm}
uses KoushikHalder02;
procedure TForm01.BitBtn01Click(Sender: TObject);
begin
Doublebuffered := True;
Form02.Show;
if Form01.Visible = true then Form01.BringToFront;
end;
procedure TForm01.BitBtn01MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
BitBtn01.Font.Color :=10379745;
end;
procedure TForm01.BitBtn01MouseEnter(Sender: TObject);
begin
BitBtn01.Font.Color :=16711825;
end;
procedure TForm01.BitBtn01MouseLeave(Sender: TObject);
begin
BitBtn01.Font.Color :=15756035;
end;
procedure TForm01.BitBtn02Click(Sender: TObject);
begin
Form01.Close;
end;
procedure TForm01.BitBtn02MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
BitBtn02.Font.Color :=10379745;
end;
procedure TForm01.BitBtn02MouseEnter(Sender: TObject);
begin
BitBtn02.Font.Color :=16711825;
end;
procedure TForm01.BitBtn02MouseLeave(Sender: TObject);
begin
BitBtn02.Font.Color :=15756035;
end;
procedure TForm01.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Doublebuffered := True;
end;
procedure TForm01.FormCreate(Sender: TObject);
begin
Doublebuffered := True;
end;
procedure TForm01.FormHide(Sender: TObject);
begin
Doublebuffered := True;
end;
procedure TForm01.FormShow(Sender: TObject);
begin
Doublebuffered := True;
end;
end.
【问题讨论】:
-
请编辑您的问题以包含一个小屏幕截图或显示您所问内容的内容。 “Windows 7 任务栏中模糊的 Delphi 表单图标”很难从模糊的描述和一些完全不相关的代码中理解,您希望人们编译和运行以便甚至(也许)知道您在问什么。这里的人们想要提供帮助,但您需要实际解释您想要帮助的内容才能使其成为可能。 :)(而且您发布的代码仅在几个事件中重复了几件事;它们都是
DoubleBuffered := True/Font.Color := <something>无缘无故地完成。) -
澄清一下,
DoubleBuffered := True可以在 Object Inspector 中完成一次(甚至可以在FormCreate中完成一次),并且每隔一段时间就会浪费精力它。在您在这里提出的任何问题的范围内,更改Font.Color都是没有意义的(无论是什么,它都与字体颜色更改无关)。没有任何代码适用于与应用程序或窗口图标相关的任何问题。 -
@Koushik - 尽管您发布了所有代码,但这个问题是否与 this one 重复?
-
@Sertac 在我看来非常像。令人欣慰的是,您的分析和我的分析在很大程度上是一致的。
-
@David - 是的,现在我确定接受了。确实如此!..
标签: delphi delphi-xe2