Вверх ↑
Этот топик читают: Гость
Ответов: 8
Рейтинг: 0
#1: 2009-02-17 04:36:59 ЛС | профиль | цитата
Подскажите, как получить данные с помощью функции GetData из глобальной переменной.
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 5227
Рейтинг: 587
#2: 2009-02-17 05:10:32 ЛС | профиль | цитата
code_11835.txt

карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
файлы: 1code_11835.txt [1.1KB] [194]
Ответов: 8
Рейтинг: 0
#3: 2009-02-17 20:32:56 ЛС | профиль | цитата
Спасибо ! буду разбираться
------------ Дoбавленo:

не могу понять что не так. помогите

#sha

Make(delphi)
ver(4.0 build 173)
Add(MainForm,10977632,21,105)
{
Left=20
Top=105
Width=645
Height=498
Font=[Arial,8,0,0,1]
}
Add(VBScript,3863772,399,168)
{
WorkPoints=#6:doRead|
EventPoints=#7:onRead1|7:onRead2|
DataPoints=#1:w|1:h|1:t|1:y|
Script=#27:function doWork(Data,Index)|14: w=getdata "w"|14: h=getdata "h"|14: t=getdata "t"|14: y=getdata "y"|0:|24: onEvent "onRead1", t+y|24: onEvent "onRead2", w+h|0:|3:end|
link(onRead1,15588589:doText,[])
link(onRead2,14622935:doText,[(506,181)(506,216)])
link(w,7682005:Var,[(405,131)(328,131)])
link(h,8161830:Var,[(412,121)(391,121)])
link(t,9975093:Var,[(419,130)(468,130)])
link(y,2319456:Var,[(426,139)(531,139)])
}
Add(Edit,2581439,91,119)
{
Left=185
Top=140
Text="0"
link(onChange,15362462:doConvert,[])
}
Add(GlobalVar,8161830,385,77)
{
Name="temp1"
Data=Real(0)
}
Add(GlobalVar,12226432,203,119)
{
Name="temp1"
Data=Real(0)
Point(doName)
}
Add(Edit,647541,91,70)
{
Left=115
Top=140
Text="0"
link(onChange,8154443:doConvert,[])
}
Add(GlobalVar,2929557,203,70)
{
Name="temp2"
Data=Real(0)
Point(doName)
}
Add(GlobalVar,7682005,322,77)
{
Name="temp2"
Data=Real(0)
}
Add(Convertor,8154443,147,70)
{
Mode=10
link(onResult,2929557:doValue,[])
}
Add(Convertor,15362462,147,119)
{
Mode=10
link(onResult,12226432:doValue,[])
}
Add(GlobalVar,2319456,525,77)
{
Name="temp4"
Data=Real(0)
}
Add(GlobalVar,9975093,462,77)
{
Name="temp3"
Data=Real(0)
}
Add(Edit,16232529,91,168)
{
Left=115
Top=180
Text="0"
link(onChange,9456971:doConvert,[])
}
Add(GlobalVar,15978413,203,168)
{
Name="temp3"
Data=Real(0)
Point(doName)
}
Add(Convertor,9456971,147,168)
{
Mode=10
link(onResult,15978413:doValue,[])
}
Add(Edit,10188164,91,217)
{
Left=185
Top=180
Text="0"
link(onChange,10346495:doConvert,[])
}
Add(GlobalVar,12931928,203,217)
{
Name="temp4"
Data=Real(0)
Point(doName)
}
Add(Convertor,10346495,147,217)
{
Mode=10
link(onResult,12931928:doValue,[])
}
Add(Edit,15588589,567,168)
{
Left=275
Top=180
}
Add(Edit,14622935,567,210)
{
Left=275
Top=140
}
Add(Timer,9412027,329,168)
{
Interval=100
link(onTimer,3863772:doRead,[])
}
Add(Label,13905110,105,273)
{
Left=165
Top=140
Width=10
Height=17
Caption="+"
}
Add(Label,3285391,154,273)
{
Left=170
Top=180
Width=10
Height=17
Caption="+"
}
Add(Label,689970,105,315)
{
Left=240
Top=145
Width=10
Height=17
Caption="="
}
Add(Label,15444341,154,315)
{
Left=240
Top=180
Width=10
Height=17
Caption="="
}

