Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
Внизкоды символов.... Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.008 c