Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Если ты собрался делать 3D на этом, то лет через 200 получится =D--- ISSurface полностью написана на Canvas`е (Умеет работать с bmp и jpg в данной версии png не поддерживается)
Проблема решена!При движении мыши по форме жутко поедает оперативную память и грузит одно ядро.
Проблема решена!При выходе ошибка, деинициализации нет.
доа =D / эт канвас - хоть что-то от него добился..Если ты собрался делать 3D на этом, то лет через 200 получится =D
приведи пример как это сделать!А че ты отрисовку миниатюры не сделаещь с помощью dwmapi.dll
Я просто не знаю как это сделать правильно в Delphi. Брал твои исходники, думал как-нибудь впихнуть но у меня ошибка в инсталле была с библеотекой была уже не помню какая. Как-то бросил. Ну.. меня и так все устраиваетприведи пример как это сделать!![]()
////////////////////// Начало Taskbar ///////////////////////
type
TDwmThumbnailProperties = record
dwFlags: DWORD;
rcDestination, rcSource: TRect;
opacity: Byte;
fVisible, fSourceClientAreaOnly: BOOL;
end;
function DwmRegisterThumbnail(hwndDestination: HWND; hwndSource: HWND; var phThumbnailId: Longint): Longint; external 'DwmRegisterThumbnail@dwmapi.dll stdcall delayload';
function DwmUpdateThumbnailProperties(hThumbnailId: Longint; var ptnProperties: TDwmThumbnailProperties): Longint; external 'DwmUpdateThumbnailProperties@dwmapi.dll stdcall delayload';
function DwmIsCompositionEnabled(var pfEnabled: BOOL): Longint; external 'DwmIsCompositionEnabled@dwmapi.dll stdcall delayload';
function isWin6: boolean;
begin
if (GetWindowsVersion shr 24) < 6 then result:=false
else result:=true;
end;
function CompositionEnabled: boolean;
var
r: bool;
begin
if isWin6 then
if DwmIsCompositionEnabled(r) = 0 then result:=r
else result:=false;
end;
type
hDC=Longint;
TSize=record
cx:UINT;
cy:UINT;
end;
procedure InitWin6TaskBar;
var
ti:Longint;
tp:TDwmThumbnailProperties;
ClientRect:TRect;
begin
if CompositionEnabled then begin
with MainForm do begin
ClientWidth:=WizardForm.ClientWidth;
ClientHeight:=WizardForm.ClientHeight;
Left:=-ScaleX(1000);
Repaint;
Show;
end;
ClientRect.Right:=WizardForm.ClientWidth+ScaleX(8);
ClientRect.Bottom:=WizardForm.ClientHeight+ScaleY(35);
// для обычного (без скина (ниже))
// ClientRect.Right:=WizardForm.ClientWidth;
// ClientRect.Bottom:=WizardForm.ClientHeight;
DwmRegisterThumbnail(MainForm.Handle, WizardForm.Handle, ti);
tp.dwFlags := $10 or $8 or $1;
tp.fSourceClientAreaOnly := true;
tp.fVisible := true;
tp.opacity := 255;
tp.rcDestination := ClientRect;
DwmUpdateThumbnailProperties(ti, tp);
end;
end;
////////////////////// Конец Taskbar ////////////////////////
Процедура Win6TaskBarV1_2 так же сделана. Правда со скином я ее не пробовал.
Godmode_1, Well, for that matter, that is much more rapid programs, than the injectors, which are contained in the archive![]()
He means that it's easier to do but your methode is also not badAlthough I don't know what you mean by "rapid".![]()
He means that it's easier to do but your methode is also not bad![]()
; ЅЕ±ѕ: restools ( http://restools.hanzify.org )
; СЭКѕ InitializeLanguageDialog µДУГ·Ё.
; ЛьКЗТ»ёц±И УпСФ¶Ф»°їт ёьФзіцПЦµД Inno Setup КВјюЎЈ
; ·µ»ШЦµИз№ыОЄјЩ, УпСФ¶Ф»°їтЅ«І»»біцПЦ.
; ФЪХвёцКВјюЦРДгїЙТФК№УГ°ьАЁТФПВїШјюј°КфРФ
; TSelectLanguageForm = class(TSetupForm)
; property SelectLabel: TNewStaticText; read;
; property LangCombo: TNewComboBox; read;
; property OKButton: TNewButton; read;
; property CancelButton: TNewButton; read;
; property IconBitmapImage: TBitmapImage; read;
; end;
;
; function SelectLanguageForm: TSelectLanguageForm;
#ifndef IS_ENHANCED
#error Enhanced edition of Inno Setup (restools) is required to compile this script
#endif
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
DefaultGroupName=My Application
UninstallDisplayIcon={app}\MyProg.exe
SolidCompression=yes
Compression=lzma/ultra
OutputDir=userdocs:Inno Setup Examples Output
[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Types]
Name: "full"; Description: "full"
Name: "compact"; Description: "compact"
Name: "custom"; Description: "custom"; Flags: iscustom
[Components]
Name: "program"; Description: "app files"; Types: full compact custom; Flags: fixed
Name: "help"; Description: "help files"; Types: full
Name: "readme"; Description: "readme files"; Types: full
[Files]
Source: "compiler:Dll Pack\ISSkinU.dll"; DestDir: {app}; Flags: dontcopy
Source: "compiler:IS_Skin\Styles\Office2007.cjstyles"; DestDir: {tmp}; Flags: dontcopy
Source: "compiler:Examples\MyProg.exe"; DestDir: "{app}"; Components: program
Source: "compiler:Examples\MyProg1.chm"; DestDir: "{app}"; Components: help
Source: "compiler:Examples\Readme1.txt"; DestDir: "{app}"; Components: readme; Flags: isreadme
[Icons]
Name: "{group}\my application"; Filename: "{app}\MyProg.exe"
[B][[/B]code]
procedure LoadSkinU(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:ISSkinU.dll stdcall';
procedure UnloadSkinU(); external 'UnloadSkin@files:ISSkinU.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall';
function InitializeLanguageDialog(): Boolean;
var
h: Integer;
begin
h := SelectLanguageForm.ClientHeight;
ExtractTemporaryFile('Office2007.cjstyles');
LoadSkinU(ExpandConstant('{tmp}\Office2007.cjstyles'), '');
SelectLanguageForm.ClientHeight := h;
Result := True;
end;
procedure DeinitializeSetup();
begin
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkinU();
end;