Страница 2 из 2
Добавлено: 13 июл 2006, 16:48
Eugie
Romeo прав, плюсы опасны, лучше не практиковать. Хотя в данном случае работает.
Но представим ситуацию, если случайно продублировали какой-нить флаг:
а) DT_RIGHT or DT_WORDBREAK or DT_WORDBREAK = DT_RIGHT or DT_WORDBREAK;
б) DT_RIGHT + DT_WORDBREAK + DT_WORDBREAK <> DT_RIGHT or DT_WORDBREAK, а равно DT_RIGHT or DT_SINGLELINE - не совсем то, что расчитывали получить, не так ли?

Добавлено: 13 июл 2006, 19:21
Eugie
Vet_chv, по DrawText() в дельфовом хэлпе и нет ничего, т.к. это функция WinAPI, а по ним нужно смотреть MSDN. Там, правда, тоже далеко не для всех функций есть примеры.
По DrawText(), вот пример:
Код: Выделить всё
{ в обработчике события отрисовки формы OnPaint }
procedure TForm1.FormPaint(Sender: TObject);
const vText: String = 'This is a text.';
var vRect: TRect;
begin
vRect := Rect(10, 10, 70, 40); { задаем размеры прямоугольника, куда будет вписан текст }
Font.Color := clRed; { цвет текста }
SetBkColor(Canvas.Handle,
ColorToRGB(clWhite)); { цвет фона }
SetBkMode(Canvas.Handle, OPAQUE); { режим фона: OPAQUE - будет заливать фон под текстом заданным цветом }
DrawText(
Canvas.Handle, { дескриптор канвы }
PChar(vText), { указатель на строку }
-1, { длина строки вычисляется автоматически }
vRect, { размер прямоугольника }
DT_CENTER or DT_WORDBREAK { флаги, требующие выровнять текст по левому краю и автоматически переносить слова }
);
Font.Color := Self.Font.Color; { вернули старые значения }
end;