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

GetTextExtent - откуда брать?

Добавлено: 27 апр 2007, 12:33
Хыиуду
При попытке применить в Дельфи 7 функцию GetTextExtent - она мне пишет, что такая функция неизвестна. Все остальные подобные функции (GetTextColor, GetTextMetrics) работают нормально. Мне говорят, что надо импортировать эту функцию из dll-ки - но она прописана в System.forms, а она подключается автоматически. В чем может быть проблема?

Re: GetTextExtent - откуда брать?

Добавлено: 27 апр 2007, 14:13
Eugie
Потому что нет такой функции в Win32 API. Есть GetTextExtentPoint, GetTextExtentPoint32, итд. См. доументацию.
Модуль Forms (не System.Forms - речь ведь о D7, правильно я понимаю?) подключается по умолчанию только к модулям описания форм, к произвольным юнитам - нет.

Re: GetTextExtent - откуда брать?

Добавлено: 27 апр 2007, 14:44
Хыиуду
Ну, там и есть модуль формы.
А еще: в GetTextExtentPoint четвертый параметр - var size: tagSIZE. Что это за тип? Откуда его брать? Когда я пытаюсь определить у себя в программе переменную такого типа, компилятор ругается, мол, неизвестный тип.

Re: GetTextExtent - откуда брать?

Добавлено: 27 апр 2007, 15:13
Eugie
Тип 4 параметра - TSize, он определен в модуле Types. Но большая часть структур и функций WinAPI описана в модуле Windows. При этом есть небольшие расхождения в описании WinAPI функций и структур в MSDN и документации Delphi, из-за различия языков (С и Object Pascal). В случае проблем лучше обратиться прямо к исходникам VCL и посмотреть, как там описана соответствующая функция.

Re: GetTextExtent - откуда брать?

Добавлено: 27 апр 2007, 15:29
Хыиуду
Разобрался, спасибо