Om het maar even in de stijl van de oorspronkelijke auteur te zeggen:
Hier is 'tie dan: NLDStringGrid v2.0
Een opsomming van de wijzigingen:
TNLDStringGrid:
Toegevoegde functionaliteit:
- Zonder properties in te stellen werkt het grid exact gelijk aan het standaard TStringGrid
- Color-property's kunnen op clDefault gezet worden, waarmee ze weer de standaardkleur krijgen
- Merging: samenvoegen van cellen
- Merged InplaceEdit(List) met font en achtergrondkleur van betreffende cell
- Stamt nu af van TCustomDrawGrid i.p.v. TStringGrid: nieuwe opslagmethode
- Dubbelklikken op een kolom-titel past de breedte van die kolom aan aan de breedste tekst
- Import/export van/naar csv-bestand
- Met F4 klapt de InplaceEditor open indien Column.EditStyle in [esPickList, esPickListOnly]
Toegevoegde properties en events:
- AlternatingRowColors: TStringGridRowColors (EvenRowColor: TColor, IncludeFixed: Boolean, OddRowColor: TColor, OverrideColumnColor: Boolean)
- AutoRowHeights: Boolean
- DefaultDrawing: TDefaultDrawingModes (ddBackground, ddEdges, ddGridLines, ddGlyphs, ddText, ddFocusRect)
- FixedFont: TFont
- FocusRectColor: TColor
- FocusRectStyle: TFocusRectStyle (frDefault, frSolidAutoBW, frSolidCustomColor)
- MemoryOptions: TMemoryOptions (moBeyondGrid, moProportional, moStoreColsRows, moSparseStorage)
- OnEditButtonClick: TNotifyEvent
- OnTitleClick: TTitleClickEvent
- OwnsObjects: Boolean
- SelectionAlphaBlend: Boolean
- SelectionAlphaBlendValue: Byte
- SelectionColor: TColor
- StretchModes: TStretchModes (StretchRight, StretchAll, ShrinkRight, ShrinkAll)
- SyncColumns: Boolean (True: ColCount = Columns.Count; False: ColCount >= Columns.Count)
- Values[Col, Row]: Variant
Toegevoegde Methods:
- procedure AutoColWidth(ACol: Integer);
- procedure AutoRowHeight(ARow: Integer);
- procedure BeginUpdateData;
- procedure EndUpdateData;
- procedure ExportCSV(const FileName: TFileName; TitlesFirstRow: Boolean);
- procedure ImportCSV(const FileName: TFileName; TitlesFirstRow: Boolean);
- procedure MergeCells(const AGridRect: TGridRect; MergeText: Boolean; MultiLine: Boolean);
- procedure ResetAllFonts(AFont: TFont = nil);
- procedure ResetMainColors(AGridColor: TColor = clWindow; AFixedColor: TColor = clBtnFace);
- procedure SetGradientColumnColors(First, Last: TColor; ColumnsOnly: Boolean);
- procedure UnMergeCells(const AGridRect: TGridRect);
Aangepaste properties, methods en events:
- TInputStyle (isMask en isCustom aan toegevoegd)
- FixedLineColor (nieuwe naam: FixedGridLineColor)
- OnDrawCell (parameters Column en Stage aan toegevoegd)
- GridLineWidth (reintroduced)
- StretchRight (dat is nu StretchModes geworden)
TStringGridColumns:
Toegevoegde property:
- OnColumnsChanged
TStringGridColumn:
Toegevoegde properties:
- Action: TBasicAction
- EditMask: TEditMask
- Fixed: Boolean
- MinWidth: Integer
- MaxWidth: Integer
- OnTitleClick: TNotifyEvent
- RowNumbers: Boolean
- Visible: Boolean
Opgeloste bugs:
- Zwarte fixed-cellen bij ReadOnly
- Breedte eerste kolom
- Toevoegen, verwijderen en verplaatsen van Columns in Collection-editor
- Niet meeverplaatsen van Cell-inhoud bij verplaatsen van Columns of Rows
- Niet meeverplaatsen van Columns bij slepen van Columns (alleen de Cell-inhoud werd verplaatst)
- Ctl3D bij fixed cellen
- Niet alle options werkten
- Overbodige property opslag in DFM. Elke property heeft nu een default value
- FixedLineColor
- FocusRectColor
- FocusRect in alle geselecteerde cellen bij DrawFocusSelected = False
To do:
- Hint voor afgekapte cellteksten
- AutoMerge (bij te lange tekst, automatisch de volgende cell erbij pakken, indien leeg)
- Printen
- Sorteren op column (met indicator)
- Grouping van regels/kolommen: collapse/expand
- Figuren in cellen
- Rounded corners
- Multiple selections
- Etc...
Waar te vinden?
- Op de VCS-server, zie: http://svn.nldelphi.com/nldelphi/ope...nldstringgrid/
Vereist:
Veel plezier ermee!
Bookmarks