Форум: "Прочее";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];
ВнизВизуальные компоненты на TDataModule Найти похожие ветки
← →
DevilDevil © (2007-10-19 15:36) [0]Наверняка есть такая возможность, подскажите, по какому пути идти...
Чтобы в дизайн-тайме на TDataModule можно было класть мои "визуальные" компоненты, изменять их свойства (например, Left, Top, Width, Height, ... ), ну а в рантайм они считывали бы такие свойства и работали, как должны.
KOL-программистам наверняка ещё сложнее, там даже TDataModule-я нет.
Заранее спасибо.
← →
DimaBr © (2007-10-19 15:40) [1]Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены.
← →
Palladin © (2007-10-19 15:45) [2]Лучше бы они удалялись, а не переносились, вся конференция красная, и опять же в архив быстрее ветки сливаются, соответственно из онлайна вырезаются...
← →
KSergey © (2007-10-19 15:46) [3]> DevilDevil © (19.10.07 15:36)
> Чтобы в дизайн-тайме на TDataModule можно было класть мои
> "визуальные" компоненты, изменять их свойства (например,
> Left, Top, Width, Height, ... ), ну а в рантайм они считывали
> бы такие свойства и работали, как должны.
"Как должны" - это как?? дата модуль вроде как не отображается в Run-time
← →
Eraser © (2007-10-19 15:48) [4]
> DevilDevil © (19.10.07 15:36)
есть такой компонент TForm - вот ключ к решению проблемы.
← →
Palladin © (2007-10-19 15:49) [5]
> KSergey © (19.10.07 15:46) [3]
он хочет реализовать, что то на подобие репозитория.
← →
KSergey © (2007-10-19 16:09) [6]Ва! Телепаты таки вернулись с отпуска!
Заходите, милости просим!! Рассаживайтесь как вам удобнее :)
← →
DimaBr © (2007-10-19 16:35) [7]
> Palladin © (19.10.07 15:45) [2]
Слушаюсь !!!
← →
DimaBr © (2007-10-19 16:39) [8]Сравните и почувствуйте разницу
TDataModule = class(TComponent)
иTForm = class(TCustomForm)
← →
Eraser © (2007-10-19 16:41) [9]
> DimaBr © (19.10.07 16:39) [8]
TObject
TPersistent
TComponent
TControl
TWinControl
...
TForm
← →
Правильный_Вася (2007-10-19 17:55) [10]TFrame
← →
DevilDevil (2007-10-19 20:20) [11]мда...
> DimaBr © (19.10.07 15:40) [1]
уж чего-чего, а такого точно не ожидал ))
вообще, я надеялся, и похоже зря, что путём использования директив компилятора DESINE_TIME-подобных, можно было бы создать компоненты, в DesineTime работающие одним образом, в ран-тайм - другим.
Именно поэтому, не как не ожидал, что мой вопрос мог бы относиться к вопросам "поиска и использования готовых компонентов, редакторов или экспертов".
Наиболее показательный пример - KOL&MCK.
В KOL вообще нет компонентов как таковых, ДатаМодулей - тем более.
Моя задача-минимум намного проще: класть на "форму" компоненты и задавать им координаты.
Почему бы не использовать TForm или TFrame, зачем создавать дополнительные проблемы
Вообще говоря, есть идейка одна... категорически не хочется использовать модульForms
, а возможность изменения координат и размеров необходимы.
Ну тогда с помощью экспертов делай...
Ну во первых, я не знаю как их делать ). Во-вторых... а разве предоставляется возможность затаскивать в них другие компоненты?
Вообще говоря, хочется услышать совет, как реализовать задумку проще всего. Не буду скрывать, существуют задачи-максимум. Захочется больше отображений.
Возможно, придётся писать зеркала... В этом случае прошу дать ссылку на информацию, как собственно они делаются )
Заранее извиняюсь за скудное владение (а точнее невладение) информацией о редакторах и экспертах.
С Уважением
← →
DevilDevil (2007-10-19 20:24) [12]> KSergey © (19.10.07 15:46) [3]
> "Как должны" - это как?? дата модуль вроде как не отображается в Run-time
Совершенно верно, не отображаются.
Допустим я бы средствами WinApi создал окно, и в соответствии со считанными координатами компонентов из DataModule-я, сам бы их отображал.
← →
Palladin © (2007-10-19 20:41) [13]
> DevilDevil (19.10.07 20:20) [11]
> мда...
>
> > DimaBr © (19.10.07 15:40) [1]
>
> уж чего-чего, а такого точно не ожидал ))
> вообще, я надеялся, и похоже зря, что путём использования
> директив компилятора DESINE_TIME-подобных, можно было бы
> создать компоненты, в DesineTime работающие одним образом,
> в ран-тайм - другим.
> Именно поэтому, не как не ожидал, что мой вопрос мог бы
> относиться к вопросам "поиска и использования готовых компонентов,
> редакторов или экспертов".
понимаешь из твоего вопрос абсолютно не понятно, собираешься ли ты создавать свой компонент или же пытаешься использовать TDataModule не по назначению, так что обижайся сам на себя...
по сути вопроса, хочешь сохранять свойства компонентов в чем то одном и восстанавливать их в чем то друго, то совет, создай другое приложение, расположи на нем контрол, который хочешь "запомнить", расположи на форме Button1, на OnClick которого напиши
Var
f:TFileStream;
Begin
f:=TFileStream.Create("c:\test.cmp",fmCreate);
f.WriteComponent(Контрол); или f.WriteComponentRes(имя_ресурса,контрол);
f.Free;
End;
в последствии восстонавливая его через f.ReadComponent/f.ReadComponentRes
даже приложение написать можно свое, этим пользуясь
← →
DevilDevil (2007-10-19 20:49) [14]> Palladin © (19.10.07 20:41) [13]
Может недоконца понял, но...
Хочу иметь более универсальное средство.
Можно создать своё приложение-редактор, можно создать эксперта...
Но стандартное изменение размеров, коорлинат и вообще ряда свойств в инспекторе объектов меня больше чем устраивает... не устраивает TForm )
← →
Palladin © (2007-10-19 20:54) [15]Ну так создай свое приложение-редактор. Пока конкретного вопроса не видно. Правда конечно, на самый первый впорос, ответ - забудь про TDataModule, он и визуальные контролы это как солнце и луна. Оба светят, но...
← →
Anatoly Podgoretsky © (2007-10-19 21:10) [16]> DevilDevil (19.10.2007 20:49:14) [14]
> не устраивает TForm
Чем?
← →
Palladin © (2007-10-19 21:21) [17]
> Anatoly Podgoretsky © (19.10.07 21:10) [16]
DevilKOL :)
← →
Petr V. Abramov © (2007-10-19 21:30) [18]ты б рассказал алгоритм формирования DSN, а то тут много темных в этом вопросе, так и помирают, ни слова сказать ни смогя :)
> ело в том, что DSN не создаётся
молча не создаетя? или ругается?
← →
DevilDevil (2007-10-19 21:46) [19]> Petr V. Abramov © (19.10.07 21:30) [18]
эээ... промахнулся чтоли?
> Ну так создай свое приложение-редактор.
нее, это плохой вариант.
> Anatoly Podgoretsky © (19.10.07 21:10) [16]
> > не устраивает TForm
> Чем?
если отвечу, то будет флуда на 30 постов... что мне сейчас абсолютно никчему.
P.S. значит нужно смотреть в сторону зеркал... не подскажете ссылочку на инфо ?
← →
Palladin © (2007-10-19 21:49) [20]
> нее, это плохой вариант
Тогда я теряюсь в загадках. А что же хороший?
← →
Eraser © (2007-10-19 22:43) [21]> [14] DevilDevil (19.10.07 20:49)
> не устраивает TForm
тогда MSVC++ с winAPI на перевес и вперед )
← →
J_f_S (2007-10-19 22:48) [22]И не самый плохой вариант, надо сказать!
← →
Jump (2007-10-19 23:15) [23]класть на "форму" компоненты и задавать им координаты.
1. У компонентов нет координат.
2. Координаты есть у контролов, но, для отображения контролов, им надо задать Parent, который TWinControl, коим TDataModule не является.
Так что, или переделывай идеологию VCL на свой манер.
Или... смирись.
← →
DevilDevil (2007-10-19 23:47) [24]мдя...
> Palladin © (19.10.07 21:49) [20]
> > нее, это плохой вариант
> Тогда я теряюсь в загадках. А что же хороший?
Delphi - RAD система, которая обладает всеми необходимыми мне средствами, вручную реализовывать которые достаточно сложно, уж лучше TForm...
тем не менее, прошу какую-нибудь инфо по зеркалам
← →
jack128 © (2007-10-19 23:55) [25]
> 1. У компонентов нет координат.
есть.
← →
одбс (2007-10-20 00:17) [26]
> jack128 © (19.10.07 23:55) [25]
где?
← →
jack128 © (2007-10-20 00:20) [27]Сорцы рулят не по деццки.
DesignInfo + F3
← →
DevilDevil (2007-10-20 00:35) [28]> jack128 © (20.10.07 00:20) [27]
ну а какая-нибудь статья, экзампл, ... ?
был бы очень признателен.
← →
jack128 © (2007-10-20 00:37) [29]Не думаю. Там три строчки кода, наврядли кто нить будет писать об этом статью..
← →
DevilDevil (2007-10-20 01:10) [30]> jack128 © (20.10.07 00:37) [29]
Вы и многие остальные текста написали много; помощи - ноль.
Прошу изъясняться более детально.
Мне не ясен сам механизм, как проектирование ведётся в TForm, а код работает совершенно иной. Буду благодарен за разъяснения.
Следующий вопрос. Обязательно ли создание двух различных компонентов; или всё-таки можно define-средствами разделять 2 случая: работа в desine-time и в ран-тайм. Кпримеру, чтобы класс TMyButton в Desine-Time наследовался от TWinControl, а в ран-тайм от TComponent ?
P.S. наверняка, что-то непонятно. отвечу на уточняющие вопросы.
← →
jack128 © (2007-10-20 01:32) [31]
> Мне не ясен сам механизм, как проектирование ведётся в TForm,
> а код работает совершенно иной. Буду благодарен за разъяснения.
>
А я что, хоть слово сказал о "проэктировании в TForm"?
Просто в ветке было дано неверное утверждение, которое я и отпроверг.
← →
111 (2007-10-20 01:33) [32]Удалено модератором
← →
DevilDevil (2007-10-20 01:39) [33]Удалено модератором
← →
Сергей М. © (2007-10-22 08:41) [34]
> DevilDevil (20.10.07 01:10) [30]
Справку к св-ву TComponent.State штудировал ?
← →
Игорь Шевченко © (2007-10-22 09:33) [35]DevilDevil (20.10.07 01:10) [30]
В древнем Китае желающим странного отрубали голову. Очень мудро.
← →
KSergey © (2007-10-22 09:49) [36]> DevilDevil (19.10.07 20:20) [11]
> Моя задача-минимум намного проще: класть на "форму" компоненты
> и задавать им координаты.
А че, нельзя было сразу так вот и написать? Если есть лишь такая задача - то вам сюда.
http://www.delphikingdom.com/asp/viewitem.asp?catalogID=342
И еще: обязательно прочтите - хотя бы бегло - статьи из
http://www.delphikingdom.com/asp/section.asp?id=16
Мноого вопросов отпадет.
А что такое "зеркала"?? Это как? Опять мудрим с терминологией?
Вы уж лучше пишите чего вам надоть, а тама может и подскажут верную терминологию.
> Сергей М. © (22.10.07 08:41) [34]
> Справку к св-ву TComponent.State штудировал ?
Кроме того, советую почитать вот тут, например
http://www.softhelp.ru/delphi/class/class.php?c=mk_component
а так же в яндексе посикать по "написать простейший компонент Delphi" - так же много полезного найдете.
← →
DevilDevil © (2007-10-22 12:29) [37]> Сергей М. © (22.10.07 08:41) [34]
> > DevilDevil (20.10.07 01:10) [30]
> Справку к св-ву TComponent. State штудировал ?
Посмотрел. Ткни носом, подведи итог.
> KSergey © (22.10.07 09:49) [36]
Спасибо за желание оказать помощь, но...
1) какое отношение вопрос Parent-ов и Owner-ов имеет к моей проблеме?
2) пробежался по всем темам, нашёл что-то для меня интересное, но опять-таки, ничего к темы подходящего.
3) на работе я разрабатываю компоненты, намного сложнее, представленных в статье ). И мне в этом кстати неоднократно помог DimaBr.
P.S. вопрос до сих пор актуален.Как не компилируя в приложение код модуля "Forms", пользоваться удобствами IDE, такими как изменение расположения и размеров ?
← →
Игорь Шевченко © (2007-10-22 12:40) [38]
> Как не компилируя в приложение код модуля "Forms", пользоваться
> удобствами IDE, такими как изменение расположения и размеров
> ?
изменение расположения и размеров кого ?
← →
Сергей М. © (2007-10-22 12:42) [39]
> DevilDevil © (22.10.07 12:29) [37]
> Ткни носом
if (csDesign in MyComponent.State) then
.. дизайн-тайм - поведение компонента такое-то ..
else
.. ран-тайм - поведение компонента иное
← →
KSergey © (2007-10-22 12:47) [40]> Игорь Шевченко © (22.10.07 12:40) [38]
> > удобствами IDE, такими как изменение расположения и размеров ?
> изменение расположения и размеров кого ?
Присоединяюсь к вопросу.
Если вы о TButton, к примеру, то советую внимательно посмотреть на uses в модуле StdCtrls
← →
DevilDevil © (2007-10-22 12:48) [41]> Сергей М. © (22.10.07 12:42) [39]
> if (csDesign in MyComponent.State) then .. дизайн-тайм
> - поведение компонента такое-то ..else .. ран-тайм - поведение
> компонента иное
А вот так вот можно ?if (csDesign in MyComponent.State) then
uses Forms;
> Как не компилируя в приложение код модуля "Forms", пользоваться
> удобствами IDE, такими как изменение расположения и размеров ?
> изменение расположения и размеров кого ?
см. сабж.
← →
KSergey © (2007-10-22 12:52) [42]> DevilDevil © (22.10.07 12:48) [41]
> > изменение расположения и размеров кого ?
> см. сабж.
Вообще-то не хорошо посылать нах. отвечающих. Они ведь и правда могут уйти. Или ответ в общем-то не интересует?
А по сути - ответ прост: посмотрите внимательно последнюю фразу в KSergey © (22.10.07 12:47) [40]
← →
DevilDevil © (2007-10-22 12:52) [43]> KSergey © (22.10.07 12:47) [40]
type
TMyVisualComponent = class(TComponent)
published
property Left : integer
property Top : integer
property Width : integer
property Height : integer
end;
я хочу:
1) не компилировать модуль "Forms"
2) изменять Bounds-свойства моего компонента не только из инспектора объектов, но и визуально, как изменяются аналогичные свойства TWinControl-ов
← →
KSergey © (2007-10-22 12:53) [44]> DevilDevil © (22.10.07 12:48) [41]
> А вот так вот можно ?
> if (csDesign in MyComponent.State) then
> uses Forms;
А попробовать?
← →
DevilDevil © (2007-10-22 12:55) [45]> KSergey © (22.10.07 12:53) [44]
))))
← →
DevilDevil © (2007-10-22 12:56) [46]вопрос открыт.
лучше бы пришёл DimaBr и внёс ясность...
← →
KSergey © (2007-10-22 12:56) [47]> DevilDevil © (22.10.07 12:52) [43]
> type
> TMyVisualComponent = class(TComponent)
>
> published
> property Left : integer
> property Top : integer
> property Width : integer
> property Height : integer
> end;
>
> я хочу:
> 1) не компилировать модуль "Forms"
> 2) изменять Bounds-свойства моего компонента не только из
> инспектора объектов, но и визуально, как изменяются аналогичные
> свойства TWinControl-ов
И это вы называете "визуальными компонентами??!! А тельзя ли было это изначаль уточнить???
а) посмотреть про GraphControl и наследников, но сильно подозреваю, что и там Forms не избежать :)
б) думаю проще всего наваять свой редактор, пусть внешний, что не сложно. Правда, к IDE он не будет иметь никакого отношения :)
PS
Правила игры меняются с каждым постом. Что же дальше-то будет?
← →
KSergey © (2007-10-22 12:57) [48]> DevilDevil © (22.10.07 12:56) [46]
> вопрос открыт.
> лучше бы пришёл DimaBr и внёс ясность...
Снегурочка!
Снегурочка!
А ну ка, хором!!
← →
Игорь Шевченко © (2007-10-22 12:59) [49]
> см. сабж.
см. http://ln.com.ua/~openxs/articles/smart-questions-ru.html
до полного и окончательного просветления.
← →
Сергей М. © (2007-10-22 12:59) [50]
> DevilDevil © (22.10.07 12:48) [41]
> А вот так вот можно ?
> if (csDesign in MyComponent.State) then
> uses Forms;
>
Какие тебе нафих компоненты, если ты языка программирования не знаешь ?)
← →
DevilDevil © (2007-10-22 13:10) [51]ёёёёёёёёёёёёёёёёё..........
1) вопрос был задан в ветке "компоненты" и только потом, стало быть по ошибке, перенесён в текущую. Там почти все знают разницу между TForm/TFrame и TDataModule.
2) Все контролы наследованы от TControl, который находится в модуле "Controls.pas", который юзает модуль Forms, следовательно линкоет то, что мне абсолютно не нужно (читай "мешает"). Однако невизуальные компоненты типа таймера на Датамодуле разместить можно.
3) > KSergey © (22.10.07 12:56) [47]
мне пофиг, визуальным он будет или нет (в рамках Delphi), главное, чтобы мышкой у него можно было менять размеры, и чтобы его использование не приводило к компиляции модуля Forms.
4)> Сергей М. © (22.10.07 12:59) [50]
cv 3)
5)> Игорь Шевченко © (22.10.07 12:59) [49]
не подскажите, что я неясно язъясняю
← →
Сергей М. © (2007-10-22 13:20) [52]
> cv 3)
Мда ..
У попа была собака..
← →
DevilDevil © (2007-10-22 13:33) [53]возможно, стоит рассказать, зачем же мне так извращаться...
Делаю простой графический движочек, главное окно на API. Оконная функция имеет ряд особенностей (например, не разворачиваться на весь экран при нажатии на Maximize-кнопку) и т.д. Если использовать Forms, то будет мешаться Application, MainForm, ... да и, что уж тут скрывать, лишние 200кб таскать не хочется.
Далее передо мной встала проблема расположения элементов, ну игровых кнопок например! Вообще часть рутины по созданию, удалению, изменению свойств и обработки событий можно избежать средствами IDE Delphi, используя связку TDataModule-TComponent; зачему, модуль Forms при этом задействован не будет!
Тем не менее, всех проблем не решишь. Так, говоря об игровых кнопках, крайне важно в режиме редактирования задавать им координаты и размеры. Представьте проектирование интерфейса вслепую! Такие проблемы впринципе решаются созданием внешних редакторов (в известном движке "Asphyre", например)... Согласитесь, все удобства IDE вручную реализовать достаточно трудно, один ObjectInspector только чего стоит.
Потом мне вспомнились всем известные KOL&MCK, редактирование в которых происходит стандартно, а внутри работало используя совершенно иную технологию.
На форум я обратился для того чтобы мне подсказали, как решить мою задачу максимально просто.
← →
DevilDevil © (2007-10-22 13:35) [54]> Сергей М. © (22.10.07 13:20) [52]
Выражёвывайся яснее, чего ты хочешь от меня услышать.
Про тот флаг я знаю прекрасно, использовать его буду в рантайм.
Вопрос в другом: как совместить несовместимое, как изменять размеры невизуального компонента.
P.S. всё в рамках терминологии Delphi конечно
← →
DevilDevil © (2007-10-22 13:36) [55]правка:
Про тот флаг я знаю прекрасно.
← →
Сергей М. © (2007-10-22 13:43) [56]
> как изменять размеры невизуального компонента
Никак.
У невизуального компонента не может быть "размеров", за исключением разве что размеров иконки, которым компонент представлен.
← →
DevilDevil © (2007-10-22 13:57) [57]> Сергей М. © (22.10.07 13:43) [56]
моя задача решаема. Возьмём хотя бы KOL&MCK.
следовательно, используя схожую технологию (делать зеркала, например), положительного результата я добьюсь.
Однако мне не ясен сам механизм: как проектирование ведётся в TForm, а код работает совершенно иной. Буду благодарен за разъяснения.
← →
Сергей М. © (2007-10-22 13:59) [58]
> проектирование ведётся в TForm
Что, по-твоему, есть "проектирование" ?
← →
Игорь Шевченко © (2007-10-22 14:01) [59]
> Однако мне не ясен сам механизм: как проектирование ведётся
> в TForm, а код работает совершенно иной. Буду благодарен
> за разъяснения.
Почему бы не задать этот вопрос автору MCK ? вроде в соседней конференции, которая KOL, найдется больше желающих дать разъяснения.
> да и, что уж тут скрывать, лишние 200кб таскать не хочется.
Это паранойя
← →
DevilDevil © (2007-10-22 14:11) [60]> Сергей М. © (22.10.07 13:59) [58]
> > проектирование ведётся в TForm
> Что, по-твоему, есть "проектирование" ?
Ты MCK использовал? Берёшь с виду обычные компоненты с вкладки KOL, кидаешь на TForm, настраиваешь все необходимые тебе свойства, изменяешь размеры кнопок и т.д. А когда запускаешь на выполнение такую программу, там не то что TWinControl-ов, там TComponent-ов не используется!
> Почему бы не задать этот вопрос автору
MCK ? вроде в соседней
> конференции, которая KOL, найдется больше желающих дать
> разъяснения.
по двум причинам. Во-первых, вопрос касается компонентов впринципе, а не применных в MCK технологий вчастности. Во-вторых, я не уверен, что пользоваться нужно будет именно этой технологией, пока я спрашиваю, каков принцип.
> Это паранойя
не суть. кроме размеров емеется ряд других проблем. Сабж не об этом.
← →
Сергей М. © (2007-10-22 14:17) [61]
> Ты MCK использовал?
Нет, и не намерен.
Ловля блох все эти "КОЛ-МСК")
← →
DevilDevil © (2007-10-22 14:24) [62]> Ловля блох все эти "КОЛ-МСК")
холивар. сабж не в этом.
← →
Игорь Шевченко © (2007-10-22 14:25) [63]
> Во-вторых, я не уверен, что пользоваться нужно будет именно
> этой технологией, пока я спрашиваю, каков принцип.
Технология описана в описании MCK. В режиме разработки используются обычные наследники TControl, а код генерируется для компонент KOL. И вся радость.
← →
DevilDevil © (2007-10-22 14:32) [64]> Игорь Шевченко © (22.10.07 14:25) [63]
1) каким образом, изменяя свойства, можно "генерировать код" ?
2) как бы это выразиться... почему запуская VCL-приложение, запускается KOL- приложение ?
← →
Игорь Шевченко © (2007-10-22 14:34) [65]DevilDevil © (22.10.07 14:32) [64]
Ты странный. И хочешь странного. Тебе уже не один раз посоветовали почитать описание MCK, однако, похоже, ни на что, кроме ответов в твоей персональной ветке, у тебя читалка не настроена. Я тебе готов рассказать про то, как устроены альтернативные дизайнеры и кодогенераторы, но за деньги.
← →
DevilDevil © (2007-10-22 15:02) [66]> Игорь Шевченко © (22.10.07 14:34) [65]
я так полагаю, всё можно объяснить в двух словах.
если нет, то необходимо вышеупомянутой вами "описание MCK".
мои поиски успехом не увенчались.
логичнее задавать подобный вопрос в соседней ветке... что я собственно и сделал.
В любом случае, участникам спасибо за помощь.
Если есть предположения, как поизящнее справиться с моей проблемой - пишите.
← →
Eraser © (2007-10-22 15:11) [67]
> DevilDevil © (22.10.07 13:33) [53]
> Если использовать Forms, то будет мешаться Application,
> MainForm
не будет, если грамотно к вопросу подойти.
> да и, что уж тут скрывать, лишние 200кб таскать не хочется.
если это решающий фактор, то повторю, то что писал в другой ветке.. delphi - не лучший выбор, в данном случае.
← →
Игорь Шевченко © (2007-10-22 15:15) [68]
> я так полагаю, всё можно объяснить в двух словах.
Да, только эти два слова будут очень дорого стоить
← →
DevilDevil © (2007-10-22 15:20) [69]> Eraser © (22.10.07 15:11) [67]
> > DevilDevil © (22.10.07 13:33) [53]> Если использовать
> Forms, то будет мешаться Application, MainForm
> не будет, если грамотно к вопросу подойти.
муторно больно. уж проще MCK освоить )
> если это решающий фактор, то повторю, то что писал в другой
> ветке.. delphi - не лучший выбор, в данном случае.
Delphi в моём случае чуть ли не идеальный вариант )
> Игорь Шевченко © (22.10.07 15:15) [68]
каков критерий оценки стоимости слов, "произнесённых" на форуме "Мастеров Delphi" ?
← →
KSergey © (2007-10-22 15:30) [70]> DevilDevil © (22.10.07 15:20) [69]
> каков критерий оценки стоимости слов, "произнесённых" на
> форуме "Мастеров Delphi" ?
Кол-во времени (в рублях), потраченное на их отыскание этих слов, поделенное на интересность проблемы.
Иногда интересность и меньше единицы бывает.
← →
Anatoly Podgoretsky © (2007-10-22 19:18) [71]> DevilDevil (22.10.2007 15:20:09) [69]
Твоих или Игроря?
← →
homm © (2007-10-22 19:34) [72]> [11] DevilDevil (19.10.07 20:20)
> Вообще говоря, есть идейка одна... категорически не хочется
> использовать модуль Forms, а возможность изменения координат
> и размеров необходимы.
Ты считаешь, избавившись от Forms съекономишь дофига размера ехе? Forms — вершина айзберга, использовав любой оконный компонент, ты потянешь за сосбой всю VCL.
← →
DevilDevil (2007-10-22 21:09) [73]> homm © (22.10.07 19:34) [72]
использовав любой TControl или прилиyковав модуль "Dialogs", ты заюзаешь модуль "Forms", вследствие чего "ты потянешь за сосбой всю VCL" .
Вообще пришёл к выводу, что использование Windows, SysUtils, Classes, Graphics - минимальный стартовый набор. И весит порядка 120кб.
P.S. не хочу холивар по поводу размера )
← →
DimaBr © (2007-10-23 15:35) [74]Приветствую ! К сожалению очень редко заглядываю в остальные ветки кроме компонентов.
Всколзь прочитал ветку, ничо не понял.
Начнём сначала. Объясните народу и мне в том числе, что Вы задумали. Такое ощущение, что вы копаете не там где нужно. Чем вас не устраивает VCL.
← →
Anatoly Podgoretsky © (2007-10-23 16:00) [75]> DimaBr (23.10.2007 15:35:14) [74]
Копает там где светло.
← →
DevilDevil © (2007-10-23 19:48) [76]> DimaBr © (23.10.07 15:35) [74]
Чем вас не устраивает VCL.
> Anatoly Podgoretsky © (23.10.07 16:00) [75]
> > DimaBr (23.10.2007 15:35:14)
> [74]Копает там где светло.
Мне необхоимо автосоздание/автоудаление и условия изменения свойств у игровых объектов. Для этого впринципе достаточно связки TDataModule+TComponent.
Ну а остальное впринципе описано вDevilDevil © (22.10.07 13:33) [53]
← →
DimaBr © (2007-10-24 08:54) [77]Немного ясно, остаётся вопрос, как вы создаёте кнопки ?
И зачем отказ от VCL, жалко 200 кб, сожмите EXE-шник UPX-om
← →
Anatoly Podgoretsky © (2007-10-24 09:57) [78]> DimaBr (24.10.2007 08:54:17) [77]
А лучше таблетки от жадности
← →
DimaBr © (2007-10-24 11:12) [79]
> Anatoly Podgoretsky © (24.10.07 09:57) [78]
В смысле ?
← →
DevilDevil © (2007-10-24 15:29) [80]> DimaBr © (24.10.07 08:54) [77]
> Немного ясно, остаётся вопрос, как вы создаёте кнопки ?
эээ... немного муторно объяснять.
упростим вариант кнопки до :TGameButton = class (TGameObject)
private
...
FScreenRect : TRect;
constructor Create(const ScreenRect : TRect; OnClickEvent : TOnClickEvent);
end;
ну и где то в коде, при старте проргаммы я вызываю конструктор кнопки с константными параметрами, а при закрытии программы не забываю удалять.
Следующий шаг эволюции...
Имею какой-то хранитель компонентов (TDataModule
), который отвечает за автоматическое создание/удаление, автоматическое сохранение/загрузку свойств (Left, Top, Width, Height
) и удобный доступ к событиюOnClick
.
На следующем шаге эволюции хочется не только мышью изменять координаты и размеры, но и эмулировать отображение таких кнопок.
> И зачем отказ от VCL, жалко 200 кб, сожмите EXE-шник UPX-om
я не отказываюсь от VCL, я отказываюсь от модуля Forms в EXE-шнике. Всё уже написано под API, под TForm переписывать неоправдано нудно. Есть пара вещей на низком уровне, которые если и можно реализовать под VCL, то крайне сложно.
P.S. вопрос наверное можно считать закрытым. буду использовать фичу, применяемую в KOL&MCK: в дизайн-тайм работает код зеркала, а компилируется другой код. В дизайн-тайм TMainForm будет наследоваться от TForm, а компилироваться как от TDataModule. В дизайн-тайм TGameButton будет наследоваться от TCustomControl, а компилироваться будет из другого модуля, где TGameButton наследуется от TComponent. При этом функция автоматического создания/удаления, сохранения/загрузки свойств и событий сохранится.
Но в любом случае спасибо за оказание внимания моему вопросу.
Отдельно хотелось бы поблагодарить homm© и Danger© ответы в ветке "KOL".
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];
Память: 0.69 MB
Время: 0.044 c