Главная страница
    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.45 MB
Время: 0.008 c
1-87931
Сергей
2003-03-13 19:04
2003.03.27
Подскажите, когда возникает ошибка Out Of Memory?


1-87966
Dim!S
2003-03-18 05:25
2003.03.27
Есть у меню подменю


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


6-88115
JamesBond
2003-02-05 19:08
2003.03.27
IdSMTP1


1-88025
NAlexey
2003-03-14 13:46
2003.03.27
Как динамически менять класс элемента





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский