Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.03.2011, 17:08
Goodle Goodle вне форума
Прохожий
 
Регистрация: 21.03.2011
Сообщения: 32
Репутация: 10
Вопрос Динамическое создание объекта

Добрый день! Немогли бы вы подсказать:
У меня создана форма (Form1), к ней стандартом привязан Unit1. Как создать объект из этого юнита я знаю,
Код:
function NewLab(fm1:TForm; lc:String):boolean;
var nLab:TLabel;
begin
nLab:=TLabel.Create(fm1);
nLab.Parent:=fm1;
nLab.Caption:=lc;
end;
но застопорил меня другой момент когда присоединяю unit2 и из него по стандартной схеме пытаюсь создать объект на форм1 то Делфи меня посылает. Я понимаю что нужно где-то адресацию задать, но как пока не догоню...
функция должна располагаться в Unit2...

Последний раз редактировалось Goodle, 21.03.2011 в 17:14.
Ответить с цитированием
  #2  
Старый 21.03.2011, 17:30
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

в unit2 сделать так:

В разделе public
Код:
function NewLab(fm1:TForm; lc:String):boolean;

и

Код:
function TForm2.NewLab(fm1:TForm; lc:String):boolean;
begin
....
end;
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #3  
Старый 21.03.2011, 17:39
Goodle Goodle вне форума
Прохожий
 
Регистрация: 21.03.2011
Сообщения: 32
Репутация: 10
По умолчанию

Цитата:
Сообщение от Black Raider
в unit2 сделать так:

В разделе public
Код:
function NewLab(fm1:TForm; lc:String):boolean;

и

Код:
function TForm2.NewLab(fm1:TForm; lc:String):boolean;
begin
....
end;
второй формы нет, есть еще один юнит и из него надо создать объект на единственную форм1...
Ответить с цитированием
  #4  
Старый 21.03.2011, 18:19
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Код:
unit Unit2;

...

uses Unit1;

...

label := TLabel.Create(Form1);
label.Parent := Form1;
...
Ответить с цитированием
  #5  
Старый 21.03.2011, 22:43
Goodle Goodle вне форума
Прохожий
 
Регистрация: 21.03.2011
Сообщения: 32
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Код:
unit Unit2;

...

uses Unit1;

...

label := TLabel.Create(Form1);
label.Parent := Form1;
...
а как эту ф-ю вызвать из нажития баттон1 на форм1?
наглеть не хочу просто реально не догоняю...

Последний раз редактировалось Goodle, 21.03.2011 в 22:48.
Ответить с цитированием
  #6  
Старый 21.03.2011, 23:25
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну точно так-же, как ты обращаешься к первому модулю из второго, так и обратно:

Unit2:
Код:
unit Unit2;

interface

procedure CreateControl;

...

implementation

uses
  Unit1;

procedure CreateControl;
var
  label : TLabel;
begin
  label :=  TLabel.Create(Form1);
  ...
end;

end.

Unit1:
Код:
unit Unit1

...

implementration

uses
  Unit2;

procedure TForm1.Button1Click(Sender : TObject);
begin
  CreateControl;
end;

end.
Ответить с цитированием
  #7  
Старый 21.03.2011, 23:32
Goodle Goodle вне форума
Прохожий
 
Регистрация: 21.03.2011
Сообщения: 32
Репутация: 10
По умолчанию

Понял))) спасибо))
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:27.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025