Тестирование

Статус
В этой теме нельзя размещать новые ответы.

GVS276

Старожил
Проверенный
Всем привет, я тут решил собрать dll очень похожую на Surface.dll
И вообщем добился чего хотел, вообщем вот описание:
--- ISSurface - Библиотека создаёт эффект, как в Surface.dll
--- ISSurface полностью написана на Canvas`е (Умеет работать с bmp и jpg в данной версии png не поддерживается)
--- Ведутся работы над кнопками (уже почти реализованы)
--- Добавлено: Текст, картинки (чтобы можно было добавлять свою картинку)...
-----------------
Прошу протестировать библиотеку: Интересует нагрузка на ЦП (CPU), ошибки при выходе из сетапа и т.д.
Заранее говорю спасибо!
 

Вложения

Snoopak96

Старожил
AVMan,
1. При движении мыши по форме жутко поедает оперативную память и грузит одно ядро.
2. При выходе ошибка, деинициализации нет.
--- ISSurface полностью написана на Canvas`е (Умеет работать с bmp и jpg в данной версии png не поддерживается)
Если ты собрался делать 3D на этом, то лет через 200 получится =D
 

GVS276

Старожил
Проверенный
Snoopak96,
При движении мыши по форме жутко поедает оперативную память и грузит одно ядро.
Проблема решена!
При выходе ошибка, деинициализации нет.
Проблема решена!
Если ты собрался делать 3D на этом, то лет через 200 получится =D
доа =D / эт канвас - хоть что-то от него добился..[HR][/HR]P.S.: Спасибо за тест!
 
Последнее редактирование:

LexBell

Борода
Супер модератор
AVMan, С год назад один человек, ты помнишь его, наверное, делал нечто похожее. помню - было очень много позитива у окружающих по этому поводу. память - это есть, за 20 секунд слопала 150 метров оперативки, многовато, я думаю, но решаемо - просто забыл освобождать память после отрисовки изображения.кнопки таким путем у тебя вряд-ли получится. хотя.. можно при движении мыши двигать их на небольшое расстоянии. но инсталл и так лопает порядка 10% процессора, а если заставить его еще и считать постоянно положение кнопок, текстов, эдитов.. Не стоит оно того, лучше все-таки на директ иксе делать, он по крайней мере именно для этого и нужен.
 

sergey3695

Ветеран
Модератор
David.D.Rocco, Вроде все ок"ей :) Как я понял ты добавил поддержку .bmp изображений, сделал кнопку Info, пару надписей сделал для красоты. Ничего не упустил? А че ты отрисовку миниатюры не сделаещь с помощью dwmapi.dll?
 

sergey3695

Ветеран
Модератор
приведи пример как это сделать! :)
Я просто не знаю как это сделать правильно в 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 ////////////////////////
Использую это для скина (пробовал с разными. вроде все ок)
 

sergey3695

Ветеран
Модератор
На скрин посмотри. Я не просто эго залил. Тут не просто рабочая область (на миниатюре), но и рамка скина. Также прикольнее! :)
 

Godmode_1

Мимокрокодил
Hey guys!

I'm currently writing an audio extraction/injection tutorial based on Dragon Unpacker, and I'm looking for feedback regarding clarity, readability, usability etc.

The tutorial's purpose is getting audio files out of normally unaccessible game archives, recode them, and get them back into the game archives at the same location/offset. It's mainly a method for repackers to reduce the size of their repacks/standalones. KaOs group, for example, is most famous for applying this technique.

All required files are provided for you, and nothing needs to be installed in order for to work. If you want to take a look, here's a link:
audio_injection_tutorial.7z (password: godmode_off)

Planned changes (depending on feedback) include an example section for implementing the technique into Inno Setup, and more detailed explanations of the different steps ("what is our goal in this step?")

So if you're interested try it out and leave some feedback! It'll be greatly appreciated.

Regards,
Godmode
 

Godmode_1

Мимокрокодил
He means that it's easier to do but your methode is also not bad :)
Ah, now I get it, thanks!

If you (or anybody, generally speaking) want to give feedback on how to do it quicker or otherwise streamline the process, that would be awesome and a tremendous help!

Regards,
Godmode

EDIT: According to NeON this needs to be moved HERE. Can somebody do that please?
 
Последнее редактирование:

sergey3695

Ветеран
Модератор
Прошу протестировать: Свою форму выбора языка (версия 2)
Ссыль...
Насчет добавления в фак я еще подумаю.. 8-)
 

Mailchik

Старожил
Проверенный
sergey3695, Отлично. Но в чем особенность её? Вроде ничем не отличается от тех двух, которые присутствуют в FAQ.
 

sergey3695

Ветеран
Модератор
попробуй к своему примеру прикрутить скин. И почему к двум? Твой пример само-сабой, а вот свой я не точто визуально переделал, а сделал по другому принципу (избавился от ненужного перезапуска (если бы изменения были минимальны в структуре скрипта я бы и не загонялся на выкладывания здесь для тестирования)). Меня если честно интересует работа, нет ли каких ошибок (ошибок то и не должно быть) или недочетов (а вот про недочеты незнаю. Мог и поспешить. Давно в инно уже не работал. (дела)).И если не секрет кто тебе дал пример изменения формы? (просто интересно, можешь не отвечать, не принципиально как-то )
 

Mailchik

Старожил
Проверенный
sergey3695, почему бы нет? пример взят из папки examples. кстати в примере от restools со скином, я скин убрал. полный код:
Код:
; ЅЕ±ѕ: 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;
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху