|
@@ -369,10 +369,14 @@ var S: PMemoryStream;
|
|
|
Title: string;
|
|
|
XDataOfs: word;
|
|
|
XData: array[0..1024] of byte;
|
|
|
+
|
|
|
procedure GetData(var B; Size: word);
|
|
|
begin
|
|
|
- Move(XData[XDataOfs],B,Size);
|
|
|
- Inc(XDataOfs,Size);
|
|
|
+ if Size>0 Then
|
|
|
+ Begin
|
|
|
+ Move(XData[XDataOfs],B,Size);
|
|
|
+ Inc(XDataOfs,Size);
|
|
|
+ End;
|
|
|
end;
|
|
|
procedure ProcessWindowInfo;
|
|
|
var W: PWindow;
|
|
@@ -384,6 +388,7 @@ var W: PWindow;
|
|
|
R: TRect;
|
|
|
ZZ: byte;
|
|
|
Z: TRect;
|
|
|
+ Len : Byte;
|
|
|
begin
|
|
|
XDataOfs:=0;
|
|
|
Desktop^.Lock;
|
|
@@ -391,8 +396,9 @@ begin
|
|
|
case WI.HelpCtx of
|
|
|
hcSourceWindow :
|
|
|
begin
|
|
|
- GetData(St[0],1);
|
|
|
- GetData(St[1],ord(St[0]));
|
|
|
+ GetData(len,1);
|
|
|
+ SetLength(St,Len);
|
|
|
+ GetData(St[1],Len);
|
|
|
W:=ITryToOpenFile(@WI.Bounds,St,0,0,false,false,true);
|
|
|
if Assigned(W)=false then
|
|
|
begin
|
|
@@ -579,7 +585,7 @@ begin
|
|
|
S^.Read(WI,sizeof(WI));
|
|
|
if S^.Status=stOK then
|
|
|
begin
|
|
|
- Title[0]:=chr(WI.TitleLen);
|
|
|
+ SetLength(Title,WI.TitleLen);
|
|
|
S^.Read(Title[1],WI.TitleLen);
|
|
|
if WI.ExtraDataSize>0 then
|
|
|
S^.Read(XData,WI.ExtraDataSize);
|