Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Высота и ширина текста, Как определить? 
:(
    Опции темы
Bog d`An
Дата 4.8.2005, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



Код

      MainForm.Image1.Canvas.Brush.Color:=clMenuBar;
      MainForm.Image1.Canvas.Rectangle(-1,-1,MainForm.Image1.Width+1,MainForm.Image1.Height+1);
 MainForm.Image1.Canvas.TextOut(trunc((MainForm.Image1.Width-10)/2-X/2),trunc((MainForm.Image1.Height-10)/2-Y/2),'Нет рисунка');


Надо расположить эту надпись в центре Image1
какие у текста ширина и высота (X,Y)?
Спасибо.
--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
Song
Дата 4.8.2005, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: нет
Всего: 4



Код

procedure TForm1.Button1Click(Sender: TObject);
Const LabelText = 'This not so long line';
begin
 With Self,Canvas Do TextOut(Width div 2 - TextWidth(LabelText) div 2,Height div 2,LabelText);
end;



--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Bog d`An
Дата 5.8.2005, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



Код

procedure TForm1.Button1Click(Sender: TObject);
Const LabelText = 'This not so long line';
begin
  With Self,Canvas Do TextOut((ClientWidth  - TextWidth(LabelText)) div 2,(ClientHeight  - TextHeight(LabelText)) div 2,LabelText);
end;

Я тут поэксперементировал и немного улучшил код smile
Я конечно понимаю, что вылизывать примеры глупо... но вдруг кому время сберегу smile

А вот ещё вариант (на форме Button1 и Image1)
Код

procedure TForm1.Button1Click(Sender: TObject);
Var
  VarText:String;
  TextWidthOld,TextHeightOld:integer;
begin
  With Image1,Image1.Canvas Do
  Begin
    Repeat
      TextWidthOld := TextWidth(VarText) ;
      TextHeightOld:= TextHeight(VarText);
      VarText:='TextWidth '+IntToStr(TextWidth(VarText))+' TextHeight '+IntToStr(TextHeight(VarText));
    Until (TextWidthOld=TextWidth(VarText))and(TextHeightOld=TextHeight(VarText));
    TextOut((ClientWidth  - TextWidth(VarText)) div 2,(ClientHeight  - TextHeight(VarText)) div 2,VarText);
  End;
end;


Song не скажешь зачем нужно
Код

...
With Self Do
...


--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
Song
Дата 5.8.2005, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: нет
Всего: 4



Цитата(Bog @ 5.8.2005, 08:39)
Song не скажешь зачем нужно

В том варианте, что уже ты подправил - не нужно.
А в моём варианте в последнем сообщении было нужно для Width и Height.



--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Bog d`An
Дата 6.8.2005, 06:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



Спасибо.
--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
s-mike
Дата 6.8.2005, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: нет
Всего: 16



Код

var
  R: TRect;
begin
  R := Image1.ClientRect;
  DrawText(Image1.Canvas.Handle, 'String', -1, R, DT_SINGLELINE or DT_CENTER or DT_VCENTER);


Это сообщение отредактировал(а) s-mike - 6.8.2005, 15:19
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1179 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.