Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
Александр1   (2005-08-09 00:25) [0]

Пожалуйста, подскажите в чем проблема - не могу сделать так,
чтобы во 2-ом и 3-ем Edit набирались только "а".."я". В 1-ом же все Ок.
Вот исходник.
unit vrun1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Edit2: TEdit;
   Edit3: TEdit;

   Label1: TLabel;
   Label2: TLabel;
   Label3: TLabel;
   Label4: TLabel;
   Button1: TButton;

   procedure Button1Click(Sender: TObject);
   procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  { procedure Edit2KeyPress(Sender: TObject; var Key: Char);
  { procedure Edit3KeyPress(Sender: TObject; var Key: Char);}
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

   case Key of
     "à".."ÿ":               ;
     #8      :               ;
     #13     : Edit2.SetFocus;
     else Key :=Chr(0);
   end;
end;

begin

   case Key of
     "а".."я":               ;
     #8      :               ;
     #13     : Edit3.SetFocus;
     else Key :=Chr(0);
   end;
end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
     "а".."я": ;
     #13 : Button1.SetFocus;
         else Key :=Chr(0);
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 
   n : string;
   p : string;  
   s : string;
begin
 
   n:= Edit2.Text;
   p:= Edit3.Text;
   s:= Edit1.Text;

       label4.Caption := " "+ Edit1.Text + " " + #13;
end;
end.


 
Eraser ©   (2005-08-09 00:45) [1]

Александр1   (09.08.05 00:25)

Данный способ всё равно неполноценный, т.к. ещё существует Copy/Paste.


 
Leonid Troyanovsky ©   (2005-08-09 09:02) [2]


> Александр1   (09.08.05 00:25)  



type

 TChars = set of Char;

 EConvertException = class(Exception)
 public
   ErrorCharIndex : Longint;
   constructor Create(CharIndex: Longint);
 end;

constructor EConvertException.Create;
begin
 ErrorCharIndex := CharIndex;
end;

function CheckInput(const s: String; ValidChars: TChars): Double;
var
 i: Longint;
begin
 for i := 1 to Length(s) do
   if not (s[i] in ValidChars) then
     raise EConvertException.Create(i);
end;

function CorrectText(s: String; Idx: Longint ): String;
begin
 Result:= s;
 Delete(Result, Idx, 1);
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
 with Sender as TEdit do
   try
     CheckInput(Text, ["а".."я","А".."Я"]);
   except
     on E: EConvertException do
       begin
         Text:= CorrectText(Text, E.ErrorCharIndex);
         SelStart := E.ErrorCharIndex - 1;
         Beep;
       end;
   end;
end;


--
Regards, LVT.


 
IceBeerg ©   (2005-08-09 13:29) [3]

Александр1   (09.08.05 0:25)
 { procedure Edit2KeyPress(Sender: TObject; var Key: Char);
 { procedure Edit3KeyPress(Sender: TObject; var Key: Char);}

А почему это закоментировано?



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

Форум: "Начинающим";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
4-1121792397
NikotiN
2005-07-19 20:59
2005.09.11
как узнать имя открытого файла по его Handle?


1-1124285554
Kirill
2005-08-17 17:32
2005.09.11
Установка компонентов не из под IDE


2-1123593226
DeepProg
2005-08-09 17:13
2005.09.11
ADOQuery.Open. SELECT


1-1124659140
domosed
2005-08-22 01:19
2005.09.11
не допустить чтобы два приложения одновременно запис. и читали фа


1-1124370115
Aleksandr.
2005-08-18 17:01
2005.09.11
Почему Excel не понимает формат даты?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский