Форум: "Основная";
Текущий архив: 2002.06.13;
Скачать: [xml.tar.bz2];
ВнизTStringGrid - как организовать перенос значения ячейки? Найти похожие ветки
← →
kserg@ukr.net (2002-06-03 11:24) [0]Привет.
Подскажите (на примере), как строится "перенос" значения из одной ячейки в другую мышою.
Спасибо
← →
MBo (2002-06-03 11:29) [1]что-нибудь такое (с Ctrl или Alt)
Dragmode=dmManual
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Var Acol,ARow:Integer;
begin
with StringGrid1 do begin
if (ssAlt in Shift) or (ssCtrl in Shift) then begin
MouseToCell(X,Y,Acol,Arow);
if (Acol>=FixedCols) and (Arow>=FixedRows) then begin
Tag:=ACol+1000*ARow;
if ssAlt in Shift then
Tag:=Tag+1000000;
BeginDrag(True)
end else
Tag:=0;
end;
end;
end;
procedure TForm1.StringGrid1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
Var Acol,ARow:Integer;
begin
with StringGrid1 do begin
MouseToCell(X,Y,Acol,Arow);
Accept:=(Source=StringGrid1) and (Tag>0)
and (Acol>=FixedCols) and (Arow>=FixedRows)
and (Acol+1000*ARow<>Tag mod 1000000);
end;
end;
procedure TForm1.StringGrid1DragDrop(Sender, Source: TObject; X,
Y: Integer);
Var Acol,ARow:Integer;
begin
with StringGrid1 do begin
MouseToCell(X,Y,Acol,Arow);
Cells[Acol,Arow]:=Cells[Tag mod 1000, (Tag div 1000) mod 1000];
if Tag div 1000000=1 then
Cells[Tag mod 1000, (Tag div 1000) mod 1000]:="";
Tag:=0;
end;
end;
← →
Song (2002-06-03 11:36) [2]Но не так гибко:
With StringGrid1 Do Option:=Options+[goRowMoving];
With StringGrid1 Do Option:=Options+[goColMoving];
← →
kserg@ukr.net (2002-06-03 12:16) [3]>MBo © (03.06.02 11:29)
>Song © (03.06.02 11:36)
спасибо за содействие.
и хочу извиниться за несовсем продуманый вопрос: просто спешу решить проблемку, но сам никогда не работал с Drag/drop
уточняю вопрос:
1) работаю не с TStringGrid, а с TAdvStringGrid: в принципе это одно и тоже, но в TAdvStringGrid есть спец.св-ва для реализации
2) мне нужен не сам "перенос" значения, а просто определить из какой ячейки и в какую юзер пытается сделать "Copy"
спасибо
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.06.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c