Avoid the need to select a Row before Edit.

I have a TTMSFMXLiveGrid with various checkboxes.
When I click over one of this checkboxes nothing happend on it. I think that this is because this first click to set this row in "editing mode" or some similar.

The second click changes the value of the checkBox.

I need allow the user change the checkbox Value with a lonely click.


Can you send us your sample so we can investigate this here, we are not able to reproduce this on our demo's.

procedure TGetLInsDlnSlsController.OnGetCellClass(Sender: TObject; ACol, ARow: Integer; var CellClassType: TFmxObjectClass);
begin
   if (ARow >= FView.LiveGrid.FixedRows) and ((ACol = CHECKED) or (ACol = SURCHARGE)) then begin
      CellClassType := TTMSFMXCheckGridCell;
   end;
end;

procedure TGetLinsDlnSlsController.InitializeGrid;
begin
   FView.LiveGrid.UseColumns            := True;
   FView.LiveGrid.Options.Bands.Enabled := True;

   FView.LiveGrid.CheckTrue := 'Y';
   FView.LiveGrid.CheckFalse := 'N';
   FView.LiveGrid.Columns[CHECKED].ColumnType := TTMSFMXGridColumnType.ctCheckBox;

end;
object GetLinsDlnSlsView: TGetLinsDlnSlsView
  Left = 440
  Top = 187
  BorderIcons = [biSystemMenu, biMinimize, biMaximize, biHelp]
  Caption = 'Lineas de Albaran Pendientes de Facturar'
  ClientHeight = 493
  ClientWidth = 807
  Position = Designed
  FormFactor.Width = 320
  FormFactor.Height = 480
  FormFactor.Devices = [Desktop, iPhone, iPad]
  Left = 440
  Top = 187
  DesignerMasterStyle = 1
  object LayoutRoot: TLayout
    Align = Client
    HitTest = True
    RotationCenter.X = 0.000000000000000000
    RotationCenter.Y = 0.000000000000000000
    Size.Width = 807.000000000000000000
    Size.Height = 493.000000000000000000
    Size.PlatformDefault = False
    object Panel2: TPanel
      Align = Top
      Size.Width = 807.000000000000000000
      Size.Height = 177.000000000000000000
      Size.PlatformDefault = False
      TabOrder = 0
      Left = 1
      Top = 1
      object LayoutSearch: TLayout
        Anchors = [akTop, akRight]
        Position.X = 543.000000000000000000
        Position.Y = 15.000000000000000000
        Size.Width = 227.000000000000000000
        Size.Height = 22.000000000000000000
        Size.PlatformDefault = False
        TabOrder = 1
        object EditSearchText: TEdit
          Touch.InteractiveGestures = [LongTap, DoubleTap]
          Align = Client
          TabOrder = 0
          Size.Width = 205.000000000000000000
          Size.Height = 22.000000000000000000
          Size.PlatformDefault = False
          Left = 4
          Top = 27
          object ClearEditButton1: TClearEditButton
            CanFocus = False
            Cursor = crArrow
            Size.Width = 28.000000000000000000
            Size.Height = 18.000000000000000000
            Size.PlatformDefault = False
            TabOrder = 0
          end
        end
        object Image2: TImage
          MultiResBitmap.Height = 24
          MultiResBitmap.Width = 24
          MultiResBitmap = <
            item
              Width = 24
              Height = 24
              PNG = {
                89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
                F8000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
                051C49444154484BAD945B6C544518C7BF99B3672FEDF6B6BBED16966E5B7A87
                5A90D6D28258A2351A110C1612846822F1011E342A069FA414A3898107090F28
                896830444C2321011F9A828255A8DA2DDB0B5DD696A5B47B6BB767B77B3DF733
                9E251B1322B680FC93F332E79BDF7FBECB0C828754DB962DED3A80DDB45EBB21
                31135A6A2E2951B814EBE145A9370B0CC7CF9F3F7323137A570F6C60B55A8B0A
                ACD66FEC65652F36B73D8F4A6B1A006B0C904A252132E305311E8471B74B8EC6
                E2C7663D9EFD0E87434CEFA3EEEE5E5C4B388EFBB5A2B272EDC697DF8017766E
                15AAAC79449712902EDB00B9162B305E0E709E099B8D744B4A511AF30D86EE40
                20A03C8801D66AB53F96942C7BF2C8895E7E796B5360951174B91405A67C0329
                311B152361515585055637D5CB970646903537BB3ACE7186C9F1F1DE454B64B7
                97EF028A7CBBFFC4D76273C3D3B70C1AA08AF4B2490BB256DD8CA26A4CAE286A
                52C9A4261289E084A958FAF4E061DD50CF19091B0C2B17CDA0B4A2EA8B97366D
                B6AF7BF635972D8F2634029290A8382B53AC84B0485158018A22069D1672B2B3
                A10013342598E5E9B16B5ADFF49480339CFBAAADADCD2871C9B56555B5526E8E
                C127138A998AE19B82884232A008AFE0A828E1384894EA49A7347A3DA79653DE
                DEDEC8CA1A23C4C2E1F6050DB28BED252D1B9FA392440E2BA290F02715B73A16
                732C81594146738A8CC2443512141CE3651C173095541BC6E619A854C39A26C8
                CACAAA58D0C048132A27270712A1796E323817000C736ACF5520040419664405
                874419311240585134F39284621245C5650A258A4C26D0EBF5F4C219D0F40C4D
                61E2F54FE531D1544414480C08CC2B0A9AE365F0F3B2129414D548CD06406164
                82229288A21126C5514400ABDDEE5BB0C94EA733D5D0B8E62D8A40214FB013E9
                7591A585E6982883403062158252088194FE34A0760223594B23BEDF31927F6B
                CC51189E0F5F58748AAACBCB9F6A6E6E7CE2F2955FB2B28A960FEAB586A4C56C
                4CAA25120800CB2B6A59641465D5D3C715E41F9A60E6872E9EDE144FB15891C4
                7D8B1A2CAB5F1D9BF3F95E6F6D5A65BD353E9A0AA7B0871524C1525C98C8D620
                8E648C641A92338110EE3EF6F15E8B292FDFEBF5F79EFBFEBB430B1AECDA6019
                B59595BD5FF7CCAB689E098399966BD944D8C22AB2C7E59EE482EA1ACFF1B2DA
                74F9C2A9E34D678E7EF6EEBA96D5C5C1A9C01DBD866C1E1C1C4CFCE74DDEB1C1
                72A366ADADEEE0FE63E8AB8B7EE8F96D18666F0E40C7B60E60827EA2B7DA277D
                81808F61823A391EADB69794E6D96D4BE02FD7B853A4C8D62F8F1E9D4C73EE9B
                C1CEF596B1EA565BDD810F3E478EBE1E98735D819CDC4270DF8E6C3D7BAEDB58
                68CAB7196954B4B2A2BCB4D26EB36908E8745A7A9C093187BCDE3B7B4E9D3CC9
                6450FF7EAED3F0AAD6A5B507DE3B8206AF5D02A7631474FA7CE8F9F9F2A450E8
                ABECEE06B9B3B313F33C5F8631B628EA33A1E3385FD7E1C3FE0CE21EDD63A096
                E5664D8BADFAA3773E41D7FBFBE0FA80137CDA5CE2EEBB3A59D3E6ABECEA0225
                13FAC0FAC760C7FA0CFCED4E74FDCF6B30F887130836C04FFD039EBA2BFEAA2E
                F52665421F4A6903B4BDC534B1A2B1A87CDFDE0FD1D8C8B07AF26108129A4C38
                866F9F56E16ACC23C1D3421DCDA689FA95E6E5BBDFDC8326DC2E708DBA2124A9
                F06197E7745F200D57C7FCD1850B0A707EC72BDBD0D0C0EF303C3802A1A840DC
                CEB13B8F039E16D5BEB6B6797ADABB223233034C94272E8FD7DB7D75B65CFDF7
                BFE169511A53E02C4EEAEA6F8C07ADF30996F9A13F54AAAE3F163800C0DF6764
                785B15A33AA60000000049454E44AE426082}
              FileName = 'C:\views\senCille\Images\A_Comunes\AA Search 24 - copia.png'
            end>
          Align = FitLeft
          Size.Width = 22.000000000000000000
          Size.Height = 22.000000000000000000
          Size.PlatformDefault = False
        end
      end
      object Image14: TImage
        MultiResBitmap = <
          item
            Width = 48
            Height = 48
            PNG = {
              89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9
              87000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
              09BA494441546843D5596B6C14D7153EDE5D2F78FD5CAFB1CDDBAE17F062078C
              9CC6894942892A2AF5474380049040ADDA4243AAAA01D157B00137C4B4E55155
              7D4895E02788F20E540982B6E0061C41DA864768D2AE89E327B66BAF5FBB6BD6
              8BD7FDCE9D3BB3E3C5B3BB7E90AA1F3ABEF79EB933F39D73CF39F7CE42FFEF48
              906D24CC95959517AD56EB721E2424184D1B89D1E68DA61B1E1E96BD917D863A
              E656ED7BBDDE9A7DFBF66D41F713A1D0C18859EADEBD7BDB366CD8608B97FC58
              A092D38B919EE5E8D1A3BEAAAAAAAF62CA5548484C96306297595D5DDDB471E3
              465BDDEF7F47B3E7CF97EA49C030DE3FC432047928FB681FCA56E81569ED6BA3
              9C4DDBE8C48913FE8A8A8AAFE1EE1A082685616480030634B201DE4BEF52E193
              A5523D09804705C120938E22B85EDFD344C1E52FD1C99327FD3B76EC5889BB2F
              4370310C936C2331F971A3824392C5A413551721E21FF7A3C0C8804770EDD61D
              6A6A6FA7CE9E1EAA6B6AA60E4F37FDBBA1518CDFBFF311DDEFECA2C636E5FABD
              E6166AF778E49D617CD8DA4EEEA9A9E44ECE20777A16B91DB9E4CE9945EE5979
              E4CE7392DB5948EEC262721797D0074C2D06798645B68F20D2F223172E52A2C5
              421DDDDD6436992839294990DCF3EA263A70E498D059132D14180C8A797933A6
              D35B5B36CBBB15A4A6A69073DE3C398A0E77FDA744BD8D72640C2313B350851A
              B80AA939701D5EEEEEEBA3A4295384F733D3D3C444AFDF4F5DBDFD343B279BFA
              7D3EE464885E5EF165712D12773ABAC8E12A92A3E8E8B8719D32FE738F825F7A
              5124B1510EC46DC0A463442207213CE65649606E3FEB6EA4E0B2E80644CD81C7
              B1078C003F5EBC42BE477D9FA68F8DB893F8F3C318D80346334508F13EB0F4A9
              2FD2BCF90BC866B38915B158CC348844F523F633ED76C4FC1056FE21F9BC5E9A
              969D4D353557E42314A425A7D0A1AA4A39D241DBCCF4C2A1131EB7F5B553C9B7
              5F1F7F0EB0017F78EBA7B4EC051C89CC66B1AD8742C3E89A3185B779ECEB485A
              B3D9840D7698125089020F1E88078440C0845D97E7963D512C7423C024759B56
              B81FCE8313376A621A60584615924439E9E9F4000F5BBA669D18C78BDA2B57A8
              DC9146976FFC8DAE7E78132536117B5602B5747450FE8C19E4C17E91805548B1
              5A69283848DE7E2F0D060234D7E120576EAEF210E588141586393059093C677A
              AE28BD1C66CDED1D34136156DFD24A9969696245B90C9B134C64E73D027B876B
              D64CDCC5CCE3600F1886108EAF0DEBD7AFB75DF9CDAF6821CAE84072AABC141F
              BCBDBDB462E102398A00C79E1A32325C1EED0711427FA5924D5BC797037A03E6
              141A10192F9037E1C4E55CD0F575E3B6FE0E2AD93C4103FA2FBE33F9A7513660
              34EF478C3FEB6EA2C1E52BA39E46631A30E965940D109E1EAD8C4274AB71BF1F
              6574F3B6891930A965946F60612F73CD1FE17D262F8F145277FC83F7A8E43BD1
              0D302CA32A26B58C42DF8223777E6E36793C28A358BD14EB14A58C7A7D4A19CD
              CC4419CD51C28C8D8D81C77E940897D12039503AF340CEE7F3933D2599D26DC9
              1400695E2D3B42D499934B2EEC1184D554C82BDFC4D1F0F99551B5F268E18256
              1BEB743A39FE8F6BB4F8D5ED74EAD4A9FF7119652F72D222644624EF8872AAEF
              8323C6F77D9DB478CB040D98701915E425315161D8BBEA58ED732BFBBAB6BEAF
              85025F794518505151313E03265E4693E9D08E9F84BDCF5E179E070FCDEBAC93
              AD4E7FDFDF498B5EFBE1C40C185719E579206002199E59E62A148434CF6B7DE9
              6DAD65BDECA33D7EEB7D7AE2BB3F12065456568E6A40CC2AA496D1D2975EA627
              57BD424FAD594B017B16953A0BA81F1FF8837E1F25C288D060807A3D5DD4D7D3
              4DF6A4A9F46C918BCA8B8AF036F8A8EC59A2F26544CFBF40B5C37825885EBE79
              93AEDEB94BB7F1F17EE35F6EFA0BBEB92FA0DC7EDCD4A2AC069E0917090ED12A
              D1844EA36A89F40D0C088FDB5370A29C39935CB3672B9E64CF32193D980BE6CE
              71645292C5423EBFBC77EA54724E9BA6EC016A4861556395D1B8F6019B35916A
              2FBCA389B7FDBED017E0E85B8AF078063BEDD3450B690956C509A3B490801136
              93996ACFBD4DB56F9FA5DAB367C8DB502F0C2800D9D2FCB9F44C41013DFD857C
              5A02A39D590E714DC911360212038639B07FFFFE8675EBD6D9AEFC9ACBA8EEB7
              51D523A2C11F1EF3C6C37D7EA118F3CBF563901A422B7E17950455E1B14A5623
              AFE85A07BAA8F8FB6FD0E9D3A7FD3B77EE1C5B12B3016BD7AEB579DFFD231596
              2E51B4E020FE682D848932B148E2AA449052C6DC87A889AB175D327FEA6FA381
              95DF189F015C85D880E7CACA5046E71B9751BC2C88439828A3D3B88CF20FC830
              8281260DF71DFADE6B20CD86819866201395468E30347CAD35E0A1A2D72BE8CC
              9933E337E0C4EE9DB4EC7954114B229CCC6514651371CDECC4182FE64FC261E8
              D9C0C0805F1009C183269C7FCC784359815323A5B54C5888BE0F11C9AFF48F7D
              F2772ADEB62BAA01514FA34C3007DFAA0F02415AFAF56F496D7CA8FDF39FA8DC
              DB47976FDFA6AB773F226B8259398D7676523E3EDC3DFDFD388DE2A31EA7D421
              90F6A292F1CACEC581CFA525B3E2A46895286A15E21B1F5AE5D28F15FC4E109B
              83304B3259283838480EEC0F79382EFBB04AF62953291D47E900F421542D1E3B
              31D7959505F2725538B762206A08AD59B3C656F3DB9FD1A282453480A3EEA8D0
              7B47EDA3F57A3CB4223D55845338B659383C74AD0C1745468E8FD5DDA2853FA8
              A2B367CFFA77EDDA35F69D582C1FCADF9299D3A9DC92A008825A08EE2C4F1846
              0BA110950F0F29321414B2223559896755786FD08E0CB215FA30E1470446460B
              1F86610E70B28A9BE1956BEE7BB474DB7679253ED45EBA44E5AD4D74F99F1F53
              2292DC8A7312529D5ABA3D949F91491E9F57C90114872118E41D78408348FAB9
              A9C8814CBB6220AF580C18AE806600BC2ABC3156F0BD20310767A9241CF6440E
              E0B890979EA1E480D54AE989562507308FC74ECC75D93324790847408C1530CC
              01FE6D9473E0BD5FBE4925792E1A989B2F2FE9A07FB8E8CA31F4DEAE4E5A810A
              A3C47D84C4CC07A57FACE12E2D78A39ACE9F3F6F980386065457570B03AE1E78
              939C0E7CA7EAA1F2660354E26A5FDD955551776AADD5F7F9BAAA833071D64B03
              5B423DB460C7CFE9DCB973FEDDBB778FDD80D5AB57DB064E1EA6C5D90552AD82
              09E85A8D301340AB12137D858C465A920B7B9F75E8ABADD0292B5117C2F1FC9B
              DBE9C89123FE83070F8EDD8055AB56D9EA0F54D13C3BFFE00A8083FCA38009AA
              AD10B50F12AA4E1097BA510DD3E923A479A887522A7FC1FF53CF06BC88A7F3E7
              5E5C0638F6ECD9D3C82B20C786884C32FD78B47E3C6DA40EFB800F7C7805E236
              2073EBD6AD673232329E93E30983ABDA78D1DCDC7CEDF0E1C33F46F73A242E03
              52212E083E8FC467ADD1BCC70D5E0224047542EA205D109D2788FE0B0734ACCC
              694C79E70000000049454E44AE426082}
            FileName = 'C:\views\sencille\Images\Delivery Notes\Delivery Note 48.png'
          end>
        Position.X = 5.000000000000000000
        Position.Y = 3.000000000000000000
        Size.Width = 48.000000000000000000
        Size.Height = 48.000000000000000000
        Size.PlatformDefault = False
        WrapMode = Center
      end
      object ImageHelp: TImage
        MultiResBitmap = <
          item
            Width = 24
            Height = 24
            PNG = {
              89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
              F8000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
              069B49444154484B7D556B6C1CD515FEE6CE63671F5E7BFD5A27EBC4711E8EED
              D8E0A4696317131C872642BC1F529C024554412A48FD518956FCA9FAA36AA950
              91AAA42511AD45120486F003A5550189E010C73844118F548E1387DA5EDBEB3A
              6BEF7ABD8FD99DD99D47CF1DC71444D4B3BA9AD1DD7BBFF39D73BE7346C0FFB1
              FEFEFE565D2F1E1404F44A92D856555515E4FBC964326318D6186318F478E481
              43870E8DBA176E61B77470F2E4E9CD86997C39BEB078FFEEEE3B845C36879999
              69C4E30BEEFFE1702D1A1A1AE0F707303C32E2D4D6D6BE2FAB9EE79F3A78F0AA
              7BE01BF61D0727DE7CFBA78E631ED9B2798BEFFCD010524B294422F508D785E1
              F57A512A99584A2D23BE7003E96412959521DCB5670F26A251DD2C39BF78FA89
              03C76E42B9F62D07FD6F9C7A213617FDFDF6B636E1A3C1B3D8B573173CAA0AC3
              D0619A364A6609A56211C55209457A979848B71C4C4C4CA2B7F74E5CFD6AD2A9
              A9A9F9DD334F3EFEEB15C46F38E87FE3AD9FCCCCCE1C6FDEB249181DBD8AD6A6
              ADD00A79545484D071DB36D4856BE0557D04E740D3344C456770EE930B584EA5
              A01289143DDBDB5A31118B3991B56B7FF6CCE3075FE5B8AE83C3274F368A96F5
              AFC68686C0F0D008D64722C4D0C4BA75F5B877DF5E148D224560C226F0954BF4
              63022449C2EB03A7301BFB0F1829A1A0EBE8E9DD8D5874AA200783DB0F1D3830
              CEF805A3507C71EBB6F6C0D0D005D4D5868979815044ECDFDB831CB135282D96
              6D43207CC771E8DD726B61E806FA1E7D1836ED9B9605D5E3C1F9E1116CEDD8E1
              5D4A17FEC0B1C5175F7B6D433E56794CF5669996C9519E4D0217B0FDF6767256
              E3E6DD21645992B1B098806E18F0797DB0C9894DC82245118FC7B194CE52AD8A
              BC245065194A30D87457EFBE534CCF16FB76ECAD13A726A360246C220893D8AE
              AF5FEBB2E209610243746616C7291DA7DEFD27645972C1B959968940C0EF46C6
              A8E8FCFEE4F40CC2D5D52CABE7FB98E9983D5E0ACDE02117395B1E8088F1AF26
              317A650C53D3D3C8E4B2383F7211D1F9049824BA8E79DA3863EE68399D011325
              AA0BA325627939033F392D0AC21E892952ABE2F72147DA0E9497BB05142586CB
              63D7304F8D95CE68C493F24EA05D3FF81E9E78EC7E6428959C31379B9EEF7DF4
              31226B22943A9594A6223937472419A94B6966CC942BB44C160E4F0FA8E6C420
              A7E9988ECDD36501E515E5B42AD0DDB50B4F3EFA0039CC126BDB05F7F97CF8E3
              9163A8AAAAA5C23B485124C48FEAA520934EC39E9BAD61052DEFC854148B1A89
              4BAF50D0B19048415694AF57A0AC0C7D8FDC8BE54CE66B7045F1E0E53FBF8A8C
              6620180C4252641A1D7E128109BD54842833905CC072D9E4B29F0E1469D3B26C
              570D8A47A642CA9064C5D5FA0E6AB47CBEE04A9567C6AB12F82B7F836E390855
              5743E444486565448493CCE7F30885AAB0042CB082AE8D2DC66650BD3682AC96
              776527D161891C70272239A90E5550196C5765DCE13829CE6612CA2BAB205271
              65DAF3511D15120B2759B76E1D324B09E473856B62DBCE9DF59486BBAB288AF9
              78C24DC90AF8CA935FE28E1769B0D9A6E54AF0D2E52B50FD65E4909443396722
              43807A835B9A266F53532316138B989F8B9D6086E00C8C5D19B35A5A9B6924E8
              2E239174BE1A09975F8822D8DF7327366EDC80EE5DDFC7EE3B7E488E7D6E3F70
              0215448ED1F9121130687EB5B76CC5E977DEB1618B6F8A63172FA63736B7B608
              B0DB5A9A9BA95B97A0B8EC3D6E04FCE27D3D5D6E071749FB3AAD8648189F8F8E
              BB43CEEF53DDBA583401964961B76D6BC2DCEC3492A9A5D36FFDF5E82BEE2C02
              735EF8F0DCB96CB83288F220854AB96622F5832842A2A591B26C9B6B828C52C2
              C7894D2B5816584913FDB4828180AA6003397FEFEC6001A6F797FC381FE8B8FA
              C517E96DEDADD14B973E7FE4C78F3D24DC882FC216245245800698170952567D
              6D35390FB80DF7C1E0275483801BA14E1394E75D724AD8DD793B0E1F3DEAC8B6
              F5DCBB03C7CF706C775CAFDABEFB1E7CDE76CC977EFEECB342A1045CBE3E8DBA
              356BA8A1FCF090EE0B5423DB2A51DE5577A865B51C92F11B686E8C20145070F8
              2F471D52EE6F3EFCC7E9DFDE845C8960D526AE8F8FAC6F6CFCF7E09933FB6511
              CAC3F7FC088EA5D3473E450A5B84C0E710F542722101C132100905D0D1B201C3
              E7CEE2C889D70B0A9CE7063F78FF4F37E15CFB5604ABD6DDDDBD316F182FE99A
              F6506767A7D8D5D5894D9B37117BFE3D037D2A1926A72671E1D34FF1E597971D
              9BB1BFFB64F957C3C3C3D75710FE67B774B06A1D1D1D5B8AB6DD6719C6DD24F8
              664964357CDF34AD043DAE299274D651D581D1CF3EBBC6F7BF6BC07F01355AFF
              41396724CE0000000049454E44AE426082}
            FileName = 'C:\views\senCille\Images\A_Comunes\Inmediate Help 24.png'
          end>
        Anchors = [akTop, akRight]
        Cursor = crHandPoint
        Position.X = 778.000000000000000000
        Position.Y = 4.000000000000000000
        Size.Width = 24.000000000000000000
        Size.Height = 24.000000000000000000
        Size.PlatformDefault = False
        WrapMode = Center
      end
      object BtnNew: TButton
        Anchors = [akTop, akRight]
        Cursor = crHandPoint
        Position.X = 664.000000000000000000
        Position.Y = 56.000000000000000000
        Size.Width = 103.000000000000000000
        Size.Height = 25.000000000000000000
        Size.PlatformDefault = False
        TabOrder = 3
        Text = 'Nuevo'
        Left = 6
        Top = 14
        object BlurEffect5: TBlurEffect
          Softness = 0.300000011920929000
          Enabled = False
        end
      end
    end
    object PanelDown: TPanel
      Align = Bottom
      Position.Y = 448.000000000000000000
      Size.Width = 807.000000000000000000
      Size.Height = 45.000000000000000000
      Size.PlatformDefault = False
      TabOrder = 2
      Left = 1
      Top = 114
      object BtnOK: TButton
        Anchors = [akRight, akBottom]
        Cursor = crHandPoint
        Position.X = 689.000000000000000000
        Position.Y = 8.000000000000000000
        Size.Width = 97.000000000000000000
        Size.Height = 27.000000000000000000
        Size.PlatformDefault = False
        TabOrder = 0
        Text = 'OK'
        Left = 194
        Top = 9
      end
    end
    object PnlBtn: TPanel
      Align = Right
      Position.X = 688.000000000000000000
      Position.Y = 177.000000000000000000
      Size.Width = 119.000000000000000000
      Size.Height = 271.000000000000000000
      Size.PlatformDefault = False
      TabOrder = 1
      Left = 314
      object BtnDelete: TButton
        Anchors = [akTop, akRight]
        Cursor = crHandPoint
        Position.X = 8.000000000000000000
        Position.Y = 96.000000000000000000
        Size.Width = 103.000000000000000000
        Size.Height = 25.000000000000000000
        Size.PlatformDefault = False
        TabOrder = 0
        Text = 'Eliminar'
        Left = 6
        Top = 70
        object BlurEffect1: TBlurEffect
          Softness = 0.200000002980232200
          Enabled = False
        end
      end
      object BtnAccept: TButton
        Anchors = [akRight, akBottom]
        Cursor = crHandPoint
        Opacity = 0.500000000000000000
        Position.X = 8.000000000000000000
        Position.Y = 177.000000000000000000
        Size.Width = 103.000000000000000000
        Size.Height = 25.000000000000000000
        Size.PlatformDefault = False
        TabOrder = 2
        Text = 'Aceptar'
        Left = 6
        Top = 265
        object BlurEffect3: TBlurEffect
          Softness = 0.300000011920929000
          Enabled = False
        end
      end
      object BtnCancel: TButton
        Anchors = [akRight, akBottom]
        Cursor = crHandPoint
        Opacity = 0.500000000000000000
        Position.X = 8.000000000000000000
        Position.Y = 217.000000000000000000
        Size.Width = 103.000000000000000000
        Size.Height = 25.000000000000000000
        Size.PlatformDefault = False
        TabOrder = 1
        Text = 'Cancelar'
        Left = 6
        Top = 265
        object BlurEffect2: TBlurEffect
          Softness = 0.300000011920929000
          Enabled = False
        end
      end
    end
    object LiveGrid: TTMSFMXLiveGrid
      Align = Client
      DisableFocusEffect = False
      TabOrder = 3
      Size.Width = 688.000000000000000000
      Size.Height = 271.000000000000000000
      Size.PlatformDefault = False
      FixedColumns = 0
      ColumnCount = 27
      RowCount = 1
      SelectionMode = smSingleRow
      Options.Editing.CalcFormat = '%g'
      Options.Grouping.CalcFormat = '%g'
      Options.Grouping.GroupCountFormat = '(%d)'
      Options.IO.XMLEncoding = 'ISO-8859-1'
      Options.Mouse.TouchScrollingSensitivity = 0.100000001490116100
      Options.Printing.PageNumberFormat = '%g'
      Version = '2.2.6.9'
      Fill.Kind = Gradient
      Fill.Gradient.Points = <
        item
          Color = claBlack
          Offset = 0.000000000000000000
        end
        item
          Color = claWhite
          Offset = 1.000000000000000000
        end>
      Stroke.Kind = Solid
      TopRow = 1
      LeftCol = 0
      Columns = <
        item
          Color = claNull
          ColumnType = ctButton
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = 'DELETE'
          Name = 'DELETE'
          Width = 24.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 24.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 64.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 64.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 75.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 75.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 100.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 300.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 80.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 80.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 80.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 80.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 80.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 80.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 80.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 90.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 100.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 150.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 90.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 120.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 150.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 120.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 24.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 64.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 64.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 64.000000000000000000
        end
        item
          Color = claNull
          Editor = etEdit
          Fixed = False
          FixedFont.Style = [fsBold]
          FixedFontColor = claBlack
          FontColor = claBlack
          ID = ''
          Width = 64.000000000000000000
        end>
    end
  end
  object BindSourceDB: TBindSourceDB
    DataSet = DataModuleGetLinsDlnSls.cdsLinsDlnSls
    ScopeMappings = <>
    Left = 589
    Top = 301
  end
  object BindingsList: TBindingsList
    Methods = <>
    OutputConverters = <>
    Left = 588
    Top = 253
    object LinkGridToDataSourceBindSourceDB2: TLinkGridToDataSource
      Category = 'Quick Bindings'
      DataSource = BindSourceDB
      GridControl = LiveGrid
      Columns = <
        item
          MemberName = 'DELETE'
          Width = 24
        end
        item
          MemberName = 'CHECKED'
          Width = 24
        end
        item
          MemberName = 'CD_SERIES'
        end
        item
          MemberName = 'NM_DLN_SLS'
          Header = 'N'#250'mero'
        end
        item
          MemberName = 'DTE_DLN_SLS'
          Width = 75
        end
        item
          MemberName = 'DTE_HIS_DATE'
          Header = 'Su Fecha'
          Width = 75
        end
        item
          MemberName = 'CD_ITEM'
          Header = 'Art'#237'culo'
          Width = 100
        end
        item
          MemberName = 'DESCRIPTION'
          Width = 300
        end
        item
          MemberName = 'QTY_QUANTITY'
          Header = 'Cantidad'
          Width = 80
        end
        item
          MemberName = 'PRI_UNIT'
          Header = 'Precio'
          Width = 80
        end
        item
          MemberName = 'PRC_DISC'
          Header = '% Dto'
          Width = 80
        end
        item
          MemberName = 'PRC_TAX'
          Header = '% IVA'
          Width = 80
        end
        item
          MemberName = 'IMP_NET'
          Header = 'Neto'
          Width = 80
        end
        item
          MemberName = 'IMP_TOTAL'
          Header = 'Importe'
          Width = 80
        end
        item
          MemberName = 'CD_DOC_STATE'
          Header = 'Estado'
          Width = 80
        end
        item
          MemberName = 'HIS_DOCUMENT'
          Header = 'Su Documento'
          Width = 90
        end
        item
          MemberName = 'CD_CUSTOMER'
          Header = 'Cliente'
          Width = 100
        end
        item
          MemberName = 'DS_CUSTOMER'
          Header = 'Nombre'
          Width = 150
        end
        item
          MemberName = 'ID_FISCAL'
          Header = 'NIF'
          Width = 90
        end
        item
          MemberName = 'DS_BUSINESS'
          Header = 'Raz'#243'n Social'
          Width = 120
        end
        item
          MemberName = 'ADDR_LINE_1'
          Header = 'Direcci'#243'n'
          Width = 150
        end
        item
          MemberName = 'CITY'
          Header = 'Poblaci'#243'n'
          Width = 120
        end
        item
          MemberName = 'SURCHARGE'
          Header = 'Recargo'
          Width = 24
        end
        item
          MemberName = 'CD_AGENT'
          Header = 'Agente'
        end
        item
          MemberName = 'CD_PAYMENT_FORM'
          Header = 'Forma de Pago'
        end
        item
          MemberName = 'CD_TRANSPORT'
          Header = 'Transporte'
        end
        item
          MemberName = 'CD_CURRENCY'
          Header = 'Divisa'
        end>
    end
  end
  object ImageList: TImageList
    Source = <
      item
        MultiResBitmap.LoadSize = 2
        MultiResBitmap = <
          item
            Width = 16
            Height = 16
            PNG = {
              89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
              61000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
              02E649444154384F5553DD4B5371187ECECED939739B6D216AC5324207A564DD
              1782430A41626B666D510A1ABBF05EEFFA378A3E0846184420DD7511047D2928
              5EA4529A6DD33E9CB8D0FC3AE7EC6CE7D773E6087DE19CDFE1FD78DEE77D9FDF
              9151B52EE0DA4960F22CF0630998ABBA0F590CB8DE044CB703DFBF1ECCB90CDC
              48783CF69B911131E8F78B38D04FB7B41FDDB75B4022A5AAF6CB4844A4344DF4
              01771CBFEC74AEF37A5F0C8F8E4AC1DA5AB4B5B7233333136DB1AC2C5B7C7692
              989938AA69633D5D5D92CBB6D1D4D0807C3E1F3B6DDB8BD24560F3DEF070A081
              4E737B1BB665A1A4EB184FA7B16A18032A50AC57D5B1EECE4E98A689E2EE2E4A
              CCB1767630BEB454925B814C6676B6B72D1C96C04099094AA984D6E666AC2E2E
              467D8A128F7574402A9721F6F660135C62CE542E871D21862A7372E6441DBB24
              E371A89204A95884C2028791F3EDE2A9170A307816C9629A20BF80D453E07145
              852FDC68B85C5E5C5E5888B78542F0704E856CE4B53548CBCB7091AEC34A26E8
              1459AC09917AC46296DAFF65E4C2E6C25CCA72361B3F130C422645951D6BDC6E
              688A029B4CDE6F6E62C5B653F7ABC54E9DCB791D34173BEDCDCF43E3E9D7341C
              F178E05755B8199384801730F9292AC9B4FF0C1CA9EA2469EC0AA56C0C04E063
              918FDD7D04D164192A4F5E34E4753D7A01C87EAC4A5C01B8C9E2008B233535E0
              9D808794BD7CB639BB8B73D7FA7C28925199BE13CCFF699AD173049924881C05
              FA82C0F34B9A2605D8C5ED725566D6B9AC57EBEB98E3DC6132017D06C12CC61B
              A9D45AB1186D01BEC921602622CB8A8F4E854185744D2AF07A6303BF6D7B8003
              3FC96D6D254F11C4628E4126267751CFEF59CBBA2A934AE6AF10F1E34E673E16
              257CCBED1758FC00484FB0CB79FE40395D4F86C8C264DCA0221FC850076ECB0B
              C06C98F3FC1122D640D409C340418801EA94E6B8956D7F724084985E318CE431
              E6BCE34DDC10A2FF21F0CC8957AC1748F6F0DE272A3FDEE13FB16AD25DA07B88
              320E3277DF05FC0364574D41F87CA07B0000000049454E44AE426082}
            FileName = 'C:\views\sencille\Images\A_Commons\delete 16.png'
          end>
        Name = 'Delete'
      end>
    Destination = <>
    Left = 704
    Top = 104
  end
end

The first post is the Source code in the controller that affects to the Grid.

The second post is the code for the view.  Including.

Sorry we are unable to compile this sample due to missing links to a datamodule.

Please send us a zip file containing your sample source code

My project has about 400.000 lines of code. I can't separate a piece of code. 

procedure TGetLInsDlnSlsController.OnGetCellClass(Sender: TObject; ACol, ARow: Integer; var CellClassType: TFmxObjectClass);
begin
   if (ARow >= FView.LiveGrid.FixedRows) and ((ACol = CHECKED) or (ACol = SURCHARGE)) then begin
      CellClassType := TTMSFMXCheckGridCell;
   end;
end;

procedure TGetLinsDlnSlsController.InitializeGrid;
begin
   FView.LiveGrid.UseColumns            := True;
   FView.LiveGrid.Options.Bands.Enabled := True;

   FView.LiveGrid.CheckTrue := 'Y';
   FView.LiveGrid.CheckFalse := 'N';
   FView.LiveGrid.Columns[CHECKED].ColumnType := TTMSFMXGridColumnType.ctCheckBox;


You can see that I initialize the Grid calling the Initialize Method.

Every time the grid needs to get CellClass I use your recommended code to assign the checkboxes.
The grid have a live binding to a ClientDataSet that is always active and auto edit.
The only properties modified on the grid, are in the initializations method.

