Home | 10% - Off! | New | VCL | DB-Aware | Tools | DB Tools | Apps | Samples | .NET | .NET DB-Aware | .NET Tools | .NET Samples | Kylix | Docs | Bold | Discussion | Sites | Tips | DPFL | Authors | Uploads | RSS | Store | Advertisement | About

Mauro Venturini
Send E.mail to this Author

Companies News:

FastReport FMX released
FastReport FMX released

Report generator FastReport FMX is the first multiplatform solution for including Business Intelligence into software based on Embarcadero FireMonkey IDE (Delphi for MS Windows and Apple Mac OS X).

Compatible with Embarcadero RAD Studio XE2 (FireMonkey) and XE3 (FireMonkey 2).

Visual report designer is available now on both MS Windows and on MAC OS X!

Full sources.

Get more info here

Want to know more ?

 

Author Products

Total 24 products

.NET > Miscellaneous > Other
Aspects in .NET and Delphi v.1.3FWS 166 k 19 Apr 2005
By Mauro Venturini. There are a new buzzword in software: Aspects. It seems Aspects will be the next big thing after objects. Therefore, papers flocks, see for examples: The Sarathy paper was stimulating but the sample used C#. As whatever you can do in C# you can do in Delphi, only better, author rewrite the sample. Then he added something to pre method join-points and class sinks: post method join-points, object sinks, some configurability, all in a small assembly.
 
Fully functional
Source: Included
Exe-Demo Included
Download: D2005  

.NET > System > Threads
BackgroundWorker V1.1FWS 39 k 20 Jun 2005
By Mauro Venturini. Windows Forms applications often require some sort of asynchronous invocation option. .NET 2.0 provides the BackgroundWorker component to facilitate easy asynchronous invocation with Windows Forms.

Waiting for it this is a Delphi.NET BackgroundWorker component implementation based on .NET 1.1.
 
Fully functional
Source: Included
Exe-Demo Included

Download: D2005  

Components > Forms > Effects
BorderExtender v.1.1FWS 57 k 10 Dec 2004
By Mauro Venturini. WinForms components normally only have FixedSingle, Fixed3D and none border styles. The results are very out of fashion forms, expecially with Win 2K.

The funny thing is that .NET WinForms provides a class (ControlPaint) that can draw nice looking borders. Why they did not used it for the components is a mistery. Anyway, using an extender provider something can be done (see demo project and form image).

Unfortunately, different components behave differently (combo boxes do not even have border style property!) so some experimenting is required to obtain better looking forms.
 
Fully functional
Source: Included
Exe-Demo Included

Download: D2005  

Developer Tools > Developer Tools > Other
Clearer v.1.10FWS 376 k 28 Jan 2005
By Mauro Venturini. History is a great new feature of Delphi 2005. There is only a little drawback: after project completion getting rid of all the history files is a bit annoying. Clear makes this more easy.
It also takes care of .NET local storage accumulation due to version changes.

Warning: this is a mass deletion program, use with care and under your responsibility.
 
Fully functional
Source: Included

Download: D2005  

Developer Tools > Other Tools > IDE Enhancements
DCodeInsight v.2.0FWS 139 k 11 Dec 2005
By Mauro Venturini. Code Insight is a nice feature indeed. Unfortunately, it sometimes becomes a bit too intrusive: a tooltip flash when you stop just to think, that little red wiggles that keeps flashing when you type, etc.

DCodeInsight add menu items and shortcuts to enable and disable Code Insight features at will. Moreover it can also enable selected Code Insight features automatically on compilation errors.
 
Fully functional
Source: Included

Download: D2006  

Components > System > Instance
Deriver v.1.0FWS 15 k 24 Feb 1997
By Mauro Venturini. Polymorphic Creation of Instances, that is a way to create an instance whose class type depends on run time parameters.
 
Fully functional
Source: Included
Download: D1 D2  

.NET Tools > Developer Tools > Other
DILMerge v.4.1FWS 1986 k 17 Dec 2005
By Mauro Venturini. Delphi tradition was to generate a single executable but when strong reasons requested separated run time packages.

With .NET things are different: a typical .NET application consists of an executable assembly, a bunch of assemblies in the program directory*, and a bunch of assemblies in the GAC.

Now, ok for the GAC, we have been used to system DLLs for a long time, but that DLLs around the executable look so VBish...

Really MS has a assembly linker, ILMerge. ILMerge is a command line tool and its use is a bit akward, so I made a Delphi oriented GUI for it: DILMerge.

DILMerge get a BDS Delphi or C# project, extract and show a list of assembly references and suggest which merge together. If necessary the list can be adjusted or manually constructed and the ILMerge options tweaked before merging the assemblies and generating a good old single file executable.
 
Fully functional
Source: Included

Download: D2005 D2006  

Developer Tools > Other Tools > IDE Enhancements
Extended Add to Project dialog v.4.1FWS 325 k 17 Dec 2005
By Mauro Venturini. When a project has many files the IDE Project Manager dialogs may be quite cumbersome. AddMany introduces multiselection dialogs that make adding and opening units very fast and easy.
 
Fully functional
Source: Included
Download: D2006  

Applications in Delphi and BCB > Files and Drives > Other
E_P FW 287 k 20 Oct 1999
By Mauro Venturini. The old Windows 3.x File Manager was polite enough to ask if you really wanted to do that 1 GByte directory tree move you just happened to start with a mouse drag. Some genius (!?) at Microsoft decided that this was a useless function and removed it from the Windows Explorer of Windows 95 and NT 4.0, even on the folder tree view (left panel). This small utility sits on the task bar and optionally disable mouse drag on the folder tree view.
 
Fully functional
Source: None
Download: NT4 W95 W98  

.NET > System > Threads
Multicast delegate asynchronous extensions v.1.2FWS 52 k 21 Jul 2005
By Mauro Venturini. Multicast delegates are a powerful idea but...
  • with normal invocation all the targets are executed sequentially before returning control to the caller that is good only if they are short and fast;
  • BeginInvoke provides asynchronous execution but supports unicast delegate only;
  • no synchronisation of any kind is done on target execution;
  • This delegate helper class greatly extends their asynchronous call capabilities.

 
Fully functional
Source: Included
Exe-Demo Included
Download: D2005  

Developer Tools > Other Tools > IDE Enhancements
OptionsSets v.5.0FWS 229 k 11 Dec 2005
By Mauro Venturini. In Delphi 2006 it is possible to have different project options sets only for C# project and C++. This seems unfair so this OTA plugin introduce project options sets for Delphi proper (Pascal) projects.
 
Fully functional
Source: Included
Download: D2006  

.NET > Tools > Other
OverRuler v.1.1FNCS 115 k 20 Aug 2005
By Mauro Venturini. There are many 'screen ruler' application around. Some of them support transparency. OverRuler is so transparent that the mouse can go through it and interact with the application under it, that is OverRuler window is not a filled rectangle but a spidery set of lines superimposed to the background. Moreover, OverRuler can use any number of cursors/guides and can autoadapt to the extents of any window on the screen.
 
Fully functional
Source: Included
Download: D2005  

Components > System > Threads
ParamSync v.1.2FWS 9 k 24 Feb 2003
By Mauro Venturini. The TThread.Synchronize causes a method to be executed using the main thread, thereby avoiding multi-thread conflicts (expecially on the VCL). Unfortunately it only supports parameterless methods. This unit provides techniques to extend this to methods with parameters.
  • Any method of a thread derived from TParamThread can be synchronized to the main thread using ParamSynchronize.
  • Any method executed inside any thread can be synchronized to the main thread using the Execute method of TParamSynchronize. It can be accessed directly (it is a class method) or creating a TParamSynchronize object (a singleton).
  • With some limitation about parameter types a thread derived from TParamThread can launch one of its method using ParamAsynchronize and go on without waiting for its completion.
  • With some limitation about parameter types a any thread can launch any method using the Execute method of TParamAsynchronize and go on without waiting for its completion.
In the last two cases the method execution is delegated to a server thread and the execution can be synchronized or not to the main thread.
 
Fully functional
Source: Included
Download: D7  

Developer Tools > Code > Code Generators
PrefixIt v.5.0FWS 1261 k 06 Feb 2005
By Mauro Venturini. .NET framework is nice indeed. I like it, and I am a Delphi "integralist".

Unfortunately, someone in MS decided that interface name prefix 'I' is good but class name prefix ('T' or 'C') it is not. This has unpleasant consequences.

1 - It decreases code clarity, e.g. is that a class or an instance reference?

2 - It makes often necessary to use the full type name because of clashing with some property, e.g. every form has a DialogResult property so if you want to test for a DialogResult type value you end up writing "if AForm.DialogResult = System.Windows.Form.DialogResult.OK then"

3 - It makes instance naming a pain, e.g. as I can not call it Graphics should I call it AGraphics, MyGraphics, _Graphics, argh! C# chaps have a case-sensitive solution: they uncapitalize the instance names, e.g. Graphics graphics = new Graphics; Very readable indeed! Not to mention the problem if the instance is visible outside the assembly (.NET in general is NOT case-sensitive).

Delphi would have the solution: type equivalence, e.g.

type

TGraphics = System.Drawing.Graphics;

var

Graphics: TGraphics;

but manually rename all framework types is not an option.

Fortunately, using reflection it is quite easy to develop a tool that inspects one or more assemblies and generate units with all the required type definitions. These "prefix units" can be used directly or, better, included in one or more compile only "prefix packages".

These type definition bunches are also a nice place where to put some helper types, especially dynamic arrays of base types that are necessary for object casting due to a quirk of Delphi sintax: casting directly to a dynamic array does not compile. e.g.

type

TStringArray = array of string;

var

e: TDragEventArgs

Drops: TStringArray;

//This compiles

Drops := e.Data.GetData(TDataFormats.FileDrop) as TStringArray;

//This does not

Drops := e.Data.GetData(TDataFormats.FileDrop) as array of string;
 
Fully functional
Source: Included
Exe-Demo Included

Download: D2005  

Developer Tools > Other Tools > IDE Enhancements
PUses v.4.0FWS 303 k 11 Dec 2005
By Mauro Venturini. PUses (now D2006 ready) implements orderly reformatting of uses clauses and search for namespaces that implement a given type.

The reformatting includes rewriting the unit/namespace names one per line and sorting them and optionally adding the prefix unit (generated using PrefiIt.) names.

This makes extremely easy the use of prefix units generate by PrefixIt. PrefixIt. can be found at Borland Code Central.
 
Fully functional
Source: Included

Download: D2006  

Developer Tools > Other Tools > IDE Enhancements
Regionalize v.3.0FWS 127 k 11 Dec 2005
By Mauro Venturini. Nick Hodges, self appealed "Delphi Bigot", complained time ago about ’Ten Annoyances in Delphi 2005’ at CodeFez.

I, probably, more a Delphi Bigot than he is, decided then that at least one of them (no ’Make Region of Selected code’ option) could be easily removed. Now Delphi 2006 has the new and nice templates that can surround code but Regionalize is still more flexible.
 
Fully functional
Source: Included
Exe-Demo Included

Download: D2006  

Applications in Delphi and BCB > Communications > Ports and Modems
SMPManager v.1.0FW 194 k 16 May 1998
By Mauro Venturini. SMPManager manages the self-mode of the US Robotics Sportster Message Plus modem as you did with your old answering machine. You have to revert to the original (and cumbersome) software package only to view received faxes and for other more complex functions.
 
Fully functional
Source: None
Download: NT4 W95  

.NET > Miscellaneous > Other
SystemT v.1.0FW 750 k 09 Feb 2005
By Mauro Venturini. .NET framework is nice indeed. I like it, and I am a Delphi "integralist".

Unfortunately, someone in MS decided that interface name prefix 'I' is good but class name prefix ('T' or 'C') it is not. This has unpleasant consequences.

  • It decreases code clarity, e.g. is that a class or an instance reference?
  • It makes often necessary to use the full type name because of clashing with some property, e.g. every form has a DialogResult property so if you want to test for a DialogResult type value you end up writing "if AForm.DialogResult = System.Windows.Form.DialogResult.OK then"
  • It makes instance naming a pain, e.g. as I can not call it Graphics should I call it AGraphics, MyGraphics, _Graphics, argh! C# chaps have a case-sensitive solution: they uncapitalize the instance names, e.g. Graphics graphics = new Graphics; Very readable indeed! Not to mention the problem if the instance is visible outside the assembly (.NET in general is NOT case-sensitive).
Delphi has the solution: type equivalence, e.g.
type
TGraphics = System.Drawing.Graphics;

var
Graphics: TGraphics;

The type equivalence definitions for the .NET framework can be generated automatically using a tool as PrefixIt! and a package built from them: SystemT.dll.

Now to use inside your application or package these new names for the .NET framework types you have to:

  • Add a reference to SystemT.dll package removing both the "Copy Local" and the "Link in Delphi Units" options;
  • For every namespace "N" that you want to use inside a unit add "N" AND "N".T to the uses clause.
That's all.
 
Fully functional
Source: None
Download: D2005  

Components > Files and Drives > Log Files
TEventLog v.1.1FWS 162 k 17 Aug 1999
By Mauro Venturini. Any decent Windows NT/2000 application should use event logging. As usual Windows API are a bit intimidating but after this component there are no excuses. Just drop it and use Add method.
 
Fully functional
Source: Included
Download: D4  

Components > System > Apps Communications
TMessage Socket v.1.1FWS 201 k 05 Jan 1998
By Mauro Venturini. This component wrap the wm_CopyData message usage. So sending and posting messages between processes becames much more easier.
 
Fully functional
Source: Included
Exe-Demo Included
Download: D2  

Applications in Delphi and BCB > Desktop > Enhancements
TrayAreaInjector v.1.3FWS 557 k 24 May 2005
By Mauro Venturini. Using TrayAreaInjector a client application can inject into the Windows Task Bar a panel similar to the tray area and then dynamically add, remove and modify subpanels inside it. Every subpanel contains a text caption and an image from a list. TrayAreaInjector was developed to offer an immediate status feedback from some Open Tools plugins but can be used for any similar purpose.
 
Fully functional
Source: Included
Download: NT4 W2K W2K3 XP  

Components > Labels > Enhanced Labels
TTrimmingLabel v.1.0FWS 2 k 02 Jan 2005
By Mauro Venturini. TTrimmingLabel is a Windows Forms label that can trim the Text string to adapt it to the available Width. The trimming is controlled by the Trimming property (of type System.Windows.Forms.StringTrimming).
 
Fully functional
Source: Included
Download: D2005  

.NET > System > Other
UnhandledExceptionManager for .NET v.2.3FWS 262 k 02 Jun 2006
By Mauro Venturini. When a .NET application hits an unhandled exception the default behaviour is to show a very poor dialog. Therefore, it is (or should be) common practice to hook UnhandledException event of the current AppDomain and ThreadException event of Application.

Unfortunately, there are security restrictions on these hookings that prevent their direct use inside application that will be run without full trust (and even Local Intranet group does NOT have full trust).

A solution is to delegate the hookings to a full trusted assembly inside the GAC and reference it. UnhandledExceptionManager is an assembly that implements the technique. Version 2 supports also delayed binding usage that reverts to reduced functionality when UnhandledExceptionManager assembly is missing (and in doing so evidences the problem).
 
Fully functional
Source: Included

Download: D2006  

.NET Tools > Code > Code Generators
XSGen v.1.0FNC 260 k 23 Sep 2005
By Mauro Venturini. .NET XmlSerializer is a nice class: it can serialize and deserialize almost anything almost anyway, and the serialization is quite fast too. Unfortunately, no lunch is free: during the first constructor invocation for a target type XmlSerializer create and compiles a C# assembly with the serialization code tailored to the target type. That's a lot of overhead, both in memory and execution time, that happens every time your application runs. Microsoft recognised the problem and .NET 2.0 includes an utility (SGen) that executes offline steps 1, 2 and 3 and produces the serialization / deserialization assembly. But .NET 2.0 is not here yet and SGen is a not very friendly command line utility. Here comes XSGen that produces offline the serialization / deserialization assembly required for a given target type, works now with .NET 1.1 and integrates with the Delphi 2005 IDE to make the process as easy as possible.
 
Fully functional
Source: None
Download: D2005  


 


News from our Sponsors

  Problem Solving with Delphi
This title includes a book and a CD. The purpose of the book is to use Delphi as a vehicle to introduce some fundamental algorithms and to illustrate several mathematical and problem-solving techniques. This book is therefore intended to be more of a reference for problem-solving, with the solution expressed in Delphi. It introduces a somewhat eclectic collection of material, much of which will not be found in a typical book on Pascal or Delphi. Many of the topics have been used by the author over a period of about ten years at Bond University, Australia in various subjects from 1993 to 2003. Much of the work was connected with a data structures subject (second programming course) conducted variously in MODULA-2, Oberon and Delphi, at Bond University, however there is considerable other, more recent material, e.g., a chapter on Sudoku. more... more...


  Easy data compression solution!
Easy Compression Library is a very easy-to-use replacement of TFileStream, TMemoryStream and other TStream descendants to their analogues with compression/decompression and encryption. Compression is transparent, all the methods, properties and behavior of TFileStream and TMemoryStream are supported, so it is very simple to replace them in the application code. Save up to $500 by ordering at Torry's Showcase! more... more...

Advertising on Torry's Delphi Pages

 

Sort order
Title
Modification
Publication
Quick Search
Exact phrase
Title
Description


Advertising on Torry's Delphi Pages

www.anyplace-control.com

Guest Book
Guest Book

Subscribe to news in RSS 2.0 format!Subscribe to news in RSS 2.0 format!
Bookmark and Share
Up | Home | 10% - Off! | New | VCL | DB-Aware | Tools | DB Tools | Apps | Samples | .NET | .NET DB-Aware | .NET Tools | .NET Samples | Kylix | Docs | Bold | Discussion | Sites | Tips | DPFL | Authors | Uploads | RSS | Store | Advertisement | About
Copyright © Torry's Delphi Pages Torry's Delphi Pages Maintained by Torry Team. Notes? Comments? Feel free to send...

The Ultimate Source of Object Pascal and Delphi Programming Knowledge.

Copyright © 1996-2013
All trademarks are the sole property of their respective owners
Privacy Policy