Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.05;
Скачать: CL | DM;

Вниз

русские или английские буквы в строке?   Найти похожие ветки 

 
Змей ©   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.035 c
4-1132356146
sergey1
2005-11-19 02:22
2006.02.05
как можно использовать функцию DlgDirList без применения визуальн


9-1124403540
ConferNo
2005-08-19 02:19
2006.02.05
GLScene Lightmaps


2-1137451488
fedor
2006-01-17 01:44
2006.02.05
Подскажите что вызывает ошибку?


2-1137568385
pavel_guzhanov
2006-01-18 10:13
2006.02.05
Путь к текущему профилю пользователя


1-1135859646
Mikhail
2005-12-29 15:34
2006.02.05
причина ошибки ? для Delphi 2005 под VCL Forms App for Net