Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
3-32699
irq
2002-03-21 16:43
2002.04.11
UNION


14-32950
kaif
2002-03-02 11:30
2002.04.11
Предлагаю обсудить подходы: БД,


14-32968
С_тоша
2002-03-04 07:52
2002.04.11
Помогите!


3-32651
Brand
2002-03-19 16:33
2002.04.11
Работа с БД из DLL


3-32665
tovSuhov
2002-03-20 12:05
2002.04.11
Oracle Pipes





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский