Главная страница
    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.051 c
3-1085941851
Viktor
2004-05-30 22:30
2004.06.27
Перекодировка таблиц


1-1086816243
Алекс А
2004-06-10 01:24
2004.06.27
Как сделать, чтобы FindDialog закрывался при нажатии на Escepe ?


1-1087301070
OlkaGTS
2004-06-15 16:04
2004.06.27
Ссылка на уничтоженный объект


3-1085976764
Yad
2004-05-31 08:12
2004.06.27
Размер лога MS SQL


14-1086884901
ИМХО
2004-06-10 20:28
2004.06.27
Что такое Barcode?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский