Главная страница
    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.007 c
1-88034
BofA
2003-03-14 15:35
2003.03.27
Как перебрать все компоненты, расположенные на TPanel?


14-88188
X-DIVER
2003-03-09 20:24
2003.03.27
Актуальность изучения Delphi


1-87933
МитяЙ2
2003-03-17 15:48
2003.03.27
WARNING и в Delphi и как от них избавиться


4-88305
LeReve
2003-01-30 23:02
2003.03.27
Есть ли АПИ сжатия данных????


1-88003
Programist
2003-03-06 08:52
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский