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

Вниз

Пустые значения   Найти похожие ветки 

 
Unknown user ©   (2004-10-15 11:58) [0]

Подскажите, как можно реализовать. Имеются объекты наследники TFont, TPen, TBrush, эти объекты могут соджержать пустые(неопределенные) свойства. Например, если в MSWord выделить текст с разным размером шрифта, то Font.Size будет содержать значение wdUndefined, и в едите показывающем размер шрифта окажется пустая строка. Как это реализовано в MSWord? По документации свойство Font.Size типа Single, а может принимать значение константы wdUndefined, которая используется для обозначения пустых значений всех типов. И как это сделать в Delphi?


 
Sandman25 ©   (2004-10-15 12:15) [1]

const wdUndefined = -1; // например


 
Unknown user ©   (2004-10-15 13:05) [2]

2 Sandman25.
Хорошо, а как ее применить для типа boolean, перечисляемым типам, множествам? Например, TFont.Style -может быть пустым множеством, но это тоже значение, а как указать что значение не определено.


 
Unknown user ©   (2004-10-15 20:24) [3]

Ну? Вроде простой вопрос...


 
olookin ©   (2004-10-15 20:27) [4]

type TFontStyle = (fsEmpty,fsBold,fsItalic, etc)???


 
begin...end ©   (2004-10-15 20:28) [5]


> Например, TFont.Style -может быть пустым множеством, но
> это тоже значение, а как указать что значение не определено.

Font.Style := []

> а как ее применить для типа boolean

Не представляю, как значение переменной типа Boolean может быть неопределённым... Если она не проинициализирована, то или True, или False.


 
begin...end ©   (2004-10-15 20:31) [6]


> [4] olookin ©   (15.10.04 20:27)


> fsEmpty

Чего это?

> [5] begin...end ©   (15.10.04 20:28)

Пардон, похоже, не совсем я врубился в вопрос про TFont.Style...
Пустое множество, как ты сказал, тебе не подходит...


 
olookin ©   (2004-10-15 20:41) [7]

[6] begin...end ©   (15.10.04 20:31)

А это я от себя добавил... Можно ведь и свой TFontStyle придумать в конце то концов...


 
Unknown user ©   (2004-10-15 22:05) [8]

2 olookin & begin...end. Вы предлагаете самый очевидный способ но он имеет существенные недостатки. Хочется пользоваться стандартными типами, не переопределять их, иначе неизбежны коллизии, если кто-то будет использовать мой модуль и модуль от Борланд, где описан переопределенный мною тип. Булевский тип тоже может неопределенным, если мой объект содержит совпадающие по значению свойства объектов своего типа, а для свойств, что не совпали хранит значение -"неопределено". Так как быть с boolean, integer, real и т.д.? Добавлю, что необходимость в таком обобщающем объекте возникла при описании аттрибутов выделенного текста, рисунков, надписей. Например, в Делфи при выделнии на форме нескольких компонентов в Object Inspector остаются непустыми только совпадающие по значению свойства.
Подкиньте еще идеи, пожалуйста.


 
Defunct ©   (2004-10-15 23:15) [9]

Unknown user ©   (15.10.04 22:05) [8]

Возми и сделай TSelectionControl, в котором расставь boolean флажки для неопределенных свойств.
например:

TSelectionControl = class
FPropertySet      : TЧего-то-там; // вот они все твои фонты, пены и т.д.
FPenMultiselect   : Boolean;
FFontMultiselect  : Boolean;
FBrushMultiselect : Boolean;

При групповом выделении проверяй кол-во объектов одного типа и разного содержимого. И устанавливай Multiselect соотв. свойства в True, что будет говорить о том что данное свойство в выделенном фрагменте неопределено.



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

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

Наверх




Память: 0.49 MB
Время: 0.03 c
6-1092981272
atruhin
2004-08-20 09:54
2004.10.31
Проблемы с WSAEventSelect и Accept


14-1097718843
Думкин
2004-10-14 05:54
2004.10.31
С днем рождения! 14 октября


14-1097743171
vuk
2004-10-14 12:39
2004.10.31
Я плакал.


1-1097829182
doodle
2004-10-15 12:33
2004.10.31
Как создать собственный графический интерфейс.


14-1097675011
matt
2004-10-13 17:43
2004.10.31
Программирование микрокроцессоров