botva2

DLL botva2 0.9.9.156

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

Alloc

Новичок
Спасибо за ответ. Я пробовал менять значение ItemHeight, но плавной прокрутки не было... Поставил напрямую значение ScrollOffset и вроде получилось. Спасибо большое за помощь, очень вам благодарен
 

Alloc

Новичок
Будьте добры, помогите еще с одним вопросом.



Как расширить границы самого CheckListBox'а (не картинки) В верху и внизу и пододвинуть ползунок правее?

Использую пример из Ботвы (CheckListBox_Example)
 

South

Знаток
Проверенный
Alloc,
Код:
//смещение основных объектов от краев чеклистбокса
#define FrameIndent  5
высоту самого чекбокса задавай кратной ItemHeight
 

Alloc

Новичок
Alloc,
Код:
//смещение основных объектов от краев чеклистбокса
#define FrameIndent  5
высоту самого чекбокса задавай кратной ItemHeight
спасибо большое!

Скажите еще пожалуйста как задать описание для каждого компонента в созданном при помощи Ботвы CheckListBox, что б при наведении оно высвечивалось рядом в label.. может у кого пример есть подобного скрипта, буду очень благодарен
 

Alloc

Новичок
Я нашел небольшой скрип который показывает описание для каждого компонента в CheckListBox... ну вот не получается никак его скрестить с примером ботвы (CheckListBox)... Не получается по тому, что в примере Ботвы (CheckListBox) нету события для айтема - OnMouseLeave.. есть только clbSetMouseItemEnterEvent... кому не трудно, помогите пожалуйста. Сам скрипт прикрепил к сообщению. Заранее спасибо.
 

Вложения

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

BerZerK

Мимокрокодил
Я вообще не пойму как ней пользоваться, куда папку закинуть?
 

AtotIK

Новичок
Привет всем. Подскажите как подружить создаваемые кнопки через botva2 и китайский/японский языки? Текст в них отображается "???".
Данные передаю при помощи такого кода, версия расширенная 5.5.1 (u).
Код:
procedure SetStateNewButtons();
begin
  with WizardForm.BackButton do
  begin
    BtnSetText(hBackBtn,PAnsiChar(Caption));
    BtnSetVisibility(hBackBtn,Visible);
    BtnSetEnabled(hBackBtn,Enabled);
  end;
  with WizardForm.NextButton do
  begin
    BtnSetText(hNextBtn,PAnsiChar(Caption));
    BtnSetVisibility(hNextBtn,Visible);
    BtnSetEnabled(hNextBtn,Enabled);
  end;
  with WizardForm.CancelButton do
  begin
    BtnSetText(hCancelBtn,PAnsiChar(Caption));
    BtnSetVisibility(hCancelBtn,Visible);
    BtnSetEnabled(hCancelBtn,Enabled);
  end;
  BtnSetText(hDirBrowseBtn,PAnsiChar(WizardForm.DirBrowseButton.Caption));
end;

procedure WizardFormBtnClick(hBtn:HWND);
var
  Btn:TButton;
begin
  case hBtn of
    hCancelBtn: Btn:=WizardForm.CancelButton;
    hNextBtn: Btn:=WizardForm.NextButton;
    hBackBtn: Btn:=WizardForm.BackButton;
    hDirBrowseBtn: Btn:=WizardForm.DirBrowseButton;
  end;
  Btn.OnClick(Btn);
  SetStateNewButtons;
  BtnRefresh(hBtn);
end;
Вижу, что проблема в PAnsiChar, но как решить не знаю.
 

cspp

Новичок
ребят , поиск по форуму чет не помог, надо заменить верхнюю картинку ( со 2й страницы где она появл ) WizardSmallImageFile

1ю я заменил, а вот верхнюю никак. картинка появл на 1й странице в футере, координаты меняются в пределах формы футера,
а мне надо заменить WizardSmallImageFile ну и растяжка в True там будет несложно . можно пример?
 

sergey3695

Ветеран
Модератор
cspp, ну это ж не ботва.
Код:
[Setup]
AppName=123
AppVersion=123
DefaultDirName={pf}\Sanctum
AppVerName=123
WizardSmallImageFile=1.bmp

[Code]
procedure InitializeWizard();
begin
  WizardForm.WizardSmallBitmapImage.Left:=0;
  WizardForm.WizardSmallBitmapImage.Width:=WizardForm.ClientWidth;
end;
 

cspp

Новичок
неа, я задал вопрос по ботве в теме ботвы, а админ создал отдельную тему

Код:
procedure InitializeWizard;
begin
  with WizardForm do begin
  
    WizardForm.PageNameLabel.Hide;
    WizardForm.PageDescriptionLabel.Hide; // тут спрячу текст наверху
   
  
  end;


  img:=ImgLoad(WizardForm.Handle,'cs1.jpg',0,0,231,250,True,True);

// вставили картинку на главной странице welcome
    
  img4:=ImgLoad(WizardForm.WizardSmallBitmapImage ????? не знаю ......    ,'cs2.jpg',0,0,350,400,True,False);

//  вот тут 2ю картинку надо отправить наверх. но она отображается в футере. смена координат
меняет их в пределах футера, а надо еще чтоб со 2й странице была видна, где smallimg

  ImgApplyChanges(WizardForm.Handle);

end;
 

sergey3695

Ветеран
Модератор
а админ создал отдельную тему
я создал. не врубился.
Код:
[Setup]
AppName=My Program
AppVersion=1.5
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
AppPublisher=YURSHAT
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Icons]
Name: {group}\My Program; Filename: {app}\MyProg.exe
[Files]
Source: botva2.dll; Flags: dontcopy
Source: WizardImage.png; Flags: dontcopy
Source: WizardSmalImage.png; Flags: dontcopy
[Code]
var
  SmallImage, WizardImage: Longint;
  PageNameLabel, PageDescriptionLabel: TLabel;
