Форум: "Начинающим";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];
ВнизDrag&Drop Найти похожие ветки
← →
aaaaa (2008-08-10 05:02) [0]Всем доброго времени суток.
Подскажите, как сделать, чтобы от OnStartDrag и до OnEndDrag вместе с курсором мышки двигался перетаскиваемый текст?
← →
aaaaa (2008-08-10 13:46) [1]я вопрос некорректно задал или очень сложный?
← →
{RASkov} © (2008-08-10 14:22) [2]> [1] aaaaa (10.08.08 13:46)
> очень сложный
ну может и не очень, но...
...попробуй не общий вопрос, а конкретные моменты...
← →
aaaaa (2008-08-10 20:54) [3]
> {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;
когда тащу, мне нужно, чтобы вместо курсора, был перетягиваемый текст.
← →
Amoeba © (2008-08-10 23:35) [4]
> когда тащу, мне нужно, чтобы вместо курсора, был перетягиваемый
> текст.
Не много хочешь?
← →
Германн © (2008-08-11 01:28) [5]> aaaaa (10.08.08 20:54) [3]
>
>
> > {RASkov} © (10.08.08 14:22) [2]
>
> хм... вот:
>
>
Так ты его (тот текст) сначала схвати, а уж потом тащи и кидай.
← →
MBo © (2008-08-11 14:21) [6]создать наследника от TDragControlObject(Ex), перекрыть метод GetDragImages, при начале перетаскивания создать объект данного класса, записать в его поля информацию, которая понадобится для отображения.
← →
aaaaa (2008-08-11 22:45) [7]
> Германн © (11.08.08 01:28) [5]
как?
Вот так:
> MBo © (11.08.08 14:21) [6]
> создать наследника от TDragControlObject(Ex), перекрыть
> метод GetDragImages, при начале перетаскивания создать объект
> данного класса, записать в его поля информацию, которая
> понадобится для отображения.
?
← →
KilkennyCat © (2008-08-11 23:35) [8]
> aaaaa (11.08.08 22:45) [7]
да. Если почитаешь про GetDragImages, сможешь задать еще более кокретные вопросы...
← →
aaaaa (2008-08-11 23:42) [9]
> KilkennyCat © (11.08.08 23:35) [8]
да, например: картинка видна тока за пределами моего приложения - как сделать видимой в моем прилож?
← →
MBo © (2008-08-12 07:36) [10]ShowDragImage
← →
aaaaa (2008-08-12 17:02) [11]
> MBo © (12.08.08 07:36) [10]
делал вчера - рез-т ноль.
← →
ЛшдлуттнСфе (2008-08-13 00:02) [12]
> aaaaa (12.08.08 17:02) [11]
Это хорошо, что делал, может, покажешь, как? отсюда плохо видно.
← →
aaaaa (2008-08-13 00:48) [13]
> ЛшдлуттнСфе (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 - ну, моргает там, если курсор остановить - изобр совсем пропадает. Беда, прям.
← →
MBo © (2008-08-13 06:10) [14]ControlStyle := ControlStyle + [csDisplayDragImage];
← →
aaaaa (2008-08-13 12:16) [15]
> MBo © (13.08.08 06:10) [14]
Ура!!! Спасибо большое!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.045 c