Вверх ↑
Ответов: 1731
Рейтинг: 68
#1: 2012-01-02 19:43:07 ЛС | профиль | цитата
Только что проверил на относительно чистой WinXP SP2 с чистой средой (4.04 184).
Все работает.
------------ Дoбавленo в 19.43:
Попробуйте заменить на это
#pas
unit hiGetFileVer;

interface

uses
Windows,
hiEditMultiEx,
hiVBJScript,
hiMultiElementEx,hiMultiBase,kol,Share;

type
THIGetFileVer = class(ThiMultiElementEx)
private
EditMultiEx:THIEditMultiEx;
VBJScript:THIVBJScript;
procedure SetonGetFileVer(event:THI_Event);
procedure SetPath(data:THI_Event);
public
Child:THIEditMultiEx;

constructor Create;
destructor Destroy; override;
procedure _work_doGetFileVer(var Data:TData; index:word);
property _event_onGetFileVer:THI_Event write SetonGetFileVer;
property _data_Path:THI_Event write SetPath;
end;

implementation


constructor THIGetFileVer.Create;
begin
inherited Create;
//Init for EditMultiEx;
EditMultiEx := THIEditMultiEx.Create;
with EditMultiEx do begin
SetLength(Works,1);
SetLength(Vars, 0);
end;
//Init for VBJScript;
VBJScript := THIVBJScript.Create;
with VBJScript do begin
_prop_WorkPoints := PChar('doGetFV'#0);
_prop_EventPoints := PChar('onGetFV'#0);
_prop_VarPoints := PChar(#0);
_prop_DataPoints := PChar('Path'#0);
_prop_Language := 0;
_prop_Script := PChar('Sub doWork(Data, Index)'#13#10' Select Case Index'#13#10' Case "doGetFV"'#13#10' Set FSO = CreateObject("Scripting.FileSystemObject")'#13#10' sys.onGetFV FSO.GetFileVersion("" & sys.Path & "")'#13#10' End Select'#13#10'End Sub'#0);
_prop_UseName := True;
end;
//%multi%
//Make all connection in scheme
EditMultiEx.Works[0] := _DoEvent(VBJScript._work_WorkPoints,0);
VBJScript._event_EventPoints[0] := _DoEvent(EditMultiEx.OnEvent,0);
VBJScript._data_DataPoints[0] := _DoEvent(EditMultiEx._Data,0);

Child := EditMultiEx;
Child.MainClass := TClassMultiBase(Self); // work but not correct... :(
Child.Parent := Self;
SetLength(Events, 1);
SetLength(Datas, 1);
end;

destructor THIGetFileVer.Destroy;
begin
VBJScript.Destroy;
EditMultiEx.Destroy;
inherited;
end;

procedure THIGetFileVer._work_doGetFileVer(var Data:TData; index:word);
begin
_hi_onEvent(Child.Works[0], Data);
end;

procedure THIGetFileVer.SetonGetFileVer;
begin
Events[0] := event;
end;

procedure THIGetFileVer.SetPath;
begin
Datas[0] := data;
end;



end.

содержимое hiGetFileVer
карма: 1

0