2021年12月29日 星期三

exe modify self global memory Remote memory msdn write Read Write another Process Memory VirtualProtect

 exe modify self global memory Remote memory msdn write Read Write another Process Memory VirtualProtect
https://docs.microsoft.com/zh-tw/windows/win32/memory/file-mapping?redirectedfrom=MSDN
memory-mapped-file functions in Windows.
https://docs.microsoft.com/zh-tw/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect?redirectedfrom=MSDN
VirtualProtect function (memoryapi.h)
VirtualProtect PAGE_WRITECOPY PAGE_EXECUTE  FlushInstructionCache WriteProcessMemory

https://web.archive.org/web/20100818045200/http://support.microsoft.com/kb/127904
How to Modify Executable Code in Memory
 VirtualProtect PAGE_WRITECOPY   
 PAGE_EXECUTE  
 FlushInstructionCache

https://en.wikipedia.org/wiki/Self-modifying_code

Shared Memory
https://www.codeproject.com/Articles/10275/Remote-Library
Remote Library - CodeProject
VirtualAllocEx VirtualFreeEx NtAllocateVirtualMemory NtFreeVirtualMemory
OpenThread OpenProcess OpenHandle GetProcessId CreateRemoteThread DebugActiveProcess


https://www.labri.fr/perso/betrema/winnt/virtmm.html
 Managing Virtual Memory in Win32

Virtual memory functions     A process's virtual address space
System pagefile
System memory
Hard disk space     "Managing Virtual Memory in Win32"
Memory-mapped file functions     A process's virtual address space
System pagefile
Standard file I/O
System memory
Hard disk space     "Managing Memory-Mapped Files in Win32"
Heap memory functions     A process's virtual address space
System memory
Process heap resource structure     "Managing Heap Memory in Win32"
Global heap memory functions     A process's heap resource structure     "Managing Heap Memory in Win32"
Local heap memory functions     A process's heap resource structure     "Managing Heap Memory in Win32"
C run-time reference library     A process's heap resource structure     "Managing Heap Memory in Win32"

https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants

Memory Protection Constants

https://slideplayer.com/slide/8484293/
Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze Unit OS5: Memory Management 5.2. Windows Memory Management.


https://www.codeproject.com/Articles/3161814/x64-Memory-Access-Monitor

Memory access monitor is implemented as DLL that is injected into the target process. I extended command line interface of tool described in my previous article, https://www.codeproject.com/Articles/1266083/x64-API-Hooker-plus-Disassembler to inject our DLL and eject it. I will include the existing source (with some bug fixes; I wonder how it worked now...) with source of monitor DLL. The DLL itself is also 64-bit, however it can become 32-bit with some minor modifications.


void WriteToMemory(int address_writing_to, char* value_to_write, int num_of_bytes)
{
    unsigned long old_protection; // Create a place to store our old protection

    VirtualProtect((LPVOID)address_writing_to, num_of_bytes, PAGE_EXECUTE_READWRITE, &old_protection); // Give me proper access to the memory (and store the old protection in the variable 'old_protection').

    memcpy((LPVOID)address_writing_to, value_to_write, old_protection); // Write our value.

    VirtualProtect((LPVOID)address_writing_to, num_of_bytes, old_protection, NULL); // Restore the protection back to that of 'old_protection'.
}


https://docs.microsoft.com/zh-tw/windows/win32/memory/creating-named-shared-memory

https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-writeprocessmemory

WriteProcessMemory function (memoryapi.h)

global memory Remote memory msdn write Read Write another Process Memory

https://codingvision.net/c-read-write-another-process-memory

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;

public class MemoryRead
{
    const int PROCESS_WM_READ = 0x0010;

    [DllImport("kernel32.dll")]
    public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);

    [DllImport("kernel32.dll")]
    public static extern bool ReadProcessMemory(int hProcess, int lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesRead);


DllImport("kernel32.dll")]
public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);

[DllImport("kernel32.dll", SetLastError = true)]
static extern bool WriteProcessMemory(int hProcess, int lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesWritten);
 

http://waleedassar.blogspot.com/2012/09/pageexecutewritecopy-as-anti-debug-trick.html

 PAGE_EXECUTE_WRITECOPY PAGE_EXECUTE_READWRITE
 
PAGE_READWRITE PAGE_WRITECOPY PAGE_READWRITE

WriteProcessMemory

VirtualQuery

http://code.google.com/p/ollytlscatch/downloads/detail?name=WriteCopy_Trick_.exe

https://pastebin.com/62De887S

int __stdcall ZwQueryInformationProcess(HANDLE,int,void*,unsigned long,unsigned long*);

http://waleedassar.blogspot.com (@waleedassar)

Extending windbg with Page Fault Breakpoints

https://www.codeproject.com/Articles/186230/Extending-windbg-with-Page-Fault-Breakpoints

2021年12月28日 星期二

玉米

玉米
沙茶 豬油 花生 糯米 芝麻 薑 麥芽糖 蜂蜜
玉米粉 豬皮 洋蔥粉 芥末醬 蔥乾  魚乾 蒜頭

南瓜 香菇 洋蔥 沙茶醬 魚皮 生薑 蒜頭 九層塔 鹽 醬油 冰糖 胡椒粉 黑麻油
白芝麻醬 香菇素蠔油 細砂糖 奶油 蒜末

魚露 蚝油 鮮雞粉 冰糖 甘草粉 

Framework for 2D and isometric games development

 Framework for 2D and isometric games development in BlitzMax.

https://gcup.ru/load/gamedev_lib/dwlab/18-1-0-342
Официальный сайт: http://code.google.com/p/dwlab/
Русскоязычная группа ВКонтакте: http://vk.com/dwlab

Digital Wizard's Lab Framework for 2D and isometric games development in BlitzMax.

https://www.moddb.com/engines/blitz-max/images/the-windows-ide-hosting-an-intense-session-of-rock



https://creatools.gameclassification.com/EN/index.html

https://www.syntaxbomb.com/blitzmax-blitzmax-ng/modules-list/

 thought I'd repost my modules/apps list here to help get things going. This version allows you to browse by category.
Thanks for making this a sticky Qube. Additions and corrections are most welcome.

Module Collections
2d Frameworks
2d Drivers
3d Engines
2d Audio
3d Audio
Particles
3d Libraries
3d Physics
GUI
GUI Builders
GUI Gadgets
GUI Drivers
Networking
Database
File Formats
Controllers
Open Source Games
Applications
IDEs
« Last Edit: June 21, 2017, 13:20:13 by markcwm »

 

 https://forum.ragezone.com/f921/delphi-visual-gm-handtool-v2-834829/

 [Delphi] Visual GM HandTool v2 (for any version)

    -Rewrite dump code now it load faster than previous version.
    -Add supports GMS,KMS,EMS,MSEA.
    -Full Equipment's details/information.
    -100% Ids.Auto copy ID to clipboard when select cell.

    Github:
    https://github.com/Elem8100/GM-HandTool

    Download(EXE):
    https://github.com/Elem8100/GM-HandTool/releases
 

gif animation web Visualize effect Trip mathematical geometrico 圖形 藝術 視覺化 數據

gif animation web Visualize effect Trip mathematical geometrico 

 Webgraph  directed graph Network Algorithms hover drifting

Tulip   Graph visualization

 webgraph   gif animation hover 3d Script web Visualize

 webgraph   gif animation hover Spider web Visualize

 drift hover animation  gif

 drift hover animation  gif Physics

 

 Digital Wizard's Lab - Библиотеки разработки игр - Файлы для игроделов - Всё о создании игр https://gcup.ru/load/gamedev_lib/dwlab/18-1-0-342

 Digital Wizard's Lab - Библиотеки разработки игр - Файлы для игроделов - Всё о создании игр https://gcup.ru/load/gamedev_lib/dwlab/18-1-0-342

 

 https://forum.ragezone.com/f921/delphi-visual-gm-handtool-v2-834829/

game engines delphi Asphyre

 https://gcup.ru/load/gamedev_lib/dwlab/18-1-0-342

 https://gcup.ru/load/engines/vizard/3-1-0-2119

 https://gcup.ru/load/engines/blitzplus/3-1-0-2111

 https://gcup.ru/load/engines/exgine/3-1-0-1398

 

 http://delphi.org/page/26/

 https://github.com/Cooler2/ApusGameEngine

 https://kzread.info/dron/vRbcBEoUfapUVFuwrOXN4Q.html

 

 Components > Miscellaneous > Games. Torry's Delphi Pages

https://torry.net/pages.php?id=259

 

 https://github.com/marquitospt/tulip

 https://www.gamedev.net/forums/topic/622395-medevpascal-new-ide-for-free-pascal/

 http://www.osalternative.com/p/medevpascal-alternative-and-similar-open-source-projects-67600.html

https://www.pascalgamedevelopment.com/content.php?330-PGD-News-Round-up-for-March-April-2012&styleid=5 

http://www.osalternative.com/p/medevpascal-alternative-and-similar-open-source-projects-67600.html

delphi  physics  engine library

Thundax Delphi Physics Engine

https://awesomeopensource.com/project/JordiCorbilla/thundax-delphi-physics-engine

https://opensourcelibs.com/libs/physics-engine

https://jordicorbilla.github.io/thundax-delphi-physics-engine/

https://github.com/BeRo1985/kraft
Kraft Physics Engine is an open source Object Pascal physics engine library that can be used in 3D games. Author : Benjamin 'BeRo' Rosseaux Compatible with: Delphi 7-XE7 (but not with the Android and iOS targets), FreePascal >= 2.6.2 (with almost all FPC-supported targets including Android and iOS)

https://wiki.freepascal.org/Game_Engine

2021年12月27日 星期一

Navigation Menu window container PANEL control folding

 window container  PANEL control folding

 

https://stackoverflow.com/questions/19524787/dynamic-collapse-panel-creation-in-windows-forms-c-sharp

 https://www.codeproject.com/Articles/18248/Navigation-Menu-for-Windows-Forms-Outlook-Bar-Styl

 https://www.codeproject.com/Tips/834853/How-to-Create-a-Simple-Expandable-Collapsible-Pane

https://www.codeproject.com/Tips/834853/How-to-Create-a-Simple-Expandable-Collapsible-Pane

 https://docs.microsoft.com/en-us/windows/win32/uxguide/ctrl-tree-views

 https://www.codeproject.com/Articles/389515/Column-based-selection-in-rich-edit-control

 https://www.codeproject.com/Articles/161871/Fast-Colored-TextBox-for-syntax-highlighting-2

https://stackoverflow.com/questions/3840898/treeview-to-control-panels

 

 

window frame exe inside panel SetParent ProcessWindowStyle

 window frame exe  inside panel SetParent ProcessWindowStyle


https://www.codeproject.com/Articles/53318/C-Custom-Control-Featuring-a-Collapsible-Panel
C# Custom Control Featuring a Collapsible Panel
 ASP.NET AJAX CollapsiblePanel control extender and finding it practical CollapsiblePanel

https://www.codeproject.com/Articles/8905/ByPass-difficult-Automation-and-add-applications-q
ByPass difficult Automation and add applications "as is" in your .NET application
Fed up with automation? Need to add components as is to your application? Try this out.
Main functions which are used in this case are from user32. That are SetParent, ShowWindow and SetForegroundWindow. Rest of the help is provided by managed Process, ProcessInfo and SendKeys classes.

https://foxlearn.com/windows-forms/how-to-execute-powershell-script-in-csharp-444.html

http://www.authorcode.com/open-command-prompt-window-within-a-panel-control-in-c/


http://www.java2s.com/Code/CSharp/GUI-Windows-Form/AgentTryout.htm


http://www.nullskull.com/q/10351064/how-to-get-search-box-in-windows-applicationcnet.aspx


TCustomCanvas Notifiable Persistent Lock LockCount Unlock TNotifiablePersistent: BeginUpdate UpdateCount

 https://graphics32.github.io/Docs/Units/GR32/Classes/TThreadPersistent/_Body.htm

TThreadPersistent - Graphics32

https://graphics32.github.io/Docs/Units/GR32_OrdinalMaps/Classes/TWordMap/_Body.htm

BeginUpdate() EndUpdate for a UserControl

UserControl  ContainerControl painted WindowsForms  UserControl)

similar to BeginUpdate() - EndUpdate()


https://stackoverflow.com/questions/487661/how-do-i-suspend-painting-for-a-control-and-its-children
class DrawingControl
    [DllImport("user32.dll")]
    public static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);

    private const int WM_SETREDRAW = 11;
    
    public static void SuspendDrawing( Control parent )
        SendMessage(parent.Handle, WM_SETREDRAW, false, 0);

    public static void ResumeDrawing( Control parent )
        SendMessage(parent.Handle, WM_SETREDRAW, true, 0);
        parent.Refresh();



https://graphics32.github.io/Docs/Units/GR32/Classes/TThreadPersistent/_Body.htm
TThreadPersistent
Hierarchy
TPersistent
   |
TNotifiablePersistent
Lock     LockCount     
Unlock         
In TNotifiablePersistent:
BeginUpdate     UpdateCount     OnChange
Changed         
Create         
Destroy         
EndUpdate
 
https://searchcode.com/file/11603740/uSimpleGraph.pas/
http://objecteda.googlecode.com/
/uSimpleGraph.pas
 TSimpleGraph v1.542                                                         }
   4{  by Kambiz R. Khojasteh                                                      }
   5{                                                                              }
   6{  kambiz@delphiarea.com                                                       }
   7{  http://www.delphiarea.com   


https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Graphics.TCustomCanvas.Lock
Vcl.Graphics.TCustomCanvas.Lock
    LockCount
    TryLock
    Unlock
    Locking Objects

http://theprofessionalspoint.blogspot.com/2013/12/locking-and-unlocking-mechanism-in.html
Locking and Unlocking mechanism in Delphi
The implementation for the lock pattern applied to a class TBag is: (only pattern related code is shown)
This article provides a mechanism to temporarily lock and unlock some aspects of a class. We will discuss locking and unlocking patterns in Delphi with a simple example.

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-lockwindowupdate
Windows GDI Winuser.h LockWindowUpdate function
LockWindowUpdate function (winuser.h)
BeginPaint
GetDC
GetDCEx
Painting and Drawing Functions
Painting and Drawing Overview
WM_PAINT

https://coderedirect.com/questions/594614/multi-threading-delphi-synchronization-using-critical-sections-between-a-timer-a
Multi-threading Delphi synchronization using Critical Sections between a Timer and other threads


2021年12月26日 星期日

鍛造 大門 欄杆

https://simplicad.com/en/

Wrought iron railings, gates - beautiful and affordable. SimpliCAD.

2021年12月25日 星期六

Thread Programmierung

 

Thread Programmierung unter Windows mit Delphi

 1 Thread Programmierung unter Windows mit Delphi Michael Puff

 oder dem von ExitThread oder TerminateThread festgelegten Wert, ... Mit dem Gegenstück zu SetThreadPriority, GetThreadPriority, lässt sich die aktuelle ...

 https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Classes.TThread.Terminate

 https://stackoverflow.com/questions/12475395/delphi-threading

  Thread   Delphi SetThreadPriority GetThreadPriority   SetThreadPriorityBoost  GetThreadPriorityBoost   ExitThread  TerminateThread   GetExitCodeThread   CloseHandle

SwitchToThread  切換到另一個可排程執行緒 CreateThread  建立執行緒 CreateRemoteThread  建立遠端執行緒 GetCurrentThread  獲取執行緒控制代碼 GetCurrentThreadId  獲取執行緒ID OpenThread  開啟一個現有執行緒物件 SetThreadPriority  設定執行緒優先順序 GetThreadPriority  獲取執行緒優先順序 SetThreadPriorityBoost  設定開關–系統動態提升該執行緒的優先順序 GetThreadPriorityBoost  獲取~開關 ExitThread  線上程的執行過程中終止 TerminateThread  線上程的外面終止 GetExitCodeThread  獲取一個已中止執行緒的退出程式碼 SuspendThread  暫停執行緒 ResumeThread  恢復執行緒 SetThreadStackGuarantee  要求系統在丟擲EXCEPTION_STACK_OVERFLOW異常的時候,保證仍然有指定大小的空閒區可以用 WaitForSingleObject  阻塞,直到等到訊號 CloseHandle  關閉控制代碼 


Yield SpinWait Sleep SwitchToThread SuspendThread ResumeThread
 System.Threading mscorlib.dll, netstandard.dll  Thread.dll Thread.Interrupt

https://coderoad.ru/12751031/%D0%9A%D0%B0%D0%BA%D0%BE%D0%B9-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D0%BE%D0%B6%D0%B8%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B2%D1%8B%D0%B7%D0%B2%D0%B0%D1%82%D1%8C-%D0%B2-%D0%B1%D0%B5%D1%81%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D0%BE%D0%BC-%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%B5-%D0%BE%D0%B6%D0%B8%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B4%D0%BB%D1%8F-Delphi-XE2

unit ThreadPool;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, contnrs, syncobjs;


    type

    TpooledTask=class(TObject)
    private
      FonComplete:TNotifyEvent;
    protected
      Fparam:TObject;
      procedure execute; virtual; abstract;
    public
      constructor create(onComplete:TNotifyEvent;param:TObject);
    end;

    TThreadPool=class(TObjectQueue)
    private
      access:TcriticalSection;
      taskCounter:THandle;
      threadCount:integer;
    public
      constructor create(initThreads:integer);
      procedure addTask(aTask:TpooledTask);
    end;

    TpoolThread=class(Tthread)
    private
      FmyPool:TThreadPool;
    protected
      procedure Execute; override;
    public
      constructor create(pool:TThreadPool);
    end;

    implementation

    { TpooledTask }

    constructor TpooledTask.create(onComplete: TNotifyEvent; param: TObject);
    begin
      FonComplete:=onComplete;
      Fparam:=param;
    end;

    { TThreadPool }

    procedure TThreadPool.addTask(aTask: TpooledTask);
    begin
      access.acquire;
      try
        push(aTask);
      finally
        access.release;
      end;
      releaseSemaphore(taskCounter,1,nil); // release one unit to semaphore
    end;

    constructor TThreadPool.create(initThreads: integer);
    begin
      inherited create;
      access:=TcriticalSection.create;
      taskCounter:=createSemaphore(nil,0,maxInt,'');
      while(threadCount<initThreads) do
      begin
        TpoolThread.create(self);
        inc(threadCount);
      end;
    end;

    { TpoolThread }

    constructor TpoolThread.create(pool: TThreadPool);
    begin
      inherited create(true);
      FmyPool:=pool;
      FreeOnTerminate:=true;
      resume;
    end;

    procedure TpoolThread.execute;
    var thisTask:TpooledTask;
    begin
      while (WAIT_OBJECT_0=waitForSingleObject(FmyPool.taskCounter,INFINITE)) do
      begin
        FmyPool.access.acquire;
        try
          thisTask:=TpooledTask(FmyPool.pop);
        finally
          FmyPool.access.release;
        end;
        thisTask.execute;
        if assigned(thisTask.FonComplete) then thisTask.FonComplete(thisTask);
      end;
    end;

    end.


https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Threading.TTask

System.Threading


TTask

TParallel
TFuture
TThreadPool
TWorkStealingQueue

https://docwiki.embarcadero.com/Libraries/Sydney/en/System.SyncObjs
SyncObjs

TMutex
 
TCriticalSection
TSemaphore
TEvent
TThread
THandleObject
TConditionVariableCS
TConditionVariableMutex
TConditionVariableHelper
TCriticalSectionHelper





https://www.modernescpp.com/index.php/tasks

https://blog.marcocantu.com/blog/2017-november-explaining-tasks-ppl-too-many.html

https://www.embarcaderoacademy.com/p/anonymous-methods-in-delphi/

https://www.embarcaderoacademy.com/p/master-modern-delphi-language-techniques

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_Critical_Sections



https://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_Critical_Sections

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Locking_Objects

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_the_Main_VCL_Thread

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_the_Multi-read_Exclusive-write_Synchronizer

https://www.informit.com/articles/article.aspx?p=30382&seqNum=6




https://github.com/pocoproject/poco

https://docs.microsoft.com/zh-tw/dotnet/standard/threading/pausing-and-resuming-threads


https://docwiki.embarcadero.com/RADStudio/Sydney/en/Service_Threads

  SparkyThread.Suspend; SparkyThread.Resume;

https://docwiki.embarcadero.com/Libraries/Alexandria/en/Vcl.SvcMgr.TService.OnExecute

https://docwiki.embarcadero.com/Libraries/Sydney/en/System.SyncObjs

https://stackoverflow.com/questions/67246114/delphi-what-happens-when-the-app-terminates-while-a-thread-is-waiting-on-an-even

https://www.freepascal.org/docs-html/rtl/classes/tthread.html

delphi System Threading Thread.Interrupt AutoResetEvent Wait  Set

kernel32  Thread Scheduling Yield  setThreadPriority           SetThreadPriority(pi.hThread, THREAD_PRIORITY_IDLE); ResumeThread(pi.hThread);

https://docwiki.embarcadero.com/CodeExamples/Sydney/en/TThreadYield_(Delphi)


Game Development in Delphi

 https://stackoverflow.com/questions/8203166/game-development-in-delphi
Game Development in Delphi


http://delphi.org/2011/10/pascal-game-development/
48 – Pascal Game Development with Jason McMillen


Pascal eXtended Library

 FPC produce COFF files. AFAIK, Delphi won't link to ELF files.
https://stackoverflow.com/questions/48714279/using-fpc-o-files-in-delphi-2010
https://www.agner.org/optimize/#objconv

AsphyreSphinx framework to draw 2D DirectX scene on form canvas.
Asphyre Sphinx
https://asphyre.net/products/legacy/7-asphyresphinx

https://www.pascalgamedevelopment.com/content.php
pascalgamedevelopment.com

http://delphi.org/2011/10/pascal-game-development/

http://www.pp4s.co.uk/

https://github.com/GLScene/GLScene

https://github.com/sszczep/ray-casting-in-2d-game-engines

https://castle-engine.io/
Castle Game Engine
Cross-platform (desktop, mobile, console) 3D and 2D game engine supporting many asset formats (glTF, X3D, Spine...) and using modern Object Pascal

https://sourceforge.net/projects/andorra/
Andorra 2D


http://zengl.org/
ZenGL - cross-platform game development library written in Pascal, designed to provide necessary functionality for rendering 2D-graphics, handling input, sound output, etc. More details can be found here.

https://delphigl.com/

http://www.clootie.ru/
Clootie graphics pages
DirectX 10 SDK for Delphi / FreePascal update.
Updated Direct3D10 / D3DX10 headers to March-2009 SDK. Now with Direct3D 10.1 support.

http://www.zgameeditor.org/
 ZGameEditor
Create games that have a redistributable size of only 64kb or less using procedural content. The game engine use OpenGL for graphics and a real time synthesizer for audio. ZGE is Free Open Source Software.



https://gcup.ru/load/engines/asphyre/3-1-0-105

Asphyre Sphinx 3
Скачать удаленно (17 Мб.) Скриншот     30 Июня 2008, 19:02
Логотип Asphyre Sphinx
Жанровая направленность: 2D/3D-игры любого жанра и типа;
Платформа: 32/64-bit Windows XP/Vista/7, 32/64-bit Linux и Mac OS X, iOS;

    DGLEngine
    ZenGL
    Ogre3D
    GLScene
    HiAsm
    3DCakeWalk
    Unigine
    CAST II
    SpriteCraft
    Digital Wizard's Lab
    LKI-Creator
    LKI-Creator 3D
    Nytro Game Engine
    K5Engine
    Axiom Engine
    eXgine
    WindMill
    Kochol
    Urho3D
    OpenBlox










fibonacci spiral art illustrator 黃金螺線 黃金分割線 黃金比例 黃金矩形 黃金三角形

 Interior and exterior design. Forged items. The fence is

metal. Artistic forging  Gate Forged Metal Grill Artistic Forging

ratio geometric concept. Fibonacci spiral Golden ratio.Geometric shapes Scalable vector illustration
 
Classic Black Decorative Metal Scroll Motif Wall Hanging Serafina Metal Scroll Wall Art Rectangular

Stratton  Decor Traditional Scroll  Sculpture

Яндекс.Картинки: поиск изображений в интернете, поиск по изображению

Scroll Bending Machine - Ellsen Scroll Machines

Practical Geometry for Builders and Architects Metal Bender

 

https://en.wikipedia.org/wiki/Golden_spiral 


fibonacci spiral art illustrator 

黃金螺線

黃金分割線 

黃金比例 

黃金矩形

黃金三角形


2021年12月24日 星期五

Xbase Programming Language Family

 

https://en.wikipedia.org/wiki/Embedded_database
https://en.wikipedia.org/wiki/XHarbour
xHarbour is a free multi-platform extended Clipper compiler, offering multiple graphic terminals (GTs), including console drivers, GUIs, and hybrid console/GUIs. xHarbour is backward-compatible with Clipper and supports many language syntax extensions, greatly extended run-time libraries, and extensive third party support.

Xbase Programming Language Family

Visual FoxPro  dBASE  Xharbour  Harbour  xBase  Clipper  FoxPro 2  Flagship Compiler  xBase++

dBase DBFree Clipper Visual Objects FoxPro Visual FoxPro Harbour Project XBase++ FlagShip xHarbour Vulcan.NET CLIP MaxScript VP-Info XSharp PWCT (software)

HBIDE dBase Visual Objects XIDE

https://en.wikipedia.org/wiki/Category:XBase_programming_language_family

Harbour GUI libraries and tools
qtcontribs
PTSource
HwGUI
Harbour MiniGUI
Harbour MiniGUI Extended Edition
OOHG - Object Oriented (x)Harbour GUI
Marinas-GUI
xBaseScript ActiveScript


https://en.wikipedia.org/wiki/FlagShip
https://en.wikipedia.org/wiki/PWCT_(software)
https://en.wikipedia.org/wiki/Visual_Objects
https://en.wikipedia.org/wiki/PWCT_(software)#Visual_Languages

https://en.wikipedia.org/wiki/Visual_programming_language
Data warehousing / business intelligence
Ab Initio
Alteryx Designer
Apache NiFi
Informatica

Visual  language Data warehousing business intelligence Visual programming language
https://www.edureka.co/blog/interview-questions/power-bi-interview-questions/
https://www.sqlshack.com/things-you-should-avoid-when-designing-a-data-warehouse/

2021年12月23日 星期四

employee employeeID DepartmentID national identity

  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/

https://docs.oracle.com/cd/E18727_01/doc.121/e13542/T229841T229878.htm
 
Architecture Hierarchy

Inventory Management Software
Input Inventory
Stock Control
Barkeep
Inventory Tracker HD
Inventory Tracking Software for a Small Business

https://www.hyperoffice.com/blog/2018/09/10/microsoft-access-databases-examples/
https://smallbusiness.chron.com/create-inventory-list-1685.html
https://www.nerdwallet.com/article/small-business/inventory-management-apps
Track and sync inventory and sales.
Category, subcategory and location details.
Automated purchase orders.
Create and fill purchase orders.
Stock alerts.
Barcode scanning.
Profit and loss reporting.
Discounted shipping.
printing labels, parcel tracking and barcode scanner picking for packaging sales.


https://www.g2.com/categories/relational-databases/small-business

古代食譜


《食珍錄》    南北朝 作者是餘姚人虞悰 已佚,現存《食珍錄》收於《說郛》 《說郛》,元末陶宗儀編纂

《清異錄》    北宋人陶谷撰 通行本是在元代孫道明的映雪齋殘抄本和明代《說郛》抄本

《食經》    謝諷著的成書於隋代 並非崔浩所寫。據《魏書·崔浩傳》所收崔浩寫的《食經敍》

《本心齋食譜》    宋代 宋代陳達叟,因為室名本心齋

《山家清供》     南宋 閩食譜。中國南宋時人,林洪撰。

《飲膳正要》    元代 元至順元年 作者為忽思慧 現在存有明經廠刊本

《飲食須知》    元代 《飲食須知》八卷,元人賈銘(約1269~1374)撰

《雲林堂飲食制度集》元代 作者 倪瓚,元四家之首。

《易牙遺意》    元明之際的韓奕撰 以齊桓公時代的名廚易牙之名

《隨園食單》     清代 乾隆五十七年 袁枚 字子才 號簡齋,別號隨園老人  

《本味篇》《呂氏春秋》呂不韋 編

《遵生八箋》《飲饌服食箋》 明朝文人高濂所著,萬曆十九年

《老饕賦》    宋仁宗嘉祐 蘇軾

《閑情偶寄》    清代 李漁

《多能鄙事》    明代 劉基 伯溫

《醒園錄》    清代李化楠撰

2021年12月22日 星期三

Delphi al Límite: La librería Synapse

 https://delphiallimite.blogspot.com/2010/05/la-libreria-synapse-y-5.html

 Delphi al Límite: La librería Synapse (y 5)

 https://www.pool.ntp.org/zone/europe

 pool.ntp.org: NTP Servers in Europe, europe.pool.ntp.org

  In most cases it's best to use pool.ntp.org to find an NTP server (or 0.pool.ntp.org, 1.pool.ntp.org, etc if you need multiple server names). The system will try finding the closest available servers for you. If you distribute software or equipment that uses NTP, please see our information for vendors.
IPv4

 https://es.wikipedia.org/wiki/Network_Time_Protocol

 

La librería Synapse Delphi al Límite
delphiallimite blogspot libreria synapse

 

 https://pjo2.github.io/tftpd64/

Synapse  librería THiloServidor 


Ararat Synapse project 

 https://github.com/Dikoy/ararat_synapse

 

Ararat Synapse project fork (http://synapse.ararat.cz/). Checked out from (svn://svn.code.sf.net/p/synalist/code/trunk synalist-code).
Synapse Library

 

 https://github.com/dimmaq/delphi-synapse

 

 

 

 

 

The TMemo Component | Inside Delphi 2006 (Wordware Delphi Developers Library)

 https://flylib.com/books/en/1.228.1.107/1/

 

 

The TMemo Component | Inside Delphi 2006 (Wordware Delphi Developers Library)

 

 

 

The TMemo component is a multiline text box that enables us to load, edit, and save plain text files. The contents of the text file are stored in the Lines property.

Listing 15-4 shows how to use the TMemo and TListBox components to emulate Delphi's Code Editor and its code completion feature.

Development Serial Null-modem emulator Null-modem emulator COM port

 

 Development Serial Null-modem emulator
Null-modem emulator
https://sourceforge.net/projects/com0com/
The Null-modem emulator (com0com) is a kernel-mode virtual serial port driver for Windows. You can create an unlimited number of virtual COM port pairs and use any pair to connect one COM port based application to another. The HUB for communications (hub4com) allows to receive data and signals from one COM or TCP port, modify and send it to a number of other COM or TCP ports and vice versa.

2021年12月21日 星期二

high DPI displays standard-DPI displays

 high DPI displays
standard-DPI displays

https://docs.microsoft.com/zh-tw/windows/uwp/get-started/universal-application-platform-guide
Windows Universal Platform (UWP)
https://docs.microsoft.com/zh-tw/archive/blogs/askcore/display-scaling-in-windows-10
Display Scaling in Windows 10
display scale factor scale factor
display scaling is > 100% “System DPI Awareness.” System DPI Awareness  

https://docs.microsoft.com/zh-tw/archive/blogs/askcore/display-scaling-changes-for-the-windows-10-anniversary-update
Display Scaling changes for the Windows 10 Anniversary Update
https://docs.microsoft.com/zh-tw/windows/win32/api/winuser/nf-winuser-setthreaddpiawarenesscontext?redirectedfrom=MSDN
SetThreadDpiAwarenessContext function (winuser.h)
Classic desktop applications scaled to 100%, 125%, 150%, 200% and 250%; Store apps scaled to 100%, 140% and 180%. As a result, when running different apps side by side in productivity scenarios,

~450% 23” 8K desktop

applications to dynamically scale and where Windows was limited in this regard. One of the main lessons learned was that, even for simple applications, the model of registering an application as being either System DPI Aware or Per-Monitor-DPI Aware

https://docs.microsoft.com/zh-tw/windows/win32/dlgbox/common-dialog-box-library?redirectedfrom=MSDN
 (ComDlg32, for example  Common Item Dialog ) that didn’t scale on a per-DPI basis.

DPI_AWARENESS_CONTEXT and the SetThreadDpiAwarenessContext API
DPI _ 感知 _ 內容控制碼 https://docs.microsoft.com/zh-tw/windows/win32/hidpi/dpi-awareness-context
SetThreadDpiAwarenessContext function (winuser.h)
The old DPI_AWARENESS_CONTEXT for the thread.
If the dpiContext is invalid,
the thread will not be updated and the return value will be NULL ...


https://docs.microsoft.com/zh-tw/windows/win32/hidpi/wm-dpichanged-beforeparent
https://docs.microsoft.com/zh-tw/windows/win32/hidpi/wm-getdpiscaledsize
WM_DPICHANGE message
https://docs.microsoft.com/zh-tw/windows/win32/api/winuser/nf-winuser-setwindowpos?redirectedfrom=MSDN
SetWindowPos function (winuser.h)

 EnableNonClientDpiScaling API to get Notepad’s non-client area to automatically DPI scale properly.
https://docs.microsoft.com/zh-tw/windows/win32/api/winuser/nf-winuser-enablenonclientdpiscaling?redirectedfrom=MSDN
 WM_NCCREATE

https://docs.microsoft.com/zh-tw/windows/win32/api/winuser/nf-winuser-getdpiforwindow?redirectedfrom=MSDN
GetDpiForWindow function (winuser.h)
FontStruct.lfHeight = -MulDiv(iPointSize, GetDpiForWindow(hwndNP), 720);

https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/ms646914(v=vs.85)?redirectedfrom=MSDN
 ChooseFont dialog was not per-monitor DPI aware

DPI_AWARENESS_CONTEXT previousDpiContext = SetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT_SYSTEM_AWARE);
BOOL cfResult = ChooseFont(cf);
SetThreadDpiAwarenessContext(previousDpiContext);

DPI_AWARENESS_CONTEXT_SYSTEM_AWARE
 DPI_AWARENESS_CONTEXT_UNAWARE
FontStruct.lfHeight = -MulDiv(cf.iPointSize, GetDpiForWindow(hwndNP), 720);

SetThreadDpiAwarenessContext
DPI_AWARENESS_CONTEXT
AdjustWindowRectExForDpi
GetDpiForSystem
GetDpiForWindow
GetSystemMetricForDpi
SystemParametersInfoForDpi
GetDpiForSystem GetDC  GetDeviceCaps
EnableNonClientDpiScaling
SetThreadDpiAwarenessContext
 

https://github.com/Microsoft/Windows-classic-samples/tree/main/Samples/DPIAwarenessPerWindow

https://docs.microsoft.com/zh-tw/windows/win32/hidpi/high-dpi-improvements-for-desktop-applications?redirectedfrom=MSDN

https://blogs.windows.com/windowsdeveloper/2016/10/24/high-dpi-scaling-improvements-for-desktop-applications-and-mixed-mode-dpi-scaling-in-the-windows-10-anniversary-update/

https://blogs.windows.com/windowsdeveloper/2017/05/19/improving-high-dpi-experience-gdi-based-desktop-apps/

Improving the high-DPI experience in GDI based Desktop Apps

https://docs.microsoft.com/zh-tw/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows?redirectedfrom=MSDN




Manifest File

The most common way to declare an application as DPI aware is through the application manifest file. There are two settings that you can use - <dpiAware> and <dpiAwareness>. Here is a small table that describes the different states that you can use with each setting.
DPI Mode  <dpiAware>  <dpiAwareness>
<description>Microsoft Management Console</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="highestAvailable"
uiAccess="false"
/>
</requestedPrivileges>
</security>
</trustInfo>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">
<gdiScaling>true</gdiScaling>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>    
 



ode Sample:

[code lang=”csharp”]

LRESULT WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{



case WM_PAINT:
{
PAINTSTRUCT ps;

// Get a paint DC for current window.
// Paint DC contains the right scaling to match
// the monitor DPI where the window is located.
HDC hdc = BeginPaint(hWnd, &ps);

RECT rect;
GetClientRect(hDlg, &rect);

UINT cx = (rect.right – rect.left);
UITN cy = (rect.bottom – rect.top);

// Create a compatible bitmap using paint DC.
// Compatible bitmap will be properly scaled in size internally and
// transparently to the app to match current monitor DPI where
// the window is located.
HBITMAP memBitmap = CreateCompatibleBitmap(hdc, cx, cy);

// Create a compatible DC, even without a bitmap selected,
// compatible DC will inherit the paint DC GDI scaling
// matching the window monitor DPI.
HDC memDC = CreateCompatibleDC(hdc);

// Selecting GDI scaled compatible bitmap in the
// GDI scaled compatible DC.
HBTIMAP oldBitmap = (HBITMAP)SelectObject(memDC, memBitmap);

// Setting some properties in the compatible GDI scaled DC.
SetTextColor(memDC, GetSysColor(COLOR_INFOTEXT));
SetBkMode(memDC, TRANSPARENT);
SelectObject(memDC, g_hFont);

// Drawing content on the compatible GDI scaled DC.
// If the monitor DPI was 150% or 200%, text internally will
// be draw at next integral scaling value, in current example
// 200%.
DrawText(memDC, ctx.balloonText, -1, &rect,
DT_NOCLIP | DT_LEFT | DT_NOPREFIX | DT_WORDBREAK);

// Copying the content back from compatible DC to paint DC.
// Since both compatible DC and paint DC are GDI scaled,
// content is copied without any stretching thus preserving
// the quality of the rendering.
BitBlt(hdc, 0, 0, cx, cy, memDC, 0, 0);

// Cleanup.
SelectObject(memDC, oldBitmap);
DeleteObject(memBitmap);
DeleteDC(memDC);

// At this time the content is presented to the screen.
// DWM (Desktop Window Manager) will scale down if required the
// content to actual monitor DPI.
// If the monitor DPI is already an integral one, for example 200%,
// there would be no DWM down scaling.
// If the monitor DPI is 150%, DWM will scale down rendered content
// from 200% to 150%.
// While not a perfect solution, it’s better to scale-down content
// instead of scaling-up since a lot of the details will be preserved
// during scale-down.
// The end result is that with GDI Scaling enabled, the content will
// look less blurry on screen and in case of monitors with DPI setting
// set to an integral value (200%, 300%) the vector based and text
// content will be rendered natively at the monitor DPI looking crisp
// on screen.

EndPaint(hWnd, &ps);
}
break;

}
}

[/code]

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
  <asmv3:application>
    <asmv3:windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
      <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>
Native API

There are three native API calls that can set awareness now:

    SetProcessDpiAware - Windows Vista or later
    SetProcessDpiAwareness - Windows 8.1 or later
    SetProcessDpiAwarenessContext - Windows 10, version 1607 or later

The latest API offers PerMonitorV2 support, so it is the currently recommend one.

https://www.telerik.com/blogs/winforms-scaling-at-large-dpi-settings-is-it-even-possible-


New events for handling dynamic DPI changes – DpiChanged, DpiChangedAfterParent, DpiChangedBeforeParent.
New methods – DeviceDpi, ScaleBitmapLogicalToDevice, LogicalToDeviceUnits.

this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
ivate void workbookTestButton_Click(object sender, EventArgs e)
{
    SetProcessDpiAwareness(_Process_DPI_Awareness.Process_DPI_Unaware);
    Workbook wb = new Workbook();
}
   
[DllImport("shcore.dll")]
static extern int SetProcessDpiAwareness(_Process_DPI_Awareness value);
   
enum _Process_DPI_Awareness
{
    Process_DPI_Unaware = 0,
    Process_System_DPI_Aware = 1,
    Process_Per_Monitor_DPI_Aware = 2
}

Delphi VCL Applications with mixed DPI
https://www.uweraabe.de/Blog/2021/08/28/delphi-vcl-applications-with-mixed-dpi/

 add a second VCL form to the application and drop some controls on to it, so we can distinguish the form instances by its display quality on a high DPI monitor. I just assume that the second form class is named TForm2.

Now we get back to the first form and drop two buttons on the form and double click each to fill their event handlers. The first button gets the single line:
procedure TForm1.Button1Click(Sender: TObject);
begin
  TForm2.Create(Self).Show;
end;

Make sure that the unit containing TForm2 is added to the uses clause.

The OnClick event of the second button needs a bit more code:
procedure TForm1.Button2Click(Sender: TObject);
var
  previousDpiContext: DPI_AWARENESS_CONTEXT;
  myForm: TForm;
begin
  previousDpiContext := SetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT_UNAWARE);
  try
    myForm := TForm2.Create(Self);
  finally
    SetThreadDpiAwarenessContext(previousDpiContext);
  end;
  myForm.Show;
end;

So we temporarily change the DPI awareness of the current thread to unaware, create the form and restore the context to its previous state before finally showing the form.


https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-improvements-for-desktop-applications

https://question-it.com/questions/736123/kak-konvertirovat-declare_handle-i-posledujuschie-konstanty-iz-windefh-v-delphi
  DECLARE_HANDLE(DPI_AWARENESS_CONTEXT);
  #define DPI_AWARENESS_CONTEXT_UNAWARE           ((DPI_AWARENESS_CONTEXT)-1)
  #define DPI_AWARENESS_CONTEXT_SYSTEM_AWARE      ((DPI_AWARENESS_CONTEXT)-2)
  #define DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE ((DPI_AWARENESS_CONTEXT)-3)
 NativeUInts:
  DPI_AWARENESS_CONTEXT_UNAWARE = 16;  
  DPI_AWARENESS_CONTEXT_SYSTEM_AWARE = 17;
  DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE = 18;
 SetThreadDpiAwarenessContext

https://docs.microsoft.com/zh-tw/windows/win32/hidpi/setting-the-default-dpi-awareness-for-a-process

https://github.com/MicrosoftDocs/visualstudio-docs.zh-tw/blob/live/docs/extensibility/addressing-dpi-issues2.md

https://docs.microsoft.com/zh-tw/visualstudio/extensibility/addressing-dpi-issues2?view=vs-2022

https://docs.microsoft.com/zh-tw/dotnet/api/microsoft.visualstudio.platformui.dpihelper?view=visualstudiosdk-2022

 https://www.visualstudioextensibility.com/2015/02/01/visual-studio-extensions-and-dpi-awareness/

Winapi.MultiMon.MonitorFromPoint GetDpiForMonitor  GetScaleFactorForMonitor delphi

 https://www.sql.ru/forum/1317197/getscalefactorformonitor-nevernoe-znachenie

 procedure CallSetProcessDPIAware;
var
  SetProcessDPIAware: function: Boolean; stdcall;
  H: THandle;
begin
  H := GetModuleHandle('User32.dll');
  if H > 0 then
  begin
    @SetProcessDPIAware := GetProcAddress(H, 'SetProcessDPIAware');
    if Assigned(SetProcessDPIAware) then
      SetProcessDPIAware();
  end;
end;

 

 http://yamatyuu.net/computer/program/vc2013/gmonitorinfo/index.html

 WMIを使用してディスプレイサイズ,接続方法を取得(Windows 10高DPI対応)

Launch Notepad

 https://coderoad.ru/6645426/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0-%D0%B1%D0%BB%D0%BE%D0%BA%D0%BD%D0%BE%D1%82%D0%B0-%D0%B2-delphi

 Проблема блокнота в delphi 

 привет, мы используем версию Delphi 5. Мы получаем проблему при открытии блокнота в delphi. Мы хотим открыть блокнот по щелчку кнопки и передать ему данные, чтобы Блокнот мог отображать эти данные. Я не хочу его спасать. пожалуйста, помогите мне в этом. спасибо.  

 

uses
  Clipbrd;

procedure LaunchNotepad(const Text: string);
var
  SInfo: TStartupInfo;
  PInfo: TProcessInformation;
  Notepad: HWND;
  NoteEdit: HWND;
  ThreadInfo: TGUIThreadInfo;
begin
  ZeroMemory(@SInfo, SizeOf(SInfo));
  SInfo.cb := SizeOf(SInfo);
  ZeroMemory(@PInfo, SizeOf(PInfo));
  CreateProcess(nil, PChar('Notepad'), nil, nil, False,
                NORMAL_PRIORITY_CLASS, nil, nil, sInfo, pInfo);
  WaitForInputIdle(pInfo.hProcess, 5000);

  Notepad := FindWindow('Notepad', nil);
  // or be a little more strict about the instance found
//  Notepad := FindWindow('Notepad', 'Untitled - Notepad');

  if Bool(Notepad) then begin
    NoteEdit := FindWindowEx(Notepad, 0, 'Edit', nil);
    if Bool(NoteEdit) then begin
      SendMessage(NoteEdit, WM_SETTEXT, 0, Longint(Text));

      // To force user is to be asked if changes should be saved
      // when closing the instance
      SendMessage(NoteEdit, EM_SETMODIFY, WPARAM(True), 0);
    end;
  end
  else
  begin
    ZeroMemory(@ThreadInfo, SizeOf(ThreadInfo));
    ThreadInfo.cbSize := SizeOf(ThreadInfo);
    if GetGUIThreadInfo(0, ThreadInfo) then begin
      NoteEdit := ThreadInfo.hwndFocus;
      if Bool(NoteEdit) then begin
        Clipboard.AsText := Text;
        SendMessage(NoteEdit, WM_PASTE, 0, 0);
      end;
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  LaunchNotepad('test string');
end;

藝術鍛造 鑄鐵 欄杆 大門 鍛造

http://vorotauzabora.ru/vorota-i-kalitki/kovanye-vorota-svoimi-rukami.html

Делаем кованые ворота своими руками: инструкция от специалистов  Перед непосредственной сваркой потребуется лишь чертеж, который можно создать самостоятельно или же срисовать с понравившегося готового варианта.
Выбор элементов для кованых ворот

Кованые ворота
 

https://www.google.com/search?client=firefox-b-d&q=%D0%9E%D0%B1%D1%8A%D1%8F%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F+%D0%BF%D0%BE+%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%83+%C2%AB%D0%BA%D0%BE%D0%B2%D0%B0%D0%BD%D1%8B%D0%B5+%D0%B2%D0%BE%D1%80%D0%BE%D1%82%D0%B0%C2%BB+%D0%B2+%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8



https://kuznica-msk.ru/eskiz-vorota-kalitki


https://www.google.com/search?q=%D0%9C%D0%B5%D1%82%D0%B0%D0%BB%D0%BB.+%D0%9C%D0%B5%D1%82%D0%B0%D0%BB%D0%BB%D0%BE%D0%BF%D0%BB%D0%B0%D1%81%D1%82%D0%B8%D0%BA.+%D0%98%D0%B7%D0%B4%D0%B5%D0%BB%D0%B8%D1%8F%D0%9A%D0%9E%D0%92%D0%90%D0%9D%D0%AB%D0%95+%D0%98%D0%97%D0%94%D0%95%D0%9B%D0%98%D0%AF.+%D0%9B%D0%95%D0%A1%D0%A2%D0%9D%D0%98%D0%A6%D0%AB.+%D0%9E%D0%93%D0%A0%D0%90%D0%96%D0%94%D0%95%D0%9D%D0%98%D0%AF.+%D0%92%D0%9E%D0%A0%D0%9E%D0%A2%D0%90+%D0%A1%D0%95%D0%92%D0%90%D0%A1%D0%A2%D0%9E%D0%9F%D0%9E%D0%9B%D0%AC++%D0%90%D1%80%D1%82%D0%B5%D0%BB%D1%8C+%D0%BA%D1%83%D0%B7%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D1%85,+%D0%BB%D0%B8%D1%82%D0%B5%D0%B9%D0%BD%D1%8B%D1%85+%D0%B8+%D1%81%D0%BB%D0%B5%D1%81%D0%B0%D1%80%D0%BD%D1%8B%D1%85+%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B9&client=firefox-b-d&sxsrf=AOaemvLr7RzL0mhNrTHmFI5SEK-aLxVgwg:1640037292674&source=lnms&tbm=isch&sa=X&ved=2ahUKEwiarf2Br_P0AhUrL6YKHdyKDrYQ_AUoAXoECAEQAw&biw=1536&bih=778&dpr=1.25#imgrc=dfUmNDzB20S1RM


https://www.google.com/search?q=%D0%90%D1%80%D1%82%D0%B5%D0%BB%D1%8C+%D0%BA%D1%83%D0%B7%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D1%85,+%D0%BB%D0%B8%D1%82%D0%B5%D0%B9%D0%BD%D1%8B%D1%85+%D0%B8+%D1%81%D0%BB%D0%B5%D1%81%D0%B0%D1%80%D0%BD%D1%8B%D1%85+%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B9&client=firefox-b-d&sxsrf=AOaemvKdlhHzpsN1RZgZCvP7ICqI0mA_7g:1640036084301&source=lnms&tbm=isch&sa=X&ved=2ahUKEwikseTBqvP0AhUKGKYKHYDfBw0Q_AUoAXoECAEQAw&biw=1536&bih=778&dpr=1.25#imgrc=dfUmNDzB20S1RM&imgdii=fdRRfwjmJDUBeM
 
https://www.google.com/search?q=%D0%98%D0%B7%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B8%20%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%20%D0%BA%D0%BE%D0%B2%D0%B0%D0%BD%D1%8B%D1%85%20%D0%B2%D0%BE%D1%80%D0%BE%D1%82%20%20%20%D1%80%D1%83%D0%BA%D0%B0%D0%BC%D0%B8:%20%D0%B8%D0%B7%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B8%20%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%2C%20%D1%8D%D1%81%D0%BA%D0%B8%D0%B7%D1%8B%20%D0%92%D1%8B%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC%20%D0%B7%D0%B0%D0%B1%D0%BE%D1%80%D1%8B%20%D0%B8%20%20%D0%B4%D0%BB%D1%8F%20%D0%92%D0%B0%D1%88%D0%B5%D0%B3%D0%BE%20%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BA%D0%B0%20%20%C2%AB%D0%9F%D0%B8%D0%BA%D0%B0%C2%BB%20%D0%B2%20%D0%B0%D1%81%D1%81%D0%BE%D1%80%D1%82%D0%B8%D0%BC%D0%B5%D0%BD%D1%82%D0%B5%20%D0%9E%D0%9E%D0%9E%20%D0%91%D0%B5%D0%BB%D0%B1%D0%B5%D1%82%D0%BE%D0%BD%20%20%D1%81%20%D0%BA%D0%B0%D0%BB%D0%B8%D1%82%D0%BA%D0%BE%D0%B9%20%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B8%20%D0%B2%D0%BE%D1%80%D0%BE%D1%82%20%D1%84%D0%BE%D1%82%D0%BE%20%D1%86%D0%B5%D0%BD%D0%B0%20%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0%20%D0%BC%D0%BE%D0%B4%D0%B5%D1%80%D0%BD%20%D1%87%D0%B5%D1%80%D1%82%D0%B5%D0%B6:%208%20%D1%82%D1%8B%D1%81%20%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9%20%D0%BD%D0%B0%D0%B9%D0%B4%D0%B5%D0%BD%D0%BE%20%D0%B2%20%D0%AF%D0%BD%D0%B4%D0%B5%D0%BA%D1%81.%D0%9A%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B0%D1%85%20%7C%20%D0%9A%D1%83%D0%B7%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D1%8B%2C%20%D0%94%D0%B5%D0%BA%D0%BE%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B5%20%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D1%8B%2C%20%D0%9E%D0%BA%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5%20%D1%80%D0%B5%D1%88%D0%B5%D1%82%D0%BA%D0%B8%20%D0%9A%D0%BE%D0%B2%D0%B0%D0%BD%D1%8B%D0%B5%20%D0%B2%D0%BE%D1%80%D0%BE%D1%82%D0%B0:%20%D1%8D%D1%81%D0%BA%D0%B8%D0%B7%D1%8B%2C%20%D0%B8%D0%B7%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B8%20%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%20%D0%B8%D0%B7%D0%B4%D0%B5%D0%BB%D0%B8%D1%8F%20%20%D0%92-025%20-%20%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C%20%D0%B2%20%D0%A2%D1%8E%D0%BC%D0%B5%D0%BD%D0%B8%20-%20233%20%D0%93%D0%BE%D1%82%D0%BE%D0%B2%D1%8B%D0%B5%20%D1%8D%D1%81%D0%BA%D0%B8%D0%B7%D1%8B%20%D0%B8%20%D1%87%D0%B5%D1%80%D1%82%D0%B5%D0%B6%D0%B8%20%D0%B2%D0%BE%D1%80%D0%BE%D1%82%20%D1%81%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%B0%D0%BC%D0%B8%20%D0%A6%D0%B5%D0%BD%D0%B0%20%D0%BD%D0%B0%20%D0%BA%D0%BE%D0%B2%D0%B0%D0%BD%D1%8B%D1%85%20%D0%B2%D0%BE%D1%80%D0%BE%D1%82%20%D0%B4%D0%BB%D1%8F%20%D0%B4%D0%B0%D1%87%D0%B8%2C%20%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C%20%20%D0%B2%20%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B5%20%20%D0%B8%20%D0%BA%D0%B0%D0%BB%D0%B8%D1%82%D0%BA%D0%B8%20(%D0%AD%D1%81%D0%BA%D0%B8%D0%B7%D1%8B)%20-%20%D0%9A%D0%BE%D0%B2%D0%B0%D0%BD%D1%8B%D0%B5%20%D0%B8%D0%B7%D0%B4%D0%B5%D0%BB%D0%B8%D1%8F%20%20%D0%BC%D0%B5%D1%82%D0%B0%D0%BB%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5%20%D1%81%20%D0%BA%D0%B0%D0%BB%D0%B8%D1%82%D0%BA%D0%BE%D0%B9%20%E2%80%93%20%D0%BA%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F%2C%20%D1%87%D0%B5%D1%80%D1%82%D0%B5%D0%B6%D0%B8&tbm=isch&tbs=rimg:CXep0Hr3nrc5YajrvEmJXEBEsgIGCgIIARAA&client=firefox-b-d&hl=zh-TW&sa=X&ved=0CBsQuIIBahcKEwiwyOTrrPP0AhUAAAAAHQAAAAAQBg&biw=1519&bih=778







2021年12月20日 星期一

EtheaDev IconFontsImageList https://githubhelp.com/EtheaDev/IconFontsImageList

 https://githubhelp.com/EtheaDev/IconFontsImageList

 

Four advanced components to simplify use of Icon Fonts as images and ImageList: TIconFontImage, TIconFontsImageCollection, TIconFontsVirtualImageList, TIconFontsImageList (for VCL and FMX). Full support for High-DPI apps. Rendering optimized with GDI+ 



delphi-code-coverage/JwaWinGDI.pas

 at master - GitHub


This is a clone of the code coverage tool for Delphi on ... function AddFontResource(lpszFileName: LPCTSTR): Integer; stdcall;.

load font

https://tipsfordev.com/firemonkey-load-alternative-font

FIREMONKEY - load alternative font

I would like to load an external font in a Delphi Firemonkey application.

Is there any information how to do that?


Not sure if it works for FireMonkey, but this code worked for me when I wanted to load custom fonts to my standard Delphi applications.
 
uses
  Windows, SysUtils, Messages, Classes, Generics.Collections;

type
  { .: TExternalFonts :. }
  TExternalFonts = class sealed(TList<HFONT>);

var
  ExternalFonts: TExternalFonts;

function AddExternalFont(const AFileName: String): HFONT; overload;
function AddExternalFont(const AStream: TStream): HFONT; overload;

implementation

{ .: DoCleanup :. }
procedure DoCleanup();
var
  I: Integer;
begin
  for I := ExternalFonts.Count -1 downto 0 do
  begin
    RemoveFontMemResourceEx(ExternalFonts[I]);
    ExternalFonts.Delete(I);
    //SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
  end;
end;

{ .: AddExternalFont :. }
function AddExternalFont(const AFileName: String): HFONT; overload;
var
  FS: TFileStream;
begin
  Result := 0;

  if not FileExists(AFileName) then
    exit;

  FS := TFileStream.Create(AFileName, fmOpenRead + fmShareExclusive);
  try
    Result := AddExternalFont(FS);
  finally
    FS.Free();
  end;
end;

{ .: AddExternalFont :. }
function AddExternalFont(const AStream: TStream): HFONT; overload;
var
  MS: TMemoryStream;
  Temp: DWORD;
begin
  Result := 0;

  if not Assigned(AStream) then
    exit;

  Temp := 1;
  MS := TMemoryStream.Create();
  try
    MS.CopyFrom(AStream, 0);

    Result := AddFontMemResourceEx(MS.Memory, MS.Size, nil, @Temp);
    if (Result <> 0) then
      ExternalFonts.Add(Result);
    //SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
  finally
    MS.Free();
  end;
end;

initialization
  ExternalFonts := TExternalFonts.Create();

finalization
  DoCleanup();
  ExternalFonts.Free();

end.
 

use external fonts font directly from resources in Delphi Resource Compiler brcc32 MSBuild

 use external fonts font directly from resources in Delphi
AddFontMemResourceEx
https://docs.microsoft.com/zh-tw/windows/win32/api/wingdi/nf-wingdi-addfontmemresourceex?redirectedfrom=MSDN
https://docs.microsoft.com/zh-tw/windows/win32/api/wingdi/nf-wingdi-addfontresourcea?redirectedfrom=MSDN
https://docs.microsoft.com/zh-tw/windows/win32/api/wingdi/nf-wingdi-addfontresourceexa?redirectedfrom=MSDN
https://docs.microsoft.com/zh-tw/windows/win32/api/wingdi/nf-wingdi-addfontmemresourceex?redirectedfrom=MSDN
https://sourceforge.net/projects/jvcl/
 JVCL's TjvDataEmbedded AddFontResource
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Step_3_-_Add_Style-Resources_as_RCDATA_(Delphi)
Step 3 - Add Style-Resources as RCDATA (Delphi)


procedure TForm1.FormCreate(Sender: TObject) ;
begin
  AddFontResource('c:\FONTS\MyFont.TTF') ;
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;

//Before application terminates we must remove our font:
procedure TForm1.FormDestroy(Sender: TObject) ;
begin
  RemoveFontResource('C:\FONTS\MyFont.TTF') ;
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;
https://stackoverflow.com/questions/2984474/embedding-a-font-in-delphi
https://stackoverflow.com/questions/36224624/loading-font-from-resource-file

TResourceStream AddFontResource WM_FONTCHANGE message
   ResStream : tResourceStream;
   FontsCount : integer;
   hFont : tHandle;
 
   ResStream := tResourceStream.Create(hInstance, ResourceName, RT_RCDATA);
   hFont := AddFontMemResourceEx(ResStream.Memory, ResStream.Size, nil, @FontsCount);
   result := (hFont <> 0);
   ResStream.Free();
 

function LoadResourceFontByName( const ResourceName : string; ResType: PChar ) : Boolean;
var
  ResStream : TResourceStream;
  FontsCount : DWORD;
begin
  ResStream := TResourceStream.Create(hInstance, ResourceName, ResType);
  try
    Result := (AddFontMemResourceEx(ResStream.Memory, ResStream.Size, nil, @FontsCount) <> 0);
  finally
    ResStream.Free;
  end;
end;

function LoadResourceFontByID( ResourceID : Integer; ResType: PChar ) : Boolean;
var
  ResStream : TResourceStream;
  FontsCount : DWORD;
begin
  ResStream := TResourceStream.CreateFromID(hInstance, ResourceID, ResType);
  try
    Result := (AddFontMemResourceEx(ResStream.Memory, ResStream.Size, nil, @FontsCount) <> 0);
  finally
    ResStream.Free;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  if LoadResourceFontByName('MyFont1', RT_RCDATA) then
    Label1.Font.Name := 'My Font Name 1';

  if LoadResourceFontByID(2, RT_FONT) then
    Label2.Font.Name := 'My Font Name 2';
end;

LoadResourceFontByName
delphi add font resource file LoadResourceFontByName
[Solved] Embedding a font in delphi - Code Redirect
https://www.sql.ru/forum/1254355/delphi-zagruzit-shrift-iz-resursov

{$R MyNewFont.RES}
...
procedure TForm1.FormCreate(Sender: TObject);
var
  MyResStream: TResourceStream;
begin
  MyResStream:=TResourceStream.Create(hInstance, 'MYFONT', RT_RCDATA);
  MyResStream.SavetoFile('Gen4.ttf');
  AddFontResource(PChar('Gen4.ttf'));
  SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
  Label1.Font.Charset:=SYMBOL_CHARSET;
  Label1.Font.Size:=24;
  Label1.Font.Name:='Gen4';
end;

MSBuild.exe C:/Project1.dproj /t:Build /p:configutation=Debug /p:platform=Win32

https://docwiki.embarcadero.com/RADStudio/Sydney/en/BRCC32.EXE,_the_Resource_Compiler
Resource Compiler, brcc32.exe

https://delphi.cjcsoft.net/viewthread.php?tid=47317

{$R MyFont.res}
  Res : TResourceStream;
 
  Res := TResourceStream.Create(hInstance, 'MY_FONT', Pchar('ANYOL1'));
  Res.SavetoFile('Bauhs93.ttf');
  Res.Free;
  AddFontResource(PChar('Bauhs93.ttf'));
  SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
 
  RemoveFontResource(PChar("Bauhs93.ttf"))
  SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);














2021年12月18日 星期六

Custom Controls in Win32 API: Visual Styles Application Manifest assembly xmlns InitCommonControls comctl32.DLL

 https://www.codeproject.com/Articles/620045/Custom-Controls-in-Win-API-Visual-Styles

  https://docs.microsoft.com/en-us/answers/questions/199283/use-common-controls-v6-in-a-dll-compiled-using-vc6.html

https://docs.microsoft.com/en-us/windows/win32/sbscs/application-manifests

https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/schema-root


Custom Controls in Win32 API: Visual Styles

https://www.codeproject.com/Articles/559385/Custom-Controls-in-Win-API-The-Basics
https://www.codeproject.com/Articles/617212/Custom-Controls-in-Win-API-The-Painting
https://www.codeproject.com/Articles/620045/Custom-Controls-in-Win-API-Visual-Styles

Application Manifest

1 RT_MANIFEST path/to/manifest.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="app name" type="win32"/>
    <description>app description</description>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls"
              version="6.0.0.0" processorArchitecture="*"
              publicKeyToken="6595b64144ccf1df" language="*"/>
        </dependentAssembly>
    </dependency>
    <ms_asmv2:trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <ms_asmv2:security>
            <ms_asmv2:requestedPrivileges>
                <ms_asmv2:requestedExecutionLevel level="asInvoker" uiAccess="false"/>
            </ms_asmv2:requestedPrivileges>
        </ms_asmv2:security>
    </ms_asmv2:trustInfo>
</assembly>
 

COMCTL32.DLL   UXTHEME.DLL        USER32.DLL 


Useless IsThemeActive() and IsAppThemed()

UXTHEME.DLL        USER32.DLL   
Function        Fundamental constant        Function        Fundamental constant   
GetThemeSysBool()        TMT_FLATMENUS        SystemParametersInfo()        SPI_GETFLATMENU   
GetThemeSysColor()                 GetSysColor()            
GetThemeSysColorBrush()                 GetSysColorBrush()            
GetThemeSysFont()        TMT_ICONTITLEFONT        SystemParametersInfo()        SPI_GETICONTITLELOGFONT   
the other ones        SPI_GETNONCLIENTMETRICS   
GetThemeSysInt()                 no counterpart            
GetThemeSysSize()                 GetSystemMetrics()            
GetThemeSysString()                 no counterpart

GetThemeBackgroundContentRect OpenThemeData GetWindowTheme GetThemeIntList _WIN32_WINNT_VISTA
Screenshot of Theme Explorer 


embarcadero Customizing the Windows Application Manifest File

Go Up to Types of Multi-Device Applications You Can Create

Go Up to Deploying Applications - Overview

    API (ApplicationName.manifest)

    Applications Options for Desktop Platforms

    MSDN: Application Manifests

    MSDN: Create and Embed an Application Manifest (UAC)

    Delphi Developers Guide 4K.pdf (Solving DPI problems, creating a custom manifest.)

Identity Management Tools



OpenIAM https://www.openiam.com/
Apache Syncope Syncope - Open Source Identity Management https://syncope.apache.org/
Shibboleth Consortium https://www.shibboleth.net/
WSO2 https://wso2.com/identity-and-access-management/
MidPoint https://evolveum.com/midpoint/
Soffid http://www.soffid.com/
Gluu Gluu Server - Identity and Access Management (IAM) platform https://www.gluu.org/
Keycloak https://www.keycloak.org/index.html
FreeIPA https://www.freeipa.org/page/Main_Page
Central Authentication Service (CAS) https://www.apereo.org/projects/cas
OpenDS - Next generation Directory Service
OpenLdap - Implementation of the Lightweight Directory Access Protocol (LDAP)
kratos - Next-gen identity server (think Auth0, Okta, Firebase) with Ory-hardened authentication, MFA, FIDO2, profile management, identity schemas, social sign in, registration, account recovery, service-to-service and IoT auth
Keycloak - Open Source Identity and Access Management For Modern Applications and Services
SSSD - System Security Services Daemon
OpenDJ - LDAPv3 compliant directory service
389 Directory Server - Powerful OpenSource LDAP
FreeIPA - Identity and Access Management for Linux
Apache Fortress - Identity and Access Management
Mandriva - Identity and Network Management
ApacheDS - Apache Directory Project
LSC engine - LDAP Synchronization Connector
AMX Identity Management - An HR driven Identity and Access Management solution
msf - MFS (Minio Federation Service) is a namespace, identity and access management server for Minio Servers
ForgeRock https://en.wikipedia.org/wiki/ForgeRock
OpenAM https://en.wikipedia.org/wiki/OpenAM
OpenIDM https://en.wikipedia.org/wiki/OpenIDM
OpenDJ https://en.wikipedia.org/wiki/OpenDJ
https://en.wikipedia.org/wiki/Category:Identity_management_systems










How to make a Delphi application run as an administrator? Delphi High DPI switch between own scaling and Windows scaling

 https://itqna.net/questions/5331/how-make-delphi-application-run-administrator

  

Tip: To learn more about custom Manifest file you can give   a look at this Embarcadero link : Customizing the Windows   Application Manifest   File

 

https://docwiki.embarcadero.com/RADStudio/Tokyo/en/Customizing_the_Windows_Application_Manifest_File

 Customizing the Windows Application Manifest File

 

YOU CAN USE THIS FILE HERE

If you prefer you can use this ready, just do the following:

Content of the manifest file

  • Create a text file and paste the content below
  • Save in the folder of your project with the name you prefer, as long as you have the .manifest extension, the most common is that the file is named Manifest.manifest
  •  

     

     

    https://en.wikipedia.org/wiki/Manifest_file

     Windows Application Manifest File       name="Microsoft.Windows.Common-Controls"

     

     

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
     <dependency>
       <dependentAssembly>
         <assemblyIdentity
           type="win32"
           name="Microsoft.Windows.Common-Controls"
           version="6.0.0.0"
           publicKeyToken="6595b64144ccf1df"
           language="*"
           processorArchitecture="*"/>
       </dependentAssembly>
     </dependency>
     <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
       <security>
         <requestedPrivileges>
           <requestedExecutionLevel
             level="asInvoker"
             uiAccess="false"/>
           </requestedPrivileges>
       </security>
     </trustInfo>
    </assembly>

     

    // Set DPI Awareness depending on a registry setting
    with TRegIniFile.create('SOFTWARE\' + SRegName) do
    begin
      setting := readInteger('SETTINGS', 'scale', 0);
      Free;
    end;
    handle := LoadLibrary('shcore.dll');
    if handle <> 0 then
    begin
      setProcessDPIAwareness := GetProcAddress(handle, 'SetProcessDpiAwareness');
      if Assigned(setProcessDPIAwareness) then
      begin
        if setting < 2 then
          // setting <2 means no scaling vs Windows
          setProcessDPIAwareness(0)
        else
          // setting 2: 120%, 3: 140% vs. Windows
          // The actual used scaling factor multiplies by windows DPI/96
          setProcessDPIAwareness(1);
      end;
      FreeLibrary(handle);
      // Get windows scaling as Screen.PixelsPerInch was read before swiching DPI awareness
      // Our scaling routines now work with WinDPI instead of Screen.PixelsPerInch
      WinDPI:= Screen.MonitorFromWindow(application.handle).PixelsPerInch;
    end;
     
     
    Mage.exe (Manifest Generation and Editing Tool) - Microsoft ...
    https://docs.microsoft.com › dotnet › tools
    The Manifest Generation and Editing Tool (Mage.exe) is a command-line tool that supports the creation and editing of application and deployment ...
     文件擴展名首頁 / 所有軟體 / Heaventools Software / Heaventools Application Manifest Wizard

    Heaventools Application Manifest Wizard
    開發者名稱: Heaventools Software
    最新版本: 1.99 R6
    軟體類別: 開發者工具
    軟體子類別: XML 工具
    操作系統: Windows

    軟體概述

    應用程序清單嚮導是一個工具,允許遺留應用程序從Windows XP或Vista的共同控制的華而不實的新面貌受益。這個工具允許除了插入需要管理員級別為它添加UAC清單。這使得提高管理員對Windows 7和Vista的應用程序運行。這使得應用程序的操作行為等同於Windows XP。 

    Pythia 程序是用於在高能碰撞中生成事件的標準工具 物理模型

     Pythia 程序是用於在高能碰撞中生成事件的標準工具,包括一組連貫的物理模型,用於從少體硬過程到復雜的多粒子最終狀態的演化。 它包含一個硬過程庫、初始和最終狀態部分子簇射的模型、硬過程和部分子簇射之間的匹配和合併方法、多部分相互作用、束殘餘、弦碎裂和粒子衰變。 它還具有一組實用程序和多個與外部程序的接口。 Pythia 8.2 是從 Fortran 完全重寫為 C++ 之後的第二個主要版本,現在已經成熟到可以完全替代大多數應用程序,尤其是 LHC 物理研究。 許多新功能應該允許改進數據描述。

    https://pythia.org/

    https://vincia.hepforge.org/
     
    PYTHIA  JETSET   high energy physics event

    http://www.phys.ufl.edu/~rfield/cdf/CDF_minbias.html

    https://en.wikipedia.org/wiki/Event_generator

     

     

    List of event generators
    The major event generators that are used by current experiments are:
    Hadronic event generators[3]
        PYTHIA (formerly Pythia/Jetset)
        HERWIG
        ISAJET
        SHERPA
    Multi-purpose parton level generators
        MadGraph5 (able to run directly on the web site after registration and an email to the author)
        Whizard
     


    https://en.wikipedia.org/wiki/Event_generator

    Event generators are software libraries that generate simulated high-energy particle physics events. They randomly generate events as those produced in particle accelerators, collider experiments or the early universe. Events come in different types called processes as discussed in the Automatic calculation of particle interaction or decay article.

    Doxygen Graphviz Doxygen Flow Graph Code Flowgen Doxygen Graph Python Sphinx UML diagram


    Flow Graph Code
    Flowchart-Based Documentation Framework  
     visual documentation UML activity diagram flowchart annotated sources
     LibClang
    PlantUML Dextool Mutate
    https://en.wikipedia.org/wiki/PlantUML

    Flowgen to the Vincia code
    https://vincia.hepforge.org/
     The VINCIA code is a plugin to the high-energy physics event generator PYTHIA 8.2.
    Starting from PYTHIA 8.3, VINCIA will be distributed as part of the PYTHIA source code, and hence this standalone plugin will not be relevant to PYTHIA 8.3 users.
    VINCIA is based on the dipole-antenna picture of Quantum Chromodynamics (QCD) and focusses on describing jets and jet substructure with high precision.

    https://clang.llvm.org/
    https://clang.llvm.org/get_started.html
    UMLet 14.3
    Free UML Tool for Fast UML Diagrams https://www.umlet.com/

    https://plantuml.com/


    https://github.com/noware/clang-cindex-python3
    This is simply clang's Python bindings (clang.cindex) ported to Python 3.
     Please see http://llvm.org/svn/llvm-project/cfe/trunk/bindings/python/ for the original project.

     

     


    https://en.wikipedia.org/wiki/Category:Free_documentation_generators   Python Sphinx Documentation Generator Documentation Generation

     

    https://www.saashub.com/compare-doxygen-vs-sphinx-documentation-generator

    GitBook - Modern Publishing, Simply taking your books from ideas to finished, polished books.

    Slate API Docs Generator - Create beautiful, intelligent, responsive API documentation.

    MkDocs - Project documentation with Markdown.

    ReadTheDocs - Spend your time on writing high quality documentation, not on the tools to make your documentation work.

    Confluence - Confluence is content collaboration software that changes how modern teams work

    DocFX - A documentation generation tool for API reference and Markdown files!


    Python Sphinx Documentation Generator
    Overview — Sphinx documentation
    https://www.sphinx-doc.org
    Sphinx is a tool that makes it easy to create intelligent and beautiful documentation, written by Georg Brandl and licensed under the BSD license. 



    source code generator hierarchy graph Class hierarchy dependency diagram generator



    https://www.sourcetrail.com/ source code generator hierarchy graph Class hierarchy dependency diagram generator
     as in KCachegrind – and evolution visualization – for repository analysis) in KDevelop. https://liveblue.wordpress.com/2009/06/17/visualize-your-code-in-kdevelop/
    https://github.com/shreyasbharath/cpp_dependency_graph
    https://github.com/tomtom-international/cpp-dependencies

    Graphviz is open source graph visualization software. http://www.graphviz.org/

    https://www.doxygen.nl/index.html
    Doxygen + GraphViz (for pictures, doxygen requires GraphViz)

    Code Graph
    Yiubun Auyeung
    https://marketplace.visualstudio.com/items?itemName=YaobinOuyang.CodeAtlas

    JetBrains
    Hierarchy window | ReSharper https://www.jetbrains.com/help/resharper/Reference__Windows__Type_Hierarchy_Window.html#tree

    Is there a control to visualize mesh topology in c#?
    看看ndepend(http://www.ndepend.com/)。除了為程式碼庫計算各種度量之外,它還可以視覺化依賴項。有試用版。
    這是一張截圖(在http://www.ndepend.com/Features.aspx#DependenciesView上),可能正是你想要的:http://www.ndepend.com/Res/DiagramBoxAndArrowGraphBig.jpg
    https://www.ndepend.com/docs/visual-studio-dependency-graph#Call
    https://www.ndepend.com/docs/visual-studio-dependency-graph#Inherit
    https://www.ndepend.com/docs/validating-cqlinq-code-rules-in-visual-studio
    https://www.ndepend.com/docs/customize-ndepend-report#CQLRule

    https://www.scitools.com/ 


    java
    https://github.com/amitjoy/dependency-graph-osgi
    visualize OSGi Dependencies in a graph
        https://bnd.bndtools.org
        http://graphstream-project.org

    source code hierarchy diagram generator Graph doxygen documentation uml create Dependency Graphs for Header Files

     

    --------Cscope   http://cscope.sourceforge.net/cscope_man_page.html   
    screen-oriented tool that allows the user to browse through C source
    is a developer's tool for browsing source code. It has an impeccable Unix pedigree, having been originally developed at Bell Labs back in the days of the PDP-11. Cscope was part of the official AT&T Unix distribution for many years, and has been used to manage projects involving 20 million lines of code!
    In April, 2000, thanks to the Santa Cruz Operation, Inc. (SCO) (since merged with Caldera), the code for Cscope was open sourced under the BSD license.
    --------gtags-cscope is an interactive, screen-oriented tool that allows the user to browse through source files


    GNU global source-code tag system
    Tama Communications Corporation; http://tamacom.com
     GNU Global source code tagging system https://www.tamacom.com/handbook.html
     GNU GLOBAL handbook https://www.tamacom.com/global.html
     
    --------Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient. It is included as "vi" with most UNIX systems and ...
    --------Elvis Text Editor Elvis is an enhanced clone of the vi text editor,
    --------GNU Emacs Emacs is the advanced, extensible, customizable, self-documenting editor. This manual describes how to edit with Emacs and some of the ways to customize it; ...
    --------less less is a terminal pager program on Unix, Windows, and Unix-like systems used to view (but not change) the contents of a text file one screen
     
    Doxygen http://www.stack.nl/~dimitri/doxygen/
    http://www.doxygen.nl
    Doxygen is the de facto standard tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages such ...


    Gprof performance analysis tools http://www.gnu.org/manual/gprof-2.9.1/gprof.html. Gprof is a performance analysis tool for Unix applications. It used a hybrid of instrumentation and sampling[1] and was created as an extended version of the older "prof" tool. Unlike prof, gprof is capable of limited call graph collecting and printing


    GNU cflow analyzes a collection of C source files and prints a graph, charting control flow within the program.
    GNU cflow Exuberant Ctags Ctags is a programming tool that generates an index (or tag) file



    Graphviz http://www.graphviz.org/ https://en.wikipedia.org/wiki/Graphviz Graphviz (short for Graph Visualization Software)  








     

    Dynamic Tracing DTrace SystemTap OpenResty XRay stappxx toolkit AddressSanitizer

     Dynamic Tracing 

    DTrace SystemTap

     OpenResty XRay 

    stappxx 

     toolkit AddressSanitizer

     

    Dynamic Tracing DTrace SystemTap OpenResty XRay 

     

     

    https://wiki.st.com/stm32mpu/wiki/Linux_tracing,_monitoring_and_debugging

    https://www.brendangregg.com/perf.html

    https://en.wikipedia.org/wiki/DTrace

    https://en.wikipedia.org/wiki/SystemTap


    https://en.wikipedia.org/wiki/Ktrace

    of BSD Unix and Mac OS X that traces kernel interaction

    strace is a diagnostic, debugging and instructional userspace utility for Linux. It is used to monitor and tamper with interactions between processes and ...

    2.5 Code Spelunking | Systems Perfomance Advice for ... https://www.informit.com › articles › article  — ktrace. This is a standard tool on open source operating systems. The name stands for ”kernel trace.” It will give you a listing of all the ...

    2021年12月17日 星期五

    C sample code for PIC micros and Hi-Tech C usb rs232

     C sample code for PIC micros and Hi-Tech C
    https://www.microchipc.com/sourcecode/


    C sample code for PIC micros and Hi-Tech C

    Sample projects for the Microchip PIC micro series of microcontrollers, including the PIC12x, PIC16x, PIC18x, PIC24x, and dsPICx microcontrollers.

    Code is targeted at the Hi-Tech C compiler, from www.htsoft.com, the C18 or C30 compiler from www.microchip.com, or CCS C.

    We want to publish your embedded source code for the benefit on the PIC community. Send it to support@microchipc.comand I will post it on the site, together with recognition of your name and website.

        CRC.
        USB serial port for PIC18F4550.
        MMC card.
        Delay routines in C for PIC16Fx core.
        Delay routines in C for PIC18Fx core.
        UART for PIC16F87x and PIC18Fx.
        Bootloader - PIC16F876.
        Bootloader - PIC18F1320.
        Bootloader - PIC18Fx52.
        Bootloader - PIC17C4x.
        Bootloader - dsPIC (all variants).
        EEPROM.
        A/D.
        D/A.
        SPI.
        LCD.
        PIC12C509 logic replacement nitrogen filler.
        I2C.
        Multitasking and RTOS.
        17C4x bootloader.
        16F84 based pulse monitor.
        TRIAC controller
        Dallas DS1821 thermometer.
        Decimal routines.
        PIC16F84 pulse mon date/time RS232 serial port
        PIC16F84 TRIAC / IGBT 50/60Hz control.

        

        Phase Controller for 2kW heater.
        Dallas DS1821 three-pin digital thermostat.
        Gym Timer.
        LCD and keypad project.
        Heater Project - involves 1-wire routines, serial routines, a P.I.D (Proportional, Integral, Derivative) calculation, ADC, and a interrupt driven burst mode heater control.
        dsPIC30Fx "Hello World" example.
        dsPIC30Fx "RC Pulse" example.
        C driver code project for Samsung KS0713 and PIC micros.
        PIC18LF4550 with LCD and temperature sensor.
        MiniBasic example peripheral code in C, for PIC18, PIC24, PIC32. Examine the C source code to work out how to use any peripheral on a PIC18, PIC24 or PIC32. Very useful.
        Interrupt driven serial with circular FIFO for PIC16x micro.
        Tiny threads example - 1 byte per thread.
        The Dot Factory: An LCD Font and Image Generator
        Embedded PIC Programmer
        Portable LCD driver.
        SimpleRTOS. A tiny, portable multitasking OS.
        Improve your programming with the UVa tutorial.
        ... and much, much more.