No more. 

Please give me some documentation.  This is not a productive manner of use third party components.

There is no need to return a TTMSFMXCheckGridCell class type, setting the ColumnType already takes care of this.

 FView.LiveGrid.Columns[CHECKED].ColumnType := TTMSFMXGridColumnType.ctCheckBox;


Did you reference to this code?

Yes, The code inside the event handler can be removed

The removed code is part of your documentation....

Example: specifies that a checkbox is used for column 3:


The equivalent code to programmatically add checkboxes is:


To dynamically change a property of such checkbox cells when needed, the code that could be
used is:



page32image16488

		<div>
			<div>
				<p><span style="font-size: 10.000000pt; font-family: 'Courier New,Bold'; color: rgb0.000000%, 50.200000%, 0.000000%">procedure </span><span style="font-size: 10.000000pt; font-family: 'Courier New'">TForm4</span><span style="font-size: 10.000000pt; font-family: 'Courier New'; color: rgb100.000000%, 0.000000%, 0.000000%">.</span><span style="font-size: 10.000000pt; font-family: 'Courier New'">TMSFMXGrid1GetCellClass</span><span style="font-size: 10.000000pt; font-family: 'Courier New'; color: rgb100.000000%, 0.000000%, 0.000000%">(</span><span style="font-size: 10.000000pt; font-family: 'Courier New'">Sender</span><span style="font-size: 10.000000pt; font-family: 'Courier New'; color: rgb100.000000%, 0.000000%, 0.000000%">: </span><span style="font-size: 10.000000pt; font-family: 'Courier New'">TObject</span><span style="font-size: 10.000000pt; font-family: 'Courier New'; color: rgb100.000000%, 0.000000%, 0.000000%">; </span><span style="font-size: 10.000000pt; font-family: 'Courier New'">ACol</span><span style="font-size: 10.000000pt; font-family: 'Courier New'; color: rgb100.000000%, 0.000000%, 0.000000%">, </span><span style="font-size: 10.000000pt; font-family: 'Courier New'">ARow</span><span style="font-size: 10.000000pt; font-family: 'Courier New'; color: rgb100.000000%, 0.000000%, 0.000000%">:






Integer;






var CellClassType: TFmxObjectClass);






begin


if (ARow >= TMSFMXGrid1.FixedRows) and (ACol = 3) then




end;






CellClassType := TTMSFMXCheckGridCell;




var i: integer;




begin




for i := TMSFMXGrid1.FixedRows to TMSFMXGrid1.RowCount - 1 do




end;






TMSFMXGrid1.AddCheckBox(3,i,false);




procedure TForm1.TMSFMXGrid1GetCellProperties(Sender: TObject; ACol,




			</div>
		</div>
		<div>
			<div>
				<p><span style="font-size: 10.000000pt; font-family: 'Courier New,Bold'; color: rgb0.000000%, 50.200000%, 0.000000%">begin




if (ACol = 3) and (ARow >= TMSFMXGrid1.FixedRows) and (Cell is




TTMSFMXCheckGridCell) then




begin




(Cell as TTMSFMXCheckGridCell).CheckBox.IsChecked := true;




end;




end;





Now, I'm using the next instruction 


FView.LiveGrid.Columns[DELETE].ColumnType := TTMSFMXGridColumnType.ctButton;

but the button don't appears on the grid. And the space of this column don't respond to my clicks.

You start by telling you want to use a checkbox. This is known/included cell type in the grid that you can set via grid.Columns[].ColumnType as Pieter explained and there is NO need for a simple checkbox to do things that are explained in a chapter about using custom classes for a cell!  


Sorry, but I have difficult to understand you. 

I've removed the code that Peter say me. And this works well, But I need another cell that contains a Button, with an image. 
The process is different? Where is the example code for this?

I cannot reproduce this. Buttons appear and it is unclear what you mean with "space of this column don't respond to my clicks."  What is this?  OnCellClick IS triggered here when clicking the cell! 

Sorry, but I have difficult to understand you. 

I've removed the code that Peter say me. And this works well, But I need another cell that contains a Button, with an image. 
The process is different? Where is the example code for this?
With "space of this column" I pretend to say that there are nothing inside this column.

To Add a Button to all the cells of a column I found this methods:

	<div title="Page 35">
		<div>
			<div>
				<p><span style="font-size: 11.000000pt; font-family: 'Arial'">""The methods to add &amp; remove buttons in the grid are:

TMSFMXGrid.AddButton(Col,Row: integer; AText: string; AWidth: integer = 24);
Adds a button to the grid at cell Col,Row with caption text AText and width AWidth.


TMSFMXGrid.IsButton(Col,Row: integer): boolean;
Returns true when cell Col,Row contains a button


TMSFMXGrid.RemoveButton(Col,Row: integer);
Removes the button from cell Col,Row


When clicked, the button in the cell triggers the event OnCellButtonClick. ""

But I can't understand you I should use these methods. 

Is there an example with this functionality. I can't find it.