![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хочу сделать чтотото типа панели открытых окон... [D5, WinXP]
TohaNik © (2004-07-02 18:15:00)На OnShow формы создаю кнопки на ToolBar главной формы с Name по
по классу формы которая креатится ну free кнопкам на onClose.
А вот что написать в событии для кнопок чтоб сделать активной форму которой соответствует нажимаемая кнопка.
Или это по-другому делается.
TohaNik (2004-07-02 19:24:00) [1]Вот пишу на MDI форме
procedure TfmNaryads.FormShow(Sender: TObject);
begin
MainForm.ShowFmButton(Caption,'T'+Name);
end;
procedure TfmNaryads.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MainForm.FreeFmButton('T'+Name);
end;
В гл. форме
procedure TMainForm.ShowFmButton(fmCaption: TCaption; fmName: TComponentName);
var
fmBtn: TSpeedButton;
begin
fmBtn := TSpeedButton.Create(Self);
fmBtn.Parent := ToolBar1;
fmBtn.Name := fmName;
fmBtn.Caption := fmCaption;
fmBtn.Hint := fmCaption;
fmBtn.Width := 120;
fmBtn.OnClick := OnClickFmButton;
end;
procedure TMainForm.FreeFmButton(fmName: TComponentName);
var
ToolControl : TComponent;
begin
ToolControl := FindComponent(fmName);
if ToolControl.ClassType = TSpeedButton
then ToolControl.Free;
end;
procedure TMainForm.OnClickFmButton( Sender : TObject );
var
FormName : String;
fmNameL : Integer;
ToForm : TComponent;
begin
fmNameL := Length(TControl(Sender).Name)-1;
FormName := Copy(TControl(Sender).Name,2,fmNameL);
ToForm := Application.FindComponent(FormName);
if ToForm.ClassName = TControl(Sender).Name then
begin
ShowMessage('FormClass= '+ToForm.ClassName);
а здесь хочу сделать активной найденую форму
end
end
ЗЫ: В АПИ ноль
akvilon (2004-07-02 19:10:00) [2]SetWindow
SetWindowPos
TUser (2004-07-02 18:32:00) [3]SetFocus, SetForegroundWindow