Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Связать класс и форму TForm  [new]
stanilar
Member

Откуда: Спб
Сообщений: 539
DFilushin
TDataset, TDbEdit, TDataSource


TDataSource на той-же форме, что и TDataset, или той, что содержит TDbEdit?
9 окт 17, 11:11    [20853798]     Ответить | Цитировать Сообщить модератору
 Re: Связать класс и форму TForm  [new]
Уважаемый автор
Member

Откуда: Питер
Сообщений: 225
Я не использую DB-Aware компоненты, использую обычные контролы, заполнение и сохранение все через select, update, insert.
Зато все контролируемо и гибко!
9 окт 17, 21:02    [20855988]     Ответить | Цитировать Сообщить модератору
 Re: Связать класс и форму TForm  [new]
DFilushin
Member

Откуда: Новосибирск
Сообщений: 236
Много мнений, есть интересные идеи (rtti, автогенерация форм и т.д).
Ранее была программа для медицины. Вот проблемы почему написал пост. В случае использования DBAware (TDbEdit, TDataSource, TDataset) использовал модуль данных для сеток, справочников. Редактирование записи в форме со своим датасетом в каждой форме. Нужно редактировать данные пациента - весь набор данных с селектом и апдейтом в компоненте на форме редакторе пациента.
Справочники и выбор данных из справочников в отдельном модуле с передачей только датасета, всё остально ренерится автоматом вплоть до редактора справочника. Уникальные формы - да, ручные с одним датасетом, как выше писал.
Вот где самое интересное. Начинаем управлять назначениями на пациентов, есть сущность - пациент, его назначения. Назначения можно продлить, прекратить приём, переназначить и т.д. В каком месте это обрабатывать? В форме назначения или всё-таки писать класс для реализации, который вызовет хранимку в бд?
Один из вариантов это невизуальный класс, который возвращает датасет для грида и действительно всё обрабатывает по данным. И тогда в форме лишь вызываешь функции обработки.
12 окт 17, 08:17    [20862675]     Ответить | Цитировать Сообщить модератору
 Re: Связать класс и форму TForm  [new]
stanilar
Member

Откуда: Спб
Сообщений: 539
DFilushin
В форме назначения или всё-таки писать класс для реализации, который вызовет хранимку в бд?


Это путь к размазыванию логики между сервером и клиентом. Чем больше будет размазано, тем сложнее будет сопровождать.
12 окт 17, 19:36    [20865478]     Ответить | Цитировать Сообщить модератору
 Re: Связать класс и форму TForm  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2025
Никакое MVC не поможет плохому дизайну ПО. Я не говорю, что он у вас такой. Просто для информации. Стоит вначале хорошо продумать общий программный дизайн. А уже как его реализовать - используя MVC, или просто на уровне батонокидательства - дело не столь важное.
12 окт 17, 20:19    [20865572]     Ответить | Цитировать Сообщить модератору
 Re: Связать класс и форму TForm  [new]
чччД
Guest
makhaon
Никакое MVC не поможет плохому дизайну ПО...

"Да, но зато ты умрешь уставшим" -©.
12 окт 17, 21:17    [20865678]     Ответить | Цитировать Сообщить модератору
 Re: Связать класс и форму TForm  [new]
rgreat
Member

Откуда:
Сообщений: 3667
чччД
makhaon
Никакое MVC не поможет плохому дизайну ПО...

"Да, но зато ты умрешь уставшим" -©.
Ахаха. В точку.
12 окт 17, 22:33    [20865834]     Ответить | Цитировать Сообщить модератору
 Re: Связать класс и форму TForm  [new]
DFilushin
Member

Откуда: Новосибирск
Сообщений: 236
stanilar,

и как тогда?
14 окт 17, 15:34    [20869608]     Ответить | Цитировать Сообщить модератору
 Re: Связать класс и форму TForm  [new]
rgreat
Member

