Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Аватара для Sotonisto

Пользователь


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

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


Есть вот такой скрипт (отписывался в предыдущей теме). Я хочу добавить 2 кнопки (свернуть и закрыть) без использования ботвы.
Вот порылся в примерах и нашел это:
читать дальше »
Код: Выделить весь код
[_Code]
function ReleaseCapture(): Longint; external 'ReleaseCapture@user32.dll stdcall';

const
  WM_SYSCOMMAND = $0112;

var
  CaptionPanel:Tpanel;
  MinimizeBtn,CloseBtn:TButton;

procedure MinimizeBtnClick(Sender:TObject);
begin
  SendMessage(WizardForm.Handle,WM_SYSCOMMAND,61472,0);
end;

procedure CloseBtnClick(Sender:TObject);
begin
  WizardForm.Close;
end;

procedure LabelOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture
  SendMessage(WizardForm.Handle, WM_SYSCOMMAND, $F012, 0)
end;

procedure InitializeWizard;
var
  d:integer;
begin
CaptionPanel:=TPanel.Create(WizardForm);
  with CaptionPanel do begin
    Parent:=WizardForm;
    Height:=22;
    Width:=WizardForm.Width;
    Align:=alTop;
    ParentColor:=True;
    Color:=$000000;
    BevelInner:=bvNone;
    BevelOuter:=bvNone;
  end;

  with TLabel.Create(CaptionPanel) do begin
    Parent:=CaptionPanel;
    Transparent:=True;
    Autosize:=False;
    Top:=0;
    Left:=0;
    Width:=CaptionPanel.Width;
    Height:=CaptionPanel.Height;
    OnMouseDown:=@LabelOnMouseDown;
  end;

  CloseBtn:=TButton.Create(CaptionPanel);
  with CloseBtn do begin
    Parent:=CaptionPanel;
    Height:=20;
    Width:=20;
    Top:=(CaptionPanel.Height-Height) div 2;
    Left:=CaptionPanel.Width-Width-d;
    Font.Name:='Arial'
    Caption:='X';
    OnClick:=@CloseBtnClick;
  end;

  MinimizeBtn:=TButton.Create(CaptionPanel);
  with MinimizeBtn do begin
    Parent:=CaptionPanel;
    Height:=20;
    Width:=20;
    Top:=(CaptionPanel.Height-Height) div 2;
    Left:=CaptionPanel.Width-Width-CloseBtn.Width-d-2;
    Font.Name:='Arial'
    Caption:='_';
    OnClick:=@MinimizeBtnClick;
  end;
end;

Если его добавить в скрипт инстала получится это:

Возникли 2 вопроса:
1. Как сделать прозрачным черную полосу (например через Transparent и тд.)?
2. Как:
а) заменить кнопки на изображения (я думаю, вы уже поняли, что "_" и "Х" - это нижнее подчеркивание и икс)?
б) или наложить текстуры?

-------
Большой шаг вперед, как правило, следствие хорошего пинка под зад.


Отправлено: 09:57, 28-10-2011 | #18