Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   StringGrid Darstellungsfehler Windows 7 (https://www.delphipraxis.net/153611-stringgrid-darstellungsfehler-windows-7-a.html)

Ykcim 10. Aug 2010 09:16

Delphi-Version: 2006

StringGrid Darstellungsfehler Windows 7
 
Hallo Zusammen,

ich verwende TurboDelphi und habe ein kleines Programm geschrieben, welches viele StringGrids enthält, die mit Daten aus einer Datenbank heraus befüllt werden. Die Darstellung wurde teilweise noch ein wenig verändert (Farben etc.) mit dem OnDrawCell Ereignis.
Ich habe mit XP die Entwicklung angefangen und da klappte alles recht gut. Die Darstellung war korrekt. Jetzt bin auf Windows 7 umgestiegen und musste feststellen, dass die Gitterlinien oft nicht mehr richtig dargestellt werden. Ich weiß mittlerweile, dass es an dem OnDrawCell Ereignis liegt, denn wenn ich das rausnehme, wird das Grid wieder korrekt angezeigt.

Kennt jemand das Problem und gibt es dafür eine Lösung?

Gruß Ykcim

Bernhard Geyer 10. Aug 2010 09:22

AW: StringGrid Darstellungsfehler Windows 7
 
Wirst schon deinen Quellcode posten müssen. Oder sollen wir eine fröhliche Raterunde starten?

Ykcim 10. Aug 2010 10:14

AW: StringGrid Darstellungsfehler Windows 7
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich dachte, dass es sich vielleicht um ein generelles Problem handelt und hatte deshalb keinen Code mitgeschickt...

Also nachfolgend der Code und im Anhang ein Bild mit der Darstellung im Programm.

Delphi-Quellcode:
procedure TFAsuchen.DispoDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var Gird : TStringGrid;
    Size : TSize;
begin
  Gird := TStringGrid(Sender);
  //Text aussgeben
  Gird.Canvas.TextRect(Rect,Rect.Left, Rect.Top, Gird.Cells[ACol, ARow]);
  if Dispo.Cells[8,Arow]='1' then
    begin
      Dispo.Canvas.Font.Color:=clblue;
    end;
  if Dispo.Cells[8,Arow]='2' then
    begin
      Dispo.Canvas.Brush.Color := clYellow;
      Dispo.Canvas.Font.Color:=clblue;
    end;
  Dispo.Canvas.FillRect(Rect);
  Dispo.Canvas.TextOut(Rect.Left, Rect.Top, Dispo.Cells[ACol, ARow]);
end;
Zu dem Bild: Die Daten stehen in den richtigen Feldern, es geht nur um die Gitternetzlinien.

Vielen Dank

Ykcim

Ykcim 23. Dez 2010 12:52

AW: StringGrid Darstellungsfehler Windows 7
 
Hat hier irgendjemand kurz vor Weihnachten noch ein Weihnachtsgeschenk für mich ?:roll:

blauweiss 23. Dez 2010 13:47

AW: StringGrid Darstellungsfehler Windows 7
 
Zitat:

Zitat von Ykcim (Beitrag 1070154)
Hat hier irgendjemand kurz vor Weihnachten noch ein Weihnachtsgeschenk für mich ?:roll:

Vielleicht ich ! 8-)

Wir hatten auf einem Windows 7 PC auch Darstellungsprobleme beim Zeichnen von Linien auf einen Canvas. Hat ganz ähnlich ausgesehen wie in Deinem StringGrid.

Behoben wurde das (ganz billig) durch die Installation eines Grafiktreibers von der HP des GraKa-Herstellers. Der Win7-eigene Treiber war bei uns der Übeltäter.
Evtl. hilft Dir das weiter ?

Gruß,
blauweiss

Bummi 23. Dez 2010 14:04

AW: StringGrid Darstellungsfehler Windows 7
 
versuchs mal so
Delphi-Quellcode:
ispo.Canvas.TextOut(Rect.Left + 2, Rect.Top, Dispo.Cells[ACol, ARow]);
oder setzte vor dem Textout den Brush.Style auf bsClear

Ykcim 27. Dez 2010 08:07

AW: StringGrid Darstellungsfehler Windows 7
 
Vielen Dank!

Damit hat es geklappt!
Delphi-Quellcode:
Gird.Canvas.TextRect(Rect,Rect.Left, Rect.Top, Gird.Cells[ACol, ARow]);
Ich wünsche noch eine schöne Zeit und ein gesegnetes Jahr 2011.

Yckim


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz