Stringgrid auf einmal wieder leer
Hallo,
ich habe ein Problem. Ich habe ein Stringgrid in welchem ich die Hintergrundfarbe von einzelnen Zellen ändere. ´Das Ganze funktioniert auch super. Allerdings habe ich das Problem, dass das Stringgrid komplett leer ist, sobald ich es einmal in die Taskleiste minimiert habe (also halt das ganze Programm) Wenn ich dann das Stringgrid wieder neu fülle ist wieder alles in Ordnung bis zum nächsten minimieren. Könnt ihr mir sagen woran das liegt? Zweites Problem ist, dass ich das Stringgrid mit einer Prozedur fülle. Wenn ich diese aber on FormCreate aufrufe, dann bleibt das Stringgrid leer.... Wenn ich die gleiche Prozedur dann nach dem Programmstart über einen Button aufrufe funktioniert alles. Woran liegt das nun schon wieder? Ich denke einfach mal, das liegt irgendwie an einer Grafikeinstellung. Die Prozeduren zum füllen sind übrigens die aus eurem Code-Schnippsel-Bereich...(also zum Füllen und Färben von Stringgrids) Hoffe ihr könnt mir helfen. MfG |
Re: Stringgrid auf einmal wieder leer
http://www.delphi-forum.de/viewtopic...298&highlight= :roll:
wenn du deinen verwendeten code gepostet hättest, wärst du sicher schon weiter. Mfg frank |
Re: Stringgrid auf einmal wieder leer
Delphi-Quellcode:
die Prozedur zahlenerzeugen wird halt mit einem Button aufgerufen. Da wird das Stringgrid auch gefüllt (wenn ich will auch farbig - alles kein problem)
procedure sgformatieren (col, row, backgroundcolor, fontcolor : integer; style, text : string);
var rect : Trect; begin form_main.sg_lotto.DefaultDrawing:=false; rect := form_main.sg_lotto.cellrect(col,row); form_main.sg_lotto.Canvas.Brush.Color := backgroundcolor; form_main.sg_lotto.Canvas.FillRect(Rect); form_main.sg_lotto.Canvas.Font.Color := fontcolor; if style = 'bold' then begin form_main.sg_lotto.canvas.Font.Style := [fsbold]; end else begin form_main.sg_lotto.canvas.Font.Style := []; end; DrawText(form_main.sg_lotto.Canvas.Handle, PChar(text), Length(text), Rect, DT_CENTER); end; procedure zahlen_erzeugen; var i, j, k : integer; begin k := 1; for i := 0 to 6 do begin for j := 0 to 6 do begin form_main.sg_lotto.cells[j,i] := inttostr(k); sgformatieren(j,i,clwhite,clblack,'normal',form_main.sg_lotto.cells[j,i]); inc(k); end; end; end; Sobald ich aber onformcreate zahlenerzeugen() ausführen lasse bleibt das Stringgrid leer bzw. wird einfach wieder weiß (ist dann halt einfach ein weißes Rechteck).... Das gleiche passiert beim minimieren des Programms. |
Re: Stringgrid auf einmal wieder leer
Einmal Zeichnen reicht natürlich nicht - zeichne die Zellen jeweils im OnDrawCell.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz