Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.30;
Скачать: CL | DM;

Вниз

Ресурсы, ресурсы...   Найти похожие ветки 

 
kavlad   (2003-10-20 17:16) [0]

Есть у меня проект, в котором много окошек. На окошках одни и теже кнопки с одними и теми же картинками в TImageList"ах. Может их хранить в одном месте, а не на каждой форме? Прилепил TDataModule c ImageList"ом. Теперь все юниты с окошками на него ссылаются - калечит архитектуру :))) Может есть красивше способ?


 
Ломброзо ©   (2003-10-20 17:19) [1]

нормальный способ. Только вместо TDataModule я бы его на пустую форму положил.


 
mOOx_ ©   (2003-10-20 17:23) [2]

Ну и был бы не прав :).
Какая разница? Что меньше памяти жрет: ДатаМодуль или Форма?
А способ действительно не нормальный, а единственно необходимый. Только я бы еще не делал много одинаковых форм, а описал бы для одной энцать состояний и юзал бы одну форму :)
Удачи.


 
Юрий Федоров ©   (2003-10-20 17:23) [3]

почему "калечит архитектуру" ?


 
mOOx_ ©   (2003-10-20 17:26) [4]

Кстати да :)


 
Ломброзо ©   (2003-10-20 17:35) [5]

аивсамомделе. Что-то мне подума лось, что TDataModule в каком-то экзотичном юните обозначен, а он, оказывается, в Classes.


 
kavlad   (2003-10-20 17:38) [6]

>Юрий Федоров © (20.10.03 17:23) [3]
Там смайлик стоял :)
Просто долго бился, уничтожая ссылки/связи между юнитами. Больно их много и каждый от других чего-то хочет :)


 
mOOx_ ©   (2003-10-20 17:41) [7]

Более элегантный вариант - поменять исколеченную архитектуру :)


 
kavlad   (2003-10-20 17:43) [8]

Вообще, открыл exe-шник редактором ресурсов, а там столько ненужного, повторяющегося. Так захотелось все ето почикать. На кол перелезать не хочется да и нет под него нужных компонентов :( Может как-нибудь перехватывать обращение приложения к ресурсам, написать под это дело класс, динамически их зачитывать и подсовывать? Или мысль бредовая?


 
kavlad   (2003-10-20 17:45) [9]

>mOOx_ © (20.10.03 17:41) [7]
Философский вопрос... Не будем его поднимать :) А то потом не опустишь.


 
mOOx_ ©   (2003-10-20 17:46) [10]

Что под кого ты собираешьмя подсовывать?
ЗЫ: кстати, не плохая мысль :)


 
mOOx_ ©   (2003-10-20 17:47) [11]

Ради удовлетворения моего бесконечного любопытства: сколько у тебя одинаковых форм?


 
kavlad   (2003-10-20 17:48) [12]

>mOOx_ © (20.10.03 17:23) [2]
Формы не совсем одинаковые - они потомки нескольких базовых форм. Но на базовых стояли ImageList"ы, я думал, что делфя умная и ресурсы не будет копировать для каждого потомка.


 
kavlad   (2003-10-20 17:50) [13]

>mOOx_ © (20.10.03 17:47) [11]
Около полсотни одного вида, и десяток другого.
>mOOx_ © (20.10.03 17:46) [10]
Подсовывать ресурсы под приложение, когда приложение хочет. А не когда хочет борланд. Динамически то есть. Вот только не знаю возможно ли перехватить обращение к ресурсам.


 
Rouse_ ©   (2003-10-20 17:52) [14]

Дельфя не умная и не глупая, она инструмент, и все зависит от того кто им пользуется. Храни рисунки в ресурсах а не в ImageList-ах.

Желаю успехов


 
REA ©   (2003-10-20 17:53) [15]

А какие кнопки? Если SpeedButton, то ему все-равно, что картинки в ImageList и программа пухнет.


 
kavlad   (2003-10-20 17:56) [16]

>Rouse_ © (20.10.03 17:52) [14]
А грузить их как потом? При динамической загрузке картинки на кнопках не появляются. Или у меня руки кривые. И лень код писать для загрузки этих картинок, когда можно все мышой настроить. И некрасиво получается придется к action"у прицеплять еще одно свойство - идентификатр ресурса, да еще его потом грузить. Хотя надо попробывать. Спасибо.


 
mOOx_ ©   (2003-10-20 17:58) [17]

Можно, конечно и так, только это более замуженно. Дата модуль все более чем решает.
Около полсотни одного вида, и десяток другого.
Полсотни!!! О ужас!!! А [2] не подходит? Попробуй. Так только код ростится, а не ресурсы, что на много эффективнее. По крайней мере в моей практике не встречалось случаев, когда бы я не мог так сделать. Реально в проекте показывается форм 20, а на самом деле их 5 (включая ДатаМодуль).


 
kavlad   (2003-10-20 18:03) [18]

>mOOx_ © (20.10.03 17:58) [17]
Расскажи подробнее про энцать состояний. Я не совсем понял :(


 
kavlad   (2003-10-20 18:05) [19]

>REA © (20.10.03 17:53) [15]
ToolButton"ы, эти же картинки в менюшках.


 
mOOx_ ©   (2003-10-20 18:15) [20]

Ну типа есть у тебя 5 (любимое число) форм, визуально они различаются только парой кнопок и картинок (ну и функциональностью). Так вот. Составляешь только 1(одну) форму, на которой есть все элементы, которые тебе потребуются для всех 5-и состояний. А далее пишешь:
1. 5 процедур для отображения этой формы в разных видах.
2. На кнопки вешаешь процедуру, в которой выполняются действия в зависимости от текущего состояния.
Кодить много, но ресурсов раз в 5 :) меньше.
Удачи.


 
kavlad   (2003-10-21 09:15) [21]

>mOOx_ © (20.10.03 18:15) [20]
Не люблю процедуры :( Напишу класс, кот. будет управлять функциональностью форм - добавлть форме действия, ставить на форму кнопки и пункты меню, вешать обработчики и т.п.


 
Anatoly Podgoretsky ©   (2003-10-21 09:32) [22]

kavlad (20.10.03 17:43) [8]
Зачем свое здоробе портишь, зачем вьювером в ехешник лезешь?


 
kavlad   (2003-10-21 09:51) [23]

>Anatoly Podgoretsky © (21.10.03 09:32) [22]
А зачем дельфя такие большие бинарики собирает ? :)


 
Anatoly Podgoretsky ©   (2003-10-21 09:55) [24]

Ну ты не прав, включи Build with runtime packages и будет тебе тоже счастье как в VB/VC


 
kavlad   (2003-10-21 10:00) [25]

>Anatoly Podgoretsky © (21.10.03 09:55) [24]
Это глупый, беспредметный разговор. Его надо пректратить!


 
mOOx_ ©   (2003-10-21 10:56) [26]

Ну раз ты так считаешь :)...
А вообще я процедуры только в пример привел. У меня тоже все в классах :). Метод реализации - это уже твое личное дело, которое мало кого волнует :)
Удачи.


 
kavlad   (2003-10-21 11:14) [27]

>mOOx_ © (21.10.03 10:56) [26]
глупый, беспредметный разговор - это про включи Build with runtime packages и будет тебе тоже счастье как в VB/VC.
Можно вообще писать на голом API и бинарики маленькие будут и бесценный опыт.
Я вот все обсасываю твою идею про одну форму и разные состояния. У меня форма сама по себе пассивна, служит только для представления данных. Вся обработка событий вынесена в специальный класс, который этой формой управляет. и этих классов порядка 100, как и форм. Т.е. форму действительно можно сделать одну, а этому классу добавить возможность более тотального управления формой, в том числе и ее построения - добавления нужных контролов, удаления ненужных. Только зачем тогда редактор делфи ? :)


 
mOOx_ ©   (2003-10-21 11:21) [28]

так ты что, и контролы динамически создаешь?!!


 
Anatoly Podgoretsky ©   (2003-10-21 11:23) [29]

Правильно, но тогда зачем начинаешь его?


 
kavlad   (2003-10-21 11:45) [30]

>mOOx_ © (21.10.03 11:21) [28]
Часть из них. Окно/форма необходима, чтобы пользователь оперировал объектами. Для некоторых объектов создаются дополнительные контролы - для быстрого просмотра свойств, для поиска и пр. На форме для этих целей отведена панель.

>Anatoly Podgoretsky © (21.10.03 11:23) [29]
Уважаемый Анатолий! Достаточно давно почитываю ваши посты и очень часто не улавливаю смысла Ваших изречений. Если Вам нечего сказать по делу, то, пожалуйста, давайте не будем разводить флейм.


 
mOOx_ ©   (2003-10-21 11:52) [31]

Ну вообщем, делай, как считаешь нужным. Наше дело на мысль навести.


 
Rouse_ ©   (2003-10-21 14:33) [32]

> И лень код писать для загрузки этих картинок, когда можно
> все мышой настроить.


Хм... ну тогда я пас.

Желаю успехов



Страницы: 1 вся ветка

Текущий архив: 2003.10.30;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.036 c
1-98739
arche
2003-10-20 17:57
2003.10.30
Еще раз про указатели.


14-98813
net
2003-10-12 18:32
2003.10.30
object delphi


3-98511
bss
2003-10-09 11:42
2003.10.30
Как в SQL-операторе SELECT вывести разницу в днях между датами?


4-98930
Davinchi
2003-08-25 18:51
2003.10.30
Интерфейс TWebBrowser.Document


14-98840
ZeroDivide
2003-10-10 15:47
2003.10.30
А ведь седня тяпница ;)