Страница 1 из 1

Как работает функция DrawText?

Добавлено: 03 июл 2006, 14:29
Vet_chv
Подскажите пожалуйста (на примере) как работает функция DrawText. Не разберусь со вторым параметром. :(

Добавлено: 03 июл 2006, 15:24
Eugie
А в чем проблема-то? 2-й параметр - указатель на строковый буфер. Что с ним не так?

Мне бы примерчик увидеть...

Добавлено: 03 июл 2006, 15:34
Vet_chv
Просто я не пойму как именно это должно выглядеть. Что значит строковый буфер? Я пробую содержимое поля Мемо вывести на екран. Вот и пытаюсь разобраться в функции DrawText.

Добавлено: 03 июл 2006, 15:56
Eugie
DrawText() - API-шная функция, строка передается в нее как указатель на массив символов, заканчивающийся 0-байтом.
TMemo.Text имеет тип String, соостветственно, при передаче в DrawText надо явно привести его к типу PChar:

Код: Выделить всё

var rect: TRect;
      flag: UINT;
begin
  ...
  rect := // здесь задаешь координаты прямоугольника, куда будет вписан текст
  flag := // то же для флагов
  DrawText(Canvas.Handle, PChar(memo.Text), Length(memo.Text), rect, flag);
  ...
См. также http://msdn.microsoft.com/library/defau ... t_0odw.asp
и раздел Delphi Help "String to PChar conversions"

Добавлено: 03 июл 2006, 18:02
Vet_chv
а как правильно задать кординаты прямоугольника? я задаю в скобках через запятую (100,100,800,800), а в ответ ошибка:
[Error] Monitor.pas(37): ')' expected but ',' found. Подскажи пожалуйста, что не так?

Добавлено: 03 июл 2006, 18:13
Eugie
Можно так:

Код: Выделить всё

with rect do begin
  left := 100;
  top := 100;
  right := 800;
  bottom := 800;
end;