Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.27;
Скачать: CL | DM;

Вниз

Drag n Drop in TStringGrid   Найти похожие ветки 

 
anod ©   (2003-03-13 17:00) [0]

Где и как определить парметры (№ колнки, № строки) того элемента, который перетаскиваешь (источника).
Спасибо.


 
MBo ©   (2003-03-13 17:26) [1]

col,row


 
vlad40 ©   (2003-03-13 17:28) [2]

Можно, например, в событии OnMouseDown брать координаты мыши и через MouseToCell определять ячейку в гриде


 
anod ©   (2003-03-13 17:28) [3]

TЕсть ещё проблема - если включаешь DragMode на dmAutomate, то перестает работать выделение...


 
anod ©   (2003-03-13 17:31) [4]

2 vlad40
Я пытался это делать в onStartDrag. У ченя не получилось, попробую так.

2 MBo
>col,row
Чем это поможет?


 
vlad40 ©   (2003-03-13 18:00) [5]

А ты не ставь сразу dmAutomatic. На событии OnMouseDown определи исходную ячейку и выполни BeginDrag. Тогда все будет нормально.


 
anod ©   (2003-03-13 18:03) [6]

А как мне на OnMouseDown определить, что я просто выделяю или собирабсь перетаскивать?


 
anod ©   (2003-03-13 18:10) [7]

Извените понял, спасибо


 
vlad40 ©   (2003-03-13 18:15) [8]

Вот пример рабочего кода:


var drCol,drRow: integer;


procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
StringGrid1.MouseToCell(x,y,drCol,drRow);
StringGrid1.col:=drCol;
StringGrid1.row:=drRow;
end;

procedure TForm1.StringGrid1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
var
c,r: integer;
begin
Accept:=true;
StringGrid1.MouseToCell(x,y,c,r);
StringGrid1.col:=c;
StringGrid1.row:=r;
end;

procedure TForm1.StringGrid1DragDrop(Sender, Source: TObject; X,
Y: Integer);
var
c,r: integer;
begin
StringGrid1.MouseToCell(x,y,c,r);
StringGrid1.col:=c;
StringGrid1.row:=r;
StringGrid1.Cells[c,r]:=StringGrid1.Cells[drCol,drRow];
StringGrid1.DragMode:=dmManual;
end;

procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if ssLeft in Shift then
StringGrid1.BeginDrag(true);
end;



Страницы: 1 вся ветка

Текущий архив: 2003.03.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
3-87882
Al11
2003-03-11 13:37
2003.03.27
Как сделать так,CalcFields считались сразу для всех записей Query


14-88137
malkolinge
2003-03-12 18:24
2003.03.27
Как подписаться на фидошную конференцию ?


1-88018
xGrey
2003-03-14 10:27
2003.03.27
Drag and Drop в TTreeView: отсутствие скроллинга.


7-88256
Kair
2003-02-01 20:53
2003.03.27
Ещё вопросик.


14-88143
panov
2003-03-04 18:03
2003.03.27
Перерыв в практике программирования