
Как работает функция DrawText?
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Подскажите пожалуйста (на примере) как работает функция DrawText. Не разберусь со вторым параметром. 

А в чем проблема-то? 2-й параметр - указатель на строковый буфер. Что с ним не так?
Просто я не пойму как именно это должно выглядеть. Что значит строковый буфер? Я пробую содержимое поля Мемо вывести на екран. Вот и пытаюсь разобраться в функции DrawText.
DrawText() - API-шная функция, строка передается в нее как указатель на массив символов, заканчивающийся 0-байтом.
TMemo.Text имеет тип String, соостветственно, при передаче в DrawText надо явно привести его к типу PChar:
См. также http://msdn.microsoft.com/library/defau ... t_0odw.asp
и раздел Delphi Help "String to PChar conversions"
TMemo.Text имеет тип String, соостветственно, при передаче в DrawText надо явно привести его к типу PChar:
Код: Выделить всё
var rect: TRect;
flag: UINT;
begin
...
rect := // здесь задаешь координаты прямоугольника, куда будет вписан текст
flag := // то же для флагов
DrawText(Canvas.Handle, PChar(memo.Text), Length(memo.Text), rect, flag);
...
и раздел Delphi Help "String to PChar conversions"
а как правильно задать кординаты прямоугольника? я задаю в скобках через запятую (100,100,800,800), а в ответ ошибка:
[Error] Monitor.pas(37): ')' expected but ',' found. Подскажи пожалуйста, что не так?
[Error] Monitor.pas(37): ')' expected but ',' found. Подскажи пожалуйста, что не так?
Можно так:
Код: Выделить всё
with rect do begin
left := 100;
top := 100;
right := 800;
bottom := 800;
end;