Jak zmieniać rozmiar i położenie komponentu za pomocą myszki

Na wstępie napisze, że ta metoda działa tylko na te komponenty, które posiadają uchwyt, czyli pochodzą od TWinControl (uchwytu nie posiadają np: TImage, TShape, TLabel, a posiadą go np: TButton, TListBox, i wiele innych);

W OnMouseDown danego komponentu/formy piszemy:

if Button = mbleft then 
begin //jeśli wciśnięty jest lewy przycisk myszy
  ReleaseCapture;
  TControl(Sender).Perform(WM_SysCommand, Dzialanie ,0);
end;

Dostępne Działania:

SC_SIZE + 1 - zmiana szerokości w lewo;
SC_SIZE + 2 - zmiana szerokości w prawo;
SC_SIZE + 3 - zmiana wysokości w górę;
SC_SIZE + 4 - zmiana rozmiaru w lewo w górę;
SC_SIZE + 5 - zmiana rozmiaru w prawo w górę;
SC_SIZE + 6 - zmiana wysokości w dół;
SC_SIZE + 7 - zmiana rozmiaru w lewo w dół;
SC_SIZE + 8 - zmiana rozmiaru w prawo w dół;
SC_SIZE + 9 - przenoszenie komponentu/formy;
SC_SIZE + 32 - minimalizacja komponentu :)

//Zamiast 'Dzialanie' wpisujemy np: SC_SIZE + 9

5 komentarzy

dobrze, że dałeś, ale równie dobrze byłoby, gdybyś napisał skąd korzystałeś...

Dzięki bardzo bardzo mi sie to przyda :) thx

nie wiem, możliwe, ja tą wskazówke wziąłem z innego źródła :) źle że dałem tą wskazówke ?... jeśli nie można by dawać tu tego co jest w tej ksiązce Adama to prawie nic by tu nie było :P

wydaje mi sie że ten temat był poruszy w książce
Adama Delphi6. Kompendium...

Szukałem tego i nie umiałem znaleść...
Dobrze że to się tu znalazło :)