Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 5
1

Вызов других форм из основной формы в DLL

29.09.2010, 08:23. Показов 2429. Ответов 5
Метки нет (Все метки)

Привет! вот какая у меня беда мне нужно написать ДЛЛку которая будет практически отдельныим модулем только базу ту же что и все остальное юзает.. но это не суть важно проблемма вот в чем ДЛЛки я раньше то и не писал особо а щас надо такую создать которая будет содержать в себе несколько форм и еще дофига чего ..короче мне надо чтоб при обращении к ДЛЛки вызывалась ее основная форма, с этим проблем нет все работает.. но проблема начинается когда я из этоя ДЛЛкиной формы пытаюсь открыть другую еёже ДЛЛкину форму.. она орет матом и нихера не делает..
скажи те как быть если кто знает..
вообщем мне надо чтоб в ДЛЛке из одной основной формы вызывались другие..???
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2010, 08:23
Ответы с готовыми решениями:

Как обращаться основной формы из других форм?
Помогите, пожалуйста! Есть 2 формы Form1 и Form2. У обеих форм есть поля типа public id, dtime,...

Вызов других форм из модального окна
Всем доброго времени суток. Уважаемые форумчане, подскажите такой момент. Есть 2 формы "Журналы":...

Закрытие основной формы из других
Главная форма: Hide(); Form2 f2 = new Form2(); f2.Show(); Главная форма скрыта, переходит на 2...

Вызов метода основной формы из UserControl
Привет! Перехожу от VB VS6 к VS10 WF C# и пока ломаю мозги для работы по новому. Суть проблемы в...

5
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 3
29.09.2010, 13:11 2
Я не знаю с чем там может возникнуть проблемы но делаеться это примерно так. Ты говориш создал форму, все нормально, ну а дальше так же. ты добавляеш в ддлку новую форму. пишеш для нее процедурку каторая будет вызывать ее ну а потом просто вызываеш эту процедуру или функцию на твое усмотрение:
Delphi
1
2
3
4
5
6
7
8
9
10
11
var
  FormFilter: TFormFilter;
// ...
function ShowWindowFiler;
 
begin
 if Assigned(FormFilter) then FormFilter:=TFormFilter.Create(Application.MainForm)
 
        else FormFilter.BringToFront;
 FormFilter.Show;
end;
или еще проще
Delphi
1
Application.CreateForm(TFormFilter,FormFilter);
ну вот вродебы. если что ни так то пришли код ощибки и по подробнее где она возникает.
0
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 5
29.09.2010, 13:25  [ТС] 3
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
library DllForms;
 
uses
  sharemem,
  windows,
  SysUtils,
  Classes,
  Forms,
  DllFormUnit in 'DllFormUnit.pas' {DllForm},
  Dllform1 in 'Dllform1.pas' {Form1},
  Dllform2 in 'Dllform2.pas' {Form2};
 
{$R *.RES}
 
function ShowForm : Integer; stdcall;
var
        Form : TDllForm;
begin
        Form := TDllForm.Create(Application);
        Result := Form.ShowModal;
        Form.Free;
end;
 
exports
ShowForm;
 
begin
end.
Это код ДЛЛки
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TDllForm.Button1Click(Sender: TObject);
begin
Edit3.Text:=Edit1.Text+Edit2.Text;
end;
 
procedure TDllForm.Button2Click(Sender: TObject);
var
        Form : TForm1;
begin
        Form1.Create(Application);
        Form1.Show;
        Form1.Free;
end;
end.
а это то что находится на ней..

так вот на procedure TDllForm.Button1Click(Sender: TObject);

procedure TDllForm.Button2Click(Sender: TObject);
она и ругается...

вообще так делать можно тоесть я вызываю форму из вызванной же формы а не из проекта
0
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 3
29.09.2010, 13:42 4
Delphi
1
2
3
4
5
6
7
8
procedure TDllForm.Button2Click(Sender: TObject);
var
Form : TForm1;
begin
Form1.Create(Application);
Form1.Show;
Form1.Free;
end;
смотри ты создал форму и тут же ее уничтожил зачем ??

тут либо:
1)
Delphi
1
2
3
4
5
6
7
8
9
procedure TDllForm.Button2Click(Sender: TObject);
var
Form : TForm1;
begin
Form1:=TForm1.Create(Application);
Form1.Show;
// а в обработчике закрытия формы ты пишеш Action := caFree; 
// но это помоему не обязательно он и так осфободит память
end;
2)
Delphi
1
2
3
4
procedure TDllForm.Button2Click(Sender: TObject);
begin
Application.CreateForm(TForm1,Form1);
end;
3)
Delphi
1
2
3
4
5
6
7
8
procedure TDllForm.Button2Click(Sender: TObject);
var
Form : TForm1;
begin
Form1:=TForm1.Create(Application);
Form1.ShowModal;
Form1.free; 
end;
0
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 3
29.09.2010, 13:47 5
потом нет смысла засовывать переменную формы в раздел локальных переменных если конечно ты не будешь вызывать их несколько сразу ??
0
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 5
07.10.2010, 08:13  [ТС] 6
Спасибо большое!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2010, 08:13

Lazarus вызов формы из основной программы
Приветствую всех . Прошу помочь . Я создал в лазарусе (Через меню файл - создать - программа)...

Связывание форм и вызов родительской формы
Начал изучать WindowsForms и столкнулся с такой проблемой. Я знаю что для вызова одной формы из...

Считать данные из метода в dll и вывести в Listbox основной формы
здравствуйте нашёл в инете исходник асинхронного сервера для консольного приложения на C# есть...

Вызов функции формы при их переборе(форм)
Здравствуйте, встал такой вопрос как можно вызвать функцию из срр файла формы при их переборе....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru