cxgrid drag drop
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
cxgrid drag drop
selam arkadaslar
sorum su
ayni cxgrid içinde drag drop yapmak
EMS manager da yapmıslar
google aratım ama bulamadım bir mantık yada bir örnek
kayıtlar
ADI ID
1.GÖKHAN 2
2.VOLKAN 5
3.TOLGA 7
drag drop yapıp
1.VOLKAN 5
2.GÖKHAN 2
3.TOLGA 7
ama burda id adı soyadı uyrugu gibi alanlar var
ben kısaltım sadece mantıgı anlatmak için
yani mouse la yukarı asagı sureklerek order yapmak
yardımcı olursanız cok sevinirim
sorum su
ayni cxgrid içinde drag drop yapmak
EMS manager da yapmıslar
google aratım ama bulamadım bir mantık yada bir örnek
kayıtlar
ADI ID
1.GÖKHAN 2
2.VOLKAN 5
3.TOLGA 7
drag drop yapıp
1.VOLKAN 5
2.GÖKHAN 2
3.TOLGA 7
ama burda id adı soyadı uyrugu gibi alanlar var
ben kısaltım sadece mantıgı anlatmak için
yani mouse la yukarı asagı sureklerek order yapmak
yardımcı olursanız cok sevinirim
sadece nerden geldiğimi buldum
ama hangi kayıdın ustune atıldıgı nasıl bulabilirim?
ama hangi kayıdın ustune atıldıgı nasıl bulabilirim?
Kod: Tümünü seç
procedure TForm1.cxGrid1DBTableView1DragDrop(Sender, Source: TObject; X,
Y: Integer);
var
TargetView : TcxCustomGridView;
MasterDC : TcxGridDBDataController;
begin
TargetView := TcxGridSite(Sender).ViewInfo.GridView;
if TargetView.IsDetail then
MasterDC :=
TcxGridDBDataController(TargetView.PatternGridView.MasterGridView.DataController)
else
MasterDC := TcxGridDBDataController(TargetView.DataController);
showmessage(MasterDC.DataSet.FieldByName('id').Asstring);
end;
procedure TForm1.cxGrid1DBTableView1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
var
HT: TcxCustomGridHitTest;
begin
with TcxGridSite(Sender) do
begin
HT := ViewInfo.GetHitTest(X, Y);
Accept := (HT is TcxGridRecordCellHitTest) and
(TcxGridRecordCellHitTest(HT).GridRecord.RecordIndex <>
GridView.DataController.FocusedRecordIndex)
end;
end;
TStringGrid ile bir örnek hazırldım. Üçüncü parti olsa da çalışacaktır..
- DraDrop olayında X ve Y koordinatları vardır bunu hücreye dönüştürmek için gibi kullanılır.
- DraDrop olayında X ve Y koordinatları vardır bunu hücreye dönüştürmek için
Kod: Tümünü seç
TcxGrid.MouseToCell(X, Y, Sutun, Satir);
Kod: Tümünü seç
procedure TForm1.FormCreate(Sender: TObject);
Var
i,j : Integer;
begin
StringGrid1.RowCount := 10;
StringGrid1.ColCount := 10;
StringGrid1.FixedRows := 0;
StringGrid1.FixedCols := 0;
For i := 0 to 10 do
For j := 0 to 10 do
StringGrid1.Cells[j, i] := Format('%d, %d', [i, J]);
StringGrid1.DragMode := dmAutomatic;
end;
Kod: Tümünü seç
procedure TForm1.StringGrid1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept := True;
end;
Kod: Tümünü seç
procedure TForm1.StringGrid1DragDrop(Sender, Source: TObject; X,
Y: Integer);
var
Sutun, Satir: Integer;
begin
StringGrid1.MouseToCell(X, Y, Sutun, Satir);
ShowMessageFmt('Kaynak Pos: X:%d, Y:%d -> Kaynak Hücre: Sat:%d Sut:%d', [X, Y, Satir, Sutun]);
end;
cxgrid karsılıgı mousetocell
Kod: Tümünü seç
aHitTest := AGridView.ViewInfo.GetHitTest(lPt)
if AHitTest is TcxGridRecordCellHitTest then
begin
ACol := TcxGridRecordCellHitTest(AHitTest).Item.Index;
ARow := TcxGridRecordCellHitTest(AHitTest).GridRecord.Index;
end;
sonunda yaptım belki birgun lazım olur size
Kod: Tümünü seç
procedure TForm1.cxGrid1DBTableView1DragDrop(Sender, Source: TObject; X,
Y: Integer);
var
HT: TcxCustomGridHitTest;
var
TargetView : TcxCustomGridView;
acol,arow,recIdx,colIdx,aidNo:integer;
AGridView: TcxCustomGridView;
APoint: TPoint;
AHitTest: TcxCustomGridHitTest;
begin
AGridView := TcxGridSite(Sender).ViewInfo.GridView;
//nerden yuruklendi
showmessage(AGridView.DataController.Values[AGridView.DataController.FocusedRecordIndex,idx.Index]);
AHitTest := (Sender as TcxGridSite).GridView.ViewInfo.GetHitTest(X, Y);
if AHitTest is TcxGridRecordCellHitTest then
begin
ACol := TcxGridRecordCellHitTest(AHitTest).Item.index;
ARow := TcxGridRecordCellHitTest(AHitTest).GridRecord.Index;;
end ;
//nereye sürüklendi
//idx giriddeki colon adi
showmessage(AGridView.DataController.Values[ARow,idx.Index]);
// showmessage(AGridView.DataController.Values[ARow,ACol]);
end;