Как сделать появляющееся/скрывающееся окно при нажатии на кнопку, например как у Element Arts http://rghost.ru/33485531
Не три а два!Это панель и три таймера.
У меня два вышло может и в одном можно сделать, но я решил не усложнятьAtari,
Это панель и три таймера.
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[*Code]
var
SettingPanel: TPanel;
SettingPanel_m_Timer,SettingPanel_p_Timer: TTimer;
PanelTop:Integer;
procedure NewButton1Click(Sender: TObject);
begin
case PanelTop of
-275: SettingPanel_p_Timer.Enabled:=True;
40: SettingPanel_m_Timer.Enabled:=True;
end;
end;
procedure PanelTop_p_Timer(Sender: TObject);
begin
PanelTop:=PanelTop+5;
SettingPanel.Top:=ScaleY(PanelTop);
if PanelTop=40 then
SettingPanel_p_Timer.Enabled:=False;
end;
procedure PanelTop_m_Timer(Sender: TObject);
begin
PanelTop:=PanelTop-5;
SettingPanel.Top:=ScaleY(PanelTop);
if PanelTop=- 275 then
SettingPanel_m_Timer.Enabled:=False;
end;
procedure InitializeWizard();
begin
PanelTop:= - 275;
SettingPanel_p_Timer := TTimer.Create(WizardForm);
with SettingPanel_p_Timer do
begin
Interval := 10;
Enabled:=False;
OnTimer := @PanelTop_p_Timer;
end;
SettingPanel_m_Timer := TTimer.Create(WizardForm);
with SettingPanel_m_Timer do
begin
Interval := 10;
Enabled:=False;
OnTimer := @PanelTop_m_Timer;
end;
SettingPanel := TPanel.Create(WizardForm);
with SettingPanel do
begin
Parent := WizardForm;
SetBounds(ScaleX(56),ScaleY(PanelTop),ScaleX(385),ScaleY(273))
ParentBackground := False;
end;
with TNewButton.Create(WizardForm) do
begin
Parent := WizardForm;
SetBounds(ScaleX(40),ScaleY(327),ScaleX(75),ScaleY(25))
Caption := 'Íàñòðîéêè';
OnClick := @NewButton1Click;
end;
end;
ExtractTemporaryFile('1.bmp');
Img := TBitmapImage.Create(WizardForm);
With Img do
begin
...
Bitmap.LoadFromFile(ExpandConstant('{tmp}\1.bmp'));
end;
Вот так:Получается ошибка: Cannot open file 1.bmp Код использую для разных картинок.
procedure InitializeWizard();
begin
ExtractTemporaryFile('1.bmp');
[B]Img[/B] := TBitmapImage.Create(WizardForm);
With Img do
begin
...
[B]Bitmap[/B].LoadFromFile(ExpandConstant('{tmp}\1.bmp'));
end;
Img1 := TBitmapImage.Create(WizardForm);
With Img1 do
begin
...
Bitmap:=[B]Img.Bitmap[/B];
end;
end;
Проц грузить будет при нажатии на кнопку под каллбек надо переделыватьУ меня два вышло
Не факт. Одновременно работает только один, и тот недолго. В код вчитайся.Проц грузить будет при нажатии на кнопку под каллбек надо переделывать
ИМХО это без разницы. и то и то, вроде как отделяет поток в примитивном виде Но кому нужно - можно и переделать.под каллбек надо переделывать
таймеры не особо грузят проц... а переписать под CallBack 5 минут деловПроц грузить будет при нажатии на кнопку под каллбек надо переделывать
Это решение есть в справке к IsDone.Вот решение, может кому нибудь пригодится: