AHM Component Serie 1.0 for WIN'95
About it all 
Well here we are again ! Still on the go to get you those Components I promised. I have now
rewritten them for Windows 95 and Delphi 2.0 ! It was not as easy as I originally thought but here 
they are. After going to Delphi 2.0 I thought it would'nt be a problem to actually get them to just recompile but that did not work quiet so well. I went on to one error after another due to functions and procedures which have changed under Delphi 2.0. I hope Borland is not going to change them so soon again because it was quiet a hastle to rewrite them ! From the 40 Components I have only got 28 left because the other 12 need to be either completely rewritten or are not useful anymore under Windows 95 and Delphi 2.0. So I have added another 2 which I thought would go quiet well with this Series and here are 30 Components for Delphi 2.0 !

How to Install

Go into Delphi
  Choose Component/Install Components from the menu and choose add Components
  Switch the Type to *.dcu and select ahmreg.dcu from directory WIN95-1
  Press ok to compile 

Troubleshooting

After the E-Mail I recieved on troubles people had installing here is just a little help
If you install collections like this one the chance is big the one or more components you 
previously added have similar names. Please remove all components that do not come with delphi from your Comlib32.dcl (Library) then add these two files as indicated above !
Recompile and add the others back one by one and you will find the ones giving the problem
you can then decide which one is easier or nicer for you to use !

About Series 1.0 and 2.0 for Windows 3.1

Well I will still send them out once you register but since it is not quiet useful to have Delphi 1.0
and 2.0 installed I will not support them any longer ! If there are big problems with something and you are a registered user I will however support you !
Thanks by the way to all the people who have registered these Components ! I am looking for someone from greenland who had registered with me and recieved the Components ! I want to send you the new Version of them but I can not get your E-Mail Address since I lost yours when I had a harddisk crash a little while ago ! If you could just let me know again what it is or send some mail I would appreciate your understanding !


About registering

The price for this whole Series is by $240 due to the work and time spend on it ! This is now $7 per Component or still if you want them seperatly $15 per Component
The only way to do this is to send a Money order by mail to 
                          Alexander Mehlhorn 
                          POBox 11037
                          Verwoerdburgstad
                          Hennopsmeer
                          0046
                          South Africa
If you come from a different country than the USA please make sure the Money Order contains at least something equal to the amount indicated ! 
Now once I recieve a money Order you should also supply me with your E-Mail Address. This Address will be used by me to send out the registered Version straight to you ! This version will be supported which means whenever there are upgrades you will recieve it and when you have problems they will be addressed as soon as possible. The Source Code will not go out as of yet 
but any codesnippets you require will be posted if you are a registered User ! Further will you be supplied with any Information regarding new releases and other interesting things !

My E-Mail is :   
      ahm@paradigm.co.za

Freeware until 11/09/96

Well what the heck is that ? Let me explain ! This Software is freeware until the 11/09/96 which means until then you can use the Components free of charge you can distribute them and do whatever you like and enjoy ! After that date you will have to register it ! That means even if you dont want to it will simply start reminding you to do exactly that ! Sorry guys it did take time and money to develop them ! Now if you have trouble because its time now do the following :
   Contact me to register
   Tell your enduser to change his system time 
    Wait until reply - I will be quick 

About me and us 

Well my name is Alexander Mehlhorn as you would have figured out by now and I am a 4GL developer at a firm called Paradigm in SA ! Actually I am born in Germany/Leipzig, grew up there and came here about 5 Years ago .Further  I am busy with my studies at Unisa and in my private life I enjoy playing pool if  not just busy with developing ! Well I hope thats enough about me to cut it short ! If you want to know more contact me via E-Mail .

Components

Please read the following sections about the components, if this help isnt enough contact me at 
  ahm@paradigm.co.za

Smile

Smile !  It makes no Enemies and Life easier !

   Another one of those Delphi Freaks out there
      - Alexander Mehlhorn - a german and currently in South Africa

AHM Component Series Win95 1.0

This Version is a Upgrade !!!
This version is a upgrade Bugs have been fixed in many components 
and new properties were added where neccessary, please keep in mind that that might change   exisisting Software developed by you !

Thank you
      - AHM -

TStringholder

Used to hold a number of strings
Property Items - the actual strings

TJokeHolder
 Used to hold a number of jokes and it is holding some by default
Property 
   Items - the actual jokes
   
Functions 
    Getany : String; returns anyone of the jokes to the enduser
    getone(which : Integer) : String; returns a specific one

TCheckbox3d

Borland Checkboxes with the enablement for 3D Captions

TRadioButton3d

Borland 7.0 Radiobuttons with the enablement for 3D Captions

TColorDice

A Colored Dice play around a bit and you should have fun

Properties
    Hold - decides wheter or not the Dice can be rolled by calling roll;
    Holdcolor - the color the Dice will be in when on hold
Procedures 
    Roll; -  will roll the dice 

TTileBackground

Assign a bitmap and see what you can do ! This Component will tile the Bitmap in the Background

TMsgBox
 A MsgBox Component, have a bit of fun in Designtime and eventually use
Procedure Execute in runtime, the Properties you should be able to understand;

TMsDlg
 A MsgDlg Component, have a bit of fun in Designtime and eventually use
Procedure Execute in runtime, the Properties you should be able to understand;


TFileListCopy

Drop on 2 TFilelistboxes and put a button in the middle or whatever now assign Tfilelistcopy to it
and whopalla when you call execute from somewhere it will copy !

TFileCopy

Similar as TFilelistcopy just it copies by itself when you call execute from the file to the file

TAccess

A Dialog asking for a specific AccessCode which is hardcoded in the program
Procedure Execute will do the trick. If this isnt what you looking for TPassworddlg (Serie 2) should do it !

TTrialrun

Just pop it onto your form call execute from somewhere and assign the OnExpired event and it should to the trick of expiring on the specified date.

TOwnership

One useless component of storing ownership Info.

TDBSearchform

A Searchform for searching for specific entries in your data !
It uses the keyfields assigned with the TTable Component ( make sure you have keyfields otherwise no search is possible )
Properties
   TTableToSearch : TTable Assignment;
   VisibleFields :
                      - before the comma : List of all Fields which will show on the Searchform
				     You can take some out if you dont want them
                      - after the Comma : the fieldname which will show as heading will be assigned (You                                                     				   can change this and it will show on the Dialog
  
 Procedure Execute will call it

 Example would be to create a form displaying some table in a DBGRID. Now you call the Dialog in the ondblclickevent of the Grid and whops it will show the found record on exit ! Play around and if you have certain questions please contact me via E-Mail and I will answer them . This is what the call a generic lookup which gives you the ability to look for any record in you data on any type of table ! If you have Ideas let me know and I just might build them in ! but remember I am trying to keep it useable on any type of table with any no. of fields.

TTimeTrigger

A Time Trigger wich will trigger something at a specific time and /or/or not on a specific Date
Events
  OnNewdate - enables you to refresh a label (or whatever) displaying the currentdate
  OnNewTime - enables you to refresh a label (or whatever) displaying the currenttime
  OnTrigger - that coding gets fired at the specific time
Properties
  Checkfortrigger - Only if set to true the actual coding gets fired
  CurrentDate/Time - explains itself
  TriggerDate/Time - you must supply when coding gets fired if date is empty then it means every Day
TFillBackground

Another one of those Gradientfill Components ( looking for something different ? Try TSpectral in Serie 2)
  
TNavigationform

Now here is another difficult to explain one. 
Step no.1 Assign the Table you want to navigate from in Table
Step no.2 Execute it from somewhere and it will popup a standalone dialog which is not on your
Form enableing you to to the navigations.
Step no.3 Fill in OnFind Event for the Findbutton press ( you could execute TDBSearchform here)
Step no.4 Fill in all other event depending on what you want to do here !

I hope this gives you an Idea. I'am not a good guy to explain so if you have specific questions please E-mail me ! I will be glad to answer them !
 
TPasswordDlg
Used to display a PasswordDialog

Events:
   Afterretries is called after the number of turns on the password are taken.
   OnCancel - called when CancelButton is pressed
   OnOk - called when OkButton is pressed
   OnRightPassword - called when the right password is entered
   Onwrong Password - called when the worng password is entered

Properties :
   ButtonStyle - Choose between Win95 and Win31 or autodetect
   Dialogcaption - Displayed in the Formheader
   EditCaption - Diplayed above the edit control where the user will enter the Password
   Fonts - Type of Fonts used on Dialog
   GlyphCancel and GlyphOk - used for the Glyphs on the Buttons
   NoOf Retries - Number of times the user is allowed to re-enter the password before
                         Event Afterretry kicks in or the process continues
   Password - the actual Password
   Passwordchar - The Type of character used for the Password
   Scramble - Scrambles the Password into unreadable characters (good for reading and writing to                                            Inifiles
   ShowMeNow will display you the passwordform to beable to display the Look of the form in designtime
   Sound - Sound it makes when the form gets called
   
Procedures & Functions :
   Execute - Displays the Passworddialog in Runtime
   
TTipTrickDlg
Used to display a TipTrickDialog similar to the on in Word

Events:
   OnCheckClick is called when the user clicks on the Checkbox
   OnCustom1 - called when First Custom Button  is pressed
   OnCustom2 - called when Second Custom Button  is pressed
   OnOk - called when OkButton is pressed
   OnNext - called when the Next Button is pressed

Properties :
   Custom1Bitbn - Settings for the First Custom Button
   Custom2Bitbn - Settings for the Second Custom Button
   DidYouKnow - Heading for the Tips
   Fonts - Type of Fonts used on Dialog
   NextTipBitbtn - Settings for the Next Tip Button
   OkBitbtn -  Settings for the Ok Button
   SetupCheckBox - Settings for the ckeckbox including the checked property
   ShowMeNow - executes the Dialog in DesignTime
   TipTrickDlgCaption - Caption Title of the Dialog
   Tips - the actual Tips which appear in the Dialog when the user pops it up or goes next

Procedure 
   Execute - Displays the Dialog in Runtime
  

TInientry
Used to read and write an entry to a section in an existing or nonexisting Inifile

Events:
   OnError - called when an error occurs on read
Properties :
  Filename - the name of the Inifile
  Section - the section you refering to
Procedures
  WStr(Identifier : String;Value : String); - used to write a string to the section ; will replace if Id exists in the Inifile
  WInt(Identifier : String;Value : Integer); - used to write a Integer to the section ; will replace if Id exists in the Inifile
  WBool(Identifier : String;Value : Boolean); - used to write a Integer to the section ; will replace if Id exists in the Inifile
  Erase; - Erases the whole section in the Inifile

Functions 
  Rstr(Identifier : String):String; - reads a specific Identifier from the section as string
  Rint(Identifier : String):Integer; - reads a specific Identifier from the section as integer
  Rbool(Identifier : String):Boolean; - reads a specific Identifier from the section as boolean

TFlashButton - New type of button play around with it and you will know

TApplicationinfo - Sets up the Application environment and makes it easy to add you own events - play around with it and it becomes easy to use 

TLogfile 
Nice Component for error logging or error trapping while debugging, enables you to log it either directly to the screen or to a file by just changing the settings in the Object Inspector

Properties 
   Logfilename - Assigns a file to log to
   Logging - decides wheter logging is on or off
   LogTo - defines the device to log to   

Procedures
  Log(what : string); - writes the string to whatever device

TSpectral
 well after I used a similar background when I used to write Dos Games
 I decided it would be time to get another on up and running under windows
Here it is and I hope I wont need  to explain it ! Play around with it and you will get to know it

TDatePopUp

Another Date Selector

  Function execute : String; returns the date selected play a bit and you will get to know it
  All other properties explain themself.

TTimePopUp 
  Similar to TDatePopUp, just here its about time 

TAboutInformation
  a new looking Aboutdialog (play around !)

TDirectoryselect

A Directory Select Popup Dialog with the ability to create directories, nice for installation
programs

TButtonTwo 

Another Button with a new feel and look (play around !)

TQuickinfo
 Well I needit something which could supply me with a little less information than 
 TAboutInformation and here it is ! Have Fun !

(NEW) - TFlexigauge
Well this is a new and neat Gauge to implement all functions and gauge should have in my eyes
have a look at it and it should become clear what this is about ! 

(NEW) - TFileTextReplace
This Component was written for those out there who run massive textfile replacements from time to time ! Just drop it on ! It will take a file and copy it line by line ! While busy doing that it will
go and read the current line into property currentstring. Just attach the beforewriteevent and you will be able to do with that line whatever you want to. Replace it , modify it ...


Disclaimer

The Author cannot and does not warrant that any functions contained in the
Software will meet your requirements, or that its operations will be error
free.  The entire risk as to the Software performance or quality, or both,
is solely with the user and not the Author.  You assume responsibility for
the selection of the component to achieve your intended results, and for
the installation, use, and results obtained from the Software.

The Author makes no warranty, either implied or expressed, including with-
out limitation any warranty with respect to this Software documented here,
its quality, performance, or fitness for a particular purpose. In no event
shall the Author be liable to you for damages, whether direct or indirect,
incidental, special, or consequential arising out the use of or any defect
in the Software,  even if the Author has been advised of the possibility 
of such damages, or for any claim by any other party.

All other warranties of any kind, either express or implied, including but
not limited to the implied warranties of merchantability and fitness for a
particular purpose, are expressly excluded.


Smile !  It makes no Enemies and Life easier !