![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Spawn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 278 Регистрация: 3.6.2002 Репутация: нет Всего: нет |
Для проверки вводимых значений в ComboBox я сделал функцию, но че-то ана плохо робит:
... function SizeComboBx(Sender:integer):Boolean; var i,i2,CB:Integer; begin Result:=False; i2:=1; CB:=1; for i:=1 to 21 do if Butt[Sender].Name=Butt[i2].Name then begin if ((Combo[CB].Text='$$$')or //если КомбоБокс имеет значение '$$$' или... ((Length(Combo[CB].Text)>1)and(copy(Combo[CB].Text,1,1)='$')))or //если первый символ '$' и длина > 1 или ... ((Combo[CB].Text<>'')and(StrToInt(Combo[CB].Text)<=1439)) then //если КомбоБокс <> '' и число меньше либо равно 1439 Result:=True; exit; end else begin i2:=i2+3; CB:=CB+1; end; end; если после начала условия в цикле поставить BEGIN, значение функции всегда почему-то False: ... ((Combo[CB].Text<>'')and(StrToInt(Combo[CB].Text)<=1439)) then BEGIN Result:=True; exit; end А если я не ставлу Begin, то функция робит но если введено в ComboBox значение '$', то возвращает TRUE(Не пойму ни как, ведь дано условие, что длина должна быть больше 1: ... ((Length(Combo[CB].Text)>1) ... Подскажите плз если к кого-нить есть идеи на етот счет. |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Что за стиль
Вот посмотрите, намного компактней и понятней: With Combo[Cb] Do IF Butt[Sender].Name=Butt[i2].Name then try IF (Text='$$$') or (Text[1]='$')) or // Если есть $ это уже длина больше единицы ((Length(Text)>0) and (StrToInt(Text)<=1439)) then .. except // StrToInt вызвало exception... Забыли предусмотреть ? end; .... End; -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| Spawn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 278 Регистрация: 3.6.2002 Репутация: нет Всего: нет |
Большое спасибо Но у меня вопрос - Break - останавливает выполнение цикла, затем завершается функция Exit - быстрый выход из функции Есть ли разница в том какой из них использовать? |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Exit перед выходом обязательно вывзовет Break - это предусмтрено компилятором, конечно оттрасировать Вы не сможете этот участок, но то что сначала выполнится выход из цикла - это факт.
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |