Cześć,
od paru dni walczę z dostosowanie StringGrida do swoich oczekiwań :) Idzie mi to strasznie ciężko ale zrobiłem małe postępy.
Chciałbym aby po kliknięciu w wybraną komórkę cały wiersz został zaznaczony przezroczystym kolorem. Udało mi się to osiągnąć poprzez wczytanie obrazka z przezroczystością i wypełnieniem nim komórki.
Najbardziej zależy mi na tle StringGrida. Udało mi się wczytać do tła obrazek:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
aRect: TRect; aState: TGridDrawState);
begin
StringGrid1.Canvas.Draw(0,0, Image1.Picture.Graphic);
end;
I jest ok ale nie do końca wygląda to tak jak chciałem.
Chciałbym aby ten wybrany obrazek wypełnił całą powierzchnię StringGrida a nie tylko miejsce gdzie są komórki.
Oprócz tego pojawił się u mnie pomysł aby całkowicie zlikwidować tło StringGrida.
Czy jest możliwe aby StringGrid nie miał żadnego tła (pomijając celowo pokolorowane komórki) i widoczne przez niego były elementy/kolory/tła komponentów, formy leżącej pod nim? Jak można osiągnąć taki efekt? Jest w ogóle to możliwe?
Dodatkowo pojawił się problem z opóźnieniem przy 'kolorowaniu' całego wiersza obrazem z przezroczystością. Kliknięta komórka koloruje się od razu jednak reszta dopiero po chwili.
Kolorowanie w ten sposób całego wiersza rozwiązałem poprzez zapisanie w zmiennej numeru klikniętego wiersza a potem w procedurze DrawCell sprawdzeniu czy aktualnie rysowana komórka leży w zaznaczonym wierszu.
procedure TForm1.StringGrid1Click(Sender: TObject);
begin
PRow:=StringGrid1.Row;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
aRect: TRect; aState: TGridDrawState);
begin
stringgrid1.Canvas.Draw(0,0, Image1.Picture.Graphic);
if (aCol = 0) or (aRow = 0) then
begin
stringgrid1.Canvas.Pen.Color := $00DCE8ED;
stringgrid1.Canvas.Brush.Color := $00DCE8ED;
stringgrid1.Canvas.Font.Style := [fsBold];
stringgrid1.Canvas.Rectangle(aRect);
end;
if ((gdSelected in aState) or (PRow=aRow)) then
begin
stringgrid1.canvas.StretchDraw(aRect, img.Picture.Graphic);
end;
end;
Może trochę chaotycznie ale proszę o pomoc:)
- sg.png (73 KB) - ściągnięć: 236