![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пустые значения [D5, Win2k]
Unknown user © (2004-10-15 11:58:00)Подскажите, как можно реализовать. Имеются объекты наследники TFont, TPen, TBrush, эти объекты могут соджержать пустые(неопределенные) свойства. Например, если в MSWord выделить текст с разным размером шрифта, то Font.Size будет содержать значение wdUndefined, и в едите показывающем размер шрифта окажется пустая строка. Как это реализовано в MSWord? По документации свойство Font.Size типа Single, а может принимать значение константы wdUndefined, которая используется для обозначения пустых значений всех типов. И как это сделать в Delphi?
Defunct (2004-10-15 23:15:00) [1]Unknown user © (15.10.04 22:05) [8]
Возми и сделай TSelectionControl, в котором расставь boolean флажки для неопределенных свойств.
например:
TSelectionControl = class
FPropertySet : TЧего-то-там; // вот они все твои фонты, пены и т.д.
FPenMultiselect : Boolean;
FFontMultiselect : Boolean;
FBrushMultiselect : Boolean;
При групповом выделении проверяй кол-во объектов одного типа и разного содержимого. И устанавливай Multiselect соотв. свойства в True, что будет говорить о том что данное свойство в выделенном фрагменте неопределено.
Unknown user (2004-10-15 22:05:00) [2]2 olookin & begin...end. Вы предлагаете самый очевидный способ но он имеет существенные недостатки. Хочется пользоваться стандартными типами, не переопределять их, иначе неизбежны коллизии, если кто-то будет использовать мой модуль и модуль от Борланд, где описан переопределенный мною тип. Булевский тип тоже может неопределенным, если мой объект содержит совпадающие по значению свойства объектов своего типа, а для свойств, что не совпали хранит значение -"неопределено". Так как быть с boolean, integer, real и т.д.? Добавлю, что необходимость в таком обобщающем объекте возникла при описании аттрибутов выделенного текста, рисунков, надписей. Например, в Делфи при выделнии на форме нескольких компонентов в Object Inspector остаются непустыми только совпадающие по значению свойства.
Подкиньте еще идеи, пожалуйста.
olookin (2004-10-15 20:41:00) [3][6] begin...end © (15.10.04 20:31)
А это я от себя добавил... Можно ведь и свой TFontStyle придумать в конце то концов...
begin...end (2004-10-15 20:31:00) [4]
> [4] olookin © (15.10.04 20:27)
> fsEmpty
Чего это?
> [5] begin...end © (15.10.04 20:28)
Пардон, похоже, не совсем я врубился в вопрос про TFont.Style...
Пустое множество, как ты сказал, тебе не подходит...
begin...end (2004-10-15 20:28:00) [5]
> Например, TFont.Style -может быть пустым множеством, но
> это тоже значение, а как указать что значение не определено.
Font.Style := []
> а как ее применить для типа boolean
Не представляю, как значение переменной типа Boolean может быть неопределённым... Если она не проинициализирована, то или True, или False.
olookin (2004-10-15 20:27:00) [6]type TFontStyle = ( fsEmpty,fsBold,fsItalic, etc)???
Unknown user (2004-10-15 20:24:00) [7]Ну? Вроде простой вопрос...
Unknown user (2004-10-15 13:05:00) [8]2 Sandman25.
Хорошо, а как ее применить для типа boolean, перечисляемым типам, множествам? Например, TFont.Style -может быть пустым множеством, но это тоже значение, а как указать что значение не определено.
Sandman25 (2004-10-15 12:15:00) [9]const wdUndefined = -1; // например