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

Вниз

Выделение слова из строки   Найти похожие ветки 

 
VID   (2001-12-22 16:28) [0]

Здравствуйте!
У меня часто возникала проблемы выделения текста в RichEdit.
Т.е. фактически нужна функция
Type TCurrentText = record
CurrentText:String; //Выделеное слово
Pos:Integer; //Поцизия начала слова в строке текста
Length:Integer; //Длина найденного слова.
end;

Function GetCurrentText(CurrentPOS:Integer; TextSource:String):TCurrentTEXT;

Эта функция должна возвращать все данные типа TCurrentTEXT.
ОПИСАНИЕ ПАРАМЕТРОВ ФУНКЦИИ:
CurrentPOS:INTEGER - задаётся текущая позиция курсора, в строке текста;
TextSource:String - Строка текста, в которой производится выделение текущего слова.

Практически такое же дело происходит, когда вы дважды щёлкаете (dblClick) в компоненте RichEdit.

Примерно работать эта функция должна так:
Procedure GetCurWord;
Var CurText:TCurrentText;
begin
CurTEXT := GetCurrentText(10, "<хороший день выдался>");
ShowMessage(CurText.CurrentText);//Выводит "день"
ShowMessage(Inttostr(curText.POS)); //Выводить "9"
ShowMessage(Inttostr(curText.LENGTH)); //Выводить "4"
end;

ПОМОГИТЕ ПОЖАЛУЙСТА С ЭТОЙ ФУНКЦИЕЙ. ЖДУ.


 
VID   (2001-12-23 12:20) [1]

???


 
drpass   (2001-12-23 14:31) [2]

Хм. А функции copy+lenght чем не нравятся? Или F1 сломалось???


 
Mbo   (2001-12-24 07:19) [3]

const delim=" ,;"; // добавь то, что может служить разделителем
for i:=currentpos downto 1 do
if TextSource[i] in delim then begin
startdelim:=i;
break;
end;
for i:=currentpos+1 to length(TextSource) do
if TextSource[i] in delim then begin
enddelim:=i;
break;
end;
Result.CurrentText:=Copy(TextSource,startdelim+1,enddelim-startdelim-1);
Result.Pos:=startdelim+1;
Result.Length:=enddelim-startdelim-1;
end;
добавь в начале обнуление переменных
если разделитель только пробел, будет проще и короче


 
MBo   (2001-12-24 12:07) [4]

Sorry первая строчка такая должна быть
const delim=[" ",",",";"];



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

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

Наверх




Память: 0.45 MB
Время: 0.004 c
1-42400
GARIK_PR
2001-12-26 15:07
2002.01.14
Интеграция с математическими пакетами программ.


14-42555
Димон
2001-11-17 20:58
2002.01.14
Вопрос по Перлу


1-42496
Ron1
2001-12-25 23:52
2002.01.14
Реестр


1-42478
ВС
2001-12-25 15:38
2002.01.14
Как с помощью компонента NMHTTP закачать все содержимое


4-42618
marconi
2001-11-11 10:23
2002.01.14
Имя в списке задач w9x





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