Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.30;
Скачать: CL | DM;

Вниз

Форма "сворачивается".   Найти похожие ветки 

 
Alexan<span style="background-color: yellow">der</span>MS ©   (2006-07-11 18:33) [0]

Программа использует DLL, где хранится форма. Когда я даю команду показать эту форму как модальное окно, оно отображается как надо, поверх главного. Но на этой форме есть OpenDialog, и если его открыть, а затем закрыть, то главная форма скрывается из виду, сворачиваясь на панель задач. Скажите, пожалуйста, как сделать так, чтоб она не сворачивалась?


 
Leonid Troyanovsky ©   (2006-07-11 18:41) [1]

<i><br/>&gt; Alexan<span style="background-color: yellow">der</span>MS © &#xA0; (11.07.06 18:33) &#xA0;<br/><br/>&gt; из виду, сворачиваясь на панель задач. Скажите, пожалуйста,<br/>&gt; &#xA0;как сделать так, чтоб она не сворачивалась?<br/></i><br/><br/>Переместить оную форму в exe.<br/><br/>--<br/>Regards, LVT.


 
Alexan<span style="background-color: yellow">der</span>MS ©   (2006-07-11 19:00) [2]

<i><br/>&gt; Переместить оную форму в exe.<br/></i><br/>Не так сказал:<br/><i><br/>&gt; Скажите, пожалуйста, как сделать так, чтоб она не сворачивалась?<br/></i><br/>Она = главная форма.


 
Leonid Troyanovsky ©   (2006-07-11 19:07) [3]

<i><br/>&gt; Alexan<span style="background-color: yellow">der</span>MS © &#xA0; (11.07.06 19:00) [2] <br/><br/>&gt; Она = главная форма.<br/></i><br/><br/>Ну, и добавь к ней в проект и эту - модальную.<br/><br/>--<br/>Regards, LVT.


 
tesseract ©   (2006-07-11 20:21) [4]

После openDialog.execute form.show - развернёться назад.


 
Alexan<span style="background-color: yellow">der</span>MS ©   (2006-07-12 08:11) [5]

<i><br/>&gt; После openDialog.execute form.show - развернёться назад.<br/></i><br/>Как же я из DLL могу показать форму, которая не в DLL?<br/><br/><i><br/>&gt; Ну, и добавь к ней в проект и эту - модальную.<br/></i><br/><br/>У меня она должна быть в DLL. Просто эта DLL как плагин к моей программе используется, а там формы внутри DLL лучше ставить.


 
Yegorchic ©   (2006-07-12 09:34) [6]

Кажется, надо в DLL&quot;ке написать процедурку специальную:<br/><br/>procedure FreeForm;<br/>begin<br/>Form1.Free;<br/>end;<br/><br/>Ну и в exports. А потом, когда форму надо уничтожить надо вызывать эту процедуру.<br/><br/>Вот пример загрузки и удаления формы (не моё, работает всё точно):<br/><br/><code>library Form; <br/>uses <br/> &#xA0;Classes, <br/> &#xA0;Unit1 in &quot;Unit1.pas&quot; {Form1}; <br/>exports <br/> &#xA0;CreateMyForm, <br/> &#xA0;DestroyMyForm; <br/>end. <br/><br/> &#xA0;<br/><br/>Это его Unit1: &#xA0;<br/><br/>unit Unit1; <br/><br/>interface <br/><br/>// раздел uses и определение класса Form1 <br/><br/> &#xA0;procedure CreateMyForm(AppHandle: THandle); stdcall; <br/> &#xA0;procedure DestroyMyForm; stdcall; <br/><br/>implementation <br/>{$R *.DFM} <br/><br/>procedure CreateMyForm(AppHandle: THandle); <br/>begin <br/> &#xA0;Application.Handle := AppHandle; <br/> &#xA0;Form1 := TForm1.Create(Application); <br/> &#xA0;Form1.Show <br/>end; <br/><br/>procedure DestroyMyForm; <br/>begin <br/> &#xA0;Form1.Free; <br/>end; <br/><br/>end. <br/><br/> &#xA0;<br/><br/>Это UnitCall вызывающего EXE-шника: &#xA0;<br/><br/>unit <br/> &#xA0;UnitCall; <br/><br/>interface <br/><br/>// раздел uses и определение класса Form1 <br/><br/> &#xA0;procedure CreateMyForm(AppHandle: THandle); stdcall; external &quot;Form.dll&quot;; <br/> &#xA0;procedure DestroyMyForm; stdcall; external &quot;Form.dll&quot;; <br/><br/>implementation <br/>{$R *.DFM} <br/><br/>procedure TForm1.Button1Click(Sen<span style="background-color: yellow">der</span>: TObject); <br/>begin <br/> &#xA0;CreateMyForm(Application.Handle); <br/>end; <br/><br/>procedure TForm1.FormClose(Sen<span style="background-color: yellow">der</span>: TObject; var Action: TCloseAction); <br/>begin <br/> &#xA0;DestroyMyForm; <br/>end; <br/><br/>end. </code>


 
Yegorchic ©   (2006-07-12 09:36) [7]

У меня там форма и закрывалась нормально и всё было хорошо...


 
Desdechado ©   (2006-07-12 11:25) [8]

Yegorchic © &#xA0; (12.07.06 09:34) [6]<br/>Ну, у тебя форма не модальная.<br/>Но направление верное.<br/><code>function doTransform( App: HWND ): CARDINAL; stdcall;<br/>var<br/> &#xA0;hOldHandle: HWND;<br/>begin<br/> &#xA0;hOldHandle := Application.Handle;<br/> &#xA0;Application.Handle := App;<br/> &#xA0;result := ProcessData();<br/> &#xA0;Application.Handle := hOldHandle;<br/>end;</code><br/>Это в DLL. ProcessData - это твоя функция создания, показа модально и равершения работы с формой в DLL.


 
Alexan<span style="background-color: yellow">der</span>MS ©   (2006-07-12 16:53) [9]

Большое спасибо!



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

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

Наверх




Память: 0.87 MB
Время: 0.046 c
11-1130847996
юра
2005-11-01 15:26
2006.07.30
как работать с ini файлами?


15-1151409183
Юный падаван
2006-06-27 15:53
2006.07.30
Что за барабашка?


15-1151518964
Rial
2006-06-28 22:22
2006.07.30
Пересечение треугольников.


1-1150709334
Den_is
2006-06-19 13:28
2006.07.30
Многострочные ячейки в TdxInspector


5-1136303968
FunkyByte
2006-01-03 18:59
2006.07.30
Создание потомка TComponent с нестандартным владельцем