Results 1 to 1 of 1

Thread: selectiecell in AdvGid keur geven

Threaded View

  1. #1

    selectiecell in AdvGid keur geven

    Delphi2007...

    Ik gebruik een afgeleide van AdvGid in mijn programma. Daarin vul ik een gegeven (reghelnummer) en zet de kleur voor die regel:

    (r is gridregel, begint bij 0 (de headrerregel). oneven regels bevat een specificatie van wat de volgende regel bevat (vaste waarden) en de even regels gegevens uit een bestand; In die regels is kolom gevuld met regelnummer:

    Code:
      for i := 1 to maxvelden do
      begin
        grid.Cells[i, 0] := format ('-%d-', [i]);        //  Kolomnummer
        grid.ColWidths[i] := 20 * grid.Font.Size;     // kolombreedte in aantal pixels om ruimte te maken.
      end;
      // Data begint op regel 1, kolom 0 wordt ook ingevuld.
      r := 1;
      for i := 0 to DataLijst.Count - 1 do
      begin
        // Oneven regels: header
        grid.RowColor[r] := clMoneyGreen;
        grid.RowHeights[r] := 2 * grid.RowHeights[r] ;  // kop twee hoog - dan past merendeel van de naam
        // Even regel: data
        grid.RowColor[r+1] := clWindow;
        grid.Cells[0, r+1] := format ('%d', [i+1]);         // Regelnummer, 1 hoger dan index
    en daarna vul ik de rest van de cellen, en geef die een kleur als dat nodig is:
    Code:
        DataRegel := Datalijst.Items[i];
        for j := 0 to Maxvelden-1 do
          if DataRegel.veldnaam[j] <> '' then
          begin
            // veldnamen op oneven regels. data op de volgende
            grid.Cells[j+1, r] := Dataregel.veldnaam[j];
            grid.Cells[j+1, r+1] := dataregel.Recorddata[j];
           // Fout gevonden - markeer
            if DataRegel.DataVerschil[j] then
               grid.Colors[j+1, r+1] := clred;
    
        end;
    Dat werkt prima. maar de dataregels zijn veel breder dan het scherm, dus vallen ze niet op.
    Daarom wil in kolom 0 (waarin de regelnummer is ingevuld) een kkleur geven zodat in één opslag te zien is dat een regel een 'fout' waarde bevat. Dus in de loop voor vullen van de regel toevoegen, als dataregel
    Code:
        if DataRegel.BevatFout then
          grid.colors[0, r+1] := clred;
    maar dat blijkt niet te werken: de cel blijft op de standaard kleur.
    Hoe krijg ik dat voor elkaar?
    Last edited by WillemGrooters; 26-Sep-18 at 17:05.

Thread Information

Users Browsing this Thread

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

Tags for this Thread

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
  •