Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция 
:(
    Опции темы
Spawn
  Дата 25.6.2002, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 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)
...

Подскажите плз если к кого-нить есть идеи на етот счет.
PM MAIL   Вверх
Song
Дата 25.6.2002, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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;


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Spawn
Дата 25.6.2002, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 278
Регистрация: 3.6.2002

Репутация: нет
Всего: нет



Цитата(Song @ 25.6.2002, 10:07)
Что за стиль ???
Вот посмотрите, намного компактней и понятней:

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;

Большое спасибо :) , все дело оказалось действительно в StrToInt :)

Но у меня вопрос -
Break - останавливает выполнение цикла, затем завершается функция
Exit - быстрый выход из функции

Есть ли разница в том какой из них использовать?
PM MAIL   Вверх
Song
Дата 25.6.2002, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



Exit перед выходом обязательно вывзовет Break - это предусмтрено компилятором, конечно оттрасировать Вы не сможете этот участок, но то что сначала выполнится выход из цикла - это факт.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1667 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.