Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-90087
vopros
2003-11-06 09:28
2003.11.27
Мужики кто-нибудь знает как АТС Definity параметр


1-89932
Nucl
2003-11-17 18:02
2003.11.27
Картинки из TImageList


7-90146
Spinx
2003-09-16 01:11
2003.11.27
Перенос Systray a в свое приложене


7-90138
bosso
2003-09-17 13:15
2003.11.27
Динамическая загрузка процедуры


1-89852
Митяй
2003-11-06 18:58
2003.11.27
Строковая функция.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский