Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.27;
Скачать: 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 вся ветка

Текущий архив: 2004.06.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
1-1086952663
Андрей2
2004-06-11 15:17
2004.06.27
Передать потоку значения свойств объекта


1-1086670656
gedd
2004-06-08 08:57
2004.06.27
Защита программы


1-1087300190
denis_group
2004-06-15 15:49
2004.06.27
Нужен мощный Grid.


3-1085841474
viktor
2004-05-29 18:37
2004.06.27
многие-ко-многим???


14-1086938919
Ditrix
2004-06-11 11:28
2004.06.27
о доброй цензуре и злой литературе...