Главная страница
    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.006 c
6-32925
Arlekin
2002-01-24 17:56
2002.04.11
Ну не хочет Он работать!!!!!


3-32669
Пользователь
2002-03-20 15:08
2002.04.11
Обход всех данных в хранимой процедуре


1-32834
ghost_by
2002-03-22 21:08
2002.04.11
Тормоза в ListView


1-32839
LiNkS
2002-03-29 09:32
2002.04.11
ListBox


3-32689
Sergey_R
2002-03-21 10:00
2002.04.11
Логическая структура БД





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский