Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Stringgrid auf einmal wieder leer (https://www.delphipraxis.net/62420-stringgrid-auf-einmal-wieder-leer.html)

Dummfisch 4. Feb 2006 09:28


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

Keldorn 4. Feb 2006 09:36

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

Dummfisch 4. Feb 2006 09:47

Re: Stringgrid auf einmal wieder leer
 
Delphi-Quellcode:
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;
die Prozedur zahlenerzeugen wird halt mit einem Button aufgerufen. Da wird das Stringgrid auch gefüllt (wenn ich will auch farbig - alles kein problem)
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.

Khabarakh 4. Feb 2006 10:20

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