Форум: "Основная";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
ВнизПочему не Drag n Drop пится Найти похожие ветки
← →
Andy BitOff (2003-02-28 22:33) [0]Почему компонент TImage, находящийся прямо на форме, не хочет так таскаться:
ReleaseCapture;
TControl(Sender).Parent.Perform(WM_SysCommand, $F012, 0);
Хотя, если его поместить на TPanel он прекрасно таскается. Да, кстати, понятно, что Parent должно быть, когда он на панели и не должно быть, когда он на форме. Ошибка не в этом. Может кто подскажет, как мне потаскать только Image, который находится прямо на форме??????
← →
STATIC (2003-02-28 22:59) [1]Ytgjyznysq djghjc/ {jnz? Image is not a wincontrol and does"nt have a handle, therefore, a perform, send/postmessage is applicable only for it"s parent? i think/
← →
STATIC (2003-02-28 23:08) [2]А TControl(Sender).Parent.Perform(WM_SysCommand, $F012, 0) - это, получается, прямое обращение к родителю?
Я пьян сичас, как и Энди, кода задавал вопрос.
← →
Andy BitOff (2003-02-28 23:10) [3]Ясно. А что можно посоветовать в моем случае??? Задача в следующем, если Image на Panel"и и у обоих Transparent:=True; то чере них видно только то, что на форме, но не видно то, что на другой панели.
← →
STATIC (2003-02-28 23:33) [4]Не понял, Panel.Transparent - это в каких дельфях?
А так - если все-таки Image на панели, тогда проще, в самом деле, так:
Image.OnMouseDown...
ReleaseCapture;
TControl(Sender).Parent.Perform(WM_SysCommand, $F012, 0)
Пораскинув мозгами, можно остаться и без них. Но, по-моему, в етом таком случае (если хочется двигать рискунок, а не панель, придется делать все ручками). Хотя если с утра подумать...
← →
STATIC (2003-02-28 23:36) [5]
> Image is not a wincontrol...
>... a perform
Бр...
← →
Andy BitOff (2003-02-28 23:40) [6]Panel.Transparent из набора Raize Components 3.0. А ручками в каком направлении?
← →
STATIC (2003-03-01 07:17) [7]
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var Rect: PRect;
begin
Rect := AllocMem(SizeOf(TRect));
GetCursorPos(Rect^.TopLeft);
Rect^.TopLeft := TControl(Sender).ScreenToClient(Rect^.TopLeft);
Rect^.BottomRight := Rect^.TopLeft;
TControl(Sender).Tag := Integer(Rect);
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if PRect(TControl(Sender).Tag) <> nil then
begin
FreeMem(PRect(TControl(Sender).Tag));
TControl(Sender).Tag := 0
end;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var Rect: TRect;
begin
if PRect(TControl(Sender).Tag) <> nil then
begin
Rect := PRect(TControl(Sender).Tag)^;
GetCursorPos(Rect.TopLeft);
Rect.TopLeft := TControl(Sender).ScreenToClient(Rect.TopLeft);
TControl(Sender).Left := TControl(Sender).Left + (Rect.Left - Rect.Right);
TControl(Sender).Top := TControl(Sender).Top + (Rect.Top - Rect.Bottom);
Rect.BottomRight := Rect.TopLeft;
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c