{"id":372,"date":"2008-05-23T23:19:16","date_gmt":"2008-05-23T23:19:16","guid":{"rendered":"http:\/\/6teen.ru\/?p=221"},"modified":"2008-05-23T23:19:16","modified_gmt":"2008-05-23T23:19:16","slug":"2011","status":"publish","type":"post","link":"http:\/\/pblog.ru\/lab\/?p=372","title":{"rendered":"\u041a\u0430\u043a \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0432 DBGrid"},"content":{"rendered":"<p>\u041a\u0430\u043a \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0432 DBGrid<br \/>\n<!--more--><\/p>\n<pre class=\"alt2\" style=\"margin:0px; padding:6px; border:1px inset; width:580px; height:320px; overflow:auto\"><div>\u041a\u0430\u043a \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0432 DBGrid\n\n\u042d\u0442\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u0432 \u0412\u0430\u0448 \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a \u043e\u0442 tcustomdbgrid, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0448\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u0443\u044e\n\u0437\u0430\u0434\u0430\u0447\u0443.\n\n=== begin dbgridex.pas ===\n\/\/ ----------------------------------------------------------------------------\n-\ndestructor tdbgridex.destroy;\nbegin\n\n_hidecolumnsvalues.free;\n_hidecolumns.free;\n\ninherited destroy;\nend;\n\n\/\/ ----------------------------------------------------------------------------\nconstructor tdbgridex.create(component : tcomponent);\nbegin\ninherited create(component);\n\nffreezecols := ?;\n\n_hidecolumnsvalues := tlist.create;\n_hidecolumns := tlist.create;\nend;\n\n\/\/ ----------------------------------------------------------------------------\nprocedure tdbgridex.keydown(var key: word; shift: tshiftstate);\nbegin\nif (key = vk_left) then colbeforeenter(-1);\nif (key = vk_right) then colbeforeenter(1);\n\ninherited;\nend;\n\n\/\/ ----------------------------------------------------------------------------\nprocedure tdbgridex.setfreezecolor(acolor : tcolor);\nbegin\ninvalidaterow(0);\nend;\n\n\/\/ ----------------------------------------------------------------------------\nprocedure tdbgridex.setfreezecols(afreezecols : integer);\nbegin\nffreezecols := afreezecols;\ninvalidaterow(0);\nend;\n\n\/\/ ----------------------------------------------------------------------------\nprocedure tdbgridex.colenter;\nbegin\ncolbeforeenter(0);\n\nif assigned(oncolenter) then oncolenter(self);\nend;\n\n\/\/ ----------------------------------------------------------------------------\nprocedure tdbgridex.colbeforeenter(adelta : integer);\nvar\nnindex : integer;\n\nfunction readwidth : integer;\nvar\ni : integer;\n\nbegin\ni := _hidecolumns.indexof(columns[nindex]);\n\nif i = -1\nthen result := 120\nelse result := integer(_hidecolumnsvalues[i]);\nend;\n\nprocedure savewidth;\nvar\ni : integer;\n\nbegin\ni := _hidecolumns.indexof(columns[nindex]);\nif i <> - 1 then\nbegin\n_hidecolumnsvalues[i] := pointer(columns[nindex].width);\nend else\nbegin\n_hidecolumns.add(columns[nindex]);\n_hidecolumnsvalues.add(pointer(columns[nindex].width));\nend;\n\nbegin\nfor nindex := 0 to columns.count - 1 do\nbegin\nif (columns[nindex].width = 0) then\nbegin\nif (nindex + 1 <= freezecols) or (nindex >= selectedindex + adelta)\nthen columns[nindex].width := readwidth;\nend\nelse\nbegin\nsavewidth;\nif (nindex + 1 > freezecols) and\n(nindex < selectedindex + adelta) and\n(nindex + 1 < columns.count) and\n(freezecols > 0)\nthen columns[nindex].width := 0;\nend;\n\n=== end dbgridex.pas ===\n<\/div><\/pre>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041a\u0430\u043a \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0432 DBGrid<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[401,386],"tags":[1906,749,1003],"_links":{"self":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/372"}],"collection":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=372"}],"version-history":[{"count":0,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/372\/revisions"}],"wp:attachment":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=372"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}