三杯雞 杏鮑菇 中捲 透抽 田雞 鱉 豆腐
蒜10顆
黑麻油30ml 老薑片20克 九層塔10克 青蒜10克
油炒
醬油13 ml 水40 ml
燒乾
糖15克 麥芽糖3 ml 炒焦糖
米酒30 ml
最後嗆鍋
洋蔥 豆干 炸大腸 粉米條 豆皮絲 麵筋
炸薯條 炸南瓜條 蘿蔔塊 馬鈴薯塊 芹菜 筍絲
填份量
泡香菇 開陽小蝦 泡魷魚 肥豬肉
增香
辣椒 辣椒醬3克
依口味選擇
蠔油 2茶匙 黑胡椒3茶匙
適量增香
老薑片 糯米 桂葉 紅棗 枸杞 當歸 煮水醃料去腥
三杯雞 杏鮑菇 中捲 透抽 田雞 鱉 豆腐
蒜10顆
黑麻油30ml 老薑片20克 九層塔10克 青蒜10克
油炒
醬油13 ml 水40 ml
燒乾
糖15克 麥芽糖3 ml 炒焦糖
米酒30 ml
最後嗆鍋
洋蔥 豆干 炸大腸 粉米條 豆皮絲 麵筋
炸薯條 炸南瓜條 蘿蔔塊 馬鈴薯塊 芹菜 筍絲
填份量
泡香菇 開陽小蝦 泡魷魚 肥豬肉
增香
辣椒 辣椒醬3克
依口味選擇
蠔油 2茶匙 黑胡椒3茶匙
適量增香
老薑片 糯米 桂葉 紅棗 枸杞 當歸 煮水醃料去腥
https://www.google.com/search?q=gecko+delphi
https://www.google.com/search?q=+delphi+mozilla+XULRunner
https://github.com/plus7/bagel
https://en.wikipedia.org/wiki/Gecko_(software)
https://code.google.com/archive/p/thtmlviewer/
https://sourceforge.net/projects/htmlviewer/
http://www.songbeamer.com/delphi/
http://pbear.com/htmlviewers.html
https://github.com/salvadordf/CEF4Delphi
https://github.com/amikey/CEF4Delphi2
https://www.google.com/search?q=delphichromiumembedded+delphi+chromium+embedded
https://code.google.com/archive/p/chromiumembedded/
https://www.google.com/search?q=delphi+EmbeddedWB
https://www.chromium.org/developers
TWebBrowser
microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)?redirectedfrom=MSDN#browser_emulation
Device testing and emulation Emulate browsers Internet Controls Browser Emulation
FEATURE_BROWSER_EMULATION
http://www.delphifans.com/SoftView/SoftView_2705.html
http://d.download.csdn.net/detail/randb/631380
TEmbeddedWB
Chakra (JavaScript engine)
EdgeHTML
https://en.wikipedia.org/wiki/Comparison_of_browser_engines
https://en.wikipedia.org/wiki/Flow_(web_browser)
miniblink cef firefox WKE Miniblink Vue delphi
https://github.com/landv/gambas
https://en.wikipedia.org/wiki/KDE_Frameworks#Components
kde Konqueror Dolphin Gecko
KHTML KJS Trident
QT WebBrowser ActiveQt VTK
layout rendering engine
https://en.wikipedia.org/wiki/Comparison_of_browser_engines
Assistant copilot otherside tabnine Kite Ponicode AiXcoder OpenAI Codex
Autocomplete Snippets
https://becominghuman.ai/github-copilot-and-the-rise-of-ai-language-models-in-programming-automation-9d882a743911
https://analyticsindiamag.com/top-8-alternatives-to-github-copilot/
https://www.theverge.com/2021/6/29/22555777/github-openai-ai-tool-autocomplete-code
https://towardsdatascience.com/github-copilot-a-new-generation-of-ai-programmers-327e3c7ef3ae
https://sourceforge.net/software/compare/GitHub-Copilot-vs-Kite-vs-OpenAI-Codex-vs-Tabnine/
https://www.youtube.com/watch?v=7YDx27iVc_s&ab_channel=KrishNaik
Github Copilot Vs Tabnine AI Code Completion Autocomplete Vs KITE- Which Is Your Favourite ?
https://code.likeagirl.io/github-copilot-bright-future-or-an-impending-doom-df0f1674a50c
GitHub Copilot — Bright Future or an Impending Doom
https://betterprogramming.pub/ai-review-github-copilot-d43afde51a5a
A Deep Dive Into GitHub Copilot
https://www.codota.com/
Get AI Code Completions for your IDE
https://medium.com/swlh/kite-vs-tabnine-which-ai-code-autocomplete-should-you-choose-eb6eba85c3a6
Kite VS. TabNine: Which AI Code Autocomplete Should You Choose?
Web.Win.Sockets;
Delphi TTcpClient TTcpServer TBaseSocket TIpSocket TCustomIPClientTTcpClientTUdpSocketTRawSocketTCustomTcpServerTTcpServer
Delphi TTcpClient TTcpServer TBaseSocket TIpSocket TCustomIPClientTTcpClientTUdpSocketTRawSocketTCustomTcpServerTTcpServer
windows socket Sockets.pas
TBaseSocket
TIpSocket
TCustomIPClient
TTcpClient
TUdpSocket
TRawSocket
TCustomTcpServer
TTcpServer
TBaseSocket
-
TIpSocket
TCustomIPClient-TRawSocket-TCustomTcpServer
TTcpClient-TUdpSocket-TTcpServer
https://www.cnblogs.com/guorongtao/p/4377668.html
https://titanwolf.org/Network/Articles/Article?AID=9464645b-b242-49b7-9fc0-8a225d3905ab
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Working_with_Sockets_Index
https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Win.ScktComp.TWinSocketStream.Create
https://docwiki.embarcadero.com/CodeExamples/Sydney/en/VCL.InetWinSockets_Sample
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Specifying_a_Connection_Using_Sockets
https://blogs.embarcadero.com/example-websockets-server-and-client-chat-application/
https://github.com/nikitayev/EthernetStressTesting
https://lnet.wordpress.com/
https://www.sourcecodester.com/visual-basic-net/4317/lan-messenger-using-ip-add.html
http://etutorials.org/Programming/mastering+delphi+7/Part+IV+Delphi+the+Internet+and+a+.NET+Preview/Chapter+19+Internet+Programming+Sockets+and+Indy/Building+Socket+Applications/
https://flylib.com/books/en/2.37.1/internet_programming_sockets_and_indy.html
https://www.cyut.edu.tw/~rcchen/courses/delphi/html/topic/topic18/topic18.htm
https://www.codeproject.com/Articles/9390/HostName-IP-and-MAC-Address
http://www.jcolibri.com/articles/web/client_serveur_tcp_indy/client_serveur_tcp_indy.html
https://forum.lazarus.freepascal.org/index.php?topic=35496.0
tlb COM Object CoInitialize
http://www.drbob42.com/headconv/
https://www.freepascal.org/tools/h2pas.var
http://rvelthuis.de/articles/articles-convert.html#main
http://rvelthuis.de/articles/articles-cobjs.html
http://rvelthuis.de/programs/convertpack.html
https://github.com/neslib/Chet
https://www.drbob42.com/Delphi/headconv.htm
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Type_Libraries
https://github.com/RRUZ/delphi-dev-shell-tools
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Code_Generated_When_You_Import_Type_Library_Information
CreateComObject CreateOleObject ComObj.pas.
if SaveInitProc <> nil then TProcedure(SaveInitProc);
if (CoInitFlags <> -1) and Assigned(ComObj.CoInitializeEx) then
NeedToUninitialize := Succeeded(ComObj.CoInitializeEx(nil, CoInitFlags));
IsMultiThread := IsMultiThread or
((CoInitFlags and COINIT_APARTMENTTHREADED) <> 0) or
(CoInitFlags = COINIT_MULTITHREADED); //this flag has value zero
NeedToUninitialize := Succeeded(CoInitialize(nil));
Obviously he is used to call CoInitialize to initialize the com environment.
In the initialization section of ComObj.pas:
initialization
LoadComExProcs;
VarDispProc := @VarDispInvoke;
DispCallByIDProc := @DispCallByID;
SafeCallErrorProc := @SafeCallError;
if not IsLibrary then
SaveInitProc := InitProc;
//point the InitProc pointer to the function InitProb
InitProc := @InitComObj;
end;
Come to the Forms.pas file, take a look at the TApplication.Initialize section:
procedure TApplication.Initialize;
if InitProc <> nil then TProcedure(InitProc);
https://flylib.com/books/en/3.264.1.146/1/
IDataBroker | Design time interface for remote data modules. |
| IDispatch | Interface used for providing Automation. (This is used in some of the following examples.) |
| IEnumVARIANT | Interface used for enumerating a collection of variant objects. |
| IFont | Interface to a COM font object, which is actually a wrapper around a Windows font object. |
| IPicture | Interface to a picture object, which is a language-neutral abstraction for bitmaps, icons, and metafiles, and its properties. |
| IProvider | Provider interface for TClientDataSet . |
| IStrings | Collection Interface for TStrings . |
| IUnknown | The base interface for all other interfaces. Introduces the QueryInterface() method, which is useful for discovering and using other interfaces implemented by the same object. |
https://docs.microsoft.com/en-us/windows/win32/learnwin32/initializing-the-com-library
http://www.techvanguards.com/stepbystep/comdelphi/insideclient.asp
https://theroadtodelphi.com/category/com/
https://flylib.com/books/en/2.37.1/from_com_to_com_.html
https://github.com/sadanboy
https://github.com/microsoft/DirectX-Graphics-Samples
https://github.com/CMCHTPC/DelphiDX12
https://github.com/BrokenGamesUG/delphi3d-engine
https://github.com/yizraor/PubDX_VCL_LCL
https://github.com/tothpaul/Delphi/tree/afa771afd8eaa912c21109ef5c53b0a7d711d49d/DesktopDuplicationAPI
https://github.com/BrokenGamesUG/rise-of-legions
https://github.com/gxlmyacc/sciter4d
https://github.com/MarcoCestari/Asphyre
https://github.com/ds-pack/components
https://github.com/MakeMagazinDE/GRBLize
https://delphi.fandom.com/wiki/Undelphix
http://www.lohninger.com/delfcomp.html
http://www.felix-colibri.com/papers/graphic/delphi_3d_designer/delphi_3d_designer.html
https://github.com/Mzonetd/MPascalCoin
https://github.com/PascalCoinDev/PascalCoin
https://github.com/adminborcvarr/kemercoin
https://github.com/nummer8/PascalCoin
https://github.com/mehmetsamat/kmercoin
https://github.com/MicroCoinHU/MicroCoinMiner
https://github.com/SkybuckFlying/PascalCoinSimplified
https://github.com/zahidaliayub/PascalCoin
https://github.com/BigJoe01/MicroCoin
https://github.com/OHLChain/techplayground
https://github.com/CWBudde/PasOpenCL
https://github.com/duzenko/OpenclMemBench
https://github.com/search?l=Pascal&q=jedi+delphi&type=Repositories
https://github.com/search?l=Pascal&p=4&q=D3D11.pas&type=Code
https://sourceforge.net/directory/?q=delphi+directx
https://castle-engine.io/
https://sourceforge.net/projects/ca9dx2delphi/
https://sourceforge.net/projects/andorra/
https://sourceforge.net/projects/dspack/
http://www.micrel.cz/Dx/index.html
http://glscene.sourceforge.net/wikka/
https://asphyre.net/
https://opensourcelibs.com/lib/d3d12memoryallocator
https://opensourcelibs.com/lib/llgl
https://opensourcelibs.com/lib/directxtk
https://opensourcelibs.com/lib/directxtk12
https://opensourcelibs.com/lib/d912pxy
https://opensourcelibs.com/lib/d9vk
https://opensourcelibs.com/lib/directx-wrappers
https://torry.net/quicksearchd.php?String=DirectX+&Title=Yes
https://github.com/rvelthuis/DelphiBigNumbers/blob/master/Source/Velthuis.BigDecimals.pas
Math.Floor, which rounds down towards negative infinity.
Math.Ceiling, which rounds up towards positive infinity.
Math.Truncate, which rounds up or down towards zero.Truncation
Math.Round, Rounding
https://people.cs.nctu.edu.tw/~tsaiwn/sisc/runtime_error_200_div_by_0/www.merlyn.demon.co.uk/pas-chop.htm
delphi System.Math round trunc ceil floor RoundTo delphi Floating-Point Rounding Routines System.Math round trunc ceil floor RoundTo
System
Succ increments an ordinal value, and returns this value
Dec Decrement an ordinal variable
Inc Increment an ordinal variable
Pred Decrement an ordinal variable
Sqr Gives the square of a number
Sqrt Gives the square root of a number
Sum Return the sum of an array of floating point values
Frac The fractional part of a floating point number
Int The integer part of a floating point number as a float
Round Rounds a floating point number to an integer
Trunc The integer part of a floating point number
PExtended Pointer to a Extended floating point value
Str Converts an integer or floating point number to a string
Val Converts number strings to integer and floating point values
Rounding Algorithms
http://www.delphibasics.co.uk/ByUnit.asp?Unit=System
https://docwiki.embarcadero.com/CodeExamples/Sydney/en/Float_Type_Helpers_(Delphi)
Class and Record Helpers (Delphi)
System.SysUtils.TSingleHelper
System.SysUtils.TDoubleHelper
System.SysUtils.TExtendedHelper
https://en.wikipedia.org/wiki/Floating-point_arithmetic
DSServerClass component TDSLifeCycle OnCreateInstance
Delphi DataSnap Lifecycle TDSServerClass DSTCPServerTransport
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Server_Class_LifeCycle
Using DAC products in multi-tier DB application development
https://blog.devart.com/using-dac-products-in-multi-tier-db-application-development.html
Registering DataSnap Server Class in runtime with Delphi
Delphi 2010 DataSnap
Preserving State in DataSnap REST Server - 大匠之風
Server Objects Life Cycle
https://www.delphipower.xyz/handbook_2009/server_objects_life_cycle.html
https://www.delphipower.xyz/handbook_2010/overview_of_datasnap_in_delphi.html
http://www.4k8k.xyz/article/aroc_lo/5333773
DataSnap 2009 系列_编程资料收集与共享交流-程序员资料
delphi string function constructor 服务器 数据库类 DELPHI编程 parameters 三层/多层结构 编程技术
Facade Pattern Decorator Composite Abstract Factory
抽象工廠 Abstract Factory
構造器 Builder Pattern
工廠方法 Factory Method pattern
原型 Prototype pattern
單例模式 Singleton pattern
Prototype Pattern 原型模式
Singleton Pattern 單例模式
Abstract Factory Pattern 抽象工廠模式
https://www.weblio.jp/content/Abstract+Factory+%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
https://delphi.fandom.com/wiki/Good_Quality_Applications_Built_With_Delphi
https://opensourcelibs.com/lib/delphi-libraries-list
Spring4D repo: https://bitbucket.org/sglienke/spring4d
Nick Hodges Talk: Dependency Injection and the Delphi Spring Framework : http://www.youtube.com/watch?v=8iB_ppvpjxM
Emballo (not currently maintained) repo: https://code.google.com/p/emballo/
Good Readings http://blog.synopse.info/post/2012/10/14/Interfaces-in-practice%3A-dependency-injection%2C-stubs-and-mocks
http://delphisorcery.blogspot.ch/2013/12/dependency-injection-best-practices.html
simple duck typing to Delphi Objects (easy RTTI) : http://code.google.com/p/duckduckdelphi/
JSONChimera (XE2) web site: http://arcana.sivv.com/chimera
SuperObject web site: http://code.google.com/p/superobject/
documentation: http://superobject.googlecode.com/git/readme.html
JSON parsing in mORMot : http://blog.synopse.info/post/2011/06/02/Fast-JSON-parsing
DB <-> Object mapping -tiOPF: http://tiopf.sourceforge.net/index.shtml
DUnitX: https://github.com/VSoftTechnologies/DUnitX
Article: http://www.finalbuilder.com/Resources/Blogs/PostId/697/introducing-dunitx.aspx
Dunit: http://dunit.sourceforge.net/
DelphiSpec: https://github.com/RomanYankovsky/DelphiSpec
Unit testing - see http://blog.synopse.info/post/2010/07/23/Unit-Testing-light-in-Delphi
Stubs and Mocks - see http://blog.synopse.info/post/2012/10/14/Stubs-and-Mocks-for-Delphi-with-mORMot
Delphi-Mocks repo: https://github.com/VSoftTechnologies/Delphi-Mocks
Delphi-Mocks Article
http://delphisorcery.blogspot.fr/2011/09/pimp-your-unit-tests-using-mock-objects.html
http://www.finalbuilder.com/Resources/Blogs/PostId/417/introducing-delphi-mocks.aspx
Code coverage repo : http://code.google.com/p/delphi-code-coverage/
article : http://thundaxsoftware.blogspot.ch/2013/02/using-delphi-code-coverage.html
Jenkins / Hudson integration : http://christerblog.wordpress.com/2010/07/02/delphi-code-coverage-in-hudson/
GUI Testing http://www.gearheadforhire.com/articles/ruby/win32-autogui/using-ruby-to-drive-windows-applications OpenCTF: http://openctf.sourceforge.net/
Jenkins / Hudson integration : http://christerblog.wordpress.com/2010/04/25/using-hudson-to-build-delphi-projects/
TPMath (scientific library): http://www.unilim.fr/pages_perso/jean.debord/tpmath/tpmath.htm
ZeroMQ Delphi bindings https://github.com/bvarga/delphizmq
Indy (Internet protocol components): http://www.indyproject.org/index.en.aspx
mORMot, n-Tier / Client-Server
http://blog.synopse.info/post/2012/03/07/Interface-based-services
http://blog.synopse.info/post/2010/07/18/DataSnap-like-Client-Server-JSON-RESTful-Services-in-Delphi-7-2010
Embeddable browser Delphi Chromium Embedded 3: http://code.google.com/p/dcef3/
Delphi Chromium Embedded: http://code.google.com/p/delphichromiumembedded/
Web frameworks Delphi On Rails https://code.google.com/p/delphionrails/
delphi MVC framework : https://code.google.com/p/delphimvcframework/
xxm: http://xxm.sourceforge.net/
Http server http://blog.synopse.info/post/2011/03/11/HTTP-server-using-fast-http.sys-kernel-mode-server
Delphi-ORM: https://code.google.com/p/delphi-orm/
mORMot: http://synopse.info/fossil/wiki?name=SQLite3+Framework
ZeosLib (database components): http://sourceforge.net/projects/zeoslib/
SQLite wrapper: https://github.com/stijnsanders/TSQLite
MongoDB connector: https://github.com/stijnsanders/TMongoWire
Report from code - see http://blog.synopse.info/post/2010/06/30/Making-report-from-code
PDF export - see http://blog.synopse.info/category/Open-Source-Projects/Synopse-PDF-engine
OmniThread Library: http://code.google.com/p/omnithreadlibrary/
SapMM: https://code.google.com/p/sapmm/
LeakCheck: https://bitbucket.org/shadow_cs/delphi-leakcheck/ multi-platform memory manager with leak checking and DUnit integration.
FastMM: https://github.com/pleriche/FastMM4
ReduxDelphi, predictable state container : https://github.com/pierrejean-coudert/ReduxDelphi
DSharp
repo: https://bitbucket.org/sglienke/dsharp
web site: http://delphisorcery.blogspot.fr/
DWScript: http://code.google.com/p/dwscript/
Python-4-Delphi: http://code.google.com/p/python4delphi/
Delphi Javascript: http://code.google.com/p/delphi-javascript/
ECMAScript 5 + JIT (SpiderMonkey) / Pascal integration: http://blog.synopse.info/post/2014/04/07/JavaScript-support-in-mORMot-via-SpiderMonkey
BESEN, ECMAScript 5 in Object Pascal: https://github.com/bero1985/besen
Lua bindings: https://github.com/cxflag203/delphimvcframework/tree/master/lib/luadelphibinding
Very Simple Lua https://github.com/Dennis1000/verysimplelua
RemObjects PascalScript: https://github.com/remobjects/pascalscript
Behavior3 for Delphi https://github.com/Dennis1000/behavior3delphi
http://www.boyet.com/FixedArticles/EZDSL.html
The Delphi Container Library: http://sourceforge.net/projects/dclx/
TChromeTabs: http://code.google.com/p/delphi-chrome-tabs/
SynEdit: http://synedit.sourceforge.net/
virtual-treeview: https://code.google.com/p/virtual-treeview/
Task Dialogs: http://blog.synopse.info/post/2011/03/05/Open-Source-SynTaskDialog-unit-for-XP%2CVista%2CSeven
vcl-styles-utils: Extend the Delphi VCL Styles (XE2+), http://code.google.com/p/vcl-styles-utils/
Free ErrorSoft Vcl Components: https://github.com/errorcalc/FreeEsVCLComponents
OpenGL, GLScene: http://glscene.sourceforge.net
Computer Vision: OpenCV bindings :https://github.com/Laex/Delphi-OpenCV
GDI+ : http://sourceforge.net/projects/delphigdiplus/
Graphics32: http://graphics32.org/wiki/
DSPack (Direct Show): http://code.google.com/p/dspack/
7Zip bindings: http://code.google.com/p/d7zip/
Castalia Delphi Parser: https://github.com/jacobthurman/Castalia-Delphi-Parser
GpDelphiUnits: http://code.google.com/p/gpdelphiunits/
libgit2: https://github.com/libgit2/libgit2
Sampling Profiler: http://www.delphitools.info/samplingprofiler/
source code instrumenting profiler : http://code.google.com/p/gpprofile2011/
Spider - Delphi profiler: https://github.com/yavfast/dbg-spider
ObjectDebugger : run-time Object Inspector for Delphi VCL applications https://github.com/marcocantu/ObjectDebugger
Delphi IDE Theme Editor: https://code.google.com/p/delphi-ide-theme-editor/
Delphi Dev. Shell Tools: http://code.google.com/p/delphi-dev-shell-tools/
OmniPascal VS Code Editor: http://www.omnipascal.com/
Delphi Find Unit (Import uses): https://github.com/rfrezino/RFindUnit
https://wiert.me/2020/01/01/delphi-multi-threading-confused-by-tthread-synchronize-tthread-queue-youre-not-alone/
delphi TThread Synchronization OnExecute TMutexAcquire TCriticalSection TMutex TSpinlock TMonitor
Type
MyThread = Class(TThread)
private
…
protected
...
end;
----------
procedure TMyThread.DoProgress;
////
procedure TMyThread.Execute;
const
Interval = 1000000;
begin
FreeOnTerminate := True;
FProgressBar.Max := FCountTo div Interval;
FProgressBar.Step := FProgressBar.Max;
while FCounter < FCountTo do
begin
if FCounter mod Interval = 0 then Synchronize(DoProgress) ;
----------
Type
MyThread = Class(TThread)
private
procedure doProgress;
end;
Implementation
procedure doProgress;
begin
Form1.ProgressBar1.Progress;
end;
----------
var
T : MyThread;
begin
T := MyThread.Create(True);
T.FreeOnTerminate := True;
T.Resume;
end;
----------
type
MyThread = Class(TThread)
private
...
protected
procedure Execute; override;
end;
var
implementation
procedure MyThread.Execute;
begin
end;
----------
procedure MyThread.Execute;
begin
Synchronize(doProgress);
end;
----------
MyThread.Suspend;
...
MyThread.Resume;
----------
var
isSuspended : Boolean;
begin
isSuspended := MyThread.Suspended;
end;
----------
var
MyThreadID : Cardinal;
begin
MyThreadID := MyThread.ThreadID;
end;
----------
MyThread.Terminate;
----------
procedure MyThread.Execute;
begin
Synchronize(doProgress);
…
MyThread.Terminate;
Exit;
end;
procedure MyThread.Execute;
begin
if MyThread.Terminated then
Exit;
…
if MyThread.Terminated then
Exit;
…
MyThread.Terminate;
Exit;
end;
procedure MyThread.Execute;
begin
if MyThread.Terminated then
Exit;
…
if MyThread.Terminated then
Exit;
…
MyThread.Terminate;
MyThread.WaiteFor;
Exit;
end;
----------
{ Important: Methods and properties of objects in VCL or CLX can only be used
in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure myTred.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
---------------
const
TM_MYTHREAD_MSG = WM_USER + 200;
TM_MYTHREAD_START = TM_MYTHREAD_MSG + 1;
TM_MYTHREAD_PROGRESS = TM_MYTHREAD_MSG +2;
TM_MYTHREAD_DONE = TM_MYTHREAD_MSG +3;
/////
PostMessage(FormHandle, TM_MYTHREAD_MSG, TM_MYTHREAD_START,0);
//////
TMyForm = class(TForm)
...
protected
procedure TmMyThreadMsg(var Msg: TMessage); message TM_MYTHREAD_MSG;
...
end;
////////
procedure TMyForm.TmMyThreadMsg(var Msg: TMessage);
begin
case Msg.LParam of
TM_MYTHREAD_START : Progressbar1.Position := 0;
TM_MYTHREAD_PROGRESS : Progressbar1.Position := Progressbar1.Position + 1;
TM_MYTHREAD_DONE : Progressbar1.Position := Progressbar1.Max;
end;
end;
---------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
public
end;
Type
MyThread = Class(TThread)
private
protected
procedure Execute; override;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
////
procedure MyThread.Execute;
begin
form1.Caption:=form1.Caption+'1';
end;
////
procedure TForm1.FormCreate(Sender: TObject);
var
T : MyThread;
begin
T := MyThread.Create(True);
T.FreeOnTerminate := true;
T.Resume;
end;
end.
---------------
Messagebox delay in Delphi MessageBoxTimeOut function
#include <windows.h>
#include <tchar.h>
//Functions & other definitions required-->
typedef int (__stdcall *MSGBOXAAPI)(IN HWND hWnd,
IN LPCSTR lpText, IN LPCSTR lpCaption,
IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);
typedef int (__stdcall *MSGBOXWAPI)(IN HWND hWnd,
IN LPCWSTR lpText, IN LPCWSTR lpCaption,
IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);
int MessageBoxTimeoutA(IN HWND hWnd, IN LPCSTR lpText,
IN LPCSTR lpCaption, IN UINT uType,
IN WORD wLanguageId, IN DWORD dwMilliseconds);
int MessageBoxTimeoutW(IN HWND hWnd, IN LPCWSTR lpText,
IN LPCWSTR lpCaption, IN UINT uType,
IN WORD wLanguageId, IN DWORD dwMilliseconds);
#define MB_TIMEDOUT 32000
static MSGBOXAAPI MsgBoxTOA = NULL;
if (!MsgBoxTOA)
{
HMODULE hUser32 = GetModuleHandle(_T("user32.dll"));
if (hUser32)
{
MsgBoxTOA = (MSGBOXAAPI)GetProcAddress(hUser32,
"MessageBoxTimeoutA");
HMODULE hUser32 = GetModuleHandle(_T("user32.dll"));
if (hUser32)
{
MsgBoxTOW = (MSGBOXWAPI)GetProcAddress(hUser32,
"MessageBoxTimeoutW");
HMODULE hUser32 = LoadLibrary(_T("user32.dll"));
UINT uiFlags = MB_OK|MB_SETFOREGROUND|MB_SYSTEMMODAL|MB_ICONINFORMATION;
iRet = MessageBoxTimeout(NULL, _T("Test a timeout of 2 seconds."),
_T("MessageBoxTimeout Test"), uiFlags, 0, 2000);
//iRet will = 1
uiFlags = MB_YESNO|MB_SETFOREGROUND|MB_SYSTEMMODAL|MB_ICONINFORMATION;
iRet = MessageBoxTimeout(NULL, _T("Test a timeout of 5 seconds."),
_T("MessageBoxTimeout Test"), uiFlags, 0, 5000);
//iRet will = MB_TIMEDOUT if no buttons pressed, button values otherwise
//only unload user32.dll when you have no further need
//for the MessageBoxTimeout function
FreeLibrary(hUser32);
https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.debugger.messageboxflags?view=visualstudiosdk-2022
MB_OK
MB_OKCANCEL
MB_ABORTRETRYIGNORE
MB_YESNOCANCEL
MB_YESNO
MB_RETRYCANCEL
MB_APPLMODAL
MB_SYSTEMMODAL
MB_SIMPLEBEEP (Only when Title is not used)
MB_HELP (Probably won't work)
MB_DEFAULT_DESKTOP_ONLY
MB_RIGHT
MB_RTLREADING
MB_SETFOREGROUND
MB_TOPMOST
MB_SERVICE_NOTIFICATION
https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-messagebox
https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-messagebeep
MB_TASKMODAL
------------------------------
function MessageBoxTimeOut(hWnd: HWND; lpText: PChar; lpCaption: PChar;
uType: UINT; wLanguageId: WORD; dwMilliseconds: DWORD): Integer; stdcall;
function MessageBoxTimeOutA(hWnd: HWND; lpText: PChar; lpCaption: PChar;
uType: UINT; wLanguageId: WORD; dwMilliseconds: DWORD): Integer; stdcall;
function MessageBoxTimeOutW(hWnd: HWND; lpText: PWideChar; lpCaption: PWideChar;
uType: UINT; wLanguageId: WORD; dwMilliseconds: DWORD): Integer; stdcall;
Windows.pas
const
MB_TIMEDOUT = 32000;
function MessageBoxTimeOut; externaluser32 name 'MessageBoxTimeoutA';
function MessageBoxTimeOutA; external user32 name 'MessageBoxTimeoutA';
function MessageBoxTimeOutW; external user32 name 'MessageBoxTimeoutW';
// Define a MessagBox with an OK button and a timeout of 2 seconds
iFlags := MB_OK or MB_SETFOREGROUND or MB_SYSTEMMODAL or MB_ICONINFORMATION;
iResult := MessageBoxTimeout(Application.Handle, 'Test a timeout of 2 seconds.',
'MessageBoxTimeout Test', iFlags, 0, 2000);
// iResult will = 1 (IDOK)
ShowMessage(IntToStr(iRet));
// Define a MessageBox with a Yes and No button and a timeout of 5 seconds
iFlags := MB_YESNO or MB_SETFOREGROUND or MB_SYSTEMMODAL or MB_ICONINFORMATION;
iResult := MessageBoxTimeout(Application.Handle, 'Test a timeout of 5 seconds.',
'MessageBoxTimeout Test', iFlags, 0, 5000);
// iResult = MB_TIMEDOUT if no buttons clicked, otherwise
// iResult will return the value of the button clicked
case iResult of
IDYES: // Pressed Yes button
ShowMessage('Yes');
IDNO: // Pressed the No button
ShowMessage('No');
MB_TIMEDOUT: // MessageBox timed out
ShowMessage('TimedOut');
https://edn.embarcadero.com/print/32736
Dialogs createMessageDialog createOptionDialog
Vcl.Dialogs.CreateMessageDialog
https://github.com/Leandros/WindowsHModular/blob/master/include/win32/window.h
https://www.codeproject.com/Articles/18399/Localizing-System-MessageBox
https://github.com/grijjy/DelphiScalableClientSockets
https://github.com/grijjy
Introduction to Shader Programming
https://blog.grijjy.com/2021/01/14/shader-programming/
. To compile DirectX shaders, you need to use the Direct3D Shader Compiler tool (fxc.exe),
https://github.com/grijjy/JustAddCode/tree/master/GpuProgramming
https://blog.grijjy.com/
Animated 3D Models 3d file obj fbx dae stp prt stl WRL blend
3D File Format: 10 Most Popular Types for Different Software
https://cgifurniture.com/3d-file-format-10-types/
http://edutechwiki.unige.ch/en/3D_file_format
Essential Guide to 3D File Formats
https://www.marxentlabs.com/3d-file-formats/
https://all3dp.com/1/best-20-3d-animation-software/
Model file formats - Unity - Manual
https://docs.unity3d.com/Manual/3D-formats.html
socket cache server layer Socket Server listen thread extends ServerSocket
Socket listen accept connect identifier
Multiple Connectioninetd (internet service daemon) is a super-server daemon on many Unix systems that provides Internet services. For each configured service
https://en.wikipedia.org/wiki/Inetd
TCP Wrappers (also known as tcp_wrappers) is a host-based networking ACL system, used to filter network access to Internet Protocol servers
https://en.wikipedia.org/wiki/TCP_Wrappers
xinetd (Extended Internet Service Daemon) is an open-source super-server daemon which runs on many Unix-like systems and manages Internet-based connectivity
https://en.wikipedia.org/wiki/Xinetd
iptables是運行在使用者空間的應用軟體,通過控制Linux核心netfilter模組
https://en.wikipedia.org/wiki/Iptables
iptables is a command-line firewall utility
ipchains firewall
Syslog Daemons, Message Formats and Protocols
syslog daemon is a server process that provides a message logging
getpeername() — Get the name of the peer connected to a socket
WSAASyncSelect getpeername getsockname
asynchronous Socket listen accept client connect identifier getpeername getsockname
ServerSocket" Compressing RMI Wrapper SSL
Remote Method Invocation java.rmi.server Interface RMIServerSocketFactory Java Remote Messaging Protocol
Netty is a non-blocking I/O client-server framework for the development of Java network applications
https://en.wikipedia.org/wiki/Netty_(software)
https://en.wikipedia.org/wiki/Linkage_(mechanical)
https://v8.dev/
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++. It is used in Chrome and in Node.js, among others. It implements ECMAScript and WebAssembly, and runs on Windows 7 or later, macOS 10.12+, and Linux systems that use x64, IA-32, ARM, or MIPS processors. V8 can run standalone, or can be embedded into any C++ application.
https://github.com/WebAssembly/simd/tree/master/proposals/simd
JSKit https://github.com/eugenekryukov/jskit
Evaluate JavaScript programs from within a Delphi app, and support JavaScript scripting of your Delphi app. JavaScriptCore based framework.
3rd-Party Development Guide
https://www.crossvcl.com/tlist.html
castle-engine https://castle-engine.io/wp/
Castle Game Engine from DelphiCon
https://github.com/castle-engine/castle-engine
https://delphicon.embarcadero.com/talks/castle-game-engine-coming-to-delphi/
https://wiki.lazarus.freepascal.org/Choosing_a_Game_Engine
http://www.zgameeditor.org/
https://www.pascalgamedevelopment.com/content.php
http://www.clootie.ru/
https://delphigl.com/
https://sourceforge.net/projects/andorra/
https://castle-engine.io/
http://zengl.org/
https://asphyre.net/
https://en.wikipedia.org/wiki/GLScene
------
https://en.wikipedia.org/wiki/Graphics32
Image32 - A 2D graphics library for Delphi
Clipper 6.4.0 - NuGet
LazRGBGraphics http://wiki.freepascal.org/LazRGBGraphics
BGRABitmap http://wiki.freepascal.org/BGRABitmap
AggPas http://www.crossgl.com/aggpas/
fpVectorial http://wiki.freepascal.org/fpvectorial
Andorra 2D http://andorra.sourceforge.net/
Graphics32 http://graphics32.org
http://allegro-pas.sourceforge.net/
https://imaginglib.sourceforge.io/
http://www.efg2.com/
Skia4Delphi
https://githubhelp.com/topic/delphi-library
https://torry.net/pages.php?s=72
https://awesomeopensource.com/projects/object-pascal
http://www.felix-colibri.com/papers/graphic/delphi_3d_designer/delphi_3d_designer.html
https://giters.com/topics/delphi-library
https://gitplanet.com/language/delphi
Python for Delphi (P4D)