изменять размер в рантайме
Модератор: Модераторы
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
изменять размер в рантайме
в общем хочу у кнопки \ панельки в рантайме менять размер мышкой также как в дизайн-тайме как это сделать ?
помнися как-то просто должно быть.
помнися как-то просто должно быть.
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
Код: Выделить всё
procedure TForm1.MyMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
// TWinControl(Sender).Caption := 'x= '+IntToStr(x)+ ' y = '+ IntToStr(Y) ;
if (x > TWinControl(Sender).Width - 10) and (y > TWinControl(Sender).Height - 10) then
TWinControl(Sender).Cursor := crSizeNWSE;
if ((TWinControl(Sender).Cursor = crSizeNWSE) and (ssLeft in Shift)) then
begin
TWinControl(Sender).Width := X;
TWinControl(Sender).Height := Y;
end;
end;
procedure TForm1.MyMouseLeave(Sender: TObject);
begin
TWinControl(Sender).Cursor := crDefault;
end;код работает на кнопке\панельке\мемо
больше не проверял =)
по хорошему надо маус ап\доун тоже обрабатывать, но и так все работает =)
Если написать так
, то OnMouseLeave не нужен.
Кстати, немного смущает TWinControl. Нормально в плане кроссплатформенности?
Код: Выделить всё
if (x > TWinControl(Sender).Width - 10) and (y > TWinControl(Sender).Height - 10) then
TWinControl(Sender).Cursor := crSizeNWSE
else
TWinControl(Sender).Cursor := crDefault;
, то OnMouseLeave не нужен.
Кстати, немного смущает TWinControl. Нормально в плане кроссплатформенности?
