Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.13;
Скачать: 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 вся ветка

Текущий архив: 2003.03.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
14-39566
Трезвенник
2003-02-26 15:50
2003.03.13
Выведение из запоя


3-39169
mate
2003-02-20 15:52
2003.03.13
DBRichEdit и QRRichText


1-39281
Miller
2003-03-03 16:43
2003.03.13
Как выводить на экран пикселы без


3-39175
explorer
2003-02-20 08:40
2003.03.13
Locate


3-39182
mfender
2003-02-20 16:16
2003.03.13
MS Access + Delphi