dbgrid de bir sonraki satır
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
dbgrid de bir sonraki satır
selamunaleykum
arkadaşlar hekrese iyi çalışmalar
dbgridde diyelim 10 tane kayıt var(aslında tabloda varda)dbgridde gösterilidği için 10 tane satır dolu diyelim.Şimdi ben dbgridin 1.satırına geldim diyelim. ve fieldler arası enterla geçiş yapılyıro.enter,enter fealn diye 1.satırın son fieldine gelindiğinde entera bastığımızda 2.satıra geçsin.
11.satıra cursor konumlanmasın naısl yapılabilir.herkese kolay gelsin iyi çalışmalar
arkadaşlar hekrese iyi çalışmalar
dbgridde diyelim 10 tane kayıt var(aslında tabloda varda)dbgridde gösterilidği için 10 tane satır dolu diyelim.Şimdi ben dbgridin 1.satırına geldim diyelim. ve fieldler arası enterla geçiş yapılyıro.enter,enter fealn diye 1.satırın son fieldine gelindiğinde entera bastığımızda 2.satıra geçsin.
11.satıra cursor konumlanmasın naısl yapılabilir.herkese kolay gelsin iyi çalışmalar
s.a.
oncolumnexit diye bi olay olması lazım. onu kullanabilirsin 10.columndan çıktığı zaman tabloyu next yaparsın selectedindex (olması lazım)onuda 0 yaparsın. bir sonraki satır ilk alana geçmiş olur.
enterla geçme işleminide keydown/keypres olayında selectedindex i bir arttırarak yapabilirsin.
kolay gelsin.
oncolumnexit diye bi olay olması lazım. onu kullanabilirsin 10.columndan çıktığı zaman tabloyu next yaparsın selectedindex (olması lazım)onuda 0 yaparsın. bir sonraki satır ilk alana geçmiş olur.
enterla geçme işleminide keydown/keypres olayında selectedindex i bir arttırarak yapabilirsin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
selam
bu kodla neden colonları tek tek değilde 2.şerli atlıyo.
Kod: Tümünü seç
if Key = #13 then
begin
if RzDBGrid1.Columns.Grid.SelectedIndex < RzDBGrid1.Columns.Count-1 then
RzDBGrid1.Columns[RzDBGrid1.Columns.grid.SelectedIndex + 1].Field.FocusControl
else
begin
datamodule1.IBDataSet2.Next;
RzDBGrid1.Columns[0].field.FocusControl;
end;
end;
merhaba
bu şekilde sorunumu haleetim
bu şekilde yaptım satır satır gidebiliyorum fakat son satıra geldiğinde yeni bir satır açıp kaydetme olayını yapamadık .yardım edecek olanlara şimdiden tşk.ler.
bu şekilde sorunumu haleetim
Kod: Tümünü seç
procedure Tcislem.RzDBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
if RzDBGrid1.Columns.Grid.SelectedIndex < RzDBGrid1.Columns.Count-1 then
RzDBGrid1.Columns[RzDBGrid1.Columns.grid.SelectedIndex ].Field.FocusControl
else
begin
datamodule1.IBDataSet2.Next;
RzDBGrid1.Columns[0].field.FocusControl;
end;
end;
selam
hocam öncelikle size çok tşk.ederim yazdığınız cevaptan ötürü fakat dediğiniz olay şöyle bir şeymi olmalı acaba
söyledeğiniz olay bunun gibi mi recep abi.kolay gelsin
hocam öncelikle size çok tşk.ederim yazdığınız cevaptan ötürü fakat dediğiniz olay şöyle bir şeymi olmalı acaba
Kod: Tümünü seç
while not datamodule1.ibdataset2.eof then begin
//İşlemler//
datamodule1.ibdataset2.next;
end;
datamodule1.ibdataset2.append;
selam
recep abi dediğiniz gibi eofla yapmaya çalıştım fakat olmadı unuttuğumuz yer neresi burda veya atladığım.
kolay gelsin
recep abi dediğiniz gibi eofla yapmaya çalıştım fakat olmadı unuttuğumuz yer neresi burda veya atladığım.
Kod: Tümünü seç
procedure Tcislem.RzDBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
if RzDBGrid1.Columns.Grid.SelectedIndex < RzDBGrid1.Columns.Count-1 then
RzDBGrid1.Columns[RzDBGrid1.Columns.grid.SelectedIndex ].Field.FocusControl
else
begin
datamodule1.IBDataSet2.Next;
RzDBGrid1.Columns[0].field.FocusControl;
if not (RzDBGrid1.Columns.Grid.SelectedIndex < RzDBGrid1.Columns.Count-1) and (datamodule1.IBDataSet2.eof) then begin
datamodule1.IBDataSet2.Insert;
datamodule1.IBDataSet2.Append;
end;
end;
END;
end;
end.
merhaba...
Yukarıda kullandığın if not ;
datamodule1.IBDataSet2.eof 'u Delphi ,tersi gibi algılıyabilir yani
datamodule1.IBDataSet2.bof gibi...if kullanımını kontrol et..
Deneme şansım yok delphi kurulu değil...
Burada 2 tane kullanmana gerek yok araya eklemek istiyorsan,
datamodule1.IBDataSet2.Insert;
Sona eklemek istiyorsan..
datamodule1.IBDataSet2.Append; kullanman gerekir..
iyi günler...
Kod: Tümünü seç
if not (RzDBGrid1.Columns.Grid.SelectedIndex < RzDBGrid1.Columns.Count-1) and (datamodule1.IBDataSet2.eof) then
datamodule1.IBDataSet2.eof 'u Delphi ,tersi gibi algılıyabilir yani
datamodule1.IBDataSet2.bof gibi...if kullanımını kontrol et..
Deneme şansım yok delphi kurulu değil...
Kod: Tümünü seç
datamodule1.IBDataSet2.Insert;
datamodule1.IBDataSet2.Append;
datamodule1.IBDataSet2.Insert;
Sona eklemek istiyorsan..
datamodule1.IBDataSet2.Append; kullanman gerekir..
iyi günler...
Kod: Tümünü seç
type
TFake = class(TDBGrid);
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
label1.Caption :=format('Sütun: %2d; Satır: %d',[TFake (DBGrid1).Col,TFake (DBGrid1).row]);
end;
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
DBGrid1ColEnter(sender);
end;
Gökay Okutucu
Sakarya Bilgisayar Programcılığı Öğrencisi
Sakarya Bilgisayar Programcılığı Öğrencisi
Kod: Tümünü seç
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
Label1: TLabel;
DataSource1: TDataSource;
Table1: TTable;
procedure DBGrid1ColEnter(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
TFake = class(TDBGrid);
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
label1.Caption :=format('Sütun: %2d; Satır: %d',[TFake (DBGrid1).Col,TFake (DBGrid1).row]);
end;
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
DBGrid1ColEnter(sender);
end;
end.
Gökay Okutucu
Sakarya Bilgisayar Programcılığı Öğrencisi
Sakarya Bilgisayar Programcılığı Öğrencisi