Witam
Problem którego rozwiązania nie znalazłem i nie potrafię sam rozwiązać jest następujący:
Potrzebuje zmieniać położenie jednego komponentu względem innego: tzn mam 4 komponenty tworzące jakby jeden: button image edit i combobox -> chciałbym aby zmieniając położenie buttona położenie zmieniały również pozostałe elementy...
W IDE Lazarus dla ostawień Anchors było coś takiego, ustawianie elementu względem innego " anchor to top side to sibling" i w sibling wybierało się tak jakby rodzica...
Niestety w Delphi tego nie ma bądź nie znalazłem tego, musiałem zrezygnować z Lazarusa za dużo błędów które mi przeszkadzały... przeniosłem projekt do Delphi i rozwiązałem to w ten sposób:
procedure TForm1.Button6MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if MD then // sprawdź, czy właściwość = TRUE
begin
{ zmieniaj pozycje komponentu wg. pozycji kursora }
Button6.Left := Button6.Left + (X - P.X);
Button6.Top := Button6.Top + (Y - P.Y);
Image9.Left := Image9.Left + (X - P.X);
Image9.Top := Image9.Top + (Y - P.Y);
Edit3.Left := Edit3.Left + (X - P.X);
Edit3.Top := Edit3.Top + (Y - P.Y);
Combobox3.Left := Combobox3.Left + (X - P.X);
Combobox3.Top := Combobox3.Top + (Y - P.Y);
end;
end;
Niestety nie jest to zbyt dobre rozwiązanie takich procedur musiałbym mieć z 200 bo tyle potrzebuje tych ruchomych Komponentów, postanowiłem wiec rozwiązać to poprzez dynamiczne tworzenie komponentów:
procedure TForm1.ButtonMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MD := True; // zmień właściwość na TRUE
P := Point(X, Y); // pobierz dotychczasową pozycję kursora
przycisk:=(sender as Tbutton);
end;
procedure TForm1.ButtonMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if MD then
begin
przycisk.Left := przycisk.Left + (X - P.X);
przycisk.Top := przycisk.Top + (Y - P.Y);
end;
end;
Niestety nie wiem nadal jak zmieniać położenie pozostałych ...
PLEASE HELP ME :D