Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-40166
Rammish
2002-05-11 12:45
2002.06.13
О Дельфи 6


6-40131
EskimOS
2002-04-03 11:15
2002.06.13
Как определить получает ли адаптер пакеты из сети...?


3-39954
masik
2002-05-21 14:02
2002.06.13
- ADO Procedure


1-40021
esprit_bel
2002-05-23 05:51
2002.06.13
Завершение сеанса


14-40171
Olegoz
2002-05-12 01:57
2002.06.13
RAR





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский