Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Инспектор объектов [D5, WinME]


Страницы:   1 2

Gari ©   (2002-10-16 08:33:00) 

Добрый день уважаемые господа. У меня такой вопрос. можек кто поможет, если знает. А именно: можно ли в инспекторе объектов, каким либо образом отображать свойства русскими буквами (тобиш по русски). И второй вопрос: неподскажете каким образом можно в компонент с классом унаследованном от TImage вставить рисунок (bmp), но так чтобы он находился внутри самого компонента.


Юрий Зотов   (2002-10-17 10:55:00) [1]

> Gari

> Если я добавляю своё свойство (типа integer), то...

См. исходники и комментарии в модуле DsgnIntf. Там найдете и Integer и еще многое что. А главное, поймете суть и смысл редакторов свойств, больше вопросов возникать не будет.

Что касается их регистрации - см. RegisterPropertyEditor в хелпе.

============

Если интересно мое мнение, то оно совпадает с мнением большинства - изврат это. И возникнут проблемы. Вот некоторые из них.

1. Придется перерегистровать все стандартные редакторы на свои. А их довольно много.

2. Не по всем редакторам есть легкодоступная информация. Скажем, перерегистрировать TCollectionProperty не так-то просто. Можно, и когда-то давно я это даже делал, но как именно - уже забыл, навскидку не скажу, помню только, что пришлось попотеть. И не факт, что удастся перерегистрировать абсолютно все редакторы.

3. Некоторые редакторы (особенно, TObjectProperty и его потомки, TStringsProperty, TCollectionProperty и пр.) придется делать существенно более сложными, чем в примере. Потому что, например, один и тот же объект может иметь совершенно разные имена - Items, Lines, Strings и пр. Стандартные редакторы просто берут эти имена из RTTI, а Вам придется разруливать врукопашную. И еще придумать способ такой рулежки.

4. Сторонние пакеты компонентов тоже часто имеют свои редакторы. Если такие пакеты используются и их исходников нет - то и нет информации, позволяющей перекрыть эти редакторы.

Так что взвесьте сами - что придется вложить и что получится в результате. Стоит ли овчинка выделки?

Другое дело, если Вы пишете специализированный проект, использующий те же механизмы, что и IDE, и этот проект должен быть полностью рускоязычным. Тогда - да, выбора нет.


Bis   (2002-10-17 09:20:00) [2]

В общем понятно стремление разработчика.
Вместо того, чтобы написать соответствующую прогу, хочется "поиздеваться" над средой в Дельфи, да и заставить других в этом работать.
Но мне кажется, что тем самым головная боль становится больше, ведь кто застрахует от того, что он случайно не сделает чего-то неправильно, а Мерфи с его законами актуален по прежнему.

P.S.
Gari, обижаться или нет - право каждого ...


roadster   (2002-10-17 06:39:00) [3]

>Он не должен писать. Он должен надрать из панели инструментов
>необходимые компоненты. В инспекторе объектов связать их в
>единую систему не написав и строчки кода и запустить проект на
>выполнение.

Как в анекдоте: прогу написал, сталось отладить...


Delphist   (2002-10-16 22:47:00) [4]

> Alex4444444444 (16.10.02 18:19)

> no kak na schet "PriShelke" cyrillicey?)

Проверь сам и сам убедись, что сказал глупость.


Ketmar   (2002-10-16 19:46:00) [5]

REA:
>Диалог.Свободен;
вот это мне понравилось. так и видится программер, командным голосом говорящий: "Диалог? Свободен!". или истерически кричащий: "Диалог, ну миленький, ну свободен же!" %-)

Satanas Nobiscum! 16-Oct-XXXVII A.S.


Alex4444444444   (2002-10-16 18:19:00) [6]

> Gari
Vot tak i poluchayutsya programmy, zanimayushie 10M i ne delayushie nichego...

