Screen ShotTại sao lỗi này tiếp tục làm rối tung thanh công cụ IDE2 của XE2?
Mã nguồn sau đây được sử dụng để tạo ra các lỗi trên. Tất cả những gì bạn phải làm là biên dịch chương trình và đảm bảo rằng IDE vẫn đang chạy (lỗi KHÔNG xảy ra nếu IDE bị đóng), nhấp vào nút 12 đến 15 lần và lỗi sẽ bật lên.
Khi lỗi đã xảy ra, hãy chuyển về IDE, tất cả các thanh công cụ cho IDE sau đó đã biến mất. Bạn phải tắt IDE và chạy lại, để chúng xuất hiện trở lại. Màn hình
Source Code
unit MainUnit;
interface
uses
Winapi.Windows, Winapi.Messages, Winapi.ShlObj, System.SysUtils,
System.Variants, System.Classes, System.StrUtils, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.StdCtrls;
type
TMainFrm = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainFrm: TMainFrm;
hDesktop: HWND;
implementation
{$R *.dfm}
function GetHandle(theHandle: HWND; NotUsed: NativeInt): LongBool; stdcall;
begin
if (theHandle <> 0) then
begin
hDesktop := FindWindowEx(FindWindowEx(theHandle, 0, 'SHELLDLL_DefView',
nil), 0, 'SysListView32', nil);
end;
Result := (hDesktop = 0);
end;
procedure TMainFrm.FormCreate(Sender: TObject);
var
lpss: TShellState;
begin
ZeroMemory(@lpss, SizeOf(lpss));
try
SHGetSetSettings(lpss, SSF_HIDEICONS, False);
finally
Button1.Caption := IfThen(lpss.fHideIcons, 'Show Icons', 'Hide Icons');
end;
EnumWindows(@GetHandle, 0);
Button1.Enabled := (hDesktop <> 0);
end;
procedure TMainFrm.Button1Click(Sender: TObject);
const
nCmdShow: array [Boolean] of NativeInt = (SW_HIDE, SW_SHOW);
var
lpss: TShellState;
begin
ZeroMemory(@lpss, SizeOf(lpss));
try
SHGetSetSettings(lpss, SSF_HIDEICONS, False);
ShowWindow(hDesktop, nCmdShow[lpss.fHideIcons]);
lpss.fHideIcons := (not BOOL(lpss.fHideIcons));
Button1.Caption := IfThen(lpss.fHideIcons, 'Show Icons', 'Hide Icons');
finally
SHGetSetSettings(lpss, SSF_HIDEICONS, True);
end;
end;
end.
Application Shot
Bất kỳ trợ giúp sẽ được đánh giá rất nhiều.
CẬP NHẬT
Các thanh công cụ IDE không còn biến mất, và lỗi không xuất hiện nữa, nhờ TOndrej cho các thông tin về tắt "Profiler thanh công cụ". Bây giờ tôi nhận được một nhấp nháy rất khó chịu mà đôi khi mất 10 đến 15 giây để trở lại bình thường.
Tôi đề nghị bạn thử XE Delphi, nếu bạn có thể, nó trông ổn định hơn. – none