IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Множества, небольшая проблема
Nike0
сообщение 24.05.2010 20:39
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской
Реальное имя: Илья

Репутация: -  0  +


Доброго времени суток, нужна небольшая помощь: у меня есть 9 эдитов, для пяти из них у меня есть условиеЮ, что можно записывать числа от 1 до 5 включительно и только 1 раз, вот эта процедура:
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
var
edit:TEdit;
b:integer;
begin
edit:= Sender as TEdit;
if (key = #8) and (edit.Text<>'') then
include(Number,StrToInt(edit.Text));
if not (Key in ['1'..'5',#8]) then
Key :=#0
else
begin
if key<>#8 then
b := StrToInt(Key);
if not (b in Number) and (key<>#8) then
Key := #0
else
if key<>#8 then
exclude(Number,b);
end;
end;

type
TNumber = Set of Byte;

procedure TForm2.FormCreate(Sender: TObject);
begin
Number := [1..5];
end;


но тут начинается самое интересное, я хотел сделать также и для 4 символов (+,-,*,/) в оставшиеся эдиты, но ничего толкового не получилось, прошу помочь разобраться с этой проблемкой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
volvo
сообщение 24.05.2010 21:12
Сообщение #2


Гость






В чем проблема - непонятно, вот так все прекрасно работает:

type
TCharSet = Set Of Char;
var
Chars: TCharSet = ['+', '-', '*', '/']; // Можно это сделать и в FormCreate

procedure TForm1.Edit6KeyPress(Sender: TObject; var Key: Char);
var
edit: TEdit;
b: Char;
begin
edit:= Sender as TEdit;
if (key = #8) and (edit.Text<>'') then
begin
include(Chars, AnsiChar(edit.Text[edit.SelStart]));
end;
if not (Key in ['+', '-', '*', '/', #8]) then
Key :=#0
else
begin
if key<>#8 then
b := Key;
if not (b in Chars) and (key<>#8) then
Key := #0
else
if key<>#8 then
exclude(Chars, AnsiChar(b));
end;
end;
 К началу страницы 
+ Ответить 
Nike0
сообщение 24.05.2010 21:16
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской
Реальное имя: Илья

Репутация: -  0  +


спасибо, у меня как раз ругалось на AnsiChar и TCaption
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.06.2025 21:46
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"