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

Вниз

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

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

Наверх




Память: 0.45 MB
Время: 0.004 c
3-42371
Romul
2001-12-11 15:06
2002.01.14
DB Lib для Delphi


1-42458
MAN
2001-12-25 09:24
2002.01.14
Регистрация сервиса службы


4-42598
Landgraph
2001-11-12 14:22
2002.01.14
Хватаем обращение


4-42617
Art
2001-10-31 13:19
2002.01.14
Как можно увидеть запущен ли exe?


1-42425
Kevin
2001-12-26 15:38
2002.01.14
Очень срочно надо





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