GRID'ler Hakkında Birkaç Özellik
KAYDIRMA ÇUBUKLARINI AYARLAMA
//-------------------------------------------------------------------
Kod:
TStringGrid( DBGrid1 ).ScrollBars := ssBoth; // yatay göster , dikey gizle TStringGrid( DBGrid1 ).ScrollBars := ssNone; // yatay gizle , dikey göster TStringGrid( DBGrid1 ).ScrollBars := ssHorizontal; // her 2sinide göster
//-------------------------------------------------------------------
GRİDE SHİT + DELETE TUŞU İLE BASARAK SİLMEYİ ÖNLEME
ÇUBUKLARINI AYARLAMA
Kod:
if (ssctrl in shift) and ( Key=VK_delete) then begin Key:=0; ShowMessage('Bu şekilde Kayıt Silinemez'); end;
//-------------------------------------------------------------------
Gridin Belli Bir Sütununu Toplayıp Labellere Yazdırma
Kod:
Alacak:=0.0; // toplam:curreny; olrak tanımlayınız Borc:=0.0; ADOQuery1.first; while not ADOQuery1.eof do begin alacak:=alacak+dbgrid1.columns.grid.fields[11].AsCurrency; Borc:=Borc+dbgrid1.columns.grid.fields[10].AsCurrency; //devir burda son satırı verir // Lbl4.Caption:= floattostr ((adoquery1.fieldbyname('Borc').asfloat) - (adoquery1.fieldbyname('Alacak').asfloat)); ADOQuery1.next; end; Label2.Caption:=currtostr(alacak); Label2.Caption:=FormatFloat('##,###0.00',strtofloat(Label2.Caption)); // Alacak Label3.Caption:=currtostr(Borc); Label3.Caption:=FormatFloat('##,###0.00',strtofloat(Label3.Caption)); // Borç Bakiye:=Borc-Alacak; Label4.Caption:=currtostr(Bakiye); Label4.Caption:=FormatFloat('##,###0.00',strtofloat(Label4.Caption)); // Bakiye Lbl2.Caption:=(Currtostr(DBGrid1.DataSource.DataSet.RecordCount)); // Kayıtsayısı
//-------------------------------------------------------------------
SATIR SATIR RENKLENDİRME VE GRİDİN BAŞINA İCON KOYMA
Kod:
procedure TForm18.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var Icon: TBitmap; begin If (gdSelected in state) then // eğer seçili ise begin DBGrid1.Canvas.Brush.Color := $00FD959C; // zemin rengi DbGrid1.Canvas.Font.Color := clYellow; // font rengi Label1.Caption:=dbgrid1.Fields[9].Text; // Tel 1 Label2.Caption:=dbgrid1.Fields[10].Text; // Tel 2 Label3.Caption:=dbgrid1.Fields[11].Text; // FAx Label4.Caption:=dbgrid1.Fields[12].Text; // Cep Label11.Caption:=dbgrid1.Fields[4].Text + dbgrid1.Fields[5].Text; // Adresi Label13.Caption:=dbgrid1.Fields[2].Text // Ünvanı end else if DBGrid1.Fields[37].asstring <>'0' then begin DBGrid1.Canvas.Brush.Color := clRed; dbGrid1.Canvas.Font.Color:=clYellow; // Fontun rengini değiştirir.. DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State); end else if (DBGrid1.datasource.dataset.recno mod 2) =0 then DBGrid1.Canvas.Brush.Color := $00C8FBFD else DBGrid1.Canvas.Brush.Color := $00BFD7B5; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); // if (Column.index=0 ) then begin // DbGridin 1. Sütunu // with DBGrid1.Canvas do begin // MainForm.ImageList2.GetBitmap(13,Icon); // imagelistten 13.inci resim alınıyor... // TextRect(Rect,Rect.Left+25,Rect.Top,Column.Field.AsString); // Alan yazılıyor.. buradaki "rect.left+25" değeri ise 16x16 pix. resimden sonra 5 pixdaha sağa kayması için. // Draw(rect.Left+1,Rect.Top,Icon); // Resim Konuyor..buradaki rect.Left+1 değeri resmin grid duvarına yapışmaması için 2 px sağa kay. // end; // end // else if (dbgrid1.datasource.dataset.recno mod 2) =0 // then DBGrid1.Canvas.Brush.Color := $00C8FBFD // else DBGrid1.Canvas.Brush.Color := $00BFD7B5; // DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end;
//-------------------------------------------------------------------
Satır Sil
Kod:
if DbGrid4.RowExist(DbGrid4.SelectedRow) then DbGrid4.DeleteRow(DbGrid4.SelectedRow);timepicker7.date;
//-------------------------------------------------------------------
SATIR EKLE
Kod:
DbGrid4.AddRow; DbGrid4.SelectLastRow;
YADA
Kod:
DbGrid4.AddRow(); DbGrid4.Cell[2, DbGrid4.LastAddedRow].AsString := 'Top Level'; DbGrid4.Cell[3, DbGrid4.LastAddedRow].AsInteger := Random(100); DbGrid4.SelectLastRow;
//-------------------------------------------------------------------
SONRAKİ SATIR
Kod:
var Pos: Integer; begin Pos := DbGrid4.GetNextSibling(DbGrid4.SelectedRow); if DbGrid4.RowExist(Pos) then DbGrid4.SelectedRow := Pos;
//-------------------------------------------------------------------
ÖNCEKİ SATIR
Kod:
var Pos: Integer; begin Pos := DbGrid4.GetPrevSibling(DbGrid4.SelectedRow); if DbGrid4.RowExist(Pos) then DbGrid4.SelectedRow := Pos;
//-------------------------------------------------------------------
SALT OKUNUR
Kod:
procedure TForm1.DbGrid4BeforeEdit(Sender: TObject; ACol, ARow: Integer; var Accept: Boolean); begin if ((ACol = 2) and (ARow = 2)) or ((ACol = 1) and (ARow = 3)) then begin ShowMessage('OnBeforeEditEvent: Editing this cell is disabled.'); Accept := False; end; end;
//-------------------------------------------------------------------
TAMAMLANDI İSE ÜSTÜ ÇİZGİLİ YAZ
Kod:
procedure TForm1.Button1Click(Sender: TObject); begin if DbGrid4.RowCount = 0 then Exit; DbGrid4.CellByName['ProgressColumn1', 'Selected'].AsInteger := 100; DbGrid4.RefreshRow(DbGrid4.SelectedRow); end;
Kod:
procedure TForm1.DbGrid4CellFormating(Sender: TObject; ACol, ARow: Integer; var TextColor: TColor; var FontStyle: TFontStyles; CellState: TCellState); begin if DbGrid4.CellByName['ProgressColumn1', ARow].AsInteger = 100 then begin TextColor := clGrayText; FontStyle := FontStyle + [fsStrikeOut]; end; end;
//-------------------------------------------------------------------
YENİ SATIRA İSTENİLENLERİ EKLE
Kod:
procedure TForm1.Button2Click(Sender: TObject); begin with DbGrid4 do begin AddRow; Cell[0, RowCount - 1].AsInteger := 0; Cell[1, RowCount - 1].AsString := 'Low'; Cell[2, RowCount - 1].AsString := 'This is sample task'; end; end;
//-------------------------------------------------------------------
SEÇİLİ SÜTÜNU SAĞA SOLA DAYA
Kod:
DbGrid4.Columns[DbGrid4.SelectedColumn].Alignment := taLeftJustify; SÜTUNU CELLDE DÜŞEY KONUMLA DbGrid4.Columns[DbGrid4.SelectedColumn].VerticalAlignment := taAlignTop;
//-------------------------------------------------------------------
SATIRI KOMPLE AŞAĞI YADA YUKARI TAŞI
Kod:
DbGrid4.MoveRow(DbGrid4.SelectedRow, DbGrid4.SelectedRow - 1); DbGrid4.SelectedRow := DbGrid4.SelectedRow - 1;
//-------------------------------------------------------------------
SÜTUNU BİR ÖNCEKİ SÜTUNA TAŞI Kod:
procedure TForm1.ToolButton18Click(Sender: TObject); var o, n: Integer; begin o := DbGrid4.Columns[DbGrid4.SelectedColumn].Position; if o = 0 then Exit; n := o - 1; DbGrid4.Columns.ChangePosition(o, n); end;
//-------------------------------------------------------------------
SEÇİLİ CELLİ KALIN YAZ
Kod:
procedure TForm1.btnBoldClick(Sender: TObject); begin with DbGrid4 do if CellBounds(SelectedColumn, SelectedRow) then if TToolButton(Sender).Down then Cell[SelectedColumn, SelectedRow].FontStyle := Cell[SelectedColumn, SelectedRow].FontStyle + [fsBold] else Cell[SelectedColumn, SelectedRow].FontStyle := Cell[SelectedColumn, SelectedRow].FontStyle - [fsBold]; end;
//-------------------------------------------------------------------
SEÇİLİ CELLİ İSTENİLEN RENGE BOYA ( ColorPickerEditor1.SelectedColor ONCHANGE'ine YAZILACAK )
Kod:
with DbGrid4 do if CellBounds(SelectedColumn, SelectedRow) then begin if ColorPickerEditor1.SelectedColor = clNone then Cell[SelectedColumn, SelectedRow].Color := Color else Cell[SelectedColumn, SelectedRow].Color := ColorPickerEditor1.SelectedColor; end;
//-------------------------------------------------------------------
TÜM SATIRI SEÇ YADA SEÇME
Kod:
if TMenuItem(Sender).Checked then DbGrid4.Options := DbGrid4.Options + [goSelectFullRow] else DbGrid4.Options := DbGrid4.Options - [goSelectFullRow];
//-------------------------------------------------------------------
GRİD ÇİZGİLERİNİ GÖSTER YADA GİZLE
Kod:
if TMenuItem(Sender).Checked then DbGrid4.Options := DbGrid4.Options + [goGrid] else DbGrid4.Options := DbGrid4.Options - [goGrid];
//-------------------------------------------------------------------
İNDİGATOR GÖSTER YADA GÖSTERME
Kod:
if TMenuItem(Sender).Checked then DbGrid4.Options := DbGrid4.Options + [goIndicator] else DbGrid4.Options := DbGrid4.Options - [goIndicator]; //-------------------------------------------------------------------
CELL FORMAT'a Yazılacak
Kod:
if (ACol = 5) then begin if (DbGrid4.Cell[5, ARow].AsInteger < 200) then TextColor := clRed; if (DbGrid4.Cell[5, ARow].AsInteger > 1800) then TextColor := clBlue; end;
//-------------------------------------------------------------------
SATIR SİLME ONCELL CLICK' E YAZILACAK
Kod:
procedure TForm1.DbGrid4CellClick(Sender: TObject; ACol, ARow: Integer); begin if ACol = 9 then begin if DbGrid4.Cells[9, ARow] = '0' then DbGrid4.DeleteRow(ARow); end; end;
//-------------------------------------------------------------------
ON EDİT ACCEPT E YAZILACAK
Kod:
if Value = '-1' then begin Accept := False; ShowMessage('Geçersiz Değer'); end;
//-------------------------------------------------------------------
Kod:
procedure TForm1.DbGrid4SelectCell(Sender: TObject; ACol, ARow: Integer); begin if DbGrid4.Columns[DbGrid4.SelectedColumn].Alignment = taLeftJustify then btnLeftAlignment.Down := True; if DbGrid4.Columns[DbGrid4.SelectedColumn].Alignment = taCenter then btnCenterAlignment.Down := True; if DbGrid4.Columns[DbGrid4.SelectedColumn].Alignment = taRightJustify then btnRightAlignment.Down := True; btnBold.Down := fsBold in DbGrid4.Cell[ACol, ARow].FontStyle; btnItalic.Down := fsItalic in DbGrid4.Cell[ACol, ARow].FontStyle; btnUnderline.Down := fsUnderline in DbGrid4.Cell[ACol, ARow].FontStyle; ColorPickerEditor1.SelectedColor := DbGrid4.Cell[ACol, ARow].Color; end;
//-------------------------------------------------------------------
Kod:
procedure TForm1.DbGrid4BeforeEdit(Sender: TObject; ACol, ARow: Integer; var Accept: Boolean); begin if ((ACol = 2) and (ARow = 2)) or ((ACol = 1) and (ARow = 3)) then begin ShowMessage('OnBeforeEditEvent: Değiştirme İzni Yok'); Accept := False; end; end;
//-------------------------------------------------------------------