Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2009, 15:48   #1
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
Вопрос Функция DrawText

Доброго времени суток!!!!!! Возник вопрос... функция DrawText возвращает высоту надписи... а вот хотелось бы узнать как узнать минимальную ширину которая необходима этой надписи, ибо обрезается очень часто =\\\ Заранее спасибо =)))
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Старый 02.10.2009, 15:53   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

length('надпись') * textwidth('0')
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 02.10.2009, 19:22   #3
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Эмммм... вот только DrawText выводит текст много строчно =))))
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Старый 03.10.2009, 10:14   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

If there is only one line of text, DrawText modifies the right side of the rectangle so that it bounds the last character in the line. In either case, DrawText returns the height of the formatted text but does not draw the text.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 03.10.2009, 10:55   #5
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Цитата:
If there is only one line of text, DrawText modifies the right side of the rectangle so that it bounds the last character in the line. In either case, DrawText returns the height of the formatted text but does not draw the text.
Ентересно.... сколька я понял, он должен изменять правую строну Trect'а попытался это провернуть в этой конструкции (приведенна исходная задача):
Код:
{событие ОнДравЦел СтрингГрида}
procedure TEventHandlers.StringGridsMyDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var s:string;
 Flag: Cardinal;
 H: integer;
 Indent:integer;
begin
  TStringGrid(Sender).Canvas.FillRect(Rect);
  Indent:=3;
  s := TStringGrid(Sender).Cells[ACol,ARow];
  if (Acol+1>TStringGrid(Sender).FixedCols) and
    (ARow+1>TStringGrid(Sender).FixedRows) then
    Flag:=DT_LEFT
  else
    Flag:=DT_CENTER;
  Flag := Flag or DT_WORDBREAK;
  Inc(Rect.Left,Indent);
  Dec(Rect.Right,Indent);
  H := DrawText(TStringGrid(Sender).Canvas.Handle,PChar(s),length(s),Rect,Flag);
  if H > TStringGrid(Sender).RowHeights[ARow] then
    TStringGrid(Sender).RowHeights[ARow] := H;
end;
Но потерпел фиаско =\\\ думаю ключевым являеться это:
Цитата:
If there is only one line of text
Как там писал Чернышевский ... Что делать???
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Старый 03.10.2009, 10:56   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Сообщение от SNUPY Посмотреть сообщение
Эмммм... вот только DrawText выводит текст много строчно =))))
- ну дык узнавайте максимальную ширину из всез строк
max() - рулит
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 03.10.2009, 11:30   #7
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Цитата:
- ну дык узнавайте максимальную ширину из всез строк
max() - рулит
Нууу мне кажеться это уже крайние меры... Большая вероятность того, что существуют более реинтабельные меры =)))
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
почему DrawText криво работает? STill_ace Общие вопросы C/C++ 11 24.08.2009 15:57
Функция asd48 Помощь студентам 2 21.12.2008 17:17
Функция Sam04 Помощь студентам 1 11.09.2008 13:51
разноцветный WinProcs.DrawText lis_abu Общие вопросы Delphi 10 24.10.2007 14:42
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50