![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
!ПЛИЗ! [D6, Win95/98]
diks © (2003-01-07 05:58:00)У меня 2 формы хочу чтобы:
вводишь yjc в первую
нажимаешь кнопку
во второй появлялось слово нос
помогите пожалуйста что то вроде декодера заранее БЛАГОДАРЕН
Song (2003-01-07 09:44:00) [1]ToAscII()
DJ_Sedoy (2003-01-07 07:32:00) [2]Немножко по другому будет корректнее:
proceduer TForm1.Button1Click(Sender : TObject);
const lat="qwertyuiop[]asdfghjkl;""zxcvbnm,./";
rus="йцукенгшщзхъфывапролджэячсмитьбю.";
var i: integer;
begin
Form2.Text:="";
for i:=1 to length(Edit1.Text) do Form2.Edit2.Text:=Form2.Edit2.Text+rus[pos(Edit1.Text[i])];
end;
Edit1 = на форме Form1, Edit2 - на форме Form2
Циклом перебираем строку и меняем латинский символ на соответствующий (по расположению на клавиатуре) ему русский.
В константе lat две кавычки означают реально одну, но внутри строки.
Dober_m@N (2003-01-07 07:17:00) [3]Думаю можно так(примитивно), за работоспособность не ручаюсь писал наместе:
proceduer TForm1.Button1Click(Sender : TObject);
var s: string[30]; { возможно можно просто "string" - как обычно, длинна под слово ограничена 30(можно увеличить) }
k: string;
i: Cardinal;
begin
s := Edit1.Text; { s - твоё слово в edit1 т.е. "yjc" }
k := ""; { k - твоё слово на выходе т.е. "нос" }
for i:=0 to Length(s) do begin
if s[i] = "y" then k := k + "н";
if s[i] = "j" then k := k + "о"; { т.е. получаются соответствия "y" = "н" "j" = "о" }
.......... { тут напиши тоже только с др буквами }
..........
end;
{ после окончания цикла в переменной k получится слово, уже по русски, а чтобы запихнуть во вторую форму(например в заголовок): }
Form2.Caption := k;
end;