Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Цитата serg aka lain:
как сделать средствами WinApi кнопки плоскими »
Сделал не на WinApi, а с помощью панелей, но обычный Inno не понимает OnMouseDown и OnMouseUp...
Пример
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

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

[Code]
var
  Backbtn, Nextbtn, Cancelbtn: TPanel;

procedure MouseDown(Sender: TObject; TButton: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  TPanel(Sender).BorderStyle:= bsSingle;
end;

procedure MouseUp(Sender: TObject; TButton: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  TPanel(Sender).BorderStyle:= bsNone;
end;

procedure Click(Sender: TObject);
begin
  case TPanel(Sender) of
    Backbtn: WizardForm.BackButton.OnClick(WizardForm.BackButton);
    Nextbtn: WizardForm.NextButton.OnClick(WizardForm.NextButton);
    Cancelbtn: WizardForm.CancelButton.OnClick(WizardForm.CancelButton);
  end;
end;

procedure CancelbtnClick(Sender: TObject);
begin
  WizardForm.CancelButton.OnClick(WizardForm.CancelButton);
end;

procedure InitializeWizard;
begin
  Backbtn:= TPanel.Create(WizardForm.BackButton);
  with Backbtn do
    begin
      SetBounds(WizardForm.BackButton.Left, WizardForm.BackButton.Top,
                WizardForm.BackButton.Width, WizardForm.BackButton.Height);
      BorderStyle:= bsNone;
      BevelOuter:= bvRaised;
      OnClick:= @Click;
      OnMouseDown:= @MouseDown;
      OnMouseUp:= @MouseUp;
      Parent:= WizardForm;
    end;
  Nextbtn:= TPanel.Create(WizardForm.NextButton);
  with Nextbtn do
    begin
      SetBounds(WizardForm.NextButton.Left, WizardForm.NextButton.Top,
                WizardForm.NextButton.Width, WizardForm.NextButton.Height);
      BorderStyle:= bsNone;
      BevelOuter:= bvRaised;
      OnClick:= @Click;
      OnMouseDown:= @MouseDown;
      OnMouseUp:= @MouseUp;
      Parent:= WizardForm;
    end;
  Cancelbtn:= TPanel.Create(WizardForm.NextButton);
  with Cancelbtn do
    begin
      SetBounds(WizardForm.CancelButton.Left, WizardForm.CancelButton.Top,
                WizardForm.CancelButton.Width, WizardForm.CancelButton.Height);
      BorderStyle:= bsNone;
      OnClick:= @Click;
      OnMouseDown:= @MouseDown;
      OnMouseUp:= @MouseUp;
      Parent:= WizardForm;
    end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  Backbtn.Caption:= WizardForm.BackButton.Caption;
  Backbtn.Visible:= WizardForm.BackButton.Visible;
  Nextbtn.Caption:= WizardForm.NextButton.Caption;
  Nextbtn.Visible:= WizardForm.NextButton.Visible;
  Cancelbtn.Caption:= WizardForm.CancelButton.Caption;
  Cancelbtn.Visible:= WizardForm.CancelButton.Visible;
end;

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:34, 16-10-2009 | #286