diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index e602aae34..d2dab2af0 100644 --- a/Configuration/GlobalAssemblyInfo.cs +++ b/Configuration/GlobalAssemblyInfo.cs @@ -15,7 +15,7 @@ internal static class RevisionClass public const string Major = "3"; public const string Minor = "5"; public const string Build = "1"; - public const string Revision = "2247"; + public const string Revision = "2250"; public const string MainVersion = Major + "." + Minor; public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision; diff --git a/Configuration/Version.defs b/Configuration/Version.defs index 6894cca5a..c105f7e2c 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ -%MINOR%=5 -%REVISION%=2247 %COREVERSION%=1 +%REVISION%=2250 +%MINOR%=5 %MAJOR%=3 diff --git a/PABCNetHelp/PABCUnits/GraphWPF/Files/GraphWPF events.html b/PABCNetHelp/PABCUnits/GraphWPF/Files/GraphWPF events.html index d413944ce..3b46b0b3d 100644 --- a/PABCNetHelp/PABCUnits/GraphWPF/Files/GraphWPF events.html +++ b/PABCNetHelp/PABCUnits/GraphWPF/Files/GraphWPF events.html @@ -1,5 +1,4 @@ - @@ -23,7 +22,5 @@
         OnResize: procedure;
         -OnDrawFrame: procedure(dt: real); -
         . dt - , \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/WPFObjects/Files/WPFObjects events.html b/PABCNetHelp/PABCUnits/WPFObjects/Files/WPFObjects events.html index 22ca182ba..0f2615b94 100644 --- a/PABCNetHelp/PABCUnits/WPFObjects/Files/WPFObjects events.html +++ b/PABCNetHelp/PABCUnits/WPFObjects/Files/WPFObjects events.html @@ -1,4 +1,5 @@ + @@ -8,7 +9,9 @@

WPFObjects

-
OnKeyDown: procedure(k: Key); + + diff --git a/Release/pabcversion.txt b/Release/pabcversion.txt index a1d4ae954..5b1368f98 100644 --- a/Release/pabcversion.txt +++ b/Release/pabcversion.txt @@ -1 +1 @@ -3.5.1.2247 +3.5.1.2250 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index 081e565a0..e12430da5 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.5.1.2247' +!define VERSION '3.5.1.2250' diff --git a/TestSuite/CompilationSamples/GraphWPF.pas b/TestSuite/CompilationSamples/GraphWPF.pas index ac07c8638..c3d7ca2a0 100644 --- a/TestSuite/CompilationSamples/GraphWPF.pas +++ b/TestSuite/CompilationSamples/GraphWPF.pas @@ -483,9 +483,6 @@ var OnKeyUp: procedure(k: Key); var OnKeyPress: procedure(ch: char); /// Событие изменения размера графического окна var OnResize: procedure; -/// Событие перерисовки графического окна. -///Инициализируется процедурой с вещественным параметром dt - временем, прошедшим с момента последнего обновления экрана -var OnDrawFrame: procedure(dt: real) := nil; //{{{--doc: Конец секции 3 }}} @@ -1569,6 +1566,7 @@ procedure SystemOnResize(sender: Object; e: SizeChangedEventArgs) := var OnDraw: procedure := nil; var OnDraw1: procedure(frame: integer) := nil; +var OnDrawT: procedure(dt: real) := nil; var FrameRate := 61; // кадров в секунду. Можно меньше! var LastUpdatedTime := new System.TimeSpan(integer.MinValue); @@ -1577,12 +1575,12 @@ var FrameNum := 0; procedure RenderFrame(o: Object; e: System.EventArgs); begin - if (OnDraw<>nil) or (OnDraw1<>nil) or (OnDrawFrame<>nil) then + if (OnDraw<>nil) or (OnDraw1<>nil) or (OnDrawT<>nil) then begin var e1 := RenderingEventArgs(e).RenderingTime; var dt := e1 - LastUpdatedTime; var delta := 1000/Framerate; // через какое время обновлять - if OnDrawFrame<>nil then + if OnDrawT<>nil then delta := 0; // перерисовывать когда придёт время if dt.TotalMilliseconds < delta then exit @@ -1593,8 +1591,8 @@ begin OnDraw() else if OnDraw1<>nil then OnDraw1(FrameNum) - else if OnDrawFrame<>nil then - OnDrawFrame(dt.Milliseconds/1000); + else if OnDrawT<>nil then + OnDrawT(dt.Milliseconds/1000); end; end; @@ -1616,7 +1614,7 @@ end; procedure BeginFrameBasedAnimationTime(Draw: procedure(dt: real)); begin - OnDrawFrame := Draw; + OnDrawT := Draw; end; procedure EndFrameBasedAnimation; diff --git a/TestSuite/CompilationSamples/WPFObjects.pas b/TestSuite/CompilationSamples/WPFObjects.pas index a58280873..254a15f26 100644 --- a/TestSuite/CompilationSamples/WPFObjects.pas +++ b/TestSuite/CompilationSamples/WPFObjects.pas @@ -1184,6 +1184,8 @@ var OnKeyPress: procedure(ch: char); /// Событие изменения размера графического окна OnResize: procedure; + /// Событие перерисовки графического окна. Параметр dt обозначает количество миллисекунд с момента последнего вызова OnDrawFrame + OnDrawFrame: procedure(dt: real) := nil; // ----------------------------------------------------- //>> Функции пересечения# Intersection functions @@ -1207,15 +1209,16 @@ procedure __InitModule__; procedure __FinalizeModule__; //{{{--doc: Конец секции 2 }}} -procedure BeginFrameBasedAnimation(Draw: procedure; frate: integer := 61); +//procedure BeginFrameBasedAnimation(Draw: procedure; frate: integer := 61); + +//procedure BeginFrameBasedAnimationTime(DrawT: procedure(dt: real)); -procedure BeginFrameBasedAnimationTime(DrawT: procedure(dt: real)); implementation -procedure BeginFrameBasedAnimation(Draw: procedure; frate: integer) := GraphWPF.BeginFrameBasedAnimation(Draw,frate); +//procedure BeginFrameBasedAnimation(Draw: procedure; frate: integer) := GraphWPF.BeginFrameBasedAnimation(Draw,frate); -procedure BeginFrameBasedAnimationTime(DrawT: procedure(dt: real)) := GraphWPF.BeginFrameBasedAnimationTime(DrawT); +//procedure BeginFrameBasedAnimationTime(DrawT: procedure(dt: real)) := GraphWPF.BeginFrameBasedAnimationTime(DrawT); function RGB(r,g,b: byte) := Color.Fromrgb(r, g, b); function ARGB(a,r,g,b: byte) := Color.FromArgb(a, r, g, b); @@ -1540,6 +1543,19 @@ procedure SystemOnResize(sender: Object; e: SizeChangedEventArgs) := if OnResize<>nil then OnResize(); +var LastUpdatedTimeWPF := new System.TimeSpan(integer.MinValue); + +procedure RenderFrameWPF(o: Object; e: System.EventArgs); +begin + if OnDrawFrame<>nil then + begin + var e1 := RenderingEventArgs(e).RenderingTime; + var dt := e1 - LastUpdatedTimeWPF; + LastUpdatedTimeWPF := e1; + OnDrawFrame(dt.Milliseconds/1000); + end; +end; + procedure __InitModule; begin AdditionalInit := procedure -> @@ -1554,6 +1570,8 @@ begin MainWindow.TextInput += SystemOnKeyPress; MainWindow.SizeChanged += SystemOnResize; + CompositionTarget.Rendering += RenderFrameWPF; + Objects := new ObjectsType; Window := GraphWPF.Window; GraphWindow := GraphWPF.GraphWindow; diff --git a/VisualPascalABCNET/Workbench/UpdateService.cs b/VisualPascalABCNET/Workbench/UpdateService.cs index 1368e9b13..a06cd640b 100644 --- a/VisualPascalABCNET/Workbench/UpdateService.cs +++ b/VisualPascalABCNET/Workbench/UpdateService.cs @@ -27,7 +27,7 @@ namespace VisualPascalABC { using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full")) { - return key != null && (key.GetValue("Version") as string).StartsWith("4.7"); + return key != null && ((key.GetValue("Version") as string).StartsWith("4.7") || (key.GetValue("Version") as string).StartsWith("4.8")); } } catch (Exception ex) diff --git a/bin/PascalABCNET.chm b/bin/PascalABCNET.chm index b68d2b322..fa00d9ff8 100644 Binary files a/bin/PascalABCNET.chm and b/bin/PascalABCNET.chm differ
OnDrawFrame: procedure(dt: real); +
         . dt OnDrawFrame
OnKeyDown: procedure(k: Key);
        
OnKeyPress: procedure(ch: char);