botva2

DLL botva2 0.9.9.156

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

sergey3695

Ветеран
Модератор
:D http://krinkels.org/resources/botva2.47/
Код:
;Created by South.Tver 02.2010

;пример работы с BtnGetText, BtnSetText, BtnSetFontColor, BtnSetTextAlignment

#include "Modules\botva2.iss"

[Setup]
AppName=BtnPrint by South.Tver
AppVerName=BtnPrint by South.Tver
DefaultDirName={pf}\BtnPrint
OutputBaseFilename=setup

[Files]
Source: Files\*; Flags: dontcopy

[Code]
var
  hBtn:HWND;
  Form: TSetupForm;

procedure BtnClick(hBtn:HWND);
begin
  Form.ShowModal;
end;

function InitializeSetup:boolean;
begin
  if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
  if not FileExists(ExpandConstant('{tmp}\CallbackCtrl.dll')) then ExtractTemporaryFile('CallbackCtrl.dll');
  if not FileExists(ExpandConstant('{tmp}\CallbackCtrl.dll')) then ExtractTemporaryFile('CallbackCtrl.dll');
  if not FileExists(ExpandConstant('{tmp}\button2.png')) then ExtractTemporaryFile('button2.png');
  if not FileExists(ExpandConstant('{tmp}\1.png')) then ExtractTemporaryFile('1.png');
  Result:=True;
end;

#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

const
  GWL_WNDPROC = -4;
  WM_NCLBUTTONDOWN = $00A1;
type
  LPARAM = Integer;
  WPARAM = Integer;
  LRESULT = Integer;
  TFNWndProc = Integer;
var
  OldWindowProc: Longint;

function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall';
function CallWindowProc(lpPrevWndFunc: TFNWndProc; hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; external 'CallWindowProc{#A}@user32.dll stdcall';

function WindowProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT;
begin
case Msg of
  WM_NCLBUTTONDOWN:
begin
  Msg := 0;
if Form.Visible then
  Form.Close;
end;
end;
  Result := CallWindowProc(OldWindowProc, hWnd, Msg, wParam, lParam);
end;

procedure InitializeWizard;
begin
  with WizardForm do begin
    InnerNotebook.Hide;
    OuterNotebook.Hide;
    Bevel.Hide;
    Width:= ScaleX(700);
    Height:= ScaleY(700);
    NextButton.Top:=ClientHeight-ScaleY(50);
    CancelButton.Top:=ClientHeight-ScaleY(50);
  end;
    Form := CreateCustomForm;
  with Form do
  begin
    Width := ScaleX(750);
    Height := ScaleY(375);
    CenterInsideControl(WizardForm, False);
  end;
  CreateFormFromImage(Form.Handle,ExpandConstant('{tmp}\1.png'));
  ImgApplyChanges(Form.Handle);
  OldWindowProc := SetWindowLong(Form.Handle, GWL_WNDPROC, CallbackAddr('WindowProc'));

  hBtn:= BtnCreate(WizardForm.Handle,-50,-50,WizardForm.ClientWidth+100,WizardForm.ClientHeight+100,ExpandConstant('{tmp}\button2.png'),18,True);
  BtnSetFontColor(hBtn,$DAE369,$FF0000,$00FF00,$0000FF);
  BtnSetEvent(hBtn,BtnClickEventID,WrapBtnCallback(@BtnClick,1));
end;

procedure DeinitializeSetup;
begin
  SetWindowlong(Form.Handle, GWL_WNDPROC, OldWindowProc);
  gdipShutdown;
end;
Во вложении пример.
 

Вложения

Последнее редактирование:

ShadeUa

Мимокрокодил
:D http://krinkels.org/resources/botva2.47/
Код:
;Created by South.Tver 02.2010

;пример работы с BtnGetText, BtnSetText, BtnSetFontColor, BtnSetTextAlignment

#include "Modules\botva2.iss"

[Setup]
AppName=BtnPrint by South.Tver
AppVerName=BtnPrint by South.Tver
DefaultDirName={pf}\BtnPrint
OutputBaseFilename=setup

[Files]
Source: Files\*; Flags: dontcopy

[Code]
var
  hBtn:HWND;
  Form: TSetupForm;

procedure BtnClick(hBtn:HWND);
begin
  Form.ShowModal;
end;

function InitializeSetup:boolean;
begin
  if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
  if not FileExists(ExpandConstant('{tmp}\CallbackCtrl.dll')) then ExtractTemporaryFile('CallbackCtrl.dll');
  if not FileExists(ExpandConstant('{tmp}\CallbackCtrl.dll')) then ExtractTemporaryFile('CallbackCtrl.dll');
  if not FileExists(ExpandConstant('{tmp}\button2.png')) then ExtractTemporaryFile('button2.png');
  if not FileExists(ExpandConstant('{tmp}\1.png')) then ExtractTemporaryFile('1.png');
  Result:=True;
end;

#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

const
  GWL_WNDPROC = -4;
  WM_NCLBUTTONDOWN = $00A1;
type
  LPARAM = Integer;
  WPARAM = Integer;
  LRESULT = Integer;
  TFNWndProc = Integer;
var
  OldWindowProc: Longint;

function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall';
function CallWindowProc(lpPrevWndFunc: TFNWndProc; hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; external 'CallWindowProc{#A}@user32.dll stdcall';

function WindowProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT;
begin
case Msg of
  WM_NCLBUTTONDOWN:
begin
  Msg := 0;
if Form.Visible then
  Form.Close;
end;
end;
  Result := CallWindowProc(OldWindowProc, hWnd, Msg, wParam, lParam);
end;

procedure InitializeWizard;
begin
  with WizardForm do begin
    InnerNotebook.Hide;
    OuterNotebook.Hide;
    Bevel.Hide;
    Width:= ScaleX(700);
    Height:= ScaleY(700);
    NextButton.Top:=ClientHeight-ScaleY(50);
    CancelButton.Top:=ClientHeight-ScaleY(50);
  end;
    Form := CreateCustomForm;
  with Form do
  begin
    Width := ScaleX(750);
    Height := ScaleY(375);
    CenterInsideControl(WizardForm, False);
  end;
  CreateFormFromImage(Form.Handle,ExpandConstant('{tmp}\1.png'));
  ImgApplyChanges(Form.Handle);
  OldWindowProc := SetWindowLong(Form.Handle, GWL_WNDPROC, CallbackAddr('WindowProc'));

  hBtn:= BtnCreate(WizardForm.Handle,-50,-50,WizardForm.ClientWidth+100,WizardForm.ClientHeight+100,ExpandConstant('{tmp}\button2.png'),18,True);
  BtnSetFontColor(hBtn,$DAE369,$FF0000,$00FF00,$0000FF);
  BtnSetEvent(hBtn,BtnClickEventID,WrapBtnCallback(@BtnClick,1));
end;

procedure DeinitializeSetup;
begin
  SetWindowlong(Form.Handle, GWL_WNDPROC, OldWindowProc);
  gdipShutdown;
end;
Во вложении пример.
О знакомый ник , кстати я перепроверил тот скрипт , чучуть розобрался но все ровно ошибка , но другого характера
оо
 

Вложения

AtotIK

Новичок
Как программно нажать на кнопку, нарисованную с помощью Ботвы?
 

sergey3695

Ветеран
Модератор
AtotIK, скачать библиотеку и посмотреть примеры. Там и кнопки и не кнопки.
 

South

Знаток
Проверенный
отдам исходники в хорошие руки
Shegorat сегодня/завтра в личку ссылку кину
ЗЫ купил NAS копирую мульты/фильмы/фотки. комп готовится к удалению из квартиры. все исходники были забэкаплены на CD/DVD. все диски уже выкинул. что было важное скопировал пока на комп. теперь раздаю, чтобы удалить можно было :)
 
Последнее редактирование:

Shegorat

Lord of Madness
Администратор
South
Приветствую, рад тебя видеть. Где пропадал?

Короче, есть исходники, заниматься ими времени нет. Если найдутся желающие, которые докажут, что смогут продолжить дело, милости просим
От исходников не откажусь, может почерпну чего интересного. А вот поддерживать и развивать не знаю.
Я делал собственный аналогичный проект с блэкджеком и шлюхами, приватный (возможно потом будет открытым). Пример инсталлятора на нем можно видеть здесь. Правда скрипт не закончен, и там очень старая версия либы. Новая версия лучше оптимизирована и имеет больший функционал.

короче, хорош дурью маятся, пора свой инсталлер писать (если будете, то я участвую)
пускай с минимальными возможностями, но это дело наживное
Это конечно все интересно, но с ним много проблем возникнет. Да и у меня к примеру нет сейчас на это времени.
 

Shift85

Старожил
Подскажите пожалуйста как сделать трэкбар через ботву на компонент листе и странице готовности?
 

Вложения

  • 319.3 KB Просмотры: 115
  • 320.1 KB Просмотры: 111

sergey3695

Ветеран
Модератор
Последнее редактирование:

sergey3695

Ветеран
Модератор
Т.к. уже vint56, все сделал. То вот. Подправил и прокрутка.
 

Вложения

  • 6.5 KB Просмотры: 39

sergey3695

Ветеран
Модератор
South, впервые вижу o_O А как тут сделано чтобы картинки выделялись при наведении на лейбл? Только это незнаю.
 
Последнее редактирование:

nik1967

Old Men
Проверенный
Кстати, я тоже.
Интересно было бы глянуть на реализацию.
 

vint56

Ветеран
Проверенный
sergey3695, пример если я правильно понял
http://rghost.ru/7mMt7H9jq
Присоединяюсь к nik1967, тоже интересно посмотреть
 
Последнее редактирование:

ReFLeXx

Новичок
sergey3695, Это отстроено только на ботве, т.е лейблы + кнопки. Вся нужная инфа для построения справа выводится.
 
Сверху