Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.16;
Скачать: CL | DM;

Вниз

GetTextExtentPoint   Найти похожие ветки 

 
GanibalLector ©   (2004-11-26 02:23) [0]

Разбираюсь с ф-цией GetTextExtentPoint.Так вот,предположим мне нужно вычислить высоту\ширину некоторого текста.
Делаю так :

var  I: Integer;Buffer: array[0..51] of Char;QQ:TSize;
begin
for I := 0 to 25 do Buffer[I] := Chr(I + Ord("A"));
for I := 0 to 25 do Buffer[I + 26] := Chr(I + Ord("a"));
 GetTextExtentPoint(Form1.Canvas.Handle, Buffer, 52, QQ);
 Memo1.Lines.Add(inttostr(QQ.cx));
 Memo1.Lines.Add(inttostr(QQ.cy));

Тут все понятно.Дальше...предположим мне необходимо вычислить высоту\ширину некоторого текста на TPanel,которая имеет Font отличный от TForm.И что же делать???Ведь TPanel канваса не имеет !!! Насколько я понимаю,необходимо TForm присвоить Font моей TPanel,потом вызвать GetTextExtentPoint,а затем обратно форме присвоить свой Font. Прав ли я? ИМХО,довольно муторно...


 
GanibalLector ©   (2004-11-26 02:26) [1]

И еще
GetTextExtentPoint is provided for compatibility with 16-bit versions of Windows. Win32-based applications should call the GetTextExtentPoint32 function, which provides more accurate results.

Но ведь и GetTextExtentPoint чудесно работает в Win32.Как так?Где правда?


 
GuAV ©   (2004-11-26 02:40) [2]

GanibalLector ©   (26.11.04 2:23)
Ведь TPanel канваса не имеет !!!


Имеет. только в protected унаследованный от TCustomControl.

type
 TCustomControlFriend = class(TCustomControl)


PS: Canvas.TextExtent;


 
GanibalLector ©   (2004-11-26 02:44) [3]

2 GuAV
Не понял...Что я должен передать первым параметром???
> Canvas.TextExtent
Даже если так,то каким,собственно,образом выйти на канвас панели,если она  в protected?


 
GuAV ©   (2004-11-26 02:47) [4]

GanibalLector ©   (26.11.04 2:44) [3]
Не понял...Что я должен передать первым параметром???


Куда ??

type
TCustomControlFriend = class(TCustomControl);

procedure TForm1.FormCreate(Sender: TObject);
begin
 with TCustomControlFriend(Panel1).Canvas.TextExtent("Blah") do
   ShowMessageFmt("%dx%d",[cx, cy]);
end;


 
GanibalLector ©   (2004-11-26 02:50) [5]

Спасибо.



Страницы: 1 вся ветка

Текущий архив: 2005.01.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
1-1104342003
SATANA_
2004-12-29 20:40
2005.01.16
Как создать файл на домене и записать в него текст


1-1104742021
leonidus
2005-01-03 11:47
2005.01.16
Получить массив содержащий все поддирректории данной директории


1-1104301279
Тимур
2004-12-29 09:21
2005.01.16
ListView.CustomSort


3-1102939925
Aleksandr.
2004-12-13 15:12
2005.01.16
Как совместить файловые форматы ADO и ClientDataSet?


1-1104227614
AC
2004-12-28 12:53
2005.01.16
CheckListBox Как убрать переключатели у отдельных пунктов?