grid

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
jumper
Üye
Mesajlar: 20
Kayıt: 19 Tem 2004 01:17
Konum: Sakarya

grid

Mesaj gönderen jumper »

Merhaba, ben stringgrid kullanan bir programla uğraşıyorum. Ama dbgrid de olduğu gibi her sütunu farklı biçimlendirmek istiyorum. Bu stringgridle pek mümkün değil. Dbgrid kullanırsam da istediğim hücreye istediğim değeri atıyamıyorum. Önerilerinizi bekliyorum. Teşekkür ederim.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Re: grid

Mesaj gönderen husonet »

jumper yazdı:Ama dbgrid de olduğu gibi her sütunu farklı biçimlendirmek istiyorum.
DbGrid'de yapabildiğiniz ve StringGrid'de yapamadığınız olay nedir. Daha fazla açıklama yapabilirseniz yardımcı olmaya çalışırız.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

3. parti string grid bileşenleri ile yapabilirsiniz.
name
Kıdemli Üye
Mesajlar: 243
Kayıt: 09 Ağu 2003 02:11
Konum: İstanbul

Mesaj gönderen name »

3. parti string grid bileşenleri ile yapabilirsiniz.
naile hanım, banada böyle bir grid lazım. Bildiğiniz ücretsiz iyi bir bileşen var mı?
Kullanıcı avatarı
jumper
Üye
Mesajlar: 20
Kayıt: 19 Tem 2004 01:17
Konum: Sakarya

Mesaj gönderen jumper »

Anlatmak istediğim, dbgrid de her sütunun özelliklerini (font, renk v.s.) ayrı bir component gibi belirleyebiliyoruz. Bu Stringdrid de yok. Üçüncü parti bir bileşen arıyorum. Bulan varsa yardımını bekliyorum.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Komponentsiz bir örnek neler yapılabileceğine dair Arşivimden :lol:

Kod: Tümünü seç


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, HusoEdit;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
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;
Kolay Gelsin...
En son husonet tarafından 07 Ağu 2004 09:27 tarihinde düzenlendi, toplamda 1 kere düzenlendi.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

http://www.torry.net

güzel bir kaynak, orda bulunabilir sanırım. Bir bakın eğer bulamazsanız ben de biraz araştırayım.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhabalar;

Hüseyin abi öncelikle mail ime üşenmeyip cevap verdiğin için teşekkürler.

Yukarıda yazdığın olayda button1 i kabul ettiremiyoruz. Button1 e hangi komutu yazarak işlem yaptıracağız.

merak ettim şimdi.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Yeri gelmişke sadece Tek bir hücrenin Font özelliklerini kullanmasını isterseniz.
OnDrawSell eventinde Fonksiyonumuzu

Kod: Tümünü seç

  if (ACol = 2) and (ARow = 2) then
    StringGridRotateTextOut(StringGrid1, ARow, ACol, Rect, 'ARIAL', 12, clBlue, taCenter);
Çağırmalıyız.
Hem satır hemde sutun numarasını veriyoruz.

Son olarak ilave etmek istediğim bir şey var Oda Hücrelere giriş yaparken Renk siyah olacaktır. Bunuda OnGetEditText eventinde
Uses kısmına StdCtrls Ekleyelim.

Kod: Tümünü seç

    TEdit(StringGrid1.Controls[0]).Font.Color := ClRed;
Yazmamız yeterli olacak.

Gördüğünüz Gibi Componentlik bir olay yok :lol: Ama isterseniz bu kadar bilgiden sonra Component yazabilirsiniz. :wink:

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Sen hiç uyumaz mısın gece cevap yaz sabahın köründe yaz.
Maşaallah Allah kuvvetini ve ilmini arttırsın.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

olc yazdı:Yukarıda yazdığın olayda button1 i kabul ettiremiyoruz. Button1 e hangi komutu yazarak işlem yaptıracağız.

merak ettim şimdi.
Button1'e bir şey yazmıyacaksın :)

Kodları Düzelttim :wink:

Kolay Gelsin..

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

olc yazdı:Sen hiç uyumaz mısın gece cevap yaz sabahın köründe yaz.
Maşaallah Allah kuvvetini ve ilmini arttırsın.
Amin Cümlemizin Allah kuvvetini arttırsın. :D

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

name yazdı: naile hanım, banada böyle bir grid lazım. Bildiğiniz ücretsiz iyi bir bileşen var mı?
TDBAdvStringGrid

bildiğim kadarıyla ücretsiz ama kaynak kodunu isterseniz onu satın almanız gerekiyor.

http://www.tmssoftware.com/dbadvgrd.htm
name
Kıdemli Üye
Mesajlar: 243
Kayıt: 09 Ağu 2003 02:11
Konum: İstanbul

Mesaj gönderen name »

Bu bileşeni biliyorum. Ticari kullanımlar için ücretliydi sanırım.
Kullanıcı avatarı
jumper
Üye
Mesajlar: 20
Kayıt: 19 Tem 2004 01:17
Konum: Sakarya

Mesaj gönderen jumper »

Hüseyin Hocam teşekkür ederim. Aradığım böyle bir cevaptı çünkü ek bileşenleri pek sevmiyorum. Herkese teşekkür ederim.
Cevapla