We właściwościach komponentów są parametry : "left" i "top". Mają one odpowiednie wartości, które powodują, że komponent ustawia się w odległości ileś tam pixeli od lewej i górnej krawędzi formy.
Proszę o sugestie jak sprawić, aby przyciski, memo i np radiogroup ustawiły się na formie w określonej odległości ale od prawej strony, a nie od lewej. Chodzi o to, że chcę rozciągnąć formę na cały ekran niezależnie od rozdzielczości i wtedy komponenty wychodzą gdzieś w 1/3 ekranu. Gdyby ustawić odległość od prawej a nie lewej, to byłoby to co chcę. Nie wiem jednak, czy w ogóle jest taka możliwość - zamienić 'left" na "right". Wszędzie można przeczytać tylko pobieżnie o właściwościach komponentów. Tego tematu nie widziałem nigdzie. A może trzeba napisać jakąś procedurę, żeby obliczała szerokość okna i komponentu a potem zmieniała wartość "left"-a ???</delphi>
popatrz na właściwość Anchors
Patrzyłem, nawet pozmieniałem z akLeft true" na "akRight true" ale to niczego nie zmieniło. Proszę o jeszcze parę słów na ten temat.
niczego :> ciekawe http://rapidshare.com/files/5156462/Project1.exe.html
Dzięki za przykład, ale trochę nie o to michodziło - może się nieprecyzyjnie poprzednio wyraziłem. Przy ustawieniu parametru "Windows State": wsNormal, kiedy kliknę na powiększenie okna - jest ok. Ale mnie chodzi o to, że muszę mieć ustawienie "Windows State" na wsMaximized i to wówczas nie działa. Chcę, żeby forma uruchamiała się na pełny ekran.
Może jeszcze jakaś sugestia ???
procedure SetRight(C: TComponent; r: Integer);
begin
c.Left := c.Parent.Width - r - c.Width;
end;
powinno działać - nie sprawdzałem
BTW zamiast ustawiać wsMaximized w DesignTime zostaw wsNormal a w OnCreate daj
LockWindowUpdate(Handle);
WindowState := wsMaximized;
LockWindowUpdate(0);
i wszytko będzie się samo ustawiać
edoo napisał(a)
Patrzyłem, nawet pozmieniałem z akLeft true" na "akRight true" ale to niczego nie zmieniło. Proszę o jeszcze parę słów na ten temat.
akLeft na false, akRight na true. Dodatkowo jeszcze można akTop lub akLeft na true.
I to musi działać. Nie ma bata.
Chyba, że masz Delphi np. 2005(nie wiem, jak to jest w 2006), wtedy to nie zawsze działa, ale wtedy wystarczy o dziwo, że w design time lekko zmienisz wielkość formy
(i tak masz ustawione na wsMaximized, więc w run time nie będzie to miało znaczenia)
A może po prostu coś takiego:
var prawo:integer;
begin;
prawo:=screen.width-button1.width;
button1.left:=prawo-X; // X to wartość o jaką ma być przesunięty od prawej strony
end;
Pozdrawiam
Dzięki za wszystkie sugestie !!! Sprawdzę po kolei. Pozdrawiam i jakby co, będę pytał dalej.
Po sprawdzeniu okazało się, że najbardziej skuteczna jest procedurka według receptury podanej przez kolegę mike87 wstawiona do "onCreate". Ustawia to co chcę i jak chcę. Wielkie dzięki !!!</i>