ImpStringGrid

USE THIS COMPONENT AS MUCH AS YOU LIKE. I WOULD BE OFFENDED IF SOMEONE WANTED TO GIVE ME 
MONEY FOR THIS. 
But if you want to you can send me a postcard:

Magnus Lidman
Mlndalsvgen 11 A
412 63 Gteborg
email: d95mange@dtek.chalmers.se

Summary:
This is a Delphi 3 component that improves (i hope) the functionality of the stringgrid.
It Has, very much like the DBGrid, a columns property so that you can add a button
(ellipsis i think they call them), or have a combo falling out from the cells. Furthermore,
 you can set font,color and textalignment for every column. 

Background:
The stringgrid is not very usable (in my opinion), i don't know how many times i've cursed
the fact that you can't add even a single button in the cells. 
This time i needed a component that encapsulated the function of the 
DBGrid without the need of a database connection. 
Ofcourse, i tried to find it att DSP, and found a few that accomplished what i had in mind.

BUT, all of them were in the form .DCU and you had to pay 50-100$ to
get the source code. Oh, man.. (i thought),nobody deserves 100$ for something they've 
ripped out of DBgrids.pas and put together nicely. The ones i tried didn't even work
properly (and most important, without the source, you couldn't adjust it in the ways you
liked). 

So, this time, instead of giving up, i decided to make my own IMPROVED stringgrid which did
everything i wanted.
I simply ripped most of the DBGridcode out of DBGrids.pas and encapsulated it into another
unit. It took about eight hours with a slow tempo. And i haven't commented in any way and
a lot of the removed code isn't removed (just commented), but it works. I guess that you'll
find thousand and thousand of things that is wrong with this component, but feel free to 
alter anything you like, just don't blame me (blame it on the boogie).
 
New properties:
  OnTooMuchrows - triggers when there is too much rows to fit in the grid, when
  		  a scrollbar is added (i needed this but i guess it's not the most wanted 
		  feature) 
  OnNewRow      - triggers when a new row is added automaticly (oh, right, that's another 
		  feature. When you have tabbed yourself down to the last col and last row,
	          a new line is added)
  OnElippsisclicked - triggers when you've defined a button in a column and somebody
		      presses it
  OnPicklistDropdown - triggers before the dropdown drops down...(if you want to specify
		       the contents in the dropdown combo for each row)	
  Columns - columns are added according to the value of colcount, which means that you
	    don't have to create them specifically.(Column.items[index] contains the
		individual columns)
    contains
      Alignment - The textalignment(taLeftJustify, taRightJustify, taCenter) 
      ButtonStyle - The celltype(cbsPicklist, cbsEllipsis, cbsNone)
      Color - The background color
      DropDownRows - Max number of dropdownrows
      Font - the font of the column
      ImeMode - if you want to use Asian Characters
      ImeName - Also for asian character
      PickList - the stringlist you want to have associated with the column ( you can also
		 specify a list in OnPickListDropdown if you want to change the contents
		 every row)
      PopupMenu - specifies which popupmenu you want specified with this column
      ReadOnly - ...
      Title - contains font,alignment,caption and stuff if you want to have different
	      Titles than cells (just watch the demo)


Idea: Simple components like this shouldn't be charged for.

I hope you will find this component usable.
  /Magnus