ISSprite

DLL ISSprite 0.0.7.48 #32

Нет прав для скачивания

Shegorat

Lord of Madness
Администратор
Пользователь Shegorat разместил новый ресурс:

ISSprite - аналог botva2, но с большим функционалом

ISSprite - аналог botva2, библиотека для работы с изображениями.

Умеет практически всё, что умеет ботва, и даже больше, включая работу со спрайтами, создание прозрачных форм, а так же отрисовку текстов.
Проект давно не обновлялся, поэтому я решил его выложить в массы. Возможно когда-нибудь я всё же сподоблюсь переписать эту либу на плюсы и поправить несколько косяков.

З.Ы. Некоторые (многие) примеры устарели, а мне лень писать новые.
З.З.Ы. Не тестировал на новых версиях инно
З.З.З.Ы. Не...
Узнать больше об этом ресурсе...
 
Последнее редактирование:

Nemko

Дилетант
Модератор
Нашел у себя на HDD чуть примеров(самопальных модулей) с ProgressBar'ами(разные с растяжением и без него, Pie'Bar'ом), TrackBar'ом (как у botva2), Splash(ток через библиотеку IS Sprite, но может криво сделано), CheckBox'ы(не доработано). Плюс информация по функциям и процедурам на "русском"(не судите строго за ошибки орфографии и в терминологии, я не программист и необразованный :pardon:). Может кому пригодится...
 

Вложения

ffmla

Участник
Thank you for the Sprite library and its examples,@Shegorat.:drinks:.

If you like to update or add some features to this sprite for the extraboost..!.
I'll request you to add feature called WizardTranslucent{Like recent update of Steam UI}.:happy:
 

ffmla

Участник
Guys,Help needed for some functions:help:.
I can't understand what's the use of it?:scratchhead:.
Код:
1.procedure spShdSetCharacterExtra(hText: Longword; lpCharExtra: Integer);
  external 'spShdSetCharacterExtra@{tmp}\ISSprite.dll stdcall delayload';

2.procedure spShdSetTag(hText: Longword; lpText: PAnsiChar);
  external 'spShdSetTag@{tmp}\ISSprite.dll stdcall delayload';
Any example script for the above functions?.

Thanks in advance...!:greeting:
 

Nemko

Дилетант
Модератор
ffmla, the Tag property is provided for the convenience of developers. It can be used for storing text(PAnsiChar) and get text(PAnsiChar):
procedure spShdSetTag(hText: Longword; lpText: PAnsiChar); external 'spShdSetTag@{tmp}\ISSprite.dll stdcall delayload';
procedure spShdGetTag(hText: Longword; var lpText: PAnsiChar; iBuffSize: Longint); external 'spShdSetTag@{tmp}\ISSprite.dll stdcall delayload';
 

ffmla

Участник
If you guys have a time,Please take a look....!
struct at image form creation function.

In Botva function,{LibCreateFormFromImage & _CreateFormFromImage} used to create Image wizards.By the same way,is there any function avail in ISsprite..?
If there,Please post some examples.

Thanks in advance...!

Purpose: want to show a image when I click the info button.
 
Последнее редактирование:

YURSHAT

Тех. админ
Администратор
ffmla, something, like this
Код:
#include "issprite.iss"

[Setup]
AppName=MyApp
AppVername=MyApp
DefaultDirName={pf}\MyApp
OutputDir=.

[Files]
Source: KrinkelsTeam.png; DestDir: {tmp}; Flags: dontcopy
Source: ISSprite.dll; DestDir: {tmp}; Flags: dontcopy;

[Code]
var
  InfoButton: TNewButton;
  InfoForm: TSetupForm;

procedure CloseInfo(Sender: TObject);
begin
  InfoForm.Close;
end;

procedure ShowInfo(Sender: TObject);
begin
  InfoForm := CreateCustomForm;
  try
    with InfoForm do
    begin
      BorderStyle := bsNone;
      ClientWidth := ScaleX(500);
      ClientHeight := ScaleY(258);
      Position := poScreenCenter;
      OnClick := @CloseInfo;
    end;

    spImgLoadImage(InfoForm.Handle, PAnsiChar(ExpandConstant('{tmp}\Krinkelsteam.png')), 0, 0, 500, 258, True, True);
    spImgCreateImageForm(InfoForm.Handle, True);

    spApplyChanges(InfoForm.Handle);
    InfoForm.ShowModal;
  finally
    InfoForm.Free;
  end;
end;

procedure InitializeWizard();
begin
  ExtractTemporaryFile('ISSprite.dll');
  ExtractTemporaryFile('KrinkelsTeam.png');

  spInitialize(true, false);

  InfoButton := TNewButton.Create(WizardForm);
  with InfoButton do
  begin
    Parent := WizardForm;
    SetBounds(ScaleX(8), ScaleY(325), ScaleX(129), ScaleY(25));
    Caption := 'INFO';
    OnClick := @ShowInfo;
  end;
end;

procedure DeinitializeSetup();
begin
  spShutdown;
end;
 

ffmla

Участник
Nice example. Thankyou very much...

I'll try to make a timer to close the info form without clicking the image to close the form.but still the image shown.it doesn't close with timer....any help.
 

nik1967

Old Men
Проверенный
ffmla,
Код:
#include "issprite.iss"

[Setup]
AppName=MyApp
AppVername=MyApp
DefaultDirName={pf}\MyApp
OutputDir=.

[Files]
Source: 5.png; DestDir: {tmp}; Flags: dontcopy;
Source: ISSprite.dll; DestDir: {tmp}; Flags: dontcopy;

[Code]
var
  InfoButton: TNewButton;
  InfoForm: TSetupForm;
  Timer: TTimer;

procedure CloseInfo(Sender: TObject);
begin
  Timer.Enabled:= false;
  InfoForm.Close;
end;

procedure ShowInfo(Sender: TObject);
begin
  InfoForm:= CreateCustomForm;
  try
    with InfoForm do begin
      BorderStyle:= bsNone;
      ClientWidth:= ScaleX(500);
      ClientHeight:= ScaleY(258);
      Position:= poScreenCenter;
      OnClick:= @CloseInfo;
    end;

    spImgLoadImage(InfoForm.Handle, PAnsiChar(ExpandConstant('{tmp}\5.png')), 0, 0, 500, 258, True, True);
    spImgCreateImageForm(InfoForm.Handle, True);

    spApplyChanges(InfoForm.Handle);

    Timer.Enabled:= true;

    InfoForm.ShowModal;
  finally
    InfoForm.Free;
  end;
end;

procedure InitializeWizard();
begin
  ExtractTemporaryFile('ISSprite.dll');
  ExtractTemporaryFile('5.png');

  spInitialize(true, false);

  InfoButton:= TNewButton.Create(WizardForm);
  with InfoButton do begin
    Parent:= WizardForm;
    SetBounds(ScaleX(8), ScaleY(325), ScaleX(129), ScaleY(25));
    Caption:= 'INFO';
    OnClick:= @ShowInfo;
  end;

  Timer:= TTimer.Create(WizardForm);
  with Timer do begin
    Interval:= 2000;
    OnTimer:= @CloseInfo;
    Enabled:= false;
  end;
end;

procedure DeinitializeSetup();
begin
  spShutdown;
end;
 

Nemko

Дилетант
Модератор
С разрешения Автора, выкладываю ранние сборки ISSprite. Ранние версии немного похудели на функционал, но они более стабильны (для тек кто часто перерисовывает окна, утечки памяти нет). Модули переписал (под себя, не судите строго) и немного дополнил:

VT build_27: ссылка.
VT build_40:ссылка.
 

Вложения

ffmla

Участник
Hi Nemko..!
Which version has the memory leak problem.
Shegorat Posted Build31.now you give 27 & 40...

P.S. Only one noticed with build.31 when i double click the labels on the installer, then buttons and checkbox freezes for 5+ sec.
 

Nemko

Дилетант
Модератор
ffmla, with new dll if create a timer and constantly redraw a window(with created Btn and Img), the process in the system begins to increase the amount of memory consumed, which leads to a malfunction in the GDI+. In the old versions, everything works well. Sorry my English, i use Google translate.

P.S.: This version is 0.0.7.46 (old)
 

zettend

Старожил
@Nemko, а вы не думали сделать полный синхрон с ботвой? Грубо говоря дать возможность юзеру заменить лишь DLL?
И чем отличается с буфером и без?
 

Shegorat

Lord of Madness
Администратор
Полный синхрон сделать не получится. Там есть некоторые отличия в API, и логике работы.
Загрузка изображений из буфера позволяет не извлекать изображение во временную папку
 

Nemko

Дилетант
Модератор
zettend, я все реже пользуюсь botva2, думаю перенести все контролы с botva2 (сделанные South) и дополнить новыми. Процесс затратный по времени (я сталкиваюсь с багами, которые нужно решать через WinApi, а там я не силен), не хотелось бы не забросить, пока что готовы:
  • TSwitch
  • TTrackBar
  • TProgressBar
  • Splash
 

Shegorat

Lord of Madness
Администратор
В свободное время я переписываю ISSprite. Точнее пишу с нуля. Там будет другой движок и немного другая идеология. Постараюсь сохранить совместимость с текущей версией.
Собственно возник вопрос - какие дополнительные функции и возможности вам требуются?
 
Сверху