|
|
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Добрый день Какие есть решения для MVC в делфи? Есть класс Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. и есть форма для отображения/редактирования данных. Как правильно связать этот класс, заполнить поля в форме данными из класса и потом после редактирования их передать для сохранения? Сохраняет класс в БД данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 16:17:20 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
DFilushinКак правильно связать этот класс, заполнить поля в форме данными из класса... Правильно ручками. Или, например, назвать компоненты по полям класса+приставка и написать процедуру заполнения. Если класс от TComponet, то перебираем все публикуемые поля и для каждого ищем компонент на форме для заполнения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 16:28:47 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
DimaBr, ручками это типа ReadDocument и там edtNumber.TExt:= FDocument.Number; edtDateDoc.Value:= FDocument.DateDoc... И на кнопке Save - SaveDocument, где делать обратное и вызывать FDocument.Save? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 16:33:34 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
DFilushinИ на кнопке Save - SaveDocument, где делать обратное и вызывать FDocument.Save? Да. Надеюсь, ты не боишься стереть пальцы до основания, набирая десять строк примитивного кода?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 16:51:29 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Вы хоть расскажите человеку про DB-aware и LiveBinding-и. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 17:02:22 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, пользовался этим столько лет. На каждую форму положить dbaware - компонент или в дб=модуле запихнуть их 100? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 17:12:52 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
DFilushinГаджимурадов Рустам, пользовался этим столько лет. На каждую форму положить dbaware - компонент или в дб=модуле запихнуть их 100? Для начала попытаться выяснить, что есть "dbaware - компонент" в данном контексте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 18:26:46 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
чччД, TDataset, TDbEdit, TDataSource ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 18:30:03 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
DFilushin> На каждую форму положить dbaware - компонент или в дб=модуле запихнуть их 100? Это зависит от архитектуры программы и её модулей и подхода разработчика к ним. Можно на каждую форму, можно на датамодуль, датамодулей может быть несколько, в т.ч. на каждую форму по одному. И т.д. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 18:49:58 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Есть отличный подход: не усложняй простое решение без необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 20:06:29 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Использовать интерфейсы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 21:32:50 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
ziv-2014, можно подробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 21:42:37 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
DFilushinziv-2014, можно подробнее? Реализовываете интерфейс для сохранения в базу + используете атрибуты и rtti. Реализовываете интерфейс для отображения на форме. Конкретная реализация зависит от вкуса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2017, 22:13:04 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
ziv-2014, Только сказал "не усложняй без нужды" и вот... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 00:04:01 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
ziv-2014> используете атрибуты и rtti. Ну, интерфейсы при наличии готового класса ещё ладно. Но что такое в данном контексте "атрибуты" и зачем rtti? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 01:24:21 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Вот нафига в Delphi эта MVC? Неужели действительно собираемся оперативно тасовать компоненты (MVC)? Ну, ради чего периодически кто-то пытается натянуть старую сову на глобус? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 04:05:35 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Что умеют, то и пытаются натянуть. В конце концов, MVC это стильно, модно и молодежно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 11:38:58 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
А кое где тем временем до сих пор работают программы написанные на коболе :) Ох уж мне все эти новомодные технологии :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 11:42:33 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, а вы попробуйте Django на питоне. Удобно и "стильно" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 15:50:04 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамНу, интерфейсы при наличии готового класса ещё ладно. Но что такое в данном контексте "атрибуты" и зачем rtti? Атрибуты нужны для того, чтобы указать какие поля связывать и сохранять. Rtti - нужен для того, чтобы сделать все автоматом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 17:59:39 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
DFilushinГаджимурадов Рустам, а вы попробуйте Django на питоне. Удобно и "стильно" Ну ты разберись, какие инструменты в Delphi имеются, как люди работают, а не лезь буром. MVC реализовать совсем несложно, только ты не знаешь самых основ, судя по твоим сообщениям. Ну а ты попробуй на питоне кодить "в стиле Delphi". И на каком-нибудь форуме питоноидов рассказывай, что у них не так для быстрой и удобной работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:45:24 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
ziv-2014> Атрибуты нужны для Я не спрашивал, для чего они нужны. Я спрашивал, что под ними подразумевается. Если затрудняешься объяснить - можно привести пример. Что "rtti нужен для того, чтобы сделать все автоматом" и ежу понятно, но непонятно как он поможет с БЛОБами, с любым нестандартным выводом даже integer и string-полей. Или надо будет "эти 10 полей автоматом, эти 5 полей вручную, а здесь рыбу заворачивали" ? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 18:54:32 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамЧто "rtti нужен для того, чтобы сделать все автоматом" и ежу понятно, но непонятно как он поможет с БЛОБами, с любым нестандартным выводом даже integer и string-полей. Или надо будет "эти 10 полей автоматом, эти 5 полей вручную, а здесь рыбу заворачивали" ? А чтобы справиться с БЛОБАМИ и любыми нестандартными типами, тута тебе в помощь атрибуты с необходимыми обработчиками для не стандартных типов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 19:45:54 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамЯ не спрашивал, для чего они нужны. Я спрашивал, что под ними подразумевается. Если затрудняешься объяснить - можно привести пример.Так именно аттрибуты и подразумеваются. Смотри любой ОРМ для делфи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2017, 22:37:53 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
DFilushinTDbEditесли юзать что-то вроде dblayoutview/dbcardview (от девэксов) то от россыпи подобных индивидуальных под каждое поле контролов возможно будет практически полностью отказаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2017, 09:24:33 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
DFilushinTDataset, TDbEdit, TDataSource TDataSource на той-же форме, что и TDataset, или той, что содержит TDbEdit? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2017, 11:11:23 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Я не использую DB-Aware компоненты, использую обычные контролы, заполнение и сохранение все через select, update, insert. Зато все контролируемо и гибко! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2017, 21:02:12 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Много мнений, есть интересные идеи (rtti, автогенерация форм и т.д). Ранее была программа для медицины. Вот проблемы почему написал пост. В случае использования DBAware (TDbEdit, TDataSource, TDataset) использовал модуль данных для сеток, справочников. Редактирование записи в форме со своим датасетом в каждой форме. Нужно редактировать данные пациента - весь набор данных с селектом и апдейтом в компоненте на форме редакторе пациента. Справочники и выбор данных из справочников в отдельном модуле с передачей только датасета, всё остально ренерится автоматом вплоть до редактора справочника. Уникальные формы - да, ручные с одним датасетом, как выше писал. Вот где самое интересное. Начинаем управлять назначениями на пациентов, есть сущность - пациент, его назначения. Назначения можно продлить, прекратить приём, переназначить и т.д. В каком месте это обрабатывать? В форме назначения или всё-таки писать класс для реализации, который вызовет хранимку в бд? Один из вариантов это невизуальный класс, который возвращает датасет для грида и действительно всё обрабатывает по данным. И тогда в форме лишь вызываешь функции обработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 08:17:03 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
DFilushinВ форме назначения или всё-таки писать класс для реализации, который вызовет хранимку в бд? Это путь к размазыванию логики между сервером и клиентом. Чем больше будет размазано, тем сложнее будет сопровождать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 19:36:16 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Никакое MVC не поможет плохому дизайну ПО. Я не говорю, что он у вас такой. Просто для информации. Стоит вначале хорошо продумать общий программный дизайн. А уже как его реализовать - используя MVC, или просто на уровне батонокидательства - дело не столь важное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 20:19:17 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
makhaonНикакое MVC не поможет плохому дизайну ПО... "Да, но зато ты умрешь уставшим" -©. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 21:17:36 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
чччДmakhaonНикакое MVC не поможет плохому дизайну ПО... "Да, но зато ты умрешь уставшим" -©.Ахаха. В точку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 22:33:08 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
stanilar, и как тогда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2017, 15:34:21 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
Для большинства не сложных задач достаточно обработки Button1Click. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2017, 16:32:22 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
rgreatДля большинства не сложных задач достаточно обработки Button1Click. Для более сложных подойдёт Action1Click ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2017, 17:40:49 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
DFilushinstanilar, и как тогда? Когда наступит "тогда", тогда и думать будешь. Говнокодь, как бог на душу положит, пока проект не станет сложным. Потом проведешь рефакторинг. ...а в следующий раз все сделаешь сразу по уму, канешна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2017, 19:31:42 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
DFilushinи как тогда? Для себя принял что в учетках клиент нужен только для отображения/редактирования информации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2017, 16:23:05 |
|
||
|
Связать класс и форму TForm
|
|||
|---|---|---|---|
|
#18+
DFilushinDimaBr, ручками это типа ReadDocument и там edtNumber.TExt:= FDocument.Number; edtDateDoc.Value:= FDocument.DateDoc... И на кнопке Save - SaveDocument, где делать обратное и вызывать FDocument.Save? Если не использовать db-aware элементы управления, то я думаю, что да, примерно так. Если действия объемные и сложные, то можно какую-то часть вынести в отдельную процедуру. Ну это же здравый смысл, удобство повторного использования кода, удобство чтения, красота наконец)) . А если использовать db-aware элементы управления, я, например, с БД написал несколько маленьких программ, а вот такую относительно большую - одну, переписывал написанную на Access когда-то другим человеком программу учета производства у нас в фирме. И по ходу её написания, понятное дело, учился. В частности, сначала кидал все датасаты, датасорцы на Датамодуль. Но когда их там стало несколько десятков и стало проблемой найти что-то, от решил, что это ерунда и теперь размещаю прямо на новых формах, если что-то новое добавлял. Можно, конечно заводить датамодули для отдельных форм, но это ведь тоже требует доп. действий - когда форма создается, создать датамодуль, пллюс создать его первым, чтобы не получить acess violation, когда при создании формы пытаешься открыть наборы данных. Потом удалить его вместе с формой. Ну то есть тут тоже нужно смотреть и выбирать, как удобнее. По-моему если процедура хоть сколько-нибудь сложная, требуется время для ее написания, то выделить ее отдельно, а в OnClick добавить вызов процедуры, это маленькая добавка времени и труда, зато разделяет логику действий и интерфейс пользователя, опять же проще потом эту процедуру использовать в другом месте. В этой программе учёта, которую упомянул, несколько раз приходилось делать рефакторинг - вот так выделять и отвязывать какие-то действия из общей кучи в отдельные процедуры, когда нужно было позднее использовать их где-то ещё. Много мнений, есть интересные идеи Ну в общем, это как мебель подбирать и расставлять для квартиры - тут могут тебе надавать десятки советов самых разных, а выбирать и расставлять все равно тебе (и жене :) ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2017, 17:08:23 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2041712]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
180ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 532ms |

| 0 / 0 |
