Вниз
Скачать: CL | DM;

Почему не 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
3-39212
mib431
2003-02-21 19:46
2003.03.13
Что такое


6-39456
CASU
2003-01-21 15:31
2003.03.13
Как отобразить процесс передачи данных на сервер?


3-39180
JibSkeart
2003-02-20 15:36
2003.03.13
Как узнать (подсчитать) точно траффик


3-39200
VIB
2003-02-21 15:03
2003.03.13
DBGrid


3-39152
KPY
2003-02-20 08:53
2003.03.13
F1Book глючит




   Наверх