Autor Téma: Chybné vykreslení ve StringGridu  (Přečteno 343 krát)

Offline Jirka

  • Hrdina
  • ****
  • Příspěvků: 432
  • Karma: 9
    • Verze Delphi: XE2
Chybné vykreslení ve StringGridu
« kdy: 16-10-2021, 22:58:20 »
Narazil jsem zřejmě na chybu v XE2 (D2007  ani 10.4.2 to nedělají).
Na levé straně buňky zůstane asi 2 pixely nevykresleno podkladovou barvou.
Nejlépe je to vidět na přiloženém obrazku
Potřebuji to nějak obejít - přechod na 10.4.2 je až to poslední řešení
DrawGrid nemohu použít  - potřebuji totiž Objects


Kód: Delphi [Vybrat]
  1. procedure TFoPlanSmen.GridHarmongramTxtDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
  2.   State: TGridDrawState);
  3. begin
  4. with TStringGrid(Sender) do
  5.            begin
  6.             Canvas.Brush.Color := clLime ;
  7.             Canvas.FillRect(Rect);
  8.            
  9.           end;
  10. end;
« Poslední změna: 16-10-2021, 23:00:42 od Jirka »

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3286
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Chybné vykreslení ve StringGridu
« Odpověď #1 kdy: 17-10-2021, 07:49:31 »
Narazil jsem zřejmě na chybu v XE2 (D2007  ani 10.4.2 to nedělají).
Na levé straně buňky zůstane asi 2 pixely nevykresleno podkladovou barvou.
Ty gridy z Delphi jsem pouzil tak davno, ze si o nich vubec nic nepamatuju - jakmile jsme objevilli VTV, tak uz jsme ho pouzivali na vsechno.

Kdyz zahybes s hodnotami v Rect pred FillRect(), tak co se stane?

Offline Jirka

  • Hrdina
  • ****
  • Příspěvků: 432
  • Karma: 9
    • Verze Delphi: XE2
Re:Chybné vykreslení ve StringGridu
« Odpověď #2 kdy: 17-10-2021, 18:13:52 »
Excellent
Rated 1 time
Kdyz zahybes s hodnotami v Rect pred FillRect(), tak co se stane?

Jednoduché a efektivní - viz obrázek
Díky

P.S.  Koukám že to bude chtít přida ještě jeden pixlík
« Poslední změna: 17-10-2021, 18:17:33 od Jirka »