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

Вниз

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

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

Наверх





Память: 0.47 MB
Время: 0.04 c
1-1097836457
nastya
2004-10-15 14:34
2004.10.31
инсталляция мой программы


6-1093279257
Johnny Raw
2004-08-23 20:40
2004.10.31
вопрос по поводу IdHTTP1.Response.LastModified


3-1096709878
тот же
2004-10-02 13:37
2004.10.31
Как расставить DisableControls и EnableControls


14-1097250813
Shurik_212
2004-10-08 19:53
2004.10.31
Неохота убивать винду


3-1096975889
Yagovdik
2004-10-05 15:31
2004.10.31
DBGrid и скроллер (мышиный)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский