stringgrid renklendirme?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

stringgrid renklendirme?

Mesaj gönderen nitro »

s.a.
stringgridde istediğim hücreyi nasıl renklendiririm.
mesela: boya(satir,sutun,renk);
boya(3,2,clred); gibi.

yaptığım aramalar sonucu

Kod: Tümünü seç

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
if (gdselected in state) then StringGrid1.canvas.brush.color := clRed;
StringGrid1.Canvas.FillRect(Rect);
gibi bir koda ulaştım ama hücresel bir kontrol sunmuyor.
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Kod: Tümünü seç

procedure StringGridRotateTextOut(Grid: TStringGrid; ARow, ACol: Integer; Rect: TRect;
  Schriftart: string; Size: Integer; Color: TColor; Alignment: TAlignment);
var
  lf: TLogFont;
  tf: TFont;
begin
  if (Size > Grid.ColWidths[ACol] div 2) then
    Size := Grid.ColWidths[ACol] div 2;
  with Grid.Canvas do
  begin
    Font.Name := Schriftart;
    Font.Size := Size;
    Font.Color := Color;
    tf := TFont.Create;
    try
      tf.Assign(Font);
      GetObject(tf.Handle, SizeOf(lf), @lf);
      lf.lfEscapement  := 900;
      lf.lfOrientation := 0;
      tf.Handle := CreateFontIndirect(lf);
      Font.Assign(tf);
    finally
      tf.Free;
    end;
    FillRect(Rect);
    if Alignment = taLeftJustify then
      TextRect(Rect, Rect.Left + 2,Rect.Bottom - 2,Grid.Cells[ACol, ARow]);
    if Alignment = taCenter then
      TextRect(Rect, Rect.Left + Grid.ColWidths[ACol] div 2 - Size +
        Size div 3,Rect.Bottom - 2,Grid.Cells[ACol, ARow]);
    if Alignment = taRightJustify then
      TextRect(Rect, Rect.Right - Size - Size div 2 - 2,Rect.Bottom -
        2,Grid.Cells[ACol, ARow]);
  end;
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if ACol = 1 then
    StringGridRotateTextOut(StringGrid1, ARow, ACol, Rect, 'ARIAL',
      12,clRed, taLeftJustify);

  if ACol = 2 then
    StringGridRotateTextOut(StringGrid1, ARow, ACol, Rect, 'ARIAL', 12, clBlue, taCenter);

  if ACol > 2 then
    StringGridRotateTextOut(StringGrid1, ARow, ACol, Rect, 'ARIAL', 12,clGreen,
      taRightJustify);
end;
DeveloperToolKit

..::|YeşilMavi|::..
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Kod: Tümünü seç

  if (ARow = 3) and (ACol=2) then
  begin
    StringGrid1.Canvas.Brush.Color := ClRed
    StringGrid1.Canvas.FillRect(Rect);
  end;
iyi günler...
Kullanıcı avatarı
vampir261
Üye
Mesajlar: 298
Kayıt: 23 Kas 2004 03:22
Konum: Denizli

Mesaj gönderen vampir261 »

Kod: Tümünü seç

     
   StringGridPUANTAJ.Canvas.Brush.Color := renk; 
   StringGridPUANTAJ.Canvas.FillRect(StringGridPUANTAJ.CellRect(sayac2,sayac1));
drawcell i�inden de�il heryerden renklendirme yapmak isterseniz.
palandoken
Üye
Mesajlar: 151
Kayıt: 16 Eki 2006 10:43
Konum: ERZURUM

Mesaj gönderen palandoken »

Uğur1982 yazdı:merhaba;

Kod: Tümünü seç

  if (ARow = 3) and (ACol=2) then
  begin
    StringGrid1.Canvas.Brush.Color := ClRed
    StringGrid1.Canvas.FillRect(Rect);
  end;
iyi günler...
Bu kod işe yaradı.Fakat griddeki yazılar görünmüyor.Gridi dolduruyorum ama boş görünüyor.Bu sorunu nasıl hallederim.
Teşekkürler...
akıllanma , aklını başına toplama , toparlanma , kendisini derleme bu dünyaya ait bir vazife.
ahirette nasıl olsa aklın başına gelecek.
Cevapla