Вверх ↑
Этот топик читают: Гость
Ответов: 4641
Рейтинг: 334
#61: 2010-11-29 11:21:23 ЛС | профиль | цитата
Tad писал(а):
четырёх страниц форума достаточно

вполне!
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 16884
Рейтинг: 1239
#62: 2010-11-29 16:02:53 ЛС | профиль | цитата
Тогда замени процедуру в IC

Procedure THiAsmClass.doIn;
var sd:string;
i:integer;
begin
sd := ReadString(_Data,Data);
i := Pos('.',sd);
If i=0 then sd := sd + '.00'
else if length(sd)-i=1 then sd:=sd+'0';
_hi_onEvent(onOut,sd);
end;
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Ravilr
Гость
Ответов: 17029
Рейтинг: 0
#63: 2010-12-08 09:27:08 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2025-01-10 05:04:23
карма: 0

0
Ответов: 45
Рейтинг: 0
#64: 2010-12-12 20:13:26 ЛС | профиль | цитата
вот мой вариант... (не полностью доделал...) немного поправить и будет норм...)
Add(MainForm,2953706,175,210)
{
Width=249
Height=115
}
Add(Edit,8263022,280,119)
{
Left=65
Top=5
Width=55
Text="2"
}
Add(Edit,12160203,329,119)
{
Left=65
Top=30
Width=170
Text=""
}
Add(Button,8392881,224,210)
{
Left=5
Top=5
link(onClick,7782185:doWork1,[])
}
Add(Edit,5824401,336,210)
{
Left=65
Top=55
Width=170
Text=""
}
Add(Label,2990824,224,119)
{
Left=125
Top=10
Width=111
Height=17
Caption="знака после точки"
}
Add(Label,5169248,175,161)
{
Left=5
Top=60
Width=59
Height=17
Caption="Результат:"
}
Add(Label,607112,175,119)
{
Left=5
Top=35
Width=39
Height=17
Caption="Число:"
}
Add(MultiElement,7782185,280,210)
{
link(onEvent1,5824401:doText,[])
link(Data1,8263022:Text,[])
link(Data2,12160203:Text,[(293,198)(335,198)])
}
BEGIN_SDK
Add(EditMulti,4710960,21,21)
{
EventCount=1
WorkCount=1
DataCount=2
Width=650
Height=487
link(doWork1,4178187:doEvent1,[(77,27)(77,90)])
}
Add(For,5993080,182,84)
{
Start=1
link(onEvent,796888:doClear,[])
link(End,4710960:Data1,[(195,52)(27,52)])
}
Add(Memory,796888,245,77)
{
Default=String(0)
link(onData,9798463:doStrCat,[(289,83)(289,115)(226,115)(226,146)])
}
Add(StrCat,9798463,238,140)
{
Point(doClear)
link(onStrCat,4017107:doValue,[])
link(Str1,9798463:Result,[(244,128)(232,128)(232,184)(244,184)])
link(Str2,796888:Value,[])
}
Add(Memory,4017107,455,140)
{
Default=String()
Point(Data)
link(onData,7063817:doStrCat,[(492,146)(492,184)(282,184)(282,195)])
}
Add(StrCat,7063817,448,189)
{
Str1="1"
Point(doClear)
link(Str2,4017107:Value,[])
}
Add(Math,14086561,280,315)
{
OpType=2
link(onResult,10490844:doSplit,[])
link(Op1,4710960:Data2,[(286,154)(34,154)])
link(Op2,1861671:Var2,[(293,267)(454,267)])
}
Add(Sleep,1230471,147,315)
{
Delay=100
link(onSleep,14086561:doOperation,[])
}
Add(Hub,4178187,91,84)
{
link(onEvent1,5993080:doFor,[])
link(onEvent2,1230471:doSleepMks,[(126,97)(126,321)])
}
Add(Hub,8993969,196,357)
{
OutCount=3
link(onEvent1,9798463:doClear,[(224,363)(224,153)])
link(onEvent2,4017107:doClear,[(332,370)(332,153)])
link(onEvent3,7063817:doClear,[(259,377)(259,202)])
}
Add(StrPart,10490844,343,315)
{
Char="."
Point(onNotFound)
link(onPart,10240687:doEvent1,[])
link(onNotFound,10240687:doEvent2,[])
}
Add(Hub,10240687,392,322)
{
InCount=2
OutCount=1
link(onEvent1,14892042:doOperation,[])
}
Add(Math,14892042,490,322)
{
OpType=3
link(onResult,9056055:doEvent1,[])
link(Op2,1861671:Var3,[(503,243)])
}
Add(GetDataEx,1861671,448,238)
{
link(Data,7063817:Result,[])
}
Add(Hub,9056055,546,322)
{
link(onEvent1,4710960:onEvent1,[(616,328)(616,27)])
link(onEvent2,8993969:doEvent1,[(571,335)(571,412)(184,412)(184,363)])
}
END_SDK



карма: 1

0
Ответов: 16884
Рейтинг: 1239
#65: 2010-12-13 00:54:38 ЛС | профиль | цитата
Ravilr, в заключение ravilr.rar
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1ravilr.rar [1.4KB] [134]
Голосовали:Ravilr
Ответов: 8930
Рейтинг: 823
#66: 2010-12-13 15:56:55 ЛС | профиль | цитата
Tad, а иконка где
------------ Дoбавленo в 15.56:
"Вот она, вот она...!"
карма: 19

0
файлы: 1numberinformatstr.rar [208B] [129]
Ответов: 1304
Рейтинг: 405
#67: 2011-04-14 13:34:34 ЛС | профиль | цитата
Tad, недавно пришлось конвертировать число в строку, с выравниванием и обрезанием. Соответственно впомнил о "RlToStr" и удивился как там всё сложно. Можно сделать на Str.


Add(MainForm,2953706,35,161)
{
Width=163
Height=243
Caption="Equalize"
Position=1
}
Add(Button,9314254,105,161)
{
Left=100
Top=190
Data=Real(-12.239)
link(onClick,6275833:doEnum,[])
}
Add(StrList,13729817,147,98)
{
Strings=#5:0.123|4:0.12|3:.24|7:23.1234|1:1|1:0|2:12|7:2345643|13:234.123456789|2:пп|
}
Add(ArrayEnum,6275833,161,161)
{
link(onItem,15390601:doRealToStr,[])
link(Array,13729817:Array,[])
}
Add(InlineCode,15390601,210,161)
{
@Hint=#15:Инструкция Goto|
WorkPoints=#11:doRealToStr|
EventPoints=#7:OnEvent|
DataPoints=#7:Digits_|2:I_|2:F_|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|17:uses Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|22: Digits_:THI_Event;|17: I_:THI_Event;|17: F_:THI_Event;|22: OnEvent:THI_Event;|54: procedure doRealToStr(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|34:procedure THiAsmClass.doRealToStr;|0:|3:var|13: Digits:real;|16: I,F :integer;|15: SStr :string;|1: |7: begin|35: I := ReadInteger(_Data,I_);|35: F := ReadInteger(_Data,F_);|37: Digits := ReadReal(_Data,Digits_);|25: Str(Digits:I:F, SStr);|29: _hi_OnEvent(OnEvent,SStr);|6: end;|4:end.|
link(OnEvent,15256508:doAdd,[])
link(I_,5600699:Value,[])
link(F_,1844059:Value,[(230,149)(265,149)])
}
Add(ListBox,15256508,266,161)
{
Top=5
Width=155
Height=180
Font=[Courier New,10,5,0,204]
}
Add(Memory,5600699,217,105)
{
Default=Integer(16)
}
Add(Memory,1844059,259,105)
{
Default=Integer(5)
}

ps:Кстати где выкладывался на форуме RlToStr, так и не нашёл.
карма: 3

1
Голосовали:Tad
Ответов: 16884
Рейтинг: 1239
#68: 2011-04-14 22:40:38 ЛС | профиль | цитата
MAV писал(а):
Кстати где выкладывался
MAV, ты не умничай, а делай компонент.

------------ Дoбавленo в 22.40:
MAV, вот примерно: digit2str.rar

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1digit2str.rar [1KB] [402]
Ответов: 356
Рейтинг: 31
#69: 2011-04-15 14:24:56 ЛС | профиль | цитата
Схема работает со строкой что позволяет снять ограничения присущие числовым типам данных.
code_23361.txt

Т.к. при отсутствии в строке символа-разделителя она выдаётся на точку Right, пришлось установить выделенный Memory.

Add(MainForm,14431576,350,217)
{
Width=545
Height=174
Position=1
}
Add(Button,13436686,420,182)
{
Left=131
Top=102
Width=100
Height=24
Caption="С разделителем"
Data=String(123456787568735472918 # +++)
link(onClick,8404091:doWork2,[])
}
Add(StrPart,6338507,525,189)
{
Char="#"
DirectEvent=0
Point(onNotFound)
Point(Left)
Point(Right)
}
Add(Label,12876941,525,238)
{
Left=4
Top=62
Width=175
Height=20
Color=-16777192
Ctl3D=0
Caption=" Left"
AutoSize=1
link(Text,6338507:Left,[])
}
Add(Hub,4403314,476,182)
{
OutCount=4
link(onEvent1,7689655:doText,[(508,188)(508,146)])
link(onEvent2,6338507:doSplit,[])
link(onEvent3,12876941:doText,[(516,202)(516,244)])
link(onEvent4,8864189:doText,[(507,209)(507,286)])
}
Add(Label,8864189,532,280)
{
Left=356
Top=62
Width=175
Height=20
Color=-16777192
Ctl3D=0
Caption=" Right"
AutoSize=1
link(Text,6338507:Right,[])
}
Add(Label,1300819,420,224)
{
Left=204
Top=21
Width=118
Height=14
Caption="Символ-разделитель -"
AutoSize=1
}
Add(Label,4153436,462,224)
{
Left=322
Top=22
Width=14
Height=14
Color=16776960
Caption=" #"
AutoSize=1
}
Add(Button,4560843,420,140)
{
Left=305
Top=102
Width=100
Height=24
Caption="Без разделителя"
Data=String(123456787568735472918 +++)
link(onClick,8404091:doWork1,[(466,146)])
}
Add(Label,7689655,525,140)
{
Left=180
Top=62
Width=175
Height=20
Color=15780518
Ctl3D=0
Caption=" String"
AutoSize=1
}
Add(HubEx,8404091,462,182)
{
link(onEvent,4403314:doEvent1,[])
}
карма: 0

0
файлы: 1code_23361.txt [3.1KB] [209]
69
Сообщение
...
Прикрепленные файлы
(файлы не залиты)