A to, chto svoystva v inspectore---te zhe, chto i v code, eto feature, a ne bug! Kak zhe inache code to pisat"? I, k stati, posle etoy russificacii, ona budet sozdavat" procedury typa
Forma1.PriShelke(Otpravitel": Ob"ect) ? (OK, Otpravitel", eto shutka, no kak na schet "PriShelke" cyrillicey?)


Gari   (2002-10-16 15:07:00) [7]

Он не должен писать. Он должен надрать из панели инструментов необходимые компоненты. В инспекторе объектов связать их в единую систему не написав и строчки кода и запустить проект на выполнение.


roadster   (2002-10-16 15:03:00) [8]

Копаться в инспекторе- прерогатива программера, архитектора не должны беспокоить свойства объектов, ибо для него подробности реализации кода несущественны. Он ведь не будет писать Якорь1.Реакция := 10.


Gari   (2002-10-16 14:44:00) [9]

Так вот архитектору проекта, как раз и надо знать специальные названия, такие как Индуктивность взаимоиндукции, реация якоря, магнитные потоки и.т.д. А теперь представь все это но написанное по английски я думаю и у специалиста бошка закружится, и отпадет всякое желание общаться с программой. А по поводу работы в другом приложении для этого существует ActiveX, с его библиотеками.


roadster   (2002-10-16 14:39:00) [10]

Разве люди, "далекие от волшебства программирования", будут писать код для "создания какого либо специального приложения"?
Если это архитектор проекта, то ему без разницы, Caption ли это или Заголовок, он в код в принципе лезть не должен, а если кодировщик- то что такое Caption, он знать должен. А если в другой среде писать будет? Опять русифицировать object inspector? А писать- то время останется?


Gari   (2002-10-16 14:36:00) [11]

У меня в догонку вопрос. Надеюсь, что Юрий Зотом меня снова выручит. Если я добавляю своё свойство (типа integer), то от какого типа мне наследовать TRus......Property.

type
TRus......Property = class(?????????????)
function GetName: string; override;
end;

и соответственно
RegisterPropertyEditor(TypeInfo(????????), nil, "Caption", TRus........Property)

Помогите если можете.


turusov   (2002-10-16 14:33:00) [12]

1. Borland и его производные, очень маленькая (сравнительно) фирма и у нее нет возможности подстраиваться под различные условия. (Примерно так сказал Фаронов В.В.)
2. Для работы с TImage используй:
LoadFromFile(‘FileName.*’)
LoadFromResourceName(HInstance, ‘Wallpaper’#0);
Для создания файлов с ресурсами использовать:
{$Delphi}\Bin\IMAGEDIT.EXE или
brcc32.exe -ic:\pas\Res MyRes.rc > brcc32.txt, где
MyRes.rc – txt файл
ARR_MAX BITMAP “ARR_Max.bmp”
ARR_MIN BITMAP “ARR_Min.bmp”
AG_INI ICON “AG_INI.ico”
Wallpaper BITMAP “NsFindFile.bmp”
Создается MyRes.res, который указываешь в PAS или DPR -> {$R MyRes.res}
Или используешь МЕНЮ Project\Resourse и добавляешь там.
А состав ресурсов «любого» exe файла можно посмотреть демонстрационным resxplor.dpr


Gari   (2002-10-16 14:21:00) [13]

Понятное любопытство. А нужно это за тем что люди далекие отволшебства программирования, но озадаченные в направлении создания какого либо специального приложения (например компьютерной модели электрического двигателя), недолжны себя утруждать расшифровыванием, а что такое caption, hint, with и так далее. А должны видеть все тоже но на русском языке, дабы не пугаться неизвестных названий. Вот за чем это нужно.


roadster   (2002-10-16 14:06:00) [14]

М-да... vads прав, незачем это.
Лабель.Заголовок... Баловство все это...

Меня как-то программер один достал: а нет ли такого компонента- кнопки, где кэпшном- многоточие (...). Пришлось для него написать. Назвал TLamerButton :0)


vads   (2002-10-16 13:34:00) [15]

Юрий Зотов ©

Да понятно, можно и пример совершенно правильный и "внесенная ясность" понятно - просто жутко любопытно зачем это


Gari   (2002-10-16 13:14:00) [16]

Огромное спасибо Юрию Зотову. Его пример и рекомендации мне полностью помогли. Мир не без добрых людей. Еще раз огромное спасибо.


REA   (2002-10-16 12:14:00) [17]

где то так будет:

Пер
ЫЫ: Двойной;
ё: Одиночный;
ы: Целый;
для ы := 1 до 10 делай
начало
Диалог := ТДиалог.Сделать(Нуль);
попробуй
Если Диалог.ПоказатьМодальный()=мрХор То
попробуй
ЫЫ := ЫЫ/ё;
кроме
ПоказатьСообщение(ПлавающееВСтр(ё));
конец
наконец
Диалог.Свободен;
конец
конец


Юрий Зотов   (2002-10-16 11:36:00) [18]

> В коде ты к свойства тоже "через кириллицу" будешь обращаться
> и Help перепишешь, что-ли ???

> можно ли в инспекторе объектов, каким либо образом отображать
> свойства русскими буквами (тобиш по русски)


Вношу ясность.

1. В ИНСПЕКТОРЕ ОБЪЕКТОВ- можно, и приведенный выше пример показывает, как это делается, причем совершенно легально. Ресурсы и Restorator здесь абсолютно ни при чем.

2. На название свойства это никак не повлияет. Как оно было "Caption" - так и останется.


vads   (2002-10-16 10:02:00) [19]

Интересно только - ЗАЧЕМ ВСЕ ЭТО ???
В коде ты к свойства тоже "через кириллицу" будешь обращаться и Help перепишешь, что-ли ???

Это не из желания обидеть - просто цель непонятна совсем


han_malign   (2002-10-16 09:58:00) [20]

> Separator
Зря смеетесь был такой язык ША(школьный алгоритмический)(правда с ПК-шками в то время слабо было), а 1С до сих пор этим грешит.
> Gari
З.Ы. Так что, если хочется писать программы на русском, вам в 1С.
З.З.Ы.
procedure RegisterClass(AClass: TPersistentClass);

Description

Call RegisterClass to register a class with the streaming system. Form classes and component classes that are referenced in a form declaration (instance variables) are automatically registered. Any other classes used by an application must be explicitly registered by calling RegisterClass if instances are to be saved.

Once classes are registered, they can be loaded or saved by the VCL streaming system. GetClass returns nil when passed the class name of an unregistered class, and FindClass raises an exception for unregistered classes.

The AClass parameter is the class that is descended from TPersistent. Put the call to RegisterClass in a Register procedure or in the initialization section of the unit in which the class is defined.

If the class is already registered, RegisterClass does nothing. If a different class with the same name is already registered, RegisterClass raises an EFilerError exception.

Note: Registering a component using the RegisterNoIcon or RegisterComponents method does not automatically register the class. It is still necessary to call RegisterClass for components.

потом делаешь Components->Install Component, или компилишь компонент в BPL и делаешь Components->Install Packages, потом соответственно Components->Configure Palette


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо