dinsdag 8 maart 2011
ScaleMM: fast scaling memory manager for Delphi
Denomo: GDI handle leak check for Delphi
vrijdag 5 maart 2010
DxScene = WPF for Delphi
Een van de mooie onderdelen van .Net is WPF: hardware accelerated vector graphics. Ik zat eens te denken of zoiets ook niet mogelijk was voor Delphi. Er bestaat namelijk een open source project genaamd "GlScene": een 3D library voor OpenGL. Deze heeft echter beperkte (?) ondersteuning voor een normale GUI. Via via kwam ik bij "DxScene": deze heeft wel een uitgebreide set aan GUI controls! Hiermee kun je net als WPF mooie GUI's maken.
- VxScene: een library voor 2D vector graphics, voor normale GUI's
- DxScene: voor 3D graphics en models
- Skin en Theme manager
Het mooie is dat je deze eenvoudig kunt combineren. Zo kun je VxScene binnen DxScene gebruiken, bijvoorbeeld een 3d cubus met aan elke kant een invoerveld en een knop etc. Maar ook allerlei 3d effecten zijn mogelijk (transparancy, mirroring, particles(zoals vuur!), glow, etc). Een "cover flow" is bijvoorbeeld eenvoudig te maken:
Hardware accalerated vector graphics
Nog een mooi voorbeeld is deze applicatie die ermee gemaakt is: 3D Image Commander
Design time editor
In tegenstelling tot WPF kun je eenvoudig designtime WYSIWYG de GUI samenstellen. Niet zo RAD als je normaal met Delphi gewend bent, maar je hoeft in ieder geval niet zelf een XAML samen te stellen of via een externe tool als expression blend
Data Binding
Net als WPF kent het ook data binding: je kunt bijvoorbeeld de X-as rotatie koppelen aan een animatie component (lineair of een "path")
3d import
Omdat 3d objecten snel complex kunnen worden, is het handig om te weten dat je allerlei 3d formaten kunt importen: 3d studio max (.3ds), Half-life, Quake en Doom 3 models, maar ook SVG en en WPF Mesh models. Zie hier een demo exe.
Newton: physics engine
Nog leuker wordt het als je het combineert met een "physics engine", oftewel natuurkundige berekening! Een leuke demo hiervoor is de klassieker "Breakout" in 3d met bots berekeningen (demo exe):
Multi platform, OpenGl
Zoals de naam al doet vermoeden, gebruikt DxScene op Windows DirectX. Maar het is echter ook multi platform: je kunt met FPC ook native Linux en MacOS X executables maken! Het kan dus ook overweg met OpenGl. Daarnaast kun je ook voor softwarematige versnelling kiezen, maar dit is uiteraard wel CPU intensief en trager.
Commercieel
Enige nadeel is dat het commercieel is, al is 100 euro niet duur voor zoiets moois.
Links
- Een overzicht van allerlei screenshots
- Alle demo's downloaden in 1 zip
- download pagina (oa trial)
Conclusie
Het is natuurlijk niet hetzelfde als WPF, maar je kunt er wel erg mooie dingen mee maken, die ook nog eens cross-platform zijn! En je hebt alles in 1 exe zitten: geen .Net 3.5 installatie oid nodig :-)
vrijdag 11 december 2009
"External exception C0000006" bij app op WLAN
Als je een applicatie maakt dat moet draaien via een WLAN (Wifi), pas dan even op en lees het onderstaande door:
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP}
woensdag 9 december 2009
Windows tijd: in stapjes van 15ms!
Soms wordt je onaangenaam verrast: je meet de tijd van alle SQL queries in je programma met "MillisecondsBetween" en je krijgt als resultaat: 0, 0, 0, en 15ms...
Thread time slices
Consequenties
De default time slice van 15ms heeft nogal wat consequenties voor het programmeren: zo gaat een "Sleep(1)" niet 1ms wachten, maar 10 - 15ms! (afhankelijk van andere threads etc). Maar ook andere tijd functies zoals "GetTickCount", "Now" (Delphi) of "GetLocalTime" (Windows) werken in stapjes van 15ms!
- hardware timer gebruiken: met QueryPerformanceFrequency + QueryPerformanceCounter kun je met micro en nano secondes werken!
- kortere "time slice" instellen met "timeBeginPeriod", bijv een time slice van 1ms met "timeBeginPeriod(1)". Dit heeft echter wel nadelen: veel meer context switches, dus meer overhead!
OldNow := KOLDetours.InterceptCreate(@Now, @NowExact);
vrijdag 23 oktober 2009
Gratis internetbellen!
maandag 7 september 2009
Delphi 2010, Coderage + SDN
Delphi 2010 released!
Vlak na de preview van Delphi 2010 (zie mijn vorige post), verscheen al de RTM versie en is het officieel released. Ondertussen zijn er verschillende interessante blogs verschenen, waarbij verschillende verbeteringen verder uitgelegd worden. Ik zal niet alle verbeteringen bespreken, maar een paar uitlichten. (P.S: zie ook de complete "reviewers" guide!)
Uitgebreide online wiki help (!)
Na de Delphi Prism Wiki is de hele RAD Studio via een mooie online wiki te doorzoeken. Bijvoorbeeld voor het complete overzicht van alle verbeteringen in de 2010 versie:
Voor een handig beginpunt:
Maar ook de complete Delphi Language Guide is beschikbaar, evenals bijvoorbeeld de VCL, etc.
Class constructors
Een mooie uitbreiding (wat nog niet zo nadrukkelijk genoemd is), is de ondersteuning van Class Constructors (net als .Net)
Een voorbeeld hoe je het kunt gebruiken:
RTTI (a la .Net reflection)
Verder is de RTTI sterk verbeterd, meer object georiënteerd zoals .Net Reflection werkt, zonder allerlei pointers, records, etc.
Class attributes
Zoals je ziet, zijn in D2010 verschillende .Net technieken verwerkt. Nu heeft Delphi ook ondersteuning voor class attributes:
TStopwatch
Nog een kleine maar handige uitbreiding is de TStopwacht, voor het meten van tijden (hoe lang een stuk code duurt etc):
Andere handigheidjes:
Datasnap (multitier):
- Datasnap (voor Multitier architecturen) is sterk verbeterd:
- Datasnap met JSon types
IDE & Source Code:
DBX: Firebird + alle sourcecode (!)
Wat ik zelf erg mooi vind, is de native ondersteuning van de open source database Firebird (compatible (?) met Interbase). Maar ook dat de broncode van alle drivers meegeleverd wordt! Niet alleen van DBX, maar ook (eindelijk!) van Midas.dll (oa bekend van TClientdataset).
Extra's
De eerste extra functies en fixes van "andy" zijn al verschenen voor D2010:
TPL (Task Parallel Library) voor Delphi (!)
Laatst is er een interessante dotNed meeting geweest bij DTS/4DotNet over TPL voor .Net. Gelukkig bestaat voor Delphi zoiets dergelijks al een poosje:
- AsyncCalls (eenvoudig maar goed)
- OmniThreadLibrary (advanced: uitgebreider maar iets lastiger)
CodeRage 4 & SDN Conference
- Volgende week start de gratis online CodeRage 4 Virtual Developer’s Conference, met veel (!) interresante sessies.
- Ook interresant wordt de volgende SDN Conference dit jaar. Met veel Delphi sessies (volgens mij zijn een aantal dezelfde als bij CodeRage 4 :-) ).
