Форум: "Начинающим";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
Внизрусские или английские буквы в строке? Найти похожие ветки
← →
Змей © (2006-01-20 00:20) [0]Hello Мастера!:)
есть edit1. в нем переворачиваю англ буквы на русские и наоборот!
для того чтобы две процедуры повесить на одну клавишу нужно определить какие буквы в edit1 русские или английские?
попробовал через inttostr(key) выдает одинаковые что на русском что на англ:(
что делать?
← →
Германн © (2006-01-20 00:37) [1]
> для того чтобы две процедуры повесить на одну клавишу нужно
> определить какие буквы в edit1 русские или английские?
И причем тут "клавиша" (key)?
Проверяй текст в Edit. Ord(Edit1.Text[1])
← →
Змей © (2006-01-20 01:12) [2]это я писал в procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
Edit. Ord(Edit1.Text[1]) чтото не пойму ничего
← →
Германн © (2006-01-20 01:28) [3]
> Edit. Ord(Edit1.Text[1]) чтото не пойму ничего
В оригинале было:
Проверяй текст в Edit.
Ord(Edit1.Text[1])
Так что тебе нужно? Определить какие на сей момент уже есть буквы в Edit1? Или "какую букву" пытается вставить пользователь в Edit1?
← →
Змей © (2006-01-20 01:30) [4]текст уже набран допустим "аолвжфоавадо" и мне нужно узнать какие это русские или английские!
← →
Германн © (2006-01-20 01:47) [5]
> Змей © (20.01.06 01:30) [4]
>
> текст уже набран допустим "аолвжфоавадо" и мне нужно узнать
> какие это русские или английские!
Ну так вот. Если первая буква - английская, то Ord(Edit1.Text[1]) будет равен или меньше 122 ($7A), в противном случае первая буква - русская ( точнее "не английская").
Тоже самое верно и для всех остальных букв текста эдита.
А ещё точнее - проверять Edit1.Text[n] на вхождение в множество [$41..$
← →
Германн © (2006-01-20 01:52) [6]Пардон! случайно нажал "Добавить".
Следует читать: А ещё точнее - проверять Edit1.Text[n] на вхождение в множество [$41..$5A,$61..$7A]. Если входит, то это аглицкие буквы. Но стоит учесть, что кроме букв алфавита могут быть и другие символы: точка, запятая, пробел, кавычки etc.
← →
Змей © (2006-01-20 03:59) [7]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 04:12) [8]2 Змей © (20.01.06 03:59) [7]
Имхо, лучше пойти спать. :-)
А то - полнейшая чушь в сообщении.
Завтра будет день, будет истина.
← →
Змей © (2006-01-20 04:44) [9]добил я ее всетаки:) СПАСИБО за помощь.
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;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c