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

Вниз

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

 
AlexanderMS ©   (2006-07-11 18:33) [0]

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


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


> AlexanderMS ©   (11.07.06 18:33)  

> из виду, сворачиваясь на панель задач. Скажите, пожалуйста,
>  как сделать так, чтоб она не сворачивалась?


Переместить оную форму в exe.

--
Regards, LVT.


 
AlexanderMS ©   (2006-07-11 19:00) [2]


> Переместить оную форму в exe.

Не так сказал:

> Скажите, пожалуйста, как сделать так, чтоб она не сворачивалась?

Она = главная форма.


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


> AlexanderMS ©   (11.07.06 19:00) [2]

> Она = главная форма.


Ну, и добавь к ней в проект и эту - модальную.

--
Regards, LVT.


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

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


 
AlexanderMS ©   (2006-07-12 08:11) [5]


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

Как же я из DLL могу показать форму, которая не в DLL?


> Ну, и добавь к ней в проект и эту - модальную.


У меня она должна быть в DLL. Просто эта DLL как плагин к моей программе используется, а там формы внутри DLL лучше ставить.


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

Кажется, надо в DLL"ке написать процедурку специальную:

procedure FreeForm;
begin
Form1.Free;
end;

Ну и в exports. А потом, когда форму надо уничтожить надо вызывать эту процедуру.

Вот пример загрузки и удаления формы (не моё, работает всё точно):

library Form;
uses
 Classes,
 Unit1 in "Unit1.pas" {Form1};
exports
 CreateMyForm,
 DestroyMyForm;
end.

 

Это его Unit1:  

unit Unit1;

interface

// раздел uses и определение класса Form1

 procedure CreateMyForm(AppHandle: THandle); stdcall;
 procedure DestroyMyForm; stdcall;

implementation
{$R *.DFM}

procedure CreateMyForm(AppHandle: THandle);
begin
 Application.Handle := AppHandle;
 Form1 := TForm1.Create(Application);
 Form1.Show
end;

procedure DestroyMyForm;
begin
 Form1.Free;
end;

end.

 

Это UnitCall вызывающего EXE-шника:  

unit
 UnitCall;

interface

// раздел uses и определение класса Form1

 procedure CreateMyForm(AppHandle: THandle); stdcall; external "Form.dll";
 procedure DestroyMyForm; stdcall; external "Form.dll";

implementation
{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
 CreateMyForm(Application.Handle);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 DestroyMyForm;
end;

end.


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

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


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

Yegorchic ©   (12.07.06 09:34) [6]
Ну, у тебя форма не модальная.
Но направление верное.
function doTransform( App: HWND ): CARDINAL; stdcall;
var
 hOldHandle: HWND;
begin
 hOldHandle := Application.Handle;
 Application.Handle := App;
 result := ProcessData();
 Application.Handle := hOldHandle;
end;

Это в DLL. ProcessData - это твоя функция создания, показа модально и равершения работы с формой в DLL.


 
AlexanderMS ©   (2006-07-12 16:53) [9]

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



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
4-1143568002
que
2006-03-28 21:46
2006.07.30
Делфи и USB(HID complaince & device)


2-1152618826
Tort
2006-07-11 15:53
2006.07.30
Указатели или что?


1-1150371712
PRT
2006-06-15 15:41
2006.07.30
Doc2TXT


15-1151835771
Socers'
2006-07-02 14:22
2006.07.30
Звук


1-1150366158
lenok
2006-06-15 14:09
2006.07.30
экпорт в dbf





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