![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
русские или английские буквы в строке?
Змей © (2006-01-20 00:20:00)Hello Мастера!:)
есть edit1. в нем переворачиваю англ буквы на русские и наоборот!
для того чтобы две процедуры повесить на одну клавишу нужно определить какие буквы в edit1 русские или английские?
попробовал через inttostr(key) выдает одинаковые что на русском что на англ:(
что делать?
Змей (2006-01-20 04:44:00) [1]добил я ее всетаки:) СПАСИБО за помощь.
begin
n:=1 ;
l1: for i:=0 to edit1.SelLength do begin
str:=edit1.Text;
k:=ord(str[n]);
if k<65 then begin
n:=n+1;
goto l1;
end;
if (k>65) and (k<=122) then begin
button13.Click;;// переводим на русский
end
else
begin
b1.Click;// переводим в английский
end;
edit16.Text:=inttostr(k);
end;
Германн (2006-01-20 04:12:00) [2]2 Змей © (20.01.06 03:59) [7]
Имхо, лучше пойти спать. :-)
А то - полнейшая чушь в сообщении.
Завтра будет день, будет истина.
Змей (2006-01-20 03:59:00) [3]procedure TForm1.Button9Click(Sender: TObject);
var k,i,n:integer;
str:string[50];
x:char;
s:string;
begin
n:=1 ;
for i:=0 to edit1.SelLength do begin
str:=edit1.Text;
k:=ord(str[n]);
if k<65 then begin
showmessage('цифры');
// k:=ord(str[n+1]);
end;
if (k>65) and (k<=122) then begin
showmessage('англ');
//k:=ord(str[n+1]);
ну тут вставляем переворот букв
end;
edit16.Text:=inttostr(k);//показываем какой код клавиши
end;
очень интересно получается :)
все работает только тут фишка с цифрами это нужно их перескакивать до тех пор покамест не наткнемся на букву и посмотрев ее код обнаружим язык:)
чето тут муть! или я просто спать хочу:)
Германн (2006-01-20 01:52:00) [4]Пардон! случайно нажал "Добавить".
Следует читать: А ещё точнее - проверять Edit1.Text[n] на вхождение в множество [$41..$5A,$61..$7A]. Если входит, то это аглицкие буквы. Но стоит учесть, что кроме букв алфавита могут быть и другие символы: точка, запятая, пробел, кавычки etc.
Германн (2006-01-20 01:47:00) [5]
> Змей © (20.01.06 01:30) [4]
>
> текст уже набран допустим "аолвжфоавадо" и мне нужно узнать
> какие это русские или английские!
Ну так вот. Если первая буква - английская, то Ord(Edit1.Text[1]) будет равен или меньше 122 ($7A), в противном случае первая буква - русская ( точнее "не английская").
Тоже самое верно и для всех остальных букв текста эдита.
А ещё точнее - проверять Edit1.Text[n] на вхождение в множество [$41..$
Змей (2006-01-20 01:30:00) [6]текст уже набран допустим "аолвжфоавадо" и мне нужно узнать какие это русские или английские!
Германн (2006-01-20 01:28:00) [7]
> Edit. Ord(Edit1.Text[1]) чтото не пойму ничего
В оригинале было:
Проверяй текст в Edit.
Ord(Edit1.Text[1])
Так что тебе нужно? Определить какие на сей момент уже есть буквы в Edit1? Или "какую букву" пытается вставить пользователь в Edit1?
Змей (2006-01-20 01:12:00) [8]это я писал в procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
Edit. Ord(Edit1.Text[1]) чтото не пойму ничего
Германн (2006-01-20 00:37:00) [9]
> для того чтобы две процедуры повесить на одну клавишу нужно
> определить какие буквы в edit1 русские или английские?
И причем тут "клавиша" (key)?
Проверяй текст в Edit. Ord(Edit1.Text[1])