Откуда:
Сообщений: 3667
Для большинства не сложных задач достаточно обработки Button1Click.
14 окт 17, 16:32    [20869667]     Ответить | Цитировать Сообщить модератору
 Re: Связать класс и форму TForm  [new]
DimaBr
Member

Откуда:
Сообщений: 10258
rgreat
Для большинства не сложных задач достаточно обработки Button1Click.

Для более сложных подойдёт Action1Click
14 окт 17, 17:40    [20869711]     Ответить | Цитировать Сообщить модератору
 Re: Связать класс и форму TForm  [new]
чччД
Guest
DFilushin
stanilar,

и как тогда?

Когда наступит "тогда", тогда и думать будешь.
Говнокодь, как бог на душу положит, пока проект не станет сложным. Потом проведешь рефакторинг.

...а в следующий раз все сделаешь сразу по уму, канешна.
14 окт 17, 19:31    [20869808]     Ответить | Цитировать Сообщить модератору
 Re: Связать класс и форму TForm  [new]
stanilar
Member

Откуда: Спб
Сообщений: 539
DFilushin
и как тогда?

Для себя принял что в учетках клиент нужен только для отображения/редактирования информации.
15 окт 17, 16:23    [20870771]     Ответить | Цитировать Сообщить модератору
 Re: Связать класс и форму TForm  [new]
s62
Member

Откуда: Жуковский
Сообщений: 700
DFilushin
DimaBr,
ручками это типа ReadDocument и там
edtNumber.TExt:= FDocument.Number;
edtDateDoc.Value:= FDocument.DateDoc...

И на кнопке Save - SaveDocument, где делать обратное и вызывать FDocument.Save?

Если не использовать db-aware элементы управления, то я думаю, что да, примерно так. Если действия объемные и сложные, то можно какую-то часть вынести в отдельную процедуру. Ну это же здравый смысл, удобство повторного использования кода, удобство чтения, красота наконец)) .

А если использовать db-aware элементы управления, я, например, с БД написал несколько маленьких программ, а вот такую относительно большую - одну, переписывал написанную на Access когда-то другим человеком программу учета производства у нас в фирме. И по ходу её написания, понятное дело, учился. В частности, сначала кидал все датасаты, датасорцы на Датамодуль. Но когда их там стало несколько десятков и стало проблемой найти что-то, от решил, что это ерунда и теперь размещаю прямо на новых формах, если что-то новое добавлял. Можно, конечно заводить датамодули для отдельных форм, но это ведь тоже требует доп. действий - когда форма создается, создать датамодуль, пллюс создать его первым, чтобы не получить acess violation, когда при создании формы пытаешься открыть наборы данных. Потом удалить его вместе с формой. Ну то есть тут тоже нужно смотреть и выбирать, как удобнее.

По-моему если процедура хоть сколько-нибудь сложная, требуется время для ее написания, то выделить ее отдельно, а в OnClick добавить вызов процедуры, это маленькая добавка времени и труда, зато разделяет логику действий и интерфейс пользователя, опять же проще потом эту процедуру использовать в другом месте. В этой программе учёта, которую упомянул, несколько раз приходилось делать рефакторинг - вот так выделять и отвязывать какие-то действия из общей кучи в отдельные процедуры, когда нужно было позднее использовать их где-то ещё.

Много мнений, есть интересные идеи
Ну в общем, это как мебель подбирать и расставлять для квартиры - тут могут тебе надавать десятки советов самых разных, а выбирать и расставлять все равно тебе (и жене :) ).
15 окт 17, 17:08    [20870813]     Ответить | Цитировать Сообщить модератору
 Re: Связать класс и форму TForm  [new]
s62
Member

Откуда: Жуковский
Сообщений: 700
s62, на всякий случай,
конечно же не всегда
выделить ее отдельно, а в OnClick добавить вызов процедуры

так тоже
достаточно обработки Button1Click
16 окт 17, 12:48    [20872469]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Delphi Ответить