Mauro Venturini

Send e-mail to this Author

  • Slevu 26% na výjové nástroje Embarcadero
  • Slevu 15% na produkty společnosti Devart
  • Slevu 26% na nástroj Deleaker
  • Author Products

    Total 17 products

    Aspects in .NET and Delphi v.1.3

    .NET > Miscellaneous > Other

    By Mauro Venturini.

    Freeware + source 19 Apr 2005

    Description

    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.

    Informations

    • Status: Fully functional
    • Source: Included
    • Exe demo: included
    • Size: 166kB

    Platforms: D2005

    BackgroundWorker V1.1

    .NET > System > Threads

    By Mauro Venturini.

    Freeware + source 20 Jun 2005

    Description

    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.

    Informations

    • Status: Fully functional
    • Source: Included
    • Exe demo: included
    • Size: 39kB

    Platforms: D2005

    BorderExtender v.1.1

    Components > Forms > Effects

    By Mauro Venturini.

    Freeware + source 10 Dec 2004

    Description

    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.

    Informations

    • Status: Fully functional
    • Source: Included
    • Exe demo: included
    • Size: 57kB

    Platforms: D2005

    Deriver v.1.0

    Components > System > Instance

    By Mauro Venturini.

    Freeware + source 24 Feb 1997

    Description

    Polymorphic Creation of Instances, that is a way to create an instance whose class type depends on run time parameters.

    Informations

    • Status: Fully functional
    • Source: Included
    • Size: 15kB

    Platforms: D1, D2

    DILMerge v.4.1

    .NET Tools > Developer Tools > Other

    By Mauro Venturini.

    Freeware + source 17 Dec 2005

    Description

    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.

    Informations

    • Status: Fully functional
    • Source: Included
    • Size: 1 986kB

    Platforms: D2005, D2006

    E_P

    Applications in Delphi and BCB > Files and Drives > Other

    By Mauro Venturini.

    Freeware 20 Oct 1999

    Description

    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.

    Informations

    • Status: Fully functional
    • Source: None
    • Size: 287kB

    Platforms: NT4, W95, W98,

    Multicast delegate asynchronous extensions v.1.2

    .NET > System > Threads

    By Mauro Venturini.

    Freeware + source 21 Jul 2005

    Description

    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.

    Informations

    • Status: Fully functional
    • Source: Included
    • Exe demo: included
    • Size: 52kB

    Platforms: D2005

    OverRuler v.1.1

    .NET > Tools > Other

    By Mauro Venturini.

    Freeware 20 Aug 2005

    Description

    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.

    Informations

    • Status: Fully functional
    • Source: Included
    • Size: 115kB

    Platforms: D2005

    ParamSync v.1.2

    Components > System > Threads

    By Mauro Venturini.

    Freeware + source 24 Feb 2003

    Description

    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.

    Informations

    • Status: Fully functional
    • Source: Included
    • Size: 9kB

    Platforms: D7

    SMPManager v.1.0

    Applications in Delphi and BCB > Communications > Ports and Modems

    By Mauro Venturini.

    Freeware 16 May 1998

    Description

    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.

    Informations

    • Status: Fully functional
    • Source: None
    • Size: 194kB

    Platforms: NT4, W95,

    SystemT v.1.0

    .NET > Miscellaneous > Other

    By Mauro Venturini.

    Freeware 09 Feb 2005

    Description

    .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.

    Informations

    • Status: Fully functional
    • Source: None
    • Size: 750kB

    Platforms: D2005

    TEventLog v.1.1

    Components > Files and Drives > Log Files

    By Mauro Venturini.

    Freeware + source 17 Aug 1999

    Description

    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.

    Informations

    • Status: Fully functional
    • Source: Included
    • Size: 162kB

    Platforms: D4

    TMessage Socket v.1.1

    Components > System > Apps Communications

    By Mauro Venturini.

    Freeware + source 05 Jan 1998

    Description

    This component wrap the wm_CopyData message usage. So sending and posting messages between processes becames much more easier.

    Informations

    • Status: Fully functional
    • Source: Included
    • Exe demo: included
    • Size: 201kB

    Platforms: D2

    TrayAreaInjector v.1.3

    Applications in Delphi and BCB > Desktop > Enhancements

    By Mauro Venturini.

    Freeware + source 24 May 2005

    Description

    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.

    Informations

    • Status: Fully functional
    • Source: Included
    • Size: 557kB

    Platforms: NT4, W2K, W2K3, XP,

    TTrimmingLabel v.1.0

    Components > Labels > Enhanced Labels

    By Mauro Venturini.

    Freeware + source 02 Jan 2005

    Description

    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).

    Informations

    • Status: Fully functional
    • Source: Included
    • Size: 2kB

    Platforms: D2005

    UnhandledExceptionManager for .NET v.2.3

    .NET > System > Other

    By Mauro Venturini.

    Freeware + source 02 Jun 2006

    Description

    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).

    Informations

    • Status: Fully functional
    • Source: Included
    • Size: 262kB

    Platforms: D2006

    XSGen v.1.0

    .NET Tools > Code > Code Generators

    By Mauro Venturini.

    Freeware 23 Sep 2005

    Description

    .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.

    Informations

    • Status: Fully functional
    • Source: None
    • Size: 260kB

    Platforms: D2005