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

Вниз

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

 
Александр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;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.01 c
8-1115127908
Артём
2005-05-03 17:45
2005.09.11
Мультимедиа


11-1106665752
Boguslaw
2005-01-25 18:09
2005.09.11
Bitmap.LoadFromResourceName


8-1115212792
Артём
2005-05-04 17:19
2005.09.11
Видео-кодеки


14-1124259182
REA
2005-08-17 10:13
2005.09.11
1C защита


2-1123253534
Андрей235
2005-08-05 18:52
2005.09.11
Люди помогите сам никак...





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