Einzelnen Beitrag anzeigen

Stecky2000

Registriert seit: 7. Mai 2008
Ort: Trebur
66 Beiträge
 
Delphi 2010 Professional
 
#20

Re: Farbe von mit OnDrawcell gefärbter StringGridZelle abfra

  Alt 5. Nov 2008, 23:01
Lannes, Du hast Recht und ich danke dir, auch wenn ich genau diese Lösung bereits vor deinem Post selbst eingebaut habe.

Wie Du in einem meiner ersten Post bereits zitiert hast,

"... Beim export nach excel will ich diese Abfrage nicht machen, sondern gleich sagen, "

wollte ich genau diese Lösung nicht, letztendlich, da sich das mit dem Flackern nicht lösen lies, habe ich es genau so eingebaut, mit abgewmdeltem Code da ich das ganze mit dem "X" in einem anderen StringGrid checke.

Es freut mich, dass ich doch langsam begreife warum was nicht geht, denn ich hatte bereits das gleiche vermutet, wie Du jetzt sagst:

"das muss flackern, denn durch das setzen von Objects wird das Neuzeichnen der Zelle = Ereignis OnDrawCell, ausgelöst."

Genau das habe ich schon bei anderer Gelegenheit festgestellt und sehe die Lösung für sowas genauso, keinen Code innerhalb der OnDrawCell der sozusagen OnDrawCell selbst immer wieder provoziert.

Mein Code sieht jetzt so aus:

Delphi-Quellcode:
Excel.Cells[i+6, j+1] := StringGrid1.Cells[j, i];
Excel.Cells[i+6, j+1].Select;
if (StringGrid1.Cells[j, i] <> '') and (StringGrid1.Cells[j, i] <> ' ') then
  if StringGrid1.Cells[j, i] = StringGrid3.Cells[0, StrToInt(StringGrid1.Cells[j, i])] then
    begin
      if (StringGrid3.Cells[1, StrToInt(StringGrid1.Cells[j, i])] = 'x') or
         (StringGrid3.Cells[1, StrToInt(StringGrid1.Cells [j, i])] = 'X') then
             Excel.Selection.Interior.ColorIndex := 4; //grün machen
             Excel.Selection.Interior.Pattern := xlSolid;
    end;
  Mit Zitat antworten Zitat