function ImgLoad(Wnd :HWND; FileName: PAnsiChar; Left, Top, Width, Height :integer; Stretch, IsBkg :boolean) :Longint; external 'ImgLoad@{tmp}\botva2.dll stdcall delayload';
procedure ImgSetVisibility(img :Longint; Visible :boolean); external 'ImgSetVisibility@{tmp}\botva2.dll stdcall delayload';
procedure ImgApplyChanges(h:HWND); external 'ImgApplyChanges@{tmp}\botva2.dll stdcall delayload';
procedure gdipShutdown;  external 'gdipShutdown@{tmp}\botva2.dll stdcall delayload';
function InitializeSetup: Boolean;
begin
  if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
  Result:=True;
end;
procedure InitializeWizard;
begin
  ExtractTemporaryFile('WizardImage.png');
  ExtractTemporaryFile('WizardSmalImage.png');
  WizardForm.WizardBitmapImage.Hide;
  WizardForm.WizardBitmapImage2.Hide;
  WizardForm.WizardSmallBitmapImage.Hide;
  WizardForm.PageNameLabel.Hide;
  WizardForm.PageDescriptionLabel.Hide;
  PageNameLabel := TLabel.Create(WizardForm);
  with PageNameLabel do begin
    SetBounds(ScaleX(24), ScaleY(10), ScaleX(405), ScaleY(14));
    AutoSize := False;
    WordWrap := False;
    Font.Style := [fsBold];
    Transparent := True;
    Parent := WizardForm.MainPanel;
  end;
  PageDescriptionLabel := TLabel.Create(WizardForm);
  with PageDescriptionLabel do begin
    SetBounds(ScaleX(40), ScaleY(26), ScaleX(389), ScaleY(25));
    AutoSize := False;
    WordWrap := True;
    Transparent := True;
    Parent := WizardForm.MainPanel;
  end;
  
  WizardImage:=ImgLoad(WizardForm.WelcomePage.Handle,ExpandConstant('{tmp}\WizardImage.png'),ScaleX(0), ScaleY(0),ScaleX(164),ScaleY(314),True,True);
  WizardImage:=ImgLoad(WizardForm.FinishedPage.Handle,ExpandConstant('{tmp}\WizardImage.png'),ScaleX(0), ScaleY(0),ScaleX(164),ScaleY(314),True,True);
  SmallImage:=ImgLoad(WizardForm.MainPanel.Handle,ExpandConstant('{tmp}\WizardSmalImage.png'),ScaleX(0), ScaleY(0),ScaleX(497),ScaleY(58),True,True);
  ImgApplyChanges(WizardForm.WelcomePage.Handle);
  ImgApplyChanges(WizardForm.FinishedPage.Handle);
  ImgApplyChanges(WizardForm.MainPanel.Handle);
end;
procedure CurPageChanged(CurPageID: Integer);
begin
  PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
  PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
  
  ImgSetVisibility(WizardImage,False);
  if CurPageID = wpWelcome then
  ImgSetVisibility(WizardImage,True);
  if CurPageID = wpFinished then
  ImgSetVisibility(WizardImage,True);
end;
procedure DeInitializeSetup();
begin
  gdipShutdown;
end;
 

sergey3695

Ветеран
Модератор
cspp, мда....не проверил. помню работал, а сейчас что-то сам удивился. но ничего. через одно место все что угодно заработает.
Код:
[Setup]
AppName=My Program
AppVersion=1.5
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

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

[Code]
function ImgLoad(Wnd :HWND; FileName: PAnsiChar; Left, Top, Width, Height :integer; Stretch, IsBkg :boolean) :Longint; external 'ImgLoad@{tmp}\botva2.dll stdcall delayload';
procedure ImgApplyChanges(h:HWND); external 'ImgApplyChanges@{tmp}\botva2.dll stdcall delayload';
procedure gdipShutdown;  external 'gdipShutdown@{tmp}\botva2.dll stdcall delayload';

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

var
  Panel1: TPanel;

procedure InitializeWizard;
begin
  ExtractTemporaryFile('2.jpg');
//
with WizardForm do
  begin
  Panel1 := TPanel.Create(WizardForm);
  with Panel1 do
  begin
    Parent := MainPanel;
    Left := ScaleX(0);
    Top := ScaleY(0);
    Width := MainPanel.width;
    Height := MainPanel.Height;
  end;
    ImgLoad(Panel1.Handle, ExpandConstant('{tmp}\2.jpg'), 0, 0, MainPanel.width, MainPanel.Height, True, True);
    WizardSmallBitmapImage.Hide;
    ImgApplyChanges(Panel1.Handle);
  end;
end;

procedure DeInitializeSetup();
begin
  gdipShutdown;
end;
 
Последнее редактирование:
  • Like
Реакции: cspp

South

Знаток
Проверенный
забыл выложить исправленный CheckListBox_Example
если память не изменяет, то добавлены события MouseItemLeaveEvent, MouseLeaveEvent

PS не тестировал вроде, иогут быть косяки

ЗЗЫ еще вспомнил. есть нюанс с MouseItemLeaveEvent
допустим имеем 2 item'а - item1, item2
курсор находится над item1
перемещаем курсор мыши с item1 на item2
сначала наступает событие MouseItemEnterEvent для item2, только после этого MouseItemLeaveEvent для item1

это не я. так винда с окнами работает :)
 

Вложения

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

AtotIK

Новичок
Привет всем. На последнюю версию dll'ки ругается антивирус. Можно как-то это исправить? Очень хочется что бы "из коробки" всё работало.
Проверка
 
Сверху