Вверх ↑
Этот топик читают: Гость
Этот топик был перемещен из раздела "Помощь по среде"
Ответов: 59
Рейтинг: 0
#1: 2019-06-26 21:13:23 ЛС | профиль | цитата
Всем здравствуйте. Не могу разобраться с GlobarVar или GlobarVarEx. Переменной необходимо присвоить число с плавающей запятой. Например 0.6168 Переменная не понимает этого числа и выдает значение 0. Обычные числа понимает. Как может решить проблему?
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 8887
Рейтинг: 823
#2: 2019-06-26 22:27:23 ЛС | профиль | цитата
LeoN, случаем не забыли про десятичный разделитель "." ТОЧКА, но не запятая
карма: 19

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#3: 2019-06-26 22:30:15 ЛС | профиль | цитата
Леонид писал(а):
случаем не забыли про десятичный разделитель "." ТОЧКА, но не запятая

И число должно быть типа Real, а не Integer
карма: 22

0
Ответов: 59
Рейтинг: 0
#4: 2019-06-26 23:01:46 ЛС | профиль | цитата
Леонид писал(а):
разделитель "." ТОЧКА

именно через точку у меня и указано в вопросе.
nesco писал(а):
И число должно быть типа Real, а не Integer

число берется из текстового поля тип которого Float Integer

Редактировалось 1 раз(а), последний 2019-06-26 23:02:20
карма: 0

0
Ответов: 8887
Рейтинг: 823
#5: 2019-06-26 23:14:41 ЛС | профиль | цитата
LeoN,
НеПодтверждается.jpg
карма: 19

0
Ответов: 59
Рейтинг: 0
#6: 2019-06-27 16:29:51 ЛС | профиль | цитата
Леонид,
Какой тип поля выбран? И какой тип у глобальной переменной?
карма: 0

0
Ответов: 8887
Рейтинг: 823
#7: 2019-06-27 17:46:31 ЛС | профиль | цитата
LeoN, у Edit тип FloutNumber, у GlobalVar тип NULL
В приложении есть IC "Только цифры", для предупреждения ошибок не внимательного пользователя (Edit тип Text):
Пример


Add(Edit,10851423,224,175)
{
Left=35
Top=20
ClearAfterEnter=1
link(onChange,8598429:doTest,[])
}
Add(Label,3551326,399,231)
{
Left=130
Top=20
}
Add(GlobalVarEx,7634650,399,182)
{
Name="MyVar"
Point(onValue)
}
Add(GlobalVarEx,3171293,329,231)
{
Name="MyVar"
Point(onValue)
link(onValue,3551326:doText,[])
}
Add(InlineCode,8598429,266,175)
{
WorkPoints=#6:doTest|
EventPoints=#5:onRes|
VarPoints=#
DataPoints=#
Code=#15:unit HiAsmUnit;|13:// Author Tad|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|24: onRes : THI_Event;|51: PROCEDURE doTest(var _Data:TData; Index:Word);|0:|5: end;|0:|14:implementation|0:|29:PROCEDURE THiAsmClass.doTest;|16:var s,ss:string;|18: i,j,k:integer;|5:BEGIN|9: ss:='';|21: s:=toString(_Data);|15: j:=Length(s);|100: for i:=1 to j do if s[i] in ['0'..'9','.',','] then if s[i]=',' then ss:=ss+'.' else ss:=ss+s[i];|24: _hi_onEvent(onRes,ss);|4:END;|0:|0:|4:end.|
link(onRes,14875545:doEvent1,[])
}
Add(Hub,14875545,308,175)
{
link(onEvent1,10851423:doText2,[(333,181)(333,167)(214,167)(214,188)])
link(onEvent2,3053149:doConvert,[])
}
Add(Convertor,3053149,343,182)
{
Mode=10
link(onResult,7634650:doValue,[])
}

карма: 19

0
Ответов: 59
Рейтинг: 0
#8: 2019-06-27 21:46:37 ЛС | профиль | цитата
Леонид, Я понял в чем проблема. В том, что если в элемент Поле ввода(Edit) уже записано значение по умолчанию, то при открытии формы, из этого поля не записывается число во временную переменную. Поэтому переменная пустая оказывается. Но как исправить это не понял

Редактировалось 2 раз(а), последний 2019-06-27 21:52:51
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#9: 2019-06-27 22:51:07 ЛС | профиль | цитата
LeoN писал(а):
Но как исправить это не понял

А кто мешает использовать нижнюю точку Edit. Но команду на запись все равно подавать надо при старте, само по себе в переменную ничего не запишется.

Схема

Add(MainForm,15201511,392,182)
{
link(onCreate,2951063:doEvent1,[])
}
Add(Edit,14040054,532,301)
{
Left=20
Top=35
Width=95
Text=""
link(Str,12523105:Var,[])
}
Add(Edit,6585437,532,147)
{
Left=20
Top=10
Width=95
Text="0.6168 "
DataType=4
ClearAfterEnter=1
link(onEnter,13570874:doWork2,[])
}
Add(DoData,84245,532,196)
{
link(onEventData,13570874:doWork3,[(585,202)])
link(Data,6585437:Text,[])
}
Add(GlobalVar,6409773,602,154)
{
Name="test"
link(onValue,1555405:doWork3,[(648,160)(648,251)])
}
Add(HubEx,13570874,581,154)
{
link(onEvent,6409773:doValue,[])
}
Add(GlobalVar,12523105,532,266)
{
Name="test"
}
Add(Hub,2951063,462,196)
{
link(onEvent1,84245:doData,[])
link(onEvent2,1555405:doWork1,[(522,209)])
}
Add(HubEx,1555405,518,245)
{
Angle=1
link(onEvent,14040054:doText,[(522,307)])
}


Редактировалось 3 раз(а), последний 2019-06-27 22:59:57
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#10: 2019-06-27 23:03:30 ЛС | профиль | цитата
Леонид, т.к. опять вижу

unit HiAsmUnit;
// Author Tad
то наверное имею право на два вопроса:
1. Когда закончите меня подставлять?
2. Зачем рекламируете компоненты не входящие в стандартную сборку?

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8887
Рейтинг: 823
#11: 2019-06-28 09:48:30 ЛС | профиль | цитата
Tad,
1. Не подставляю, но восстанавливаю справедливость (Автор кода Tad и от этого никуда не деться!)
2. IC вполне себе штатный компонент, на что вы сами неоднократно указывали
Но по желанию Автора впредь буду стирать этот комментарий из этого IC и других IC того же автора перед публикацией
карма: 19

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#12: 2019-06-28 10:41:08 ЛС | профиль | цитата
Леонид писал(а):
IC вполне себе штатный компонент, на что вы сами неоднократно указывали

КМК, разговор шел об GlobalVarEx. Он не входит в штатный пакет. И что делать челу, у которого он не стоит, созерцать компоненты с крестиком? Некоторые принципиально не ставят сторонние компоненты.
карма: 22

0
Ответов: 8887
Рейтинг: 823
#13: 2019-06-28 12:25:28 ЛС | профиль | цитата
nesco:
LeoN писал(а):
Не могу разобраться с GlobarVar или GlobarVarEx

карма: 19

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#14: 2019-06-28 12:32:48 ЛС | профиль | цитата
Леонид писал(а):
nesco:
LeoN писал(а):
Не могу разобраться с GlobarVar или GlobarVarEx

Заметь, я ничего не говорил раньше про GlobarVarEx. Просто сделал уточнение по вопросу, на котором акцентировал внимание Tad.
карма: 22

0
14
Сообщение
...
Прикрепленные файлы
(файлы не залиты)