Главная страница
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.47 MB
Время: 0.009 c
3-42345
DeNNiss
2001-12-10 09:35
2002.01.14
FastReport


7-42588
Tune
2001-09-30 14:33
2002.01.14
Мастера, подскажите как прочитать заголовок файла, чтобы можно было править отдельные биты?


6-42525
ateam
2001-10-18 20:20
2002.01.14
Help !!! Подскажите плиз как программным путём узнать маску подсети


6-42523
Smart
2001-10-10 11:27
2002.01.14
Remote Logoff needed. EXTREMELY URGENT


7-42578
Lena
2001-10-01 11:00
2002.01.14
Помогите