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

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

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

Студворк — интернет-сервис помощи студентам
Привет! вот какая у меня беда мне нужно написать ДЛЛку которая будет практически отдельныим модулем только базу ту же что и все остальное юзает.. но это не суть важно проблемма вот в чем ДЛЛки я раньше то и не писал особо а щас надо такую создать которая будет содержать в себе несколько форм и еще дофига чего ..короче мне надо чтоб при обращении к ДЛЛки вызывалась ее основная форма, с этим проблем нет все работает.. но проблема начинается когда я из этоя ДЛЛкиной формы пытаюсь открыть другую еёже ДЛЛкину форму.. она орет матом и нихера не делает..
скажи те как быть если кто знает..
вообщем мне надо чтоб в ДЛЛке из одной основной формы вызывались другие..???
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.09.2010, 08:23
Ответы с готовыми решениями:

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

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

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

5
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 3
29.09.2010, 13:11
Я не знаю с чем там может возникнуть проблемы но делаеться это примерно так. Ты говориш создал форму, все нормально, ну а дальше так же. ты добавляеш в ддлку новую форму. пишеш для нее процедурку каторая будет вызывать ее ну а потом просто вызываеш эту процедуру или функцию на твое усмотрение:
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  [ТС]
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
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
потом нет смысла засовывать переменную формы в раздел локальных переменных если конечно ты не будешь вызывать их несколько сразу ??
0
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 5
07.10.2010, 08:13  [ТС]
Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2010, 08:13
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru