Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.034 c
8-1081487287
HydraMarat
2004-04-09 09:08
2004.06.27
Сглаживание иконок а-ля WinXP


6-1083491056
John
2004-05-02 13:44
2004.06.27
save html as txt


1-1087220603
Evg_fat
2004-06-14 17:43
2004.06.27
Значения ф-ции WordDocument1.Tables.Item(1).Rows.Alignment:


14-1086331022
31512
2004-06-04 10:37
2004.06.27
MS Visual C++ vs Borland C++ Builder - что лучше?


14-1086176680
ИМХО
2004-06-02 15:44
2004.06.27
MSG-файлы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский