Функции для работы со строками

  • Автор темы -
  • Дата начала
Статус
Закрыто для дальнейших ответов.

Гость
#1
Подскажите где скачать описание таких ф-ий. В часности инересует как сделать так чтобы при вводе строки в эдит не зависимо от того вводишь большими буквами или нет, первая буква вводилась большой а остальные маленькими.
 
Z

zubr

Гость
#2
Оля

Именно такую функцию я не встречал, ее легко можно сделать самому. Сами функции работы со строками есть в Help. Русский Help можешь скачать здесь. В твоем случае код можно сделать так:
Код:
procedure TForm1.Edit1Change(Sender: TObject);
var
s, s1:string;
begin
If Edit1.Text='' then
exit;
s:=AnsiLowerCase(Edit1.Text);//переводит в нижний регистр
s1:=AnsiUpperCase(s[1]);//выдирает первую букву
Delete(s, 1, 1);//удаляет первую букву
s:=s1+s;//формирует строку
Edit1.Text:=s;
Edit1.SelStart:=Length(Edit1.Text);//переводит курсор в конец строки
end;
 
D

dex0r

Гость
#3
zubr, ты конечно все правильно написал, но! очень криво :)

Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
if length( Edit1.Text ) = 0 then exit;

Edit1.Text := AnsiUpperCase(Edit1.Text[1]) + AnsiLowerCase( copy(Edit1.Text, 2, length(Edit1.Text) ) );
Edit1.SelStart:=Length(Edit1.Text);
end;
 
Z

zubr

Гость
#4
dex0r, криво, зато понятно. Это здесь 3 строки кода, а когда код большой и где то ошибся - ищи тогда. Или ты не ошибаешся :(
 
B

Barmutik

Гость
#5
Я предложу свой вариант:

Код:
procedure TForm1.Edit1Change(Sender: TObject);
var
SelPos: Integer;
begin
SelPos := Edit1.SelStart;
Edit1.Text := AnsiProperCase(Edit1.Text, []);
Edit1.SelStart := SelPos;
end;
 
Z

zubr

Гость
#6
Barmutik

Я что то не нашел функцию AnsiProperCase, правда я только в Delphi5 искал.
 
B

Barmutik

Гость
#7
Моя оплошность... модуль StrUtils - в нем много полезных функций для работы со строками...
 
B

Barmutik

Гость
#8
Опять же дополнюсь .. модуль из RX- Delphi 5, Jedi - для Delphi 7
 
Статус
Закрыто для дальнейших ответов.