{"id":679,"date":"2008-05-20T12:09:03","date_gmt":"2008-05-20T12:09:03","guid":{"rendered":"http:\/\/6teen.ru\/?p=752"},"modified":"2008-05-20T12:09:03","modified_gmt":"2008-05-20T12:09:03","slug":"8756","status":"publish","type":"post","link":"http:\/\/pblog.ru\/lab\/?p=679","title":{"rendered":"\u0426\u0432\u0435\u0442\u043d\u044b\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u0432 StringGrid\/DbGrid"},"content":{"rendered":"<p>\u0426\u0432\u0435\u0442\u043d\u044b\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u0432 StringGrid\/DbGrid<br \/>\n<!--more--><\/p>\n<pre class=\"alt2\" style=\"margin:0px; padding:6px; border:1px inset; width:580px; height:320px; overflow:auto\"><div>\u0426\u0432\u0435\u0442\u043d\u044b\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u0432 StringGrid\/DbGrid\n\n\u0410\u0432\u0442\u043e\u0440: alex schlecht\n\nstringgrids \/ dbgrids \u0441 \u0446\u0432\u0435\u0442\u043d\u044b\u043c\u0438 \u044f\u0447\u0435\u0439\u043a\u0430\u043c\u0438 \u0441\u043c\u043e\u0442\u0440\u044f\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u043e, \u0438 \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e \u0432\u0430\u0436\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043d\u0443\u0442\u0440\u0438 grid.\n\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c: \u0432\u0441\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 delphi\n\n\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043c\u0435\u0442\u043e\u0434 \u043a stringgrids \u0438 \u043a dbgrids. \u0418\u0442\u0430\u043a \u0441\u043f\u0435\u0440\u0432\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432 stringgrid:\n\n1. stringgrid\n=============\n\u0414\u043b\u044f \u0440\u0430\u0441\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \"ondrawcell\". \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432 grid \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0431\u044d\u043a\u0440\u0430\u0443\u043d\u0434. \u0411\u044d\u043a\u0433\u0440\u0430\u0443\u043d\u0434 \u0432\u0442\u043e\u0440\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0431\u0443\u0434\u0435\u0442 \u0437\u0435\u043b\u0451\u043d\u044b\u043c.\n\nprocedure tform1.stringgrid1drawcell(sender: tobject; acol, arow: integer;\nrect: trect; state: tgriddrawstate);\n\nconst \/\/\u0441\u0434\u0435\u0441\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0412\u0430\u0448 \u0446\u0432\u0435\u0442. \u0422\u0430\u043a \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\n\/\/\u0446\u0432\u0435\u0442\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.\nclpalegreen = tcolor($ccffcc);\nclpalered = tcolor($ccccff);\n\nbegin\n\n\/\/\u0415\u0441\u043b\u0438 \u044f\u0447\u0435\u0439\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0444\u043e\u043a\u0443\u0441, \u0442\u043e \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u0437\u0430\u043a\u0440\u0430\u0441\u0438\u0442\u044c \u0435\u0451 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0446\u0432\u0435\u0442\u0430\u043c\u0438\nif (gdfocused in state) then begin\nstringgrid1.canvas.brush.color := clblack;\nstringgrid1.canvas.font.color := clwhite;\nend\nelse \/\/\u0415\u0441\u043b\u0438 \u0436\u0435 \u044f\u0447\u0435\u0439\u043a\u0430 \u0442\u0435\u0440\u044f\u0435\u0442 \u0444\u043e\u043a\u0443\u0441, \u0442\u043e \u0437\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0435\u0451 \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u0438 \u0437\u0435\u043b\u0451\u043d\u044b\u043c\n\nif acol = 2 \/\/\u0412\u0442\u043e\u0440\u0430\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0435\u043b\u0451\u043d\u043e\u0439 , \u0434\u0440\u0443\u0433\u0438\u0435 - \u044f\u0447\u0435\u0439\u043a\u0438 \u043a\u0440\u0430\u0441\u043d\u044b\u043c\u0438\nthen stringgrid1.canvas.brush.color := clpalegreen\nelse stringgrid1.canvas.brush.color := clpalered;\n\n\/\/\u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u043a\u0440\u0430\u0441\u0438\u043c \u044f\u0447\u0435\u0439\u043a\u0438, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e, \u0435\u0441\u043b\u0438 \u044f\u0447\u0435\u0439\u043a\u0430 \u043d\u0435 title- row\/column\n\/\/\u0415\u0441\u0442\u0435\u0432\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0437\u0430\u0432\u0438\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0435\u0441\u0442\u044c \u0443 \u0412\u0430\u0441 title-row\/columns \u0438\u043b\u0438 \u043d\u0435\u0442.\n\nif (acol > 0) and (arow>0) then\nbegin\n\/\/\u0417\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0431\u044d\u043a\u0433\u0440\u0430\u0443\u043d\u0434\nstringgrid1.canvas.fillrect(rect);\n\n\/\/\u0417\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442 (text). \u0422\u0430\u043a\u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0438 \u0442.\u0434..\nstringgrid1.canvas.textout(rect.left,rect.top,stringgrid1.cells[acol,arow]);\nend;\n\n\u0415\u0441\u043b\u0438 \u0412\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u0447\u0442\u043e\u0431\u044b \u0446\u0432\u0435\u0442 \u044f\u0447\u0435\u0435\u043a \u043c\u0435\u043d\u044f\u043b\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043d\u0438\u0445, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c 3 \u043b\u0438\u043d\u0438\u0438 (if acol = 2 ......) \u043d\u0430 \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0442\u044c \u0432\u0440\u043e\u0434\u0435 \u044d\u0442\u043e\u0433\u043e\n\nif stringgrid1.cells[acol,arow] = 'highlight it'\nthen stringgrid1.canvas.brush.color := clpalered\nelse stringgrid1.canvas.brush.color := clwhite;\n\n\u041d\u0443 \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u043a\u0440\u0430\u0441\u0438\u043c dbgrids:\n\n2. dbgrid\n=========\n\u0421 dbgrids \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0449\u0435. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \"ondrawcolumncell\". \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0437\u0443\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u044f\u0447\u0435\u0439\u043a\u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \"status\" \u043a\u043e\u0433\u0434\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u041d\u0415 \u0440\u0430\u0432\u043d\u043e \"a\".\n\u0415\u0441\u043b\u0438 \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u043a\u0440\u0430\u0441\u0438\u0442\u044c \u0446\u0435\u043b\u0443\u044e \u043b\u0438\u043d\u0438\u044e, \u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \"if...\" (\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0438\u0436\u0435)\n\nprocedure tform1.dbgrid1drawcolumncell(sender: tobject; const rect: trect;\ndatacol: integer; column: tcolumn;\nstate: tgriddrawstate);\nconst\nclpalegreen = tcolor($ccffcc);\nclpalered = tcolor($ccccff);\nbegin\n\nif column.fieldname = 'status' then \/\/\u0423\u0434\u0430\u043b\u0438\u0442\u0435 \u044d\u0442\u0443 \u043b\u0438\u043d\u0438\u044e, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0435\u0442\u0435 \u0437\u0430\u043a\u0440\u0430\u0441\u0438\u0442\u044c \u0446\u0435\u043b\u0443\u044e \u043b\u0438\u043d\u0438\u044e\n\nif column.field.dataset.fieldbyname('status').asstring <> 'a'\nthen\nif (gdfocused in state) \/\/\u0438\u043c\u0435\u0435\u0442 \u043b\u0438 \u044f\u0447\u0435\u0439\u043a\u0430 \u0444\u043e\u043a\u0443\u0441?\nthen dbgrid1.canvas.brush.color := clblack \/\/\u0438\u043c\u0435\u0435\u0442 \u0444\u043e\u043a\u0443\u0441\nelse dbgrid1.canvas.brush.color := clpalegreen; \/\/\u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0444\u043e\u043a\u0443\u0441\u0430\n\n\/\/\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043a\u0440\u0430\u0441\u0438\u043c \u044f\u0447\u0435\u0439\u043a\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434:\ndbgrid1.defaultdrawcolumncell(rect,datacol,column,state)\nend;\n<\/div><\/pre>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0426\u0432\u0435\u0442\u043d\u044b\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u0432 StringGrid\/DbGrid<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[568,386],"tags":[1180,1851,1887],"_links":{"self":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/679"}],"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=679"}],"version-history":[{"count":0,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/679\/revisions"}],"wp:attachment":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=679"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=679"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}