Вниз
Скачать: CL | DM;

Доброго времени суток, есть проболема с привязкой 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
3-1085973280
BezdAlex
2004-05-31 07:14
2004.06.27
Использование Access в DELPHI


10-1015060362
alvillo
2002-03-02 12:12
2004.06.27
Можно ли бесплатно разместить в Сети CORBA-сервер и где?


6-1083784947
bars
2004-05-05 23:22
2004.06.27
Соединение для обмена текстовыми сообщениями


3-1085825634
Stark
2004-05-29 14:13
2004.06.27
Использование файлов БД в формате *.bdf


1-1087071297
Roland88
2004-06-13 00:14
2004.06.27
Бэкап реестра




   Наверх