![]() |
|
|
|
|
#1
|
|||
|
|||
|
Глупый вопрос: как проверить пустоту поля TEdit ?
|
|
#2
|
||||
|
||||
|
if Edit1.Text = '' then ShowMessage( 'Пусто' );
if Length( Edit1.Text ) = 0 then ShowMessage( 'Тоже пусто' ); |
|
#3
|
|||
|
|||
|
хочу реализовать задачку: на форме расположены компоненты TEdit, TButton, TLabel. В поле TEdit вводят нестандартные символы / \ + - 0 1. При правильном вводе этой комбинации и нажатии кнопки Button - выводится утвердительное сообщение. Если комбинация приведена неправильно - выводится отрицательное сообщение на Label.
Реализовала подобную задачку с помощью процедур ButtonClick и EditKeypress ( для численных комбинаций). Но для ввода нестандартных символов EditKeypress и переменная integer не подойдут. Вроде бы необходимо использовать переменную string, но возникают вопросы: 1) Какую процедуру использовать вместо EditKeypress? 2) чему присваивать x? (StrToInt не подойдет) 3) в программе прописывать нестандартные символы виртуальным кодом клавиш? Например \ как #220: 4)условие if (x=/ \ + - 0 1 ) then прописывать тоже в виде виртуального кода? Надеюсь на ответ :-) Код:
unit wind3_;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Jpeg, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
x: integer;
begin
if Length(Form1.Edit1.Text) = 0 then
begin
ShowMessage('No! ');
exit;
end;
x := StrToInt(Form1.Edit1.Text);
if (x=132) then
begin
Form1.Label1.Caption :=' Yes!' ;
end
else
Form1.Label1.Caption :='No! ';
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// #8 - <Backspace>
// #13 - <Enter>
case Key of
'0'..'9',#8: ;
else Key := Chr(0);
end;
end;
end.Последний раз редактировалось ariane, 10.04.2008 в 12:17. |
|
#4
|
|||
|
|||
|
Цитата:
До конца не понимаю. Задача вроде простая, а вы вроде пошли сложным путем. Или сама задача неправильно описана. Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text = '/ \ + - 0 1' then
label1.Caption:='super super '
else
label1.Caption:='Oi, ne super'
end; |
|
#5
|
|||
|
|||
|
но описывать символы, которые вводятся в поле Edit вроде бы необходимо. К тому же процедура EditKey... фильтрует нажатие других клавиш, чтобы не вводить посторонние символы. То есть я могу вообще обойтись без процедуры EditKey....?
|
|
#6
|
|||
|
|||
|
Цитата:
Т.е. вам нужно, чтобы можно было вводить только определенные символы? |