Содержание материала

 

Как мне получить значение Font.Style и Font.Color в виде строки, я хотел бы присвоить его заголовку компонента Label, но style и color не являются строковыми величинами.

Есть масса способов это сделать, но я использую следующий способ:

 

 

Code:

const

fsTextName: array[TFontStyle] of string[11] = ('fsBold', 'fsItalic', 'fsUnderline', 'fsStrikeOut');

fpTextName: array[TFontPitch] of string[10] = ('fpDefault','fpVariable','fpFixed');

  

Позже, в коде, я так использую эти имена:

 

Code:

var

TFPitch: TFontPitch;

TFStyle: TFontStyle;

FString: String;

...

 

FString := '';

for TFStyle := fsBold to fsStrikeOut do

if TFStyle in Canvas.Font.Style then

   Fstring := Fstring+fsTextName[TFStyle]+',';

if FString<>'' then

dec(FString[0]); { убираем лишний разделитель ',' }

something := FString;

 

FString := fpTextName[Canvas.Font.Pitch];

something := FString;

 Автор: Dennis Passmore

 

Примерно также нужно поступить и с именованными цветами типа TColor.

 Примечание Vit: Описанный здесь способ относится скорее к тем которые указывают как не надо делать. Эта задача решается намного изящнее здесь:

 


Code:

procedure GetEnumNameList(Pti: PTypeInfo; AList:

                              TStrings; X: Integer);

{(**********************************************************

Will return in AList string version of an

enumerated type less the first X characters .

eg X = 4

and

         type

           eXORBuySell = (

             XOR_BUY,

             XOR_SELL

           );

 

GetEnumNameList(TypeInfo(eXORBuySell), ComboBox1.Items, 4);

 

Now  ComboBox1.Items[0] = 'BUY'

and  ComboBox1.Items[1] = 'SELL'

************************************************************)}

var

I: Integer;

begin

AList.Clear;

with GetTypeData(pti)^ do

for I := MinValue to MaxValue do

   AList.Add(Copy(GetEnumName(pti, I), X + 1, 255));

end;

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить