Results 1 to 11 of 11

Thread: TNiceGrid alle data verwijderen

  1. #1
    Senior Member Antoine's Avatar
    Join Date
    Apr 2011
    Location
    Molenwaard
    Posts
    2,399

    TNiceGrid alle data verwijderen

    Hallo

    Ben nog steeds aan het stoeien met mn NiceGrid Maar nu kan ik regels verwijderen dat gaat lekker...

    Maar nu wil ik eigenlijk ook de optie om hem helemaal leeg te maken....

    dat probeer ik nu zo:

    Anton's code Code:
    1. procedure TAflBonForm.AllesVerwClick(Sender: TObject);
    2. var All : integer;
    3. begin
    4.   All := GridArtikel.RowCount;
    5.   for All := 0 to GridArtikel.Row - 1 do
    6.     begin
    7.        GridArtikel.DeleteRow(All);  //helemaal leegmaken
    8.     end;
    9. end;

    Dacht dat het moest werken, maar hij gooit hem niet in een keer leeg.... maar in een keer of vier....

    Wat doe ik vaut?

    gr Anton
    " De waarde van het leven is niet in geld uit te drukken "

  2. #2
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,085
    Ik ken NiceGrid niet, maar als deze gemaakt is voor delphi, zal deze ongetwijfelt een NiceGrid.Clear kunnen doen.

    Peter
    10.4.2, Delphi2010, of Lazarus 2.2.0

  3. #3
    Senior Member xsintill's Avatar
    Join Date
    Aug 2002
    Location
    Rotterdam
    Posts
    1,075
    Hier een stuk van de TNiceGrid definitie:
    Code:
    public
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
        procedure BeginUpdate;
        procedure EndUpdate;
        procedure Clear;
        property Cells[X, Y: Integer]: string read GetCell write SetCell; default;
        property Objects[X, Y: Integer]: TObject read GetObject write SetObject;
        property ColWidths[Index: Integer]: Integer read GetColWidths write SetColWidths;
        procedure EnsureVisible(X, Y: Integer); overload;
        procedure CutToClipboard;
        procedure CopyToClipboard;
        procedure PasteFromClipboard;
        function GetHitTestInfo(X, Y: Integer): TGridHitTest;
        function HeaderCellsCount: Integer;
        function HeaderCells(I: Integer): THeaderInfo;
        property Col: Integer read FCol write SetCol;
        property Row: Integer read FRow write SetRow;
        property SelectArea: TRect read FSelectArea write SetSelectArea;
        procedure DeleteRow(ARow: Integer);
        procedure InsertRow(ARow: Integer);
        function AddRow: Integer;
        property HorzOffset: Integer read FHorzOffset write SetHorzOffset;
        property VertOffset: Integer read FVertOffset write SetVertOffset;
        function MergeCells(const X1, Y1, X2, Y2: Integer; ACaption: string): TMergeCell;
        procedure ClearMergeCells;
    
      published
        property Enabled: Boolean read FEnabled write SetEnabled default True;
        property ColCount: Integer read GetColCount write SetColCount;
        property RowCount: Integer read FRowCount write SetRowCount default 5;
        property AutoAddRow: Boolean read FAutoAddRow write FAutoAddRow default False;
        property AutoFillDown: Boolean read FAutoFillDown write FAutoFillDown default False;
        property AutoFillRight: Boolean read FAutoFillRight write FAutoFillRight default False;
        property DefRowHeight: Integer read FDefRowHeight write SetDefRowHeight default 18;
        property DefColWidth: Integer read FDefColWidth write SetDefColWidth default 80;
        property Flat: Boolean read FFlat write SetFlat default True;
        property Color: TColor read FColor write SetColor default clWindow;
        property AlternateColor: TColor read FAlternateColor write SetAlternateColor default clWindow;
        property GridColor: TColor read FGridColor write SetGridColor default clBtnFace;
        property ShowGrid: Boolean read FShowGrid write SetShowGrid default True;
        property HeaderLine: Integer read FHeaderLine write SetHeaderLine default 1;
        property HeaderColor: TColor read FHeaderColor write SetHeaderColor default clBtnFace;
        property HeaderLightColor: TColor read FHeaderLightColor write SetHeaderLightColor default clBtnHighlight;
        property HeaderDarkColor: TColor read FHeaderDarkColor write SetHeaderDarkColor default clBtnShadow;
        property HeaderFont: TFont read FHeaderFont write SetHeaderFont;
        property FooterFont: TFont read FFooterFont write SetFooterFont;
        property SelectionColor: TColor read FSelectionColor write SetSelectionColor default $00CAFFFF;
        property FitToWidth: Boolean read FFitToWidth write SetFitToWidth default False;
        property AutoColWidth: Boolean read FAutoColWidth write SetAutoColWidth default False;
        property ReadOnly: Boolean read FReadOnly write SetReadOnly default False;
        property Columns: TNiceColumns read FColumns write SetColumns;
        property GutterKind: TGutterKind read FGutterKind write SetGutterKind default gkBlank;
        property GutterWidth: Integer read FGutterWidth write SetGutterWidth default 20;
        property GutterFont: TFont read FGutterFont write SetGutterFont;
        property GutterStrings: TStrings read FGutterStrings write SetGutterStrings;
        property ShowFooter: Boolean read FShowFooter write SetShowFooter;
        property OnDrawCell: TOnDrawCellEvent read FOnDrawCell write FOnDrawCell;
        property OnDrawHeader: TOnDrawHeaderEvent read FOnDrawHeader write FOnDrawHeader;
        property OnDrawGutter: TOnDrawHeaderEvent read FOnDrawGutter write FOnDrawGutter;
        property OnDrawFooter: TOnDrawHeaderEvent read FOnDrawFooter write FOnDrawFooter;
        property OnFilterChar: TOnFilterChar read FOnFilterChar write FOnFilterChar;
        property OnHeaderClick: TOnHeaderClick read FOnHeaderClick write FOnHeaderClick;
        property OnGutterClick: TOnGutterClick read FOnGutterClick write FOnGutterClick;
        property OnCellChange: TOnCellChange read FOnCellChange write FOnCellChange;
        property OnCellChanging: TOnCellChanging read FOnCellChanging write FOnCellChanging;
        property OnColRowChanged: TOnColRowChanged read FOnColRowChanged write FOnColRowChanged;
        property OnInsertRow: TOnRowEvent read FOnInsertRow write FOnInsertRow;
        property OnDeleteRow: TOnRowEvent read FOnDeleteRow write FOnDeleteRow;
        property OnCellAssignment: TOnCellAssignment read FOnCellAssignment write FOnCellAssignment;
        property Font;
        property Anchors;
        property Align;
        property BevelKind;
        property BorderStyle default bsSingle;
        property BevelOuter default bvNone;
        property BevelInner;
        property TabOrder;
        property TabStop default True;
        property Tag;
        property OnClick;
        property OnDblClick;
        property OnMouseDown;
        property OnMouseMove;
        property OnMouseUp;
        property OnKeyPress;
        property OnKeyDown;
        property OnKeyUp;
        property PopupMenu;

  4. #4
    Senior Member Antoine's Avatar
    Join Date
    Apr 2011
    Location
    Molenwaard
    Posts
    2,399
    @Wok: Dat hoeft niet zo groot hoor

    De procedure Clear heeft hij ja.... Alleen zoals je weet leeg je dan de row's....

    En dat moet niet alleen, hij moet ook de Row's verwijderen, allemaal in één keer.

    Voor verwijderen per row gebruik ik:

    Code:
    procedure TAflBonForm.VerwijderBtnClick(Sender: TObject);
    begin
      GridArtikel.DeleteRow(GridArtikel.Row);
    end;
    Dat gaat gewoon prima, maar ik wil de hele NiceGrid leegmaken, dus ook de row's deleten..

    Gr Anton
    " De waarde van het leven is niet in geld uit te drukken "

  5. #5
    zet dan na de clear de rowcount op 0 (of 1).

  6. #6
    Senior Member Henk Schreij's Avatar
    Join Date
    Sep 2002
    Location
    Heino (Raalte)
    Posts
    1,465
    Anton's Code:
    Delphi Code:
    1. procedure TAflBonForm.AllesVerwClick(Sender: TObject);
    2. var All : integer;
    3. begin
    4.   All := GridArtikel.RowCount;
    5.   for All := 0 to GridArtikel.Row - 1 do
    6.     begin
    7.        GridArtikel.DeleteRow(All);  //helemaal leegmaken
    8.     end;
    9. end;
    Dat iedereen erover heen leest Even je indenken in Anton's wijze van programmeren.

    Stel je hebt 7 rijen en de cursur staat op rij 4. Volg de variabele All.
    . All := GridArtikel.RowCount; geeft 7
    . for All := 0 to GridArtikel.Row - 1 do geeft for 0 to 4-1 do (verwijdert er 4)
    . blijft over de laatste 3 en de cursor op de eerste.
    dan nog 3 keer, dan is die leeg. Dus in 4 keer is die leeg.

  7. #7
    TDigitalTrain user Hans Brenkman's Avatar
    Join Date
    Mar 2002
    Location
    Weert
    Posts
    1,861
    Waarbij de toewijzing op regel 4 aan "All" al helemaal geen zin heeft, die krijgt op de volgende regel meteen een nieuwe waarde (0).
    Testen kan niet de afwezigheid van fouten aantonen, slechts de aanwezigheid van gevonden fouten.

    Het is verdacht als een nieuw ontwikkeld programma direct lijkt te werken: waarschijnlijk neutraliseren twee ontwerpfouten elkaar.

  8. #8
    Senior Member Henk Schreij's Avatar
    Join Date
    Sep 2002
    Location
    Heino (Raalte)
    Posts
    1,465
    Ja, mooi he.
    Een variabele de naam geven "All".
    En dan als tellertje te gebruiken vanaf 0.

    Doet me denken aan een handleiding voor leesbare code schrijven, waarin staat:
    "Er is maar 1 ding erger dan een functie/procedure/variabele geen zinvolle naam te geven:
    namelijk een naam te geven waarmee je de latere lezer op het verkeerde been zet."

  9. #9
    Senior Member Antoine's Avatar
    Join Date
    Apr 2011
    Location
    Molenwaard
    Posts
    2,399
    Ja sorry, ik snap nu jullie ironie. Heb er even een boek op nageslagen, om wat te leren over variabelen en constanten enz...

    [OfTopic]Heb ook een boek besteld van Bilzinger, is dat een goede keuze?[OfTopic]

    de code was veel simpeler, lang leve NiceGrid!!!

    Code:
    procedure TAflBonForm.AllesVerwClick(Sender: TObject); //Grid leegmaken
    begin
      GridArtikel.Clear;
      GridArtikel.RowCount := 0;
    end;
    Het schijnt zelfs dat Clear niet eens nodig is!

    Alleen zou hij wat mooier gestyled moeten worden... maar dat is voor de update.... Nu eerst even dat programma eruit knallen!

    Bedankt allemaal!
    " De waarde van het leven is niet in geld uit te drukken "

  10. #10
    Senior Member Henk Schreij's Avatar
    Join Date
    Sep 2002
    Location
    Heino (Raalte)
    Posts
    1,465

    Boek recensie

    Quote Originally Posted by Antoine View Post
    [OfTopic]Heb ook een boek besteld van Bilzinger, is dat een goede keuze?[/OfTopic]
    Het is Binzinger, met een "n".
    Ik heb even een recensie van het boek geplaatst, van Frans Doove een vroegere vriend van mij. Zie: Boekhoek

  11. #11
    Quote Originally Posted by Antoine View Post
    om wat te leren over variabelen en constanten enz...
    Met andere woorden je weet nog niet (goed) wat variabelen en constanten zijn? Dan lijkt het me beter dat je dat eerst goed uit gaat zoeken...

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •