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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
14-40188
Blackweber
2002-05-08 22:43
2002.06.13
HDD Samsung SpinPoint на 60 Gb 5400rpm


1-40095
Свой
2002-06-01 02:38
2002.06.13
Форма


3-39931
Катерина
2002-05-18 13:16
2002.06.13
Общий тип поля


4-40197
Thalasso
2002-04-10 10:26
2002.06.13
Hooks in Win32


1-40018
mazepa
2002-06-01 00:40
2002.06.13
Access