Форум: "Основная";
Текущий архив: 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.005 c