------------ Дoбавленo:

разобрался, может кому пригодится. В компоненте VBScript получить данные с верхних точек, можно при условии что справа создано не меньшее количество точек. Например если вы создали 4 верхних и 2 правых, получить данные можно только с 2 первых ... . Кстати может посоветуете как подправить .pas файл компонента, чтобы не лепить лишние точки. Спасибо
карма: 0

0
Ответов: 2125
Рейтинг: 159
#4: 2009-02-18 11:08:35 ЛС | профиль | цитата
Неправда, вот твой-же пример, но рабочий:

#sha
Add(MainForm,10977632,196,175)
{
Left=20
Top=105
Width=645
Height=498
Font=[Arial,8,0,0,1]
}
Add(VBScript,3863772,574,238)
{
WorkPoints=#6:doRead|
EventPoints=#7:onRead1|7:onRead2|
DataPoints=#1:w|1:h|1:t|1:y|
Script=#27:function doWork(Data,Index)|13: w=getdata(0)|13: h=getdata(1)|13: t=getdata(2)|13: y=getdata(3)|0:|15: onEvent 0, t+y|15: onEvent 1, w+h|0:|3:end|
link(onRead1,15588589:doText,[])
link(onRead2,14622935:doText,[(681,251)(681,286)])
link(w,7682005:Var,[(580,201)(503,201)])
link(h,8161830:Var,[(587,191)(566,191)])
link(t,9975093:Var,[(594,200)(643,200)])
link(y,2319456:Var,[(601,209)(706,209)])
}
Add(Edit,2581439,266,189)
{
Left=185
Top=140
Text="0"
link(onChange,15362462:doConvert,[])
}
Add(GlobalVar,8161830,560,147)
{
Name="temp1"
Data=Real(0)
}
Add(GlobalVar,12226432,378,189)
{
Name="temp1"
Data=Real(0)
Point(doName)
}
Add(Edit,647541,266,140)
{
Left=115
Top=140
Text="0"
link(onChange,8154443:doConvert,[])
}
Add(GlobalVar,2929557,378,140)
{
Name="temp2"
Data=Real(0)
Point(doName)
}
Add(GlobalVar,7682005,497,147)
{
Name="temp2"
Data=Real(0)
}
Add(Convertor,8154443,322,140)
{
Mode=10
link(onResult,2929557:doValue,[])
}
Add(Convertor,15362462,322,189)
{
Mode=10
link(onResult,12226432:doValue,[])
}
Add(GlobalVar,2319456,700,147)
{
Name="temp4"
Data=Real(0)
}
Add(GlobalVar,9975093,637,147)
{
Name="temp3"
Data=Real(0)
}
Add(Edit,16232529,266,238)
{
Left=115
Top=180
Text="0"
link(onChange,9456971:doConvert,[])
}
Add(GlobalVar,15978413,378,238)
{
Name="temp3"
Data=Real(0)
Point(doName)
}
Add(Convertor,9456971,322,238)
{
Mode=10
link(onResult,15978413:doValue,[])
}
Add(Edit,10188164,266,287)
{
Left=185
Top=180
Text="0"
link(onChange,10346495:doConvert,[])
}
Add(GlobalVar,12931928,378,287)
{
Name="temp4"
Data=Real(0)
Point(doName)
}
Add(Convertor,10346495,322,287)
{
Mode=10
link(onResult,12931928:doValue,[])
}
Add(Edit,15588589,742,238)
{
Left=275
Top=180
}
Add(Edit,14622935,742,280)
{
Left=275
Top=140
}
Add(Timer,9412027,504,238)
{
Interval=100
link(onTimer,3863772:doRead,[])
}
Add(Label,13905110,280,343)
{
Left=165
Top=140
Width=10
Height=17
Caption="+"
}
Add(Label,3285391,329,343)
{
Left=170
Top=180
Width=10
Height=17
Caption="+"
}
Add(Label,689970,280,385)
{
Left=240
Top=145
Width=10
Height=17
Caption="="
}
Add(Label,15444341,329,385)
{
Left=240
Top=180
Width=10
Height=17
Caption="="
}

Если используешь свойство UseName=False, то нужно указывать номер точки.
------------ Дoбавленo:

А если использовать UseName=True, то в компоненте VBScript (не путать с VBJScript) действительно есть ошибка:

#pas
function THIVBScript.ReadPointIndex;
var k:integer;
begin
Result := -1;
if _IsStr(Data^) then
for k := 0 to FECount.Count-1 do // <-- что тут делает FECount ?
if StriComp(PChar(List.Items[k]),PChar(ToString(Data^))) = 0 then
begin
Result := k;
break;
end;

if Result = -1 then
Result := ToIntIndex(Data^);
end;

------------ Дoбавленo:

grial писал(а):
как подправить .pas файл компонента, чтобы не лепить лишние точки

Заменить в приведённом выше фрагменте FECount на List
карма: 1

1
Голосовали:andrestudio
Ответов: 5227
Рейтинг: 587
#5: 2009-02-18 17:20:46 ЛС | профиль | цитата
grial, c этим компонентом туева хуча предупреждений (использовал твою схему)
Как апетиты к OLE обьектам появятся то надо будет учится кодить уже по другому

кстати вот вот результаты моей сборки, сравни со своими.



Подготовка к сборке проекта...
Генерация кода целевого языка
Компоновка проекта...
Command line: dcc32.exe "C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Project25.dpr" "-U C:\Program Files\HiAsm v4 build 174\." -Q
Borland Delphi Version 12.0 Copyright (c) 1983,98 Inprise Corporation

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Functions.pas(37) Hint: Private symbol '_SendMessage' declared but never used

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Functions.pas(38) Hint: Private symbol '_PostMessage' declared but never used

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Functions.pas(39) Hint: Private symbol '_SetWindowText' declared but never used

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Functions.pas(40) Hint: Private symbol '_GetWindowText' declared but never used

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Functions.pas(49) Hint: Private symbol '_CreateThread' declared but never used

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(457) Warning: FOR-Loop variable 'j' may be undefined after loop

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(479) Warning: Return value of function 'TStack.Pop' might be undefined

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(875) Warning: Return value of function 'TScript.AddError' might be undefined

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(1060) Warning: Variable 'op' might not have been initialized

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(1086) Warning: Variable 'op' might not have been initialized

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(1112) Warning: Variable 'Var1' might not have been initialized

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(1144) Warning: Variable 'Var1' might not have been initialized

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(1186) Hint: Variable 'Var1' is declared but never used in 'TScript.Level8'

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(1461) Warning: Variable '_Oop' might not have been initialized

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(2078) Warning: Variable 'ind' might not have been initialized

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(2378) Warning: Variable 'Val' might not have been initialized

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(2414) Warning: Variable 'ValR' might not have been initialized

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(2472) Warning: Return value of function 'TScript.CalcCmp' might be undefined

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(2482) Warning: Return value of function 'DataToBool' might be undefined

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(2670) Warning: Return value of function 'TScript.BuildVar' might be undefined

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(2686) Hint: Variable 'tmpRFunc' is declared but never used in 'TScript.ExecuteFunction'

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(2760) Warning: Variable 'TmpArg' might not have been initialized

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(2714) Hint: Variable 'TmpArg' is declared but never used in 'TScript.ExecFunc'

C:\Program Files\HiAsm v4 build 174\Elements\delphi\code\Script.pas(2776) Warning: Variable '_Oop' might not have been initialized
8765 lines, 0.17 seconds, 88336 bytes code, 2505 bytes data.
Сборка завершена.

tsdima, Вы скоро выловите все ошибки


карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
5
Сообщение
...
Прикрепленные файлы
(файлы не залиты)