diff --git a/rtl/win32/video.pp b/rtl/win32/video.pp index 07501999ee..c38f9ba28d 100644 --- a/rtl/win32/video.pp +++ b/rtl/win32/video.pp @@ -32,8 +32,13 @@ var ConsoleCursorInfo : TConsoleCursorInfo; MaxVideoBufSize : DWord; +const + VideoInitialized : boolean = false; + procedure InitVideo; begin + if VideoInitialized then + DoneVideo; ScreenColor:=true; GetConsoleScreenBufferInfo(TextRec(Output).Handle, ConsoleInfo); GetConsoleCursorInfo(TextRec(Output).Handle, ConsoleCursorInfo); @@ -73,19 +78,20 @@ begin GetMem(VideoBuf,MaxVideoBufSize); GetMem(OldVideoBuf,MaxVideoBufSize); - - {ClearScreen; not needed PM } + VideoInitialized:=true; end; procedure DoneVideo; begin - { ClearScreen; also not needed PM } SetCursorType(crUnderLine); - { SetCursorPos(0,0); also not needed PM } - FreeMem(VideoBuf,MaxVideoBufSize); - FreeMem(OldVideoBuf,MaxVideoBufSize); + if VideoInitialized then + begin + FreeMem(VideoBuf,MaxVideoBufSize); + FreeMem(OldVideoBuf,MaxVideoBufSize); + end; VideoBufSize:=0; + VideoInitialized:=false; end; @@ -352,7 +358,10 @@ finalization end. { $Log$ - Revision 1.2 2001-04-10 21:28:36 peter + Revision 1.3 2001-06-13 18:32:55 peter + * fixed crash within donevideo (merged) + + Revision 1.2 2001/04/10 21:28:36 peter * removed warnigns Revision 1.1 2001/01/13 11:03:59 peter diff --git a/rtl/win32/wininc/func.inc b/rtl/win32/wininc/func.inc index 1314898fb9..ef26fdd4b8 100644 --- a/rtl/win32/wininc/func.inc +++ b/rtl/win32/wininc/func.inc @@ -1003,7 +1003,7 @@ function DdeDisconnectList(_para1:HCONVLIST):BOOL;external 'user32' name 'DdeDis function DdeEnableCallback(_para1:DWORD; _para2:HCONV; _para3:UINT):BOOL;external 'user32' name 'DdeEnableCallback'; function DdeFreeDataHandle(_para1:HDDEDATA):WINBOOL; external 'user32' name 'DdeFreeDataHandle'; function DdeFreeStringHandle(_para1:DWORD;_para2:HSZ):WINBOOL; external 'user32' name 'DdeFreeStringHandle'; -function DdeGetData(_para1:HDDEDATA; var _para2:BYTE; _para3:DWORD; _para4:DWORD):DWORD; external 'user32' name 'DdeGetData'; +function DdeGetData(_para1:HDDEDATA;_para2:LPBYTE; _para3:DWORD; _para4:DWORD):DWORD; external 'user32' name 'DdeGetData'; function DdeGetLastError(_para1:DWORD):UINT; external 'user32' name 'DdeGetLastError'; function DdeImpersonateClient(_para1:HCONV):BOOL;external 'user32' name 'DdeImpersonateClient'; function DdeKeepStringHandle(_para1:DWORD; _para2:HSZ):BOOL;external 'user32' name 'DdeKeepStringHandle'; @@ -2226,7 +2226,10 @@ end; { $Log$ - Revision 1.4 2001-02-09 23:08:31 peter + Revision 1.5 2001-06-13 18:32:55 peter + * fixed crash within donevideo (merged) + + Revision 1.4 2001/02/09 23:08:31 peter * fixed bugs 1398,1399,1400 Revision 1.3 2001/02/02 20:53:18 peter