https://github.com/Purik/RxDelphi
2022年5月11日 星期三
system.loadlibrary JNI_OnLoad Embarcadero.Jni
https://stackoverflow.com/questions/48670592/invoke-jni-onload-from-delphi
https://developer.android.com/training/articles/perf-jni
https://community.embarcadero.com/article/technical-articles/1040-using-the-android-jni-bridge-to-open-a-pdf
Using the Android JNI bridge to open a PDF
Delphi ZeroPlayer Library Android dynamic library
https://docwiki.embarcadero.com/Libraries/Sydney/en/System.IOUtils.TPath.GetLibraryPath
uses
..., Embarcadero.Jni
const
LIBNAME = 'libtest.so';
function try_load_dll: THandle;
var
libPath: string;
OnLoadFunc: TJNI_OnLoad;
hlib: THandle;
begin
Result := 0;
libPath := TPath.Combine(TPath.GetLibraryPath, libname);
hlib := LoadLibrary(PChar(libPath));
if hlib = 0 then Exit;
@OnLoadFunc := GetProcAddress(hlib, 'JNI_OnLoad');
if not Assigned(OnLoadFunc) then
begin
FreeLibrary(hlib);
Exit;
end;
OnLoadFunc(PJavaVM(System.JavaMachine), nil);
Result := hlib;
end;
https://question-it.com/questions/3417717/vyzov-jni_onload-iz-delphi
LIBNAME = 'libtest.so';
function try_load_dll:integer;
var libPath:system.string;
begin
_status:= 0 ;
libPath:=TPath.Combine(tpath.GetLibraryPath,libname);
_status := LoadLibrary(PChar(libPath));
result:=_Status;
if( _status= 0 )then exit;
end;
JNI_OnLoad
https://coderoad.ru/48670592/%D0%92%D1%8B%D0%B7%D0%B2%D0%B0%D1%82%D1%8C-JNI_OnLoad-%D0%BE%D1%82-Delphi
https://arophix.com/2017/12/01/android-jni/
https://www.programmersought.net/article/329130475.html
https://programmer.ink/think/jni_ndk-advanced-programming-guide-part-2.html
JNI_NDK Advanced Programming Guide Part
2022年5月10日 星期二
Process memory usage
Process memory usage
GetProcessWorkingSetSize() SetProcessWorkingSetSize()
h,mMin,mMax:cardinal;
h:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, false, PID);
GetProcessWorkingSetSize(h,mMin,mMax);
CloseHandle(h);
h,newMin,newMax:cardinal;
h:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_SET_QUOTA, false, PID);
SetProcessWorkingSetSize(h, newMin, newMax);
https://w-shadow.com/blog/2006/09/04/process-memory-usage/
GetSystemTimes to get the total system timing.
GetProcessTimes to get timing for a specific process.
GetCurrentProcess to get current process handle.
PerfCounter Performance Counter
https://docs.microsoft.com/zh-tw/troubleshoot/windows-server/performance/manually-rebuild-performance-counters
https://www.codeproject.com/articles/9113/get-cpu-usage-with-getsystemtimes
https://docs.microsoft.com/en-us/windows/win32/perfctrs/about-performance-counters
https://www.codeproject.com/Articles/10538/Getting-CPU-Usage-in-a-Multiprocessor-Machine
https://www.codeproject.com/search.aspx?q=cpu++usage&doctypeid=1%3b2%3b3%3b13%3b11%3b17
delphi Multicore library parallel programming
Using TTask from the Parallel Programming Library
https://docwiki.embarcadero.com › Sydney
TTask creates and manages interaction with instances of ITask. ITask is an interface that provides a range of methods and properties to Start, Wait, Cancel and ...
System.Threading.TTask - RAD Studio API Documentation
https://docwiki.embarcadero.com › Syste...
TTask is a class managing and representing procedures that can be executed in parallel threads. An instance of TTask represents a single task or unit of ...
delphi Parallel 之TTask 初試- 程式人生
https://www.itread01.com › content
— Clear; SetLength(TaskArray, C); for I := 0 to C - 1 do begin TaskArray[I] := TTask.Create(procedure var Id: string; begin Id := TThread.
Introducing the TTask class | Delphi GUI Programming with ...
https://subscription.packtpub.com › book
TTask.Run( procedure begin // Do something end ); Copy. We should recall the TThread.CreateAnonymousThread class function but a bit more abstracted.
https://www.codetd.com/en/article/9464576
http://delphi.org/2015/02/parallel-for-loops/
https://github.com/MarcoDelphiBooks/ObjectPascalHandbook104
https://grantmcdermott.com/ds4e/parallel.html
https://github.com/eStreamSoftware/delphi-ppl
delphi CPU affinity mask Thread Affinity Mask
SetProcessAffinityMask - Select more than one processor?
https://stackoverflow.com/questions/9078838/setprocessaffinitymask-select-more-than-one-processor
function CombinedProcessorMask(const Processors: array of Integer): DWORD_PTR;
i: Integer;
Result := 0;
for i := low(Processors) to high(Processors) do
Result := Result or SingleProcessorMask(Processors[i]);
function ProcessorInMask(const ProcessorMask: DWORD_PTR;
const ProcessorIndex: Integer): Boolean;
Result := (SingleProcessorMask(ProcessorIndex) and ProcessorMask)<>0;
得知自己在某個cpu core 上
https://stackoverflow.com/questions/33571061/get-the-percentage-of-total-cpu-usage
Get the Percentage of Total CPU Usage
CPU 負載
https://github.com/aadamfr/Super_macro/blob/master/adCpuUsage.pas
AdCpuUsage
How to monitor CPU and network utilization
https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/mt708809(v=vs.85)
2022年5月8日 星期日
object employee employeeID DepartmentID national identity
object employee employeeID DepartmentID national identity
National Identification Number
national identity card number database
National Identification Number (NIN)
National Identity Card (NIC)
National IDs Around the World — Interactive map
National ID Card
https://en.wikipedia.org/wiki/National_identification_number
https://en.wikipedia.org/wiki/Belgian_identity_card
https://en.wikipedia.org/wiki/Lithuanian_identity_card
https://en.wikipedia.org/wiki/Passport
Entity Framework 4: Then and Now
https://daveswersky.wordpress.com/2010/05/26/entity-framework-4-then-and-now/
Architecture Hierarchy
CodeTyphon Alternative 龍捲風 IDE
Pascal Object Pascal Pascal Script Oxygene Clascal Concurrent Pascal SuperPascal
https://handwiki.org/wiki/Software:Dev-Pascal
https://www.pilotlogic.com/sitejoom/index.php
MonoDevelop pascal
CodeTyphon
PascalABC.NET
Dev-Pascal
Lazarus
Free Pascal IDE
Delphi
KDevelop
MIDletPascal
Morfik
MSEide
Understand
Visual Studio via Oxygene
PocketStudio
SharpDevelop
RemObjects Oxygene Object Pascal
Delphi Prism
Groovy
Eclipse GDT
IntelliJ IDEA
NetBeans
SlickEdit
https://handwiki.org/wiki/Software:Dev-Pascal
https://en.wikipedia.org/wiki/Integrated_development_environment
https://stackoverflow.com/questions/524058/net-or-mono-vs-qt-which-one-for-cross-platform-development
https://pl.wikipedia.org/wiki/Delphi_Prism
Delphi.NET
Kylix
Lazarus
C#
C++/CLI
Delphi.NET
Nemerle
Oxygene
Visual Basic.NET
.NET
Mono
DotGNU
ROTOR
MonoDevelop
SharpDevelop
https://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Pascal.2C_Object_Pascal
2022年5月7日 星期六
"SkSL" shading language skia
https://cavalry.scenegroup.co/
https://main.d1fnr9j76bdr39.amplifyapp.com/nodes/effects/sksl-shader/
https://en.wikipedia.org/wiki/Skia_Graphics_Engine
https://github.com/thelumiereguy
https://github.com/Jaseemakhtar/ComposeCG/
https://github.com/livingcreative/kcanvas
Specialized Builds 2D graphics Renderer library
2022年5月6日 星期五
響應式 Running a thread while keeping GUI responsive Responsive GUI using threads for background work and PostMessage to report back from the threads
Embarcadero Delphi Running a thread while keeping GUI responsive Responsive GUI using threads for background work and PostMessage to report back from the threads
https://riptutorial.com/delphi/example/11592/responsive-gui-using-threads-for-background-work-and-postmessage-to-report-back-from-the-threads
Retrieving updated TDataSet data in a background thread
https://riptutorial.com/delphi/topic/4114/retrieving-updated-tdataset-data-in-a-background-thread
2022年5月5日 星期四
IDL2PAS MIDL tools tlibimp Microsoft IDL
https://www.drbob42.com/examines/home.htm
https://stackoverflow.com/questions/5091829/idl-to-type-library
https://docs.microsoft.com/zh-tw/troubleshoot/windows-client/deployment/dynamic-link-library
https://stackoverflow.com/questions/7994852/consume-net-assembly-in-delphi-xe2/8013047#8013047
https://stackoverflow.com/questions/8431313/how-to-fix-this-unmanaged-exports-trouble-using-delphi-c
https://www.delphipower.xyz/guide_6/using_delphi_or_idl_syntax.html
delphi idl dll predeclid predeclid typeinfo except propput propputref members except CoClass public alias typeinfo
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_Delphi_or_RIDL_Syntax
Delphi Developers Guide Interface Definition Language idl
COM, COM+, Delphi Tutorials and References - Binh Ly
https://en.wikipedia.org/wiki/Microsoft_Interface_Definition_Language
DLL OAIDL.IDL OBJIDL.IDL tlb TypeLib
https://docs.microsoft.com/zh-tw/windows/win32/com/anatomy-of-an-idl-file
https://github.com/ojdkbuild/tools_toolchain_sdk71/blob/master/Include/PropIdl.Idl
1.【How To Do COM In C Builder 5】----Interface Definition Language (IDL)
http://www.blong.com/Conferences/IConUK2000/C COM/COM In C Builder.htm#IDL 2.【C Builder Unleashed】----Chapter 27: C Builder, OLE Automation, and Distributed COM
http://www.tietovayla.fi/BORLAND/CPLUS/bcppbuilder/4/books/cppbu/chapter27/ 3.ActiveX and the VCL (part 1)----Introducing the wizards
http://community.borland.com/article/0,1410,20669,00.html 4.ActiveX and the VCL (part 2) ---Connecting to ActiveX Servers
http://community.borland.com/article/0,1410,20677,00.html 5.MIDL Command-Line Reference
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/midl/midl/general_midl_command_line_syntax.asp 6. Microsoft Interface Definition Language (MIDL) Reference
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/midl/midl/general_midl_command_line_syntax.asp
Microsoft Interface Definition Language (MIDL)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/midl/midl/general_midl_command_line_syntax.asp
2022年5月4日 星期三
Instructions and precautions for calling JNI jar Java in Delphi cross platform development Android
https://cdmana.com/2022/03/202203200608160695.html
https://synaptica.info/en/2017/03/07/delphi-fmx-android-app-to-check-mem-usage/
Android, how to call a TJIntent
https://en.delphipraxis.net/topic/1361-android-how-to-call-a-tjintent/
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.Controls.Presentation, FMX.StdCtrls, Androidapi.JNI.App
,Androidapi.JNIBridge
,Androidapi.JNI.GraphicsContentViewText
,Androidapi.JNI.JavaTypes
,Androidapi.JNI.Os
,FMX.Helpers.Android
,Androidapi.Helpers
,Androidapi.JNI.ActivityManager;
TAndroidHelper
https://docwiki.embarcadero.com/CodeExamples/Alexandria/en/FMX.Android_Intents_Sample
http://aziga.x10.mx/delphi/index.php?option=com_content&view=article&id=28&Itemid=33
https://blogs.embarcadero.com/adopting-the-openjdk-for-delphi-android-development/
delphi java code android Translation
https://github.com/tothpaul/APKPascal
https://github.com/chinawsb/QSDK
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_a_Custom_Set_of_Java_Libraries_In_Your_RAD_Studio_Android_Apps
Developing Fluent User Interfaces for Windows 10
The ribbon component of the Microsoft Office Fluent interface users Office applications.
https://github.com/fluentribbon/Fluent.Ribbon
Developing Fluent User Interfaces for Windows 10 https://youtu.be/uOpbLLDh1hc
https://en.wikipedia.org/wiki/Fluent_interface
Microsoft Office 2007 § User interface
https://www.microsoft.com/design/fluent/#/
https://github.com/sourcechord/FluentWPF
https://www.dima.to/blog/how-to-host-wpf-controls-in-a-delphi-application-and-delphi-controls-in-a-wpf-application/
https://code.google.com/archive/p/delphihtmlwriter/
https://www.thedelphigeek.com/2009/04/fluent-xml-1.html
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Program_Control_(Delphi)
https://github.com/mremec/omnixml
https://github.com/VSoftTechnologies/Delphi-Fluent-XML/blob/master/README.md
https://blogs.embarcadero.com/es/giving-your-apps-the-fluent-ui-look-and-feel-with-delphi/
https://blog.marcocantu.com/blog/fluent_delphi.html
https://www.andrecelestino.com/fluent-interface-no-delphi/
https://github.com/NickHodges/delphihtmlwriter
https://blogs.embarcadero.com/delphi-offers-deeper-third-party-tool-api-integration-than-wpf-and-electron/
https://docs.microsoft.com/en-us/dotnet/desktop/wpf/advanced/wpf-and-win32-interoperation?view=netframeworkdesktop-4.8
WPF and Win32 Interoperation
This topic provides an overview of how to interoperate WPF and Win32 code. Windows Presentation Foundation (WPF) provides a rich environment for creating applications. However, when you have a substantial investment in Win32 code, it might be more effective to reuse some of that code.
WPF and Win32 Interoperation Basics
Delphi runtime
https://blogs.embarcadero.com/coming-delphi-10-4-runtime-library-enhancements/
https://github.com/salvadordf/WebView4Delphi
https://github.com/jchv/OpenWebView2Loader
DRT
A better Delphi runtime.
https://gitee.com/YWtheGod/DRT
Combine with librarys in C code. Now contains:
Zlib 1.2.12 from https://github.com/jtkukunas/zlib
XXHASH 0.8.1 from https://github.com/Cyan4973/xxHash
LZ4 from https://github.com/lz4/lz4
zstd from https://github.com/facebook/zstd
fastmm5 from https://github.com/pleriche/FastMM5 (used in windows platforms)
mimalloc from https://github.com/microsoft/mimalloc (used in non windows platforms)
Update 2022/05/02: Add FastMM5(for Windows) and mimalloc(for other platforms), and Patch move function to use MSVCRT's memmove implement(Windows only, other platforms already use CRT's memmove)
Update 2022/04/24: Add WebView2Loader Support for FMX Edge, no more DLL needed for FMX Win App. and Add a lot WebView2 Related Units from https://github.com/salvadordf/WebView4Delphi
Update 2022/04/23: Add WebView2Loader PASCAL implementation, so no more WebView2Loader.DLL needed. Translated from https://github.com/jchv/OpenWebView2Loader
2022年5月2日 星期一
Developer Tools Debug Tools Memory Leaks Delphi High Performance Profiler and Memory Analysis Tools for Delphi
GpProfile
MemProof
AsmProfiler
Sampling Profiler
ProDelphi
AQTime
SmartInspect
https://torry.net/pages.php?id=1526
TStopWatch TTimeSpan QueryPerformanceCounter GetTickCount GetTickCount64
https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Diagnostics.TStopwatch
2022年5月1日 星期日
Parallel Redundancy IEC 61850 HMI SCADA Protection
https://www.researchgate.net/publication/269309732_Protection_and_control_system_upgrade_based_on_IEC-_61850_and_PRP
Protection and control system upgrade based on IEC- 61850 and PRP
Canelé de bordeaux 卡納蕾 canelé canelé de Bordeaux 可麗露 可露麗
https://zh.wikipedia.org/wiki/%E5%8D%A1%E7%B4%8D%E8%95%BE
https://en.wikipedia.org/wiki/Canel%C3%A9
Makes 12 servings
2 cups (500ml) milk
2 tbsp (30g) butter
1 cup (200g) caster sugar
1 cup (125g) bread flour
2 egg yolks +1 whole egg
1/2 tsp (3g) salt
1 tsp (5g) vanilla extract
1 tsp (5g) rum extract
1/4 cup (60ml) rum
https://youtu.be/tHe7rxHgflk
Canelés (Cannelés) de Bordeaux
Home Cooking Adventure
https://www.youtube.com/results?search_query=Canel%C3%A9+aux+Noisettines
http://www.37cooks.com/2016/10/orange-canele-de-bordeaux.html
Caneles Experiment: No Beeswax, No Copper Mold, No 48hr Resting!
https://youtu.be/hQB9GYihmd8
https://en.wikipedia.org/wiki/Madeleine_(cake)
https://en.wikipedia.org/wiki/Muffin
https://www.bonnemaman.co.uk/
2022年4月30日 星期六
2022年4月29日 星期五
Delphi IDE Tools and Plug-Ins
Delphi IDE Tools and Plug-Ins
Delphi IDE - Integrated Development Eenvironment provides all the tools you need to design, develop, test, debug, and deploy applications, allowing rapid prototyping and a shorter development time. Want more? Here's how to add more functionality to Delphi IDE and make your job easier.
• GExperts
GExperts is a free set of tools built to increase the productivity of Delphi and C++Builder programmers by adding several features to the IDE. GExperts is developed as Open Source software. More »
• ModelMaker Code Explorer
ModelMaker Code Explorer is a Class Explorer and Refactoring Browser fro Delphi IDE. More »
• Delphi SpeedUp
DelphiSpeedUp is an IDE plugin for Delphi and C++Builder. It improves the IDE’s startup speed and increases the general speed of the whole IDE. This is achieved by replacing some often used RTL functions by FastCode function that are optimized for the used CPU and some other faster implementations. It also employs caches when the IDE loads. More »
• CnPack IDE Wizards
CnWizards includes the following experts/wizards: Code Input Helper, Enhanced Units/Forms List, Project Extension Tools, Roll Windows and Set to Topmost, Source Codes Statistics, DFM File Convertor, DE Config Backup/Restore Tool, including IDE History Cleaner, ... More »
• Brilliant Code for Delphi
Automatically search and filling variables, methods, constants, types in selected color, Highlight structures begin .. end, try .. finally .. end and other, Highlight brackets (..) and [..], Error correction offset lines for debugging, ... More »
• Visual Forms
Visual Forms is a thumbnail viewer for the forms in your project. More »
• Pascal Analyzer
This program parses Delphi source code and produces reports that help you understand your source code better. You will also be able to identify potential errors and anomalies. Your code will be more readable and maintainable. Pascal Analyzer can also check how coding standard guidelines are followed. More »
• VssConneXion
VssConneXion provides an integration between CodeGear RAD Studio, Delphi and C++Builder and Visual SourceSafe. More »
• Castalia for Delphi
Castalia transforms the Delphi programming environment into an amazing development platform. Castalia lives on the bleeding edge of IDE technology, giving you cutting edge tools to write better code faster, understand code more accurately, and improve code you've already written. More »
low temperature Ceramic material spring ceramic spring elasticity Preparation composite ceramic sponges PDMS Sponges
low temperature Ceramic material spring ceramic spring elasticity Preparation composite ceramic sponges PDMS Sponges
https://www.nature.com/articles/s41467-020-17533-6
Ajay Giri Prakash Kottapalli PDMS MLG PDMS spongy Ultralightweight and 3D Squeezable