Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.013 c
4-98916
Um
2003-08-27 08:29
2003.10.30
кнопки на taskbar


8-98745
VP
2003-06-30 09:28
2003.10.30
Видео и кодеки


3-98462
zergey
2003-10-10 10:28
2003.10.30
запросы клиента


1-98739
arche
2003-10-20 17:57
2003.10.30
Еще раз про указатели.


1-98710
snake1977
2003-10-21 11:48
2003.10.30
TLabel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский