Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Char и String помогите!!!


Автор: mitya1 20.5.2006, 01:24
Подскажите как сделать чтобы к примеру в поле Edit вводить А ,       а    в поле Memo  появился код этого А в числовом виде тоесть 97.
Как бы преобразовать букву в ее числовой ASCII код. smile  

Автор: tigger 20.5.2006, 04:14
Код

procedure TForm1.Edit1Change(Sender: TObject);
var
a:integer;
s:string;
c:char;
begin
s:=Edit1.Text;
c:=s[Edit1.GetTextLen];
a:=Ord(c);
Memo1.Text  := Memo1.Text + inttostr(a);
end;


 smile  

Автор: Sunvas 20.5.2006, 17:58
tigger, в твоем коде есть недочет: если мы быдем удалять с эдита информацию то в мемо ничего не будет удаляться. Следовательно нужно сделать фор в котором каждый символ переводить в аски код. 

Автор: skyboy 20.5.2006, 18:26
Sunvas, и для строки в 255 символов при каждом редактировании будет ганять цикл? smile Лучше для OnKeyDown Edit'a сделать обработчик, который в случае BackSpace'a будет определять код удаляемого символа и именно это удалять из Мемо smile Нажатие на "Delete" запретить. 

Автор: Sunvas 21.5.2006, 00:34
Цитата(skyboy @  20.5.2006,  18:26 Найти цитируемый пост)
лучше для OnKeyDown Edit'a сделать обработчик, который в случае BackSpace'a будет определять код удаляемого символа и именно это удалять из Мемо 

Бредовая идея: а ты подумал, что я могу курсором стать на начало строки и удалять первые 3 символа по чут-чуть??

Я просто указываю место ошибки
Цитата(tigger @  20.5.2006,  04:14 Найти цитируемый пост)
Memo1.Text  := Memo1.Text + inttostr(a);

а проблеммы оптиматизации кода - это уж забота автора. 

Автор: Dynamic 21.5.2006, 15:11
Код

procedure TForm1.Edit1Change(Sender: TObject);
begin
     Memo1.Clear;
     if Edit1.Text <> '' then
      Memo1.Text := IntToStr(Ord(Edit1.Text[1]));
end;
 

Автор: ivan219 22.5.2006, 08:51
А можете превести код по которому запрещается кнопка Delete.

Код

 Key:=#0;


Этот код не запрещает Delete.

 smile  smile  

Автор: Демо 22.5.2006, 09:37
Код

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=46 then Key := 0;
end;

 

Автор: Gensun 22.5.2006, 21:37
Код tigger однозначно не подходит. Темболие что он руские буквы выводит не правильно. Уменя есть исходник на JavaScript, он прекрасно делает перевод. В нем правда минус. А минус в том что он переводит п одной букве. 
Вобшем вот исходник на HTML, может ктото сможет его перенести на Delphi:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Preview - Tools & Utilities / ASCII Character Code</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<script language=JavaScript>
<!-- Begin
function showKeyCode()
{
var character = document.characterCode.character.value.substring(0,1);
var code = document.characterCode.character.value.charCodeAt(0);
var msg = "The ASCII Decimal Key Code for the \""+character+"\" character is "+code+".";
alert(msg);
}
//  End -->
</SCRIPT>
</HEAD>
<BODY text=#000000 bgColor=#ffffff>
<FORM name=characterCode>
<CENTER>
Type A Character: <INPUT size=15 name=character> 
<INPUT onclick=showKeyCode(); type=button value="Show Key Code"> 
</CENTER>
</FORM>
</BODY>
</HTML>
  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)