|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.12.2011, 11:41 | #11 | |
Заблокирован
Регистрация: 04.07.2011
Сообщений: 261
|
Цитата:
|
|
05.12.2011, 11:50 | #12 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 05.12.2011 в 12:01. |
|
05.12.2011, 23:21 | #13 |
Заблокирован
Регистрация: 04.07.2011
Сообщений: 261
|
Спасибо за очередной хорошо написанный пример!
Но, возможно это напряжение из-за уродских выборов, но я что-то вообще не могу въехать в Ваш сугубо профессиональный код... Неужели простыми конструкциями и простейшими командами, вроде тех, что описаны мной на пред странице, без property итп усложнений, нельзя решить проблему темы??? |
06.12.2011, 10:42 | #14 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 06.12.2011 в 10:44. |
|
06.12.2011, 14:46 | #15 |
Заблокирован
Регистрация: 04.07.2011
Сообщений: 261
|
Это опять какой-то изврат.
Можно как-то решить описанную проблему при помощи КОМАНД РАБОТЫ С ОКНАМИ-ФОРМАМИ, без допилов и изобретений велосипедов?! |
06.12.2011, 15:10 | #16 | |||||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
А ее описание (создание) это УЖЕ допил. можно использовать свои свойства, методы и прятать внутренние связи компонентов можно обращаться напрямую к компонентам и следить за связями извне (из главной формы и потом долго вылавливать где забыл обновить связки). Но код писать придется. Цитата:
Код:
Цитата:
Код:
Цитата:
Код:
Цитата:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 06.12.2011 в 15:26. |
|||||
06.12.2011, 16:07 | #17 |
Заблокирован
Регистрация: 04.07.2011
Сообщений: 261
|
Честно говоря я просто в шоке, что подобной (наиболее очевидной и удобной) схемы работы с окнами в БД стандартно нет и даже не предусмотрено стандартными средствами разработки Delphi... ужас.
Мне эти извраты не нравятся. Мне не нравится и я считаю неправильным писать добавочный код и возведение добавочных конструкций для решения тривиально-очевидных задач. Это приводит к захломлению и перегруженности кода. Пожалуйста, давайте подумаем - быть может можно решить вопрос темы более "логически очевидными конструкциями"... Например: 1) можно ли как-то очищать переменную из начальных примеров fOknoCatalog1,fOknoCatalog2,fOknoCa talog3 при закрытии самого окна через код OnClose (в базовом классе fBaseCatalog или в дочернем fOknoCatalog2)? 2) может вместо закрытия скрыть MDIChild не модальное окно (caHide не пашет)? а затем вместо пересоздания просто Show. Как-то так. 3) возможно можно как-то улучшить сроку проверки "if not Assigned(fOkno) then begin" чтобы проверка проходила правильно, давала точный ответ - есть окно или нет? 4) может можно как-то проверять отображение окна по его заголовку или названию оригинального класса (без дурацкого поиска по списку MDI окошек с тупым перебором)? |
06.12.2011, 16:27 | #18 |
Заблокирован
Регистрация: 04.07.2011
Сообщений: 261
|
Решено - мой первый код вполне правильный и хорошо работает, не хватало только полного очищения/уничтожения переменной fOkno, для этого потребовалось всего-лишь дописать в OnClose строку fOkno:=nil; и всё, никаких извратов и ненужных конструкций.
|
06.12.2011, 16:44 | #19 | |||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Если вы по этот пост и код
Цитата:
Цитата:
У вас для КАЖДОГО конкретного каталога есть есть СВОЯ ОТДЕЛЬНАЯ форма наследник какого-то вашего базового класса и своя переменная для этого класса. Судя по тому что нигде не упомянуто о том как настроить форму на работу с конкретным каталогом. Если это так, то в шоке теперь я. в моих примерах 1.только один класс TMDICatalog наследник TMDIChildren. 2.ни одной глобальной переменной Цитата:
сначала проверяем и если не нашли то создаем новое и инициализируем. 4.единственое о чем не упомянул и не написал корректное удаление реализуется в Onclose (Action:=caFree). P.S. кстати мой пример легко модифицируется под вашу схему.и без увеличения кода, который вы так не любите, но готовы копировать формы (то же код но который пишет Delphi) Но это после того как убедимся в том что мои догадки веры. А что собственно вы изменяете в формах чтобы она(форма) работала с заданным каталогом.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 06.12.2011 в 16:49. |
|||
06.12.2011, 17:19 | #20 |
Заблокирован
Регистрация: 04.07.2011
Сообщений: 261
|
Есть базовая форма BaseCatalogForm - там все основные и идентичные функции всех каталогов, например настройки окна, таблиц, кнопок отмены и сохранения, итп, часть универсальных настроек Show, открытие Dataset, единые настройки используемых в форме таблиц, итд, в общем максимум унификации.
Далее на базе родительской сделано положим 10 разных каталогов с разными данными из разных Dataset и с частично различающимся поведением и функционалом. Задача описанная в теме - дать возможность юзеру открывать каждый из каталогов так, чтобы каждый каталог отображался в единственном числе. Всё довольно просто и имхо в 2011году должно работать стандартными средствами Delphi без замороченных "допилов". |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка в потоках (Access violation at address) | designer999 | Общие вопросы Delphi | 9 | 25.08.2011 16:04 |
Ошибка Access violation... | ара | Общие вопросы Delphi | 2 | 15.05.2011 15:57 |
Ошибка access violation at adress | Godod | Помощь студентам | 2 | 02.02.2011 11:11 |
ошибка access violation at address ... | Yuran | БД в Delphi | 5 | 05.01.2011 16:04 |
Ошибка Access Violation | AHTuKiLLeR | Общие вопросы Delphi | 8 | 02.06.2009 10:48 |