Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.05.15;
Скачать: [xml.tar.bz2];

Вниз

использование TDialogOpen   Найти похожие ветки 

 
Fr   (2011-02-06 13:16) [0]

Вызываю:
   if OpenDlg1.Execute then begin
      ...
   end;


И, почему-то, сам диалог уходит при исполнении на задний план. Чтобы его увидеть приходится переключаться между окнами Alt+Tab.

В чем причина?


 
sniknik ©   (2011-02-06 14:14) [1]

> В чем причина?
не в показанном коде, точно, а например в скрытых извращениях типа вкладывания этого вызова в dll и т.д.


 
Fr   (2011-02-07 15:29) [2]

Никаких извращений нет. Есть основная форма. На ней лежит кнопка. При нажатии на эту кнопку создается вторая форма, на которой лежит TOpenDialog. При execute этого диалога сам диалог оказывается на заднем плане. Вопрос - почему?

procedure TfrmMain.mmOpenClick(Sender: TObject);
var j: integer;
begin
 Tfrm1.CreateWithHint(Application,"2","");  // создание второй формы и запись в ее Hint "2"
 for j:=0 to Screen.FormCount-1 do
   with Tfrm1(Screen.Forms[j]) do
     if Hint="2" then begin
       mOpenFileClick(Self);
       break;
     end;
end;

procedure Tfrm1.mOpenFileClick(Sender: TObject);
begin
 try
   if OpenDlg1.Execute then begin
      ...
   end;
    ...
 finally
     ...
 end;
end;


 
clickmaker ©   (2011-02-07 15:34) [3]

> Никаких извращений нет

а по-моему есть. Зачем такой странный способ вызова диалога? Почему из TfrmMain не вызвать?


 
Fr   (2011-02-07 15:35) [4]


> Почему из TfrmMain не вызвать?


ну нужно мне так :)


 
clickmaker ©   (2011-02-07 15:36) [5]

> ну нужно мне так :)

ССЗБ


 
Jeer ©   (2011-02-07 15:40) [6]


> Никаких извращений нет.


Полный комплект.


 
Плохиш ©   (2011-02-07 15:49) [7]


> procedure TfrmMain.mmOpenClick(Sender: TObject);
> var j: integer;
> begin
>  Tfrm1.CreateWithHint(Application,"2","");  // создание
> второй формы и запись в ее Hint "2"
>  for j:=0 to Screen.FormCount-1 do
>    with Tfrm1(Screen.Forms[j]) do
>      if Hint="2" then begin
>        mOpenFileClick(Self);
>        break;
>      end;
> end;
>

Это типа 4 байта в стеке съэкономил?
Ну так ССЗБ


 
Fr   (2011-02-07 15:52) [8]

Т.е. результат ваших "Буратин" :) : открывать диалог из главной формы, а не из вновь создаваемой?

А причина-то какая? из-за чего уходит на второй план диалог?


 
Fr   (2011-02-07 15:53) [9]

сама новая форма нормально отображается на переднем плане, а диалог за ней :(


 
Плохиш ©   (2011-02-07 15:58) [10]

Потому что, по коду, сначала показывается диалог, после обработки из стека выбирается и обрабатывается сообщение на показ созданной формы.


 
clickmaker ©   (2011-02-07 16:01) [11]

может быть, открою тайну, но диалог можно вообще не класть на форму
достаточно так
with TOpenDialog.Create
do begin
 if Execute then
 ...


 
Dennis I. Komarov ©   (2011-02-07 16:16) [12]


> можно вообще не класть на форму

Люди!!! Да что же это делается! Как же так? В этом и есть вся смысла программирования. Это так мы дойдем и до программ без форм, что же тогда делать? Сегодня диалог на форму не бросили, а завтра батонов в палитре нету... :(


 
b z   (2011-02-07 16:57) [13]


> clickmaker ©   (07.02.11 16:01) [11]
А если положил так сразу проблеммы начинаются?


 
Jeer ©   (2011-02-07 17:09) [14]


> А если положил


то, да.


 
b z   (2011-02-07 17:13) [15]


> Jeer ©   (07.02.11 17:09) [14
И тчо?


 
Дмитрий Белькевич   (2011-02-07 18:23) [16]


> Сегодня диалог на форму не бросили, а завтра батонов в палитре
> нету... :(


Как страшно жить...


 
clickmaker ©   (2011-02-07 22:46) [17]

> А если положил так сразу проблеммы начинаются?

проблемы начинаются при трансректальных попытках вызова этого диалога )


 
sniknik ©   (2011-02-08 00:10) [18]

>> А если положил
> то, да.
реально! я вот повторил этот изврат, как мог, с Гейтс-кой помощью, и по своему разумению восстановил, опять так и не показанную  здесь CreateWithHint, в которой поклал на все... и диалог не уходит на задний план! тусуется на переднем... нада же. ;)


 
Германн ©   (2011-02-08 01:32) [19]


> реально! я вот повторил этот изврат, как мог, с Гейтс-кой
> помощью, и по своему разумению восстановил, опять так и
> не показанную  здесь CreateWithHint,

Я бы не смог найти своё разумение в том бреде!



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.05.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.004 c
15-1296163782
Юрий
2011-01-28 00:29
2011.05.15
С днем рождения ! 28 января 2011 пятница


15-1296654628
int64
2011-02-02 16:50
2011.05.15
Как попасть на RSDN.ru?


15-1296736261
Smile
2011-02-03 15:31
2011.05.15
Тем, у кого есть немного свободного времени:)


15-1296422980
Юрий
2011-01-31 00:29
2011.05.15
С днем рождения ! 31 января 2011 понедельник


2-1297171594
black-jack-666
2011-02-08 16:26
2011.05.15
HTML кодировка





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