Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2014, 18:17   #11
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Посмотри в сторону шаблонов.
1. Создать класс с возможностью заполнеия по шаблону (Assign, Move и т.п.)
2. Создать объект шаблон с некими значениями поумолчанию
3. Вызвал диалог, если нажали ОК, то заполняем шаблон по новым данным.
4. При создании нового экземпляра заполняем его по шаблону с помощью процедур из п.1 (в Create или жестко, сразу в InitInstance )

Если нужна гибгость:
Код:
constructor TMyObject.Create (aShablon: TMyObject);
begin
  Assign (aShablon);
end;

Последний раз редактировалось Sibedir; 18.07.2014 в 18:21.
Sibedir вне форума Ответить с цитированием
Старый 18.07.2014, 18:22   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ибо тогда при смене конструктора ты ничего не забудешь поменять потом.
Всмысле?
А если нужно будет по ходу дела скорректировать один из параметров? Свойства все равно должны быть публичными, а раз они есть то зачем в конструктор пихать это все?

Впрочем есть еще вариант - ассоциативные массивы. В конструктор передавать TStrings. А уже стрингс наполнять нужными параметрами. Я лично так часто делаю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.07.2014, 16:31   #13
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

В конструктор следует помещать параметры, без которых объект не может функционировать и которые как правило не меняются за все время существования объекта.
Этим гарантируется правильная первоначальная инициализация объекта.При этом всю проверку параметров можно провести в одном месте а не проверять каждый раз при вызове методов объекта.
Для изменяющихся параметров при необходимости делают сетеры для их проверки.
Код:
constructor Create;
begin
a1:=dialog.d1;
a2:=dialog.d2;
end;
А это делает ваш объект привязанным к конкретному диалогу что не есть хорошо

Если вы напишете
Код:
Create(dialog.d1);
то уже на этапе компиляции получите ошибку.
а если
Код:
c:=MyClass.create;
c.a1:=dialog.d1;
то можете о неназначеной a2 узнать уже во время исполнения в каком нибуть Exception и не факт что в тотже день

Последний раз редактировалось Stilet; 19.07.2014 в 17:07.
s.Creator вне форума Ответить с цитированием
Старый 19.07.2014, 20:49   #14
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Сообщение от s.Creator Посмотреть сообщение
В конструктор следует помещать параметры, без которых объект не может функционировать и которые как правило не меняются за все время существования объекта.
Думаю не стоит так стереотипизировать. Всё зависит от конкретной задачи.
Sibedir вне форума Ответить с цитированием
Старый 19.07.2014, 23:01   #15
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Думаю не стоит так стереотипизировать. Всё зависит от конкретной задачи.
+1
программирование творческий процесс, чем мне это и ндравится.
s.Creator вне форума Ответить с цитированием
Старый 19.07.2014, 23:07   #16
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

только если не заниматься рефакторингом и ничего ничего не "стереотипизировать" - то некогда будет заниматься чем-то новым
s.Creator вне форума Ответить с цитированием
Старый 19.07.2014, 23:51   #17
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Сообщение от s.Creator Посмотреть сообщение
... если ... ничего ничего не "стереотипизировать" - то некогда будет заниматься чем-то новым
+1
_____________________
Sibedir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оператор Create salerr SQL, базы данных 4 09.04.2014 20:02
Вопрос для людей, кто реально «шарит» в сфере VPN. Очень важно для меня. Sorus_Nomad Безопасность, Шифрование 5 27.10.2011 11:22
программа с типизированными параметрами-значениями и параметрами-переменными Kira09 Паскаль, Turbo Pascal, PascalABC.NET 1 20.12.2010 22:23
Использование CREATE TABLE для Access at0104 БД в Delphi 0 10.09.2009 11:16