Вверх ↑
Этот топик читают: Гость
Ответов: 817
Рейтинг: 52
#1: 2007-08-02 21:01:43 ЛС | профиль | цитата
Приятного времени суток господа !

По логике вещей, компонент If должен работать, но при любом значении первого операнда, он говорит False
Вот тут сделал еще один маленький пример того что компонент не работает

Add(MainForm,16404557,21,73)
{
Left=20
Top=105
Width=452
Height=437
}
Add(DatePicker,285339,154,437)
{
Left=80
Top=25
Width=142
Height=21
Hint="Выберите дату запуска KillDoc"
Font=[MS Sans Serif,8,1,128,1]
Cursor=3
Format="D.M.Y"
Point(doVisible)
Point(doEnabled)
Point(FormatTime)
link(OnChange,10546039:doSplit,[(198,443)(198,489)(142,489)(142,520)])
}
Add(Time,2113785,357,437)
{
Time_Date=1
Format="D.M.Y"
}
Add(If_else,2271931,357,717)
{
Type=1
link(onTrue,11656059:doMessage,[(415,723)(415,527)])
link(onFalse,2572030:doMessage,[(434,730)(434,576)])
link(Op1,14558285:Value,[(363,695)(293,695)])
link(Op2,2113785:Hours,[])
}
Add(Message,11656059,546,521)
{
Message="Меньше"
}
Add(Message,2572030,546,570)
{
Message="Больше"
}
Add(StrPart,10546039,154,514)
{
Char="."
link(onSplit,4496020:doValue,[])
link(Str,285339:Date,[])
}
Add(Memory,4496020,196,514)
{
link(onData,4069342:doSplit,[(233,520)(233,646)])
}
Add(Button,8584905,84,717)
{
Left=230
Top=25
link(onClick,2271931:doCompare,[])
}
Add(StrPart,4069342,238,640)
{
Char="."
link(onSplit,14558285:doValue,[])
link(Str,4496020:Value,[(244,593)(202,593)])
}
Add(Memory,14558285,287,640)
{
}
Add(Button,14196506,518,171)
{
Left=230
Top=225
link(onClick,1851848:doCompare,[])
}
Add(If_else,1851848,665,171)
{
Type=1
link(onTrue,13262558:doMessage,[(751,177)(751,163)])
link(onFalse,2376899:doMessage,[(747,184)(747,219)])
link(Op1,6612996:Caption,[(671,124)(608,124)])
link(Op2,10417025:Caption,[(678,127)(706,127)])
}
Add(Label,10417025,700,52)
{
Left=260
Top=195
Caption="2008"
}
Add(Label,6612996,602,45)
{
Left=195
Top=195
Caption="2007"
}
Add(Message,13262558,805,157)
{
Message="верно"
}
Add(Message,2376899,798,213)
{
Message="не верно"
}
Add(InfoTip,16725103,455,59)
{
Info=#9:Пример №1|
Width=106
Height=25
}
Add(InfoTip,4713938,224,388)
{
Info=#9:Пример №2|
Width=120
}

Заранее спасибо
карма: 1

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#2: 2007-08-02 21:04:36 ЛС | профиль | цитата
-= DriveR =-, ты где нашел этот DatePicker, и что конкретно надо сравнить?
карма: 22

0
Ответов: 817
Рейтинг: 52
#3: 2007-08-02 21:13:15 ЛС | профиль | цитата
nesco
DatePicker взял тут http://www.dev.hiasm.com/xf/topic.php?t=8025&start=50
а сравнить надо текущий год и год который выбрал пользователь. Если пользователь выбрал прошлый год, то ему ошибка.
А вообще было бы в идеале проверить полностью дату.
Если выбрана прошлая дата по отношению к текущей, то ошибка
карма: 1

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#4: 2007-08-02 21:28:09 ЛС | профиль | цитата
Вот как это реализуется на DatePicker_4_00 и DateConvertor_2_00 (Найти их можно в Upload -> Компоненты от nesco)
Add(MainForm,16404557,378,217)
{
Left=20
Top=105
Width=452
}
Add(DatePicker,285339,455,147)
{
Left=80
Top=25
Width=142
Height=21
Hint="Выберите дату запуска KillDoc"
Font=[MS Sans Serif,8,1,128,1]
Cursor=3
Point(doVisible)
Point(doEnabled)
Point(CurrentDateTime)
Point(DateTime)
link(OnChange,9992158:doConvert,[])
}
Add(DateConvertor,9992158,504,147)
{
Point(Data)
Point(Day)
link(onResult,3813769:doConvert,[])
link(Data,285339:DateTime,[(510,135)(489,135)(489,191)(468,191)])
}
Add(If_else,2271931,546,231)
{
Type=1
link(onTrue,11656059:doMessage,[(604,237)(604,202)])
link(onFalse,2572030:doMessage,[])
link(Op1,9992158:Day,[(552,205)(510,205)])
link(Op2,3813769:Day,[])
}
Add(Message,11656059,630,196)
{
Message="Меньше"
}
Add(Message,2572030,630,238)
{
Message="Больше"
}
Add(Button,8584905,455,231)
{
Left=125
Top=55
link(onClick,2271931:doCompare,[])
}
Add(DateConvertor,3813769,553,147)
{
Point(Data)
Point(Day)
link(Data,285339:CurrentDateTime,[(559,135)(517,135)(517,191)(461,191)])
}

[size=-2]------ Добавлено в 21:28
Я написал тебе только для даты. Для сравнения полной даты можно использовать значение Real, схема будет еще проще.
Add(MainForm,16404557,413,217)
{
Left=20
Top=105
Width=452
}
Add(DatePicker,285339,546,175)
{
Left=80
Top=25
Width=142
Height=21
Hint="Выберите дату запуска KillDoc"
Font=[MS Sans Serif,8,1,128,1]
Cursor=3
Point(doVisible)
Point(doEnabled)
Point(CurrentDateTime)
Point(DateTime)
}
Add(Button,8584905,483,231)
{
Left=125
Top=55
link(onClick,2271931:doCompare,[])
}
Add(If_else,2271931,546,231)
{
Type=2
link(onTrue,11656059:doMessage,[(604,237)(604,202)])
link(onFalse,2572030:doMessage,[])
link(Op1,285339:CurrentDateTime,[])
link(Op2,285339:DateTime,[])
}
Add(Message,11656059,630,196)
{
Message="Меньше"
}
Add(Message,2572030,630,238)
{
Message="Больше"
}
карма: 22

0
Ответов: 817
Рейтинг: 52
#5: 2007-08-02 21:32:53 ЛС | профиль | цитата
nesco
Спасибо за схему.
Нашел DatePicker_4_00 но внутри нет установочного файла *.his. А когда я просто копирую каждый файл в свою директорию, компонент работает, но в элементах нет его иконки.

Кстати, по первой схеме опять не работает, всегда говорит "БОЛЬШЕ", а по второй все замечательно.

А в чем может быть проблема, если даже самая простая схема, типа этой, не работает

Add(MainForm,16404557,49,52)
{
Left=20
Top=105
Width=208
Height=176
}
Add(Label,6612996,280,199)
{
Left=20
Top=25
Caption="2000"
}
Add(Message,13262558,483,311)
{
Message="верно"
}
Add(Label,10417025,378,206)
{
Left=95
Top=25
Caption="2008"
}
Add(If_else,1851848,343,325)
{
Type=1
link(onTrue,13262558:doMessage,[(429,331)(429,317)])
link(onFalse,2376899:doMessage,[(425,338)(425,373)])
link(Op1,6612996:Caption,[(349,278)(286,278)])
link(Op2,10417025:Caption,[(356,281)(384,281)])
}
Add(Button,14196506,196,325)
{
Left=60
Top=85
link(onClick,1851848:doCompare,[])
}
Add(Message,2376899,476,367)
{
Message="не верно"
}

карма: 1

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#6: 2007-08-02 21:41:17 ЛС | профиль | цитата
-= DriveR =-, установи, кинув файл ini на рабочую область HiAsm'a (предыдущий деинсталируй).
карма: 22

0
Ответов: 817
Рейтинг: 52
#7: 2007-08-02 21:47:54 ЛС | профиль | цитата
nesco
Еще раз спасибо за дельный совет.
Но как быть с вышеописанным вопросом?
карма: 1

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#8: 2007-08-02 22:02:07 ЛС | профиль | цитата
-= DriveR =-, компонент If не сравнивает значение строк, он сравнивает даннные "как есть", и для сравнения чисел необходимо строку преобразовать в число. Например: твой пример может выглядеть вот так code_1777.txt
карма: 22

0
файлы: 1code_1777.txt [995B] [299]
8
Сообщение
...
Прикрепленные файлы
(файлы не залиты)