![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Drag&Drop
aaaaa © (2008-08-10 05:02:00)Всем доброго времени суток.
Подскажите, как сделать, чтобы от OnStartDrag и до OnEndDrag вместе с курсором мышки двигался перетаскиваемый текст?
aaaaa (2008-08-13 12:16:00) [1]
> MBo © (13.08.08 06:10) [14]
Ура!!! Спасибо большое!
MBo (2008-08-13 06:10:00) [2]ControlStyle := ControlStyle + [csDisplayDragImage];
aaaaa (2008-08-13 00:48:00) [3]
> ЛшдлуттнСфе (13.08.08 00:02) [12]
ня:
TDragDimension = class(TDragControlObject)
private
FDragImageList : TDragImageList;
protected
function GetDragImages: TDragImageList; override;
public
constructor Create(AControl: TControl); override;
destructor Destroy; override;
end;
constructor TDragDimension.Create(AControl: TControl);
begin
inherited Create(AControl);
FDragImageList := TDragImageList.CreateSize(AControl.Width,AControl.Height);
FDragImageList.Masked := True;
end;
destructor TDragDimension.Destroy;
begin
FDragImageList.Free;
inherited;
end;
function TDragDimension.GetDragImages: TDragImageList;
begin
Result := FDragImageList;
end;
procedure TForm1.Edit1StartDrag(Sender: TObject;
var DragObject: TDragObject);
begin
fDragObject := TDragDimension.Create(Edit1);
fDragObject.FDragImageList.Clear;
FDragObject.GetDragImages.Add(Image1.Picture.Bitmap, Image1.Picture.Bitmap);
DragObject := FDragObject;
// если сюда вставить DragObject.ShowDragImage; , то рез-та нет
end;
зато есть, если:
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
fDragObject.FDragImageList.DrawOverlay(canvas, x, y, 0, 1, dsTransparent, itImage, true);
//repaint
end;
рисуется, тока не стирается :(. Repaint - ну, моргает там, если курсор остановить - изобр совсем пропадает. Беда, прям.
ЛшдлуттнСфе (2008-08-13 00:02:00) [4]
> aaaaa (12.08.08 17:02) [11]
Это хорошо, что делал, может, покажешь, как? отсюда плохо видно.
aaaaa (2008-08-12 17:02:00) [5]
> MBo © (12.08.08 07:36) [10]
делал вчера - рез-т ноль.
MBo (2008-08-12 07:36:00) [6]ShowDragImage
aaaaa (2008-08-11 23:42:00) [7]
> KilkennyCat © (11.08.08 23:35) [8]
да, например: картинка видна тока за пределами моего приложения - как сделать видимой в моем прилож?
KilkennyCat (2008-08-11 23:35:00) [8]
> aaaaa (11.08.08 22:45) [7]
да. Если почитаешь про GetDragImages, сможешь задать еще более кокретные вопросы...
aaaaa (2008-08-11 22:45:00) [9]
> Германн © (11.08.08 01:28) [5]
как?
Вот так:
> MBo © (11.08.08 14:21) [6]
> создать наследника от TDragControlObject(Ex), перекрыть
> метод GetDragImages, при начале перетаскивания создать объект
> данного класса, записать в его поля информацию, которая
> понадобится для отображения.
?
MBo (2008-08-11 14:21:00) [10]создать наследника от TDragControlObject(Ex), перекрыть метод GetDragImages, при начале перетаскивания создать объект данного класса, записать в его поля информацию, которая понадобится для отображения.
Германн (2008-08-11 01:28:00) [11]> aaaaa (10.08.08 20:54) [3]
>
>
> > {RASkov} © (10.08.08 14:22) [2]
>
> хм... вот:
>
>
Так ты его (тот текст) сначала схвати, а уж потом тащи и кидай.
Amoeba (2008-08-10 23:35:00) [12]
> когда тащу, мне нужно, чтобы вместо курсора, был перетягиваемый
> текст.
Не много хочешь?
aaaaa (2008-08-10 20:54:00) [13]
> {RASkov} © (10.08.08 14:22) [2]
хм... вот:
procedure TForm1.Label1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := True;
end;
procedure TForm1.Label1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
Label1.Caption := Edit1.Text;
end;
когда тащу, мне нужно, чтобы вместо курсора, был перетягиваемый текст.
{RASkov} (2008-08-10 14:22:00) [14]> [1] aaaaa (10.08.08 13:46)
> очень сложный
ну может и не очень, но...
...попробуй не общий вопрос, а конкретные моменты...
aaaaa (2008-08-10 13:46:00) [15]я вопрос некорректно задал или очень сложный?