Yukarıdaki hata üretmek için kullanılmıştır Bu hata neden XE2 IDE Araç Çubuklarını karıştırmaya devam ediyor?
kaynak kodunu
ekran görüntüsü. Tek yapmanız gereken programı derlemek ve IDE'nin hala çalıştığından emin olmak (IDE kapalıysa hata gerçekleşmez), 12 ile 15 arası tuşa tıklayın ve hata açılır.Hata oluştuğunda, tekrar IDE'ye geçin, IDE'nin tüm araç çubukları kayboldu. Yeniden görünmeleri için IDE'yi kapatıp tekrar çalıştırmanız gerekiyor.
Kaynak Kodu
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.
Uygulama Ekranı
Herhangi bir yardım büyük takdir Shot.
GÜNCELLEME
IDE araç çubukları artık kaybolur ve hata artık görünmüyor, "Profiler araç çubuğu" kapatma hakkında bilgi almak için TOndrej için teşekkürler. Şimdi bazen normale dönmek için 10-15 saniye süren çok sinir bozucu bir titreme alıyorum.
Delphi XE'yi denemenizi öneririm, eğer yapabiliyorsanız daha kararlı görünüyor. – none