Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

           Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
           И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - https://clck.ru/fCqwP

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2007, 10:39   #1
Yoger
Пользователь
 
Регистрация: 16.01.2007
Сообщений: 15
По умолчанию Конструктор объектов

Подскажите, как в run time создать на форме новый компонент, скажем DBGrid. Каким образом задаются его координаты и свойства
Yoger вне форума Ответить с цитированием
Старый 17.04.2007, 12:40   #2
СТРАННИК
Пользователь
 
Аватар для СТРАННИК
 
Регистрация: 20.12.2006
Сообщений: 43
По умолчанию

В uses добавь DBGrids и DB
В var добавь DbGrid:TDbGrid;

...

DbGrid := TDbGrid.Create(Self);
DbGrid.Name := Name;
DbGrid.Parent:=Panel1;
DbGrid.Align:=alClient;
DbGrid.DataSource:=DataSource1;

Удачи...
Если бы я был на столько умён, чтобы ответить на все вопросы самостоятельно, я бы не спрашивал...
СТРАННИК вне форума Ответить с цитированием
Старый 17.04.2007, 22:12   #3
Voland
Heavy metal
Пользователь
 
Аватар для Voland
 
Регистрация: 02.04.2007
Сообщений: 42
По умолчанию

Можно и без переменной (если после задания свойств больше её нигде использовать не нужно). Вот так:
Код:
...
with TDBGrid.Create(Self) do begin
  Parent:=Panel1;
  Align:=alClient;
  DataSource:=DataSource1;
  ...
end;
Voland вне форума Ответить с цитированием
Старый 19.04.2007, 10:47   #4
СТРАННИК
Пользователь
 
Аватар для СТРАННИК
 
Регистрация: 20.12.2006
Сообщений: 43
По умолчанию

А какая разница то? Главное работает....
Если бы я был на столько умён, чтобы ответить на все вопросы самостоятельно, я бы не спрашивал...
СТРАННИК вне форума Ответить с цитированием
Старый 19.04.2007, 13:25   #5
Voland
Heavy metal
Пользователь
 
Аватар для Voland
 
Регистрация: 02.04.2007
Сообщений: 42
По умолчанию

Да в принципе никакой. Просто зачем создавать лишнюю переменную, если можно так. Кстати, блок with специально для того, чтобы быстро обращаться к нескольким полям объекта. Такой код будет немного быстрее, чем если каждый раз указывать имя объекта.
Voland вне форума Ответить с цитированием
Старый 19.04.2007, 14:41   #6
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

про with - верно..

особенно скорость быстрее при работе с каким-либо Canvas, когда он указывается 1 раз в with.
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 19.04.2007, 14:47   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
Сообщение от Voland Посмотреть сообщение
Можно и без переменной (если после задания свойств больше её нигде использовать не нужно). Вот так:
Код:
...
with TDBGrid.Create(Self) do begin
  Parent:=Panel1;
  Align:=alClient;
  DataSource:=DataSource1;
  ...
end;
В чем отличия от способа Странника кроме использования конструктора with ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 19.04.2007, 15:32   #8
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

а фиг их знает .. решили 2 способа написать
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 19.04.2007, 15:36   #9
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Ну на самом деле лучше использовать первый способ, так как при втором способе может возникнуть проблемы при освобождении памяти
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 19.04.2007, 16:19   #10
Umen
Форумчанин
 
Аватар для Umen
 
Регистрация: 10.11.2006
Сообщений: 189
По умолчанию

Проблем с освобождением памяти не возникнет - форма при выходе автоматически освобождает все визуальные компоненты которые на ней находятся, каким бы способом они ни были созданы,

так что мне кажется, что лучше исользовать 2-й способ (в смысле красоты кода), хотя это дело вкуса
Umen вне форума Ответить с цитированием
Ответ

           Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
           Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конструктор по умолчанию Rembo Общие вопросы C/C++ 9 30.07.2008 09:54
Конструктор копирования Djaconda Общие вопросы C/C++ 3 11.06.2008 18:54
Класс и конструктор Andr Общие вопросы C/C++ 2 10.05.2008 18:21
Конструктор запросов kaa БД в Delphi 12 20.12.2006 16:45