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

Вниз

Номер символа   Найти похожие ветки 

 
mike.dld   (2002-03-29 14:13) [0]

1. Прошу прощения у MBo за свою безграмотность.
2. Как узнать номер символа в строке, если известно расстояние от ее начала в пикселях.


 
Alx2 ©   (2002-03-29 14:16) [1]

смотреть у canvas свойство TextWidth?


 
Alx2 ©   (2002-03-29 14:22) [2]

То есть, зная из чего состоит начало строки, можно попробовать добавлять по одной букве, пока TextWidth не попадет в нужную окрестность


 
mike.dld   (2002-03-29 14:24) [3]

А это не долго?


 
mike.dld   (2002-03-29 14:24) [4]

А это не долго? С TextWidth я узнаю ширину всей строки, к примеру =200, а мне нужно, чтобы строка была <100. Так вот как узнать, какой символ стоит на d=100 пикселей.


 
mike.dld   (2002-03-29 14:26) [5]

В общем мне нужно вставить в строку, там, где d=100, символ


 
MBo ©   (2002-03-29 14:35) [6]

Это к StringGrid-у относится?


 
mike.dld   (2002-03-29 14:36) [7]

Да.


 
Юрий Зотов ©   (2002-03-29 14:38) [8]

Зависит от того, что это за контрол. Для потомков TCustomEdit, например, можно попробовать так:

SelLength := 0;
SetCaretPos(100, ...);

После это, по идее, SelStart должен дать номер символа.


А в общем случае, конечно, надо проверять TextWidth в цикле, добавляя по одному символу ИЗ ТОЙ ЖЕ СТРОКИ (поскольку шрифт может быть и не моноширинным).


 
MBo ©   (2002-03-29 14:42) [9]

ну тогда как Alx2 сказал, что-то типа
i:=0;
repeat
inc(i);
j:=StringGrid1.Canvas.Textwidth(copy(s,1,i));
until (i=length(s)) or (j>100);


 
MBo ©   (2002-03-29 14:47) [10]

а для потомков TCustomEdit удобно EM_CHARFROMPOS


 
Alx2 ©   (2002-03-29 14:52) [11]

>mike.dld (29.03.02 14:24)
>А это не долго?
IMHO долго. Но можно попробовать дихотомию :)




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

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

Наверх




Память: 0.48 MB
Время: 0.011 c
1-32735
cypher
2002-03-30 01:08
2002.04.11
Мож кто знает?!


6-32932
Victor
2002-01-25 16:15
2002.04.11
Широковещательные сообщения по сети


6-32931
bg8
2002-01-23 18:38
2002.04.11
TCustomWinSocket


3-32648
MaCroS
2002-03-01 11:53
2002.04.11
Создание дистрибутива (прога использует BDE)


3-32629
Big_Rom
2002-03-19 07:00
2002.04.11
Как мне програмно узнать логин юзера который работает в текущий момент