Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];
ВнизДоброго времени суток, есть проболема с привязкой MDI формы с Найти похожие ветки
← →
Delphin © (2004-06-09 18:09) [0]Проблема с привязкой MDI формы с кнопкой из массива
есть код:
var
Form1: TForm1;
Child: TForm;
But:Array[1..99]of TButton;
I:Integer;
procedure TForm1.MyButClick(Sender:TObject);
var
A:Integer;
begin
for A:=0 to 99 do
if Sender = But[A] then Begin
Form1.MDIChildren[A].SetFocus;
End;
End;
procedure TForm1.Button2Click(Sender: TObject);
begin
Inc(I);
Child := TForm2.Create(Application);
Child.Caption := "Caption"+IntToStr(i);
But[i]:=TButton.Create(Self);
But[i].Parent:=Panel3;
But[i].Name:="Name"+IntToStr(i);;
But[i].Caption:="Caption"+IntToStr(i);;
But[i].top:=But[i-1].top+26;
But[i].Tag:=I;
But[i].OnClick:=MyButClick;
End;
procedure TForm1.FormCreate(Sender: TObject);
begin
Inc(I);
But[i]:=TButton.Create(Self);
But[i].Parent:=Panel3;
But[i].Name:="Name"+IntToStr(i);
But[i].Caption:="Name"+IntToStr(i);
But[i].Tag:=I;
But[i].OnClick:=MyButClick;
end;
Кнопки и MDI формы создаются вообще без проблем, проблема в следующем: при вызове процедуры MyButClick;, она срабатывает, но не корректно, т.е выделяется не нужное в данный момент окно.
Кто знает, в чём может быть проблема ?
И есть ли другой способ определить какая кнопка из массива была нажата ?
Заранее благодарен
← →
Семен Сорокин © (2004-06-09 18:13) [1]бред какой-то
procedure TForm1.MyButClick(Sender:TObject);
begin
TForm(TButton(Sender).Parent).BringToFront
end;
← →
Delphin © (2004-06-09 18:16) [2]мне нужно узнать какая кнопка была нажата и выделить окно, с такимже номером
← →
Семен Сорокин © (2004-06-09 18:19) [3]Delphin © (09.06.04 18:16) [2]
мне нужно узнать какая кнопка была нажата и выделить окно, с такимже номером
задавай кнопке номер в Tag при создании, при нажатии определяй Tag у Sender"а, а окно выделяй методом BringToFront.
← →
Delphin © (2004-06-09 18:37) [4]procedure TForm1.MyButClick(Sender:TObject);
begin
MDIChildren[TButton(Sender).Tag].BringToFront;
End;
Всё ровно работает не корректно
← →
Delphin © (2004-06-09 23:18) [5]Всем спасибо я сам разобрался. Я сделал проще, я просто сравниваю заголовки.
procedure TForm1.MyButClick(Sender:TObject);
var
A:Integer;
begin
A:=1;
IF MDIChildren[A].Caption=TButton(Sender).Caption Then
MDIChildren[a].BringToFront
Else
Repeat
IF MDIChildren[A].Caption<>TButton(Sender).Caption
Then INC(A);
Until
(MDIChildren[A].Caption=TButton(Sender).Caption)OR(A>MDIChildCount);
IF MDIChildren[A].Caption=TButton(Sender).Caption Then
MDIChildren[a].BringToFront;
A:=0;
End;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.032 c