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

Вниз

коды символов....   Найти похожие ветки 

 
Vyter   (2003-11-11 17:27) [0]

Помогите.
имеется edit1 и edit2. При вводе в edit1 ,например, "help" в edit2 писалось "104 101 108 112", т.е. коды символов.


 
Dimka Maslov ©   (2003-11-11 17:30) [1]

TEdit.OnChange
Ord


 
Vyter   (2003-11-11 17:31) [2]

а конкретней можно?


 
Dimka Maslov ©   (2003-11-11 17:33) [3]

F1


 
Skier ©   (2003-11-11 17:34) [4]


>
> Dimka Maslov © (11.11.03 17:30) [1]

Уверен ?


 
Dimka Maslov ©   (2003-11-11 17:39) [5]

>Skier © (11.11.03 17:34) [4]

да, кое чего не хватает.
IntToStr


 
Skier ©   (2003-11-11 17:40) [6]

>Dimka Maslov © (11.11.03 17:39) [5]
Подумать не хватает...


 
Dimka Maslov ©   (2003-11-11 17:41) [7]

>Skier © (11.11.03 17:40) [6]
А-а.. Как это я упустил!!! :)
Подумать никогда не помешает.


 
Yakshe   (2003-11-11 17:43) [8]

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
Edit2.Text := Edit2.Text + " " + IntToStr(Ord(Key));
end;


 
Skier ©   (2003-11-11 17:46) [9]

>Yakshe (11.11.03 17:43) [8]
Во ! Самое оно ! :) А то OnChange понимаешь ли...


 
Dimka Maslov ©   (2003-11-11 17:46) [10]

>Yakshe (11.11.03 17:43) [8]
Сразу видно не подумал. Попробуй понажимать Backspace и посмотри что получится. А стрелки и Delete? А из буфера обмена?


 
Yakshe   (2003-11-11 17:48) [11]

Ну да. Но это можно обработать в этом же событии.
If Key = ... и так далее.
Кажется всё.


 
Dimka Maslov ©   (2003-11-11 17:50) [12]

>Yakshe (11.11.03 17:48) [11]
Не всё.
Попробуй теперь нажать Delete, предварительно выделив несколько символов? A?


 
Vyter   (2003-11-11 17:51) [13]

Всем ОГРОМНОЕ СПАСИБО!

Еще вопрос.
Как сделать наоборот, чтобы из "104 101 108 112" в "help"


 
Skier ©   (2003-11-11 17:52) [14]


> Как сделать наоборот, чтобы из "104 101 108 112" в "help"

Chr(...)


 
Vyter   (2003-11-11 17:58) [15]

2Skier
можно примерчик?


 
Skier ©   (2003-11-11 18:00) [16]

Нет. Принципиально ! :)


 
Vyter   (2003-11-11 18:04) [17]

2Skier
а че жалко?
Просто я не спец в этом деле.


 
Yakshe   (2003-11-11 18:28) [18]

Dimka Maslov © (11.11.03 17:50) [12]
Ты прав.. Тогда так.

procedure TForm1.Edit1Change(Sender: TObject);
var
N : Integer;
StrOfEdit : String;
begin
StrOfEdit := Edit1.Text;
Edit2.Text :="";
for N := 1 to Length(StrOfEdit) do
Edit2.Text := Edit2.Text + " " + IntToStr(Ord(StrOfEdit[N]));
end;


 
Sandman25 ©   (2003-11-11 18:30) [19]

[18] Yakshe (11.11.03 18:28)

Вместо Edit2.Text лучше использовать локальную переменную.


 
Yakshe   (2003-11-11 18:32) [20]

>Sandman25 © (11.11.03 18:30) [19]
Ага.


 
Vyter   (2003-11-11 18:45) [21]

набираю "help" в edit2 появляется " 104 101 108". В чем проблема?


 
Sandman25 ©   (2003-11-11 18:46) [22]

[21] Vyter (11.11.03 18:45)

В том, что нужно это дело переставить в OnChange, а не оставлять в OnKeyPress.


 
Vyter   (2003-11-11 19:11) [23]

ok, работает :)
Как сделать наоборот, чтобы из "104 101 108 112" в "help" переводилось?


 
Yakshe   (2003-11-11 19:25) [24]

> Vyter (11.11.03 19:11) [23]

Tak: Skier © (11.11.03 17:52) [14]


 
Vyter   (2003-11-11 19:31) [25]

2Yakshe
че то у меня не получается.
Приведите кто нить пример.


 
Yakshe   (2003-11-11 19:33) [26]

Vyter (11.11.03 19:11) [23]
ok, работает :)
Как сделать наоборот, чтобы из "104 101 108 112" в "help" переводилось?

А как будут цифры вводится в TEdit, с клавиатуры или как?


 
Vyter   (2003-11-11 19:35) [27]

2Yakshe
с клавы или из буфера.


 
Yakshe   (2003-11-11 20:19) [28]

Вот, эта строчка переделает "104" в "h".
Edit2.Text := Chr(StrToInt(Edit1.Text));


 
Vyter   (2003-11-11 20:39) [29]

2Yakshe

но как сделать, чтобы можно было писать в edit1 коды через пробел("104 101 108 112"), а в edit2 писалось бы "help"


 
Yakshe   (2003-11-11 21:40) [30]

Ну примерно так, если по простому :)
Только никакой защиты от "дурака" нету, делай сам..


procedure TForm1.Edit1Change(Sender: TObject);
var
N : Integer;
StrOfEdit1, StrOfEdit2 : String;
begin
StrOfEdit1 := Edit1.Text + " ";
StrOfEdit2 := "";

While Length(StrOfEdit1) <> 0 do
begin
if StrOfEdit1 <> " " then
StrOfEdit2 := StrOfEdit2 + Chr(StrToInt(Copy(StrOfEdit1,1,Pos(" ",StrOfEdit1)-1)));
Delete(StrOfEdit1, 1, Pos(" ",StrOfEdit1));
end;

Edit2.Text := StrOfEdit2;
end;


 
Vyter   (2003-11-11 21:46) [31]

2 Yakshe
БОЛЬШОЕ СПАСИБО!!!!!! Работает!!!
=))


 
Vyter   (2003-11-11 22:04) [32]

очередная проблема.
Надо все это объединить, т.е. edit1 зависит от edit2 и edit2 зависит от edit1.

Так глючит. Что надо сделать?

procedure TForm1.Edit1Change(Sender: TObject);
var
N : Integer;
StrOfEdit : String;
begin
StrOfEdit := Edit1.Text;
Edit2.Text :="";
for N := 1 to Length(StrOfEdit) do
Edit2.Text := Edit2.Text + " " + IntToStr(Ord(StrOfEdit[N]));
end;

procedure TForm1.Edit2Change(Sender: TObject);
var
N : Integer;
StrOfEdit1, StrOfEdit2 : String;
begin
StrOfEdit1 := Edit2.Text + " ";
StrOfEdit2 := "";

While Length(StrOfEdit1) <> 0 do
begin
if StrOfEdit1 <> " " then
StrOfEdit2 := StrOfEdit2 + Chr(StrToInt(Copy(StrOfEdit1,1,Pos(" ",StrOfEdit1)-1)));
Delete(StrOfEdit1, 1, Pos(" ",StrOfEdit1));
end;

Edit1.Text := StrOfEdit2;
end;


 
Vyter   (2003-11-12 17:56) [33]

помогите

Vyter (11.11.03 22:04) [32]


 
Vyter   (2003-11-17 00:20) [34]

Помогите пожалуйста........


 
Yakshe   (2003-11-17 01:07) [35]

Вобщем по тупому написал. :) Здесь ошибка.. может и не одна. Мне надо уходить просто.. Посмотри.


procedure TForm1.Button1Click(Sender: TObject);
var
N : Integer;
StrOfEdit1, StrOfEdit2 : String;
begin
StrOfEdit1 := Edit1.Text;

//for N := 1 to Length(StrOfEdit) do
Edit2.Text := Chr(StrToInt(Edit1.Text));
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
{ if Key = VK_DELETE then
else
Edit2.Text := Edit2.Text + " " + IntToStr(Ord(Key));}
end;

procedure TForm1.Edit1Change(Sender: TObject);
var
N : Integer;
StrOfEdit : String;
begin
EndChange1 := False;
if EndChange2 then
begin
StrOfEdit := Edit1.Text;
Edit2.Text :="";
for N := 1 to Length(StrOfEdit) do
Edit2.Text := Edit2.Text + " " + IntToStr(Ord(StrOfEdit[N]));
end;
EndChange1 := True;
end;

procedure TForm1.Edit2Change(Sender: TObject);
var
N : Integer;
StrOfEdit1, StrOfEdit2 : String;
begin
EndChange2 := False;
if EndChange1 then
begin

StrOfEdit1 := Edit2.Text + " ";
StrOfEdit2 := "";

While Length(StrOfEdit1) <> 0 do
begin
if StrOfEdit1 <> " " then
StrOfEdit2 := StrOfEdit2 + Chr(StrToInt(Copy(StrOfEdit1,1,Pos(" ",StrOfEdit1)-1)));
Delete(StrOfEdit1, 1, Pos(" ",StrOfEdit1));
end;

Edit1.Text := StrOfEdit2;
end;
EndChange2 := True;
end;


 
Yakshe   (2003-11-17 01:09) [36]

Да, забыл


...

var
Form1: TForm1;
EndChange1 : Boolean = True;
EndChange2 : Boolean = True;

...


 
Yakshe   (2003-11-17 01:10) [37]

procedure TForm1.Edit1KeyPress
ne v temu (sluchajno skopiroval) :))


 
Vyter   (2003-11-17 17:58) [38]

2Yakshe
Огромное СПАСИБО!
Все работает. ;)



Страницы: 1 вся ветка

Текущий архив: 2003.11.27;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.02 c
3-89718
Zai
2003-11-10 10:26
2003.11.27
ClientDataSet в FIBPlus


7-90136
ИЛЕЙ
2003-09-17 13:40
2003.11.27
Реагирование на завершение работы


1-89830
romeo
2003-11-18 15:35
2003.11.27
Все время черно-белая картинка!!! Блин...


14-90116
Дедов Дмитрий
2003-11-03 21:36
2003.11.27
Опрос


3-89693
Василиск
2003-11-06 11:27
2003.11.27
Как бороться с сообщениями сервера?