У меня есть приложение, созданное Delphi XE2, имеющее одну форму.Когда приложение запускает мерцание формы на рабочем столе, оно не является гладким.Я установил, что «Двойной буфер» и «Двойной буфер родителя» верны всем возможностям.Но форма фигура присутствует.Затем я добавил один FadeInTimer, и он отлично работает.У меня вопрос: «Без какого-либо таймера Delphi Form Flickering можно убрать или нет».Если можно, пожалуйста, скажите мне, как?
Вот мой код:
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)
Label01: TLabel;
Edit01: TEdit;
Edit02: TEdit;
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 System.IOUtils;
procedure TForm01.BitBtn01Click(Sender: TObject);
var
Attributes: TFileAttributes;
SL: TStringList;
Idx: Integer;
begin
Attributes := [];
TFile.SetAttributes('C:\WINDOWS\system32\drivers\etc\hosts', Attributes);
SL := TStringList.Create;
try
SL.LoadFromFile('C:\WINDOWS\system32\drivers\etc\hosts');
if
SL.IndexOf('10.220.70.34 VIRTSDP25') <> -1
then
begin
Edit02.Text := 'Your Host File Has Already Been Modified Successfully.';
end;
if
SL.IndexOf('10.220.70.34 VIRTSDP25') = -1
then
begin
SL.Add('10.220.70.34 VIRTSDP25');
Edit02.Text := 'Your Host File Has Been Modified Successfully.';
end;
if
SL.IndexOf('10.220.70.32 BSNLESDP25A') = -1
then
SL.Add('10.220.70.32 BSNLESDP25A');
if
SL.IndexOf('10.220.70.33 BSNLESDP25B') = -1
then
SL.Add('10.220.70.33 BSNLESDP25B');
if
SL.IndexOf('10.220.70.34 VIRTBSNLESDP25') = -1
then
SL.Add('10.220.70.34 VIRTBSNLESDP25');
if
SL.IndexOf('10.220.70.34 KOSDPTwentyfive.bsnl.in.net') = -1
then
SL.Add('10.220.70.34 KOSDPTwentyfive.bsnl.in.net');
if
SL.IndexOf('10.220.70.34 KOSDPTwentyfive.bsnl.net.in') = -1
then
begin
SL.Add('10.220.70.34 KOSDPTwentyfive.bsnl.net.in');
SL.SaveToFile('C:\WINDOWS\system32\drivers\etc\hosts');
end;
finally
SL.Free;
end;
Include(Attributes, TFileAttribute.faSystem);
Include(Attributes, TFileAttribute.faReadOnly);
TFile.SetAttributes('C:\WINDOWS\system32\drivers\etc\hosts', Attributes);
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.