Arkadaslar merhaba
Formun orta yerine bir kare seklinde 20 tane paneli yerlestirmek istiyorum. Sorun panellerin daima formun tam ortasinda olmasi ve formun boyutlari degistiginde, degisen orana görede panellerin kendilerini oranlayarak degistirmelerini istiyorum. Fakat 20 tane panel bir dikdörtgen seklinde hep formun ortasinda yanyana alt alta pozisyonlarini degistirmeden sabitlenmeliler.
Tavsiyelerinizi bekliyorum
Tsk ederim
Oranlamak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Oranlamak
Bu 20 tane paneli bir panel içine alıp...formun onresize olayında bu kapsayıcı paneli ortalasınız olmaz mı ?
Re: Oranlamak
Arkadaslar merhaba
Tsk ederim. Aslinda ben 20 tane panelin formun tam ortasinda, kapladiklari alan icerisinde görülmelerini istiyordum. For büyüdükce dogal olarak büyümelerini ama hep formun ortasinda kalmalarini istiyordum. Söyle bir cözüm buldum: Ikinci bir formu modal olarak ve basliksiz (formstyl) gösterecegim ve 20 tane paneli formun üzerine yerlestirecegim. Ve formu ana formun üzerine ortayalacagim.
Buda benim maksadim icin yeterli
Tsk ederim
Tsk ederim. Aslinda ben 20 tane panelin formun tam ortasinda, kapladiklari alan icerisinde görülmelerini istiyordum. For büyüdükce dogal olarak büyümelerini ama hep formun ortasinda kalmalarini istiyordum. Söyle bir cözüm buldum: Ikinci bir formu modal olarak ve basliksiz (formstyl) gösterecegim ve 20 tane paneli formun üzerine yerlestirecegim. Ve formu ana formun üzerine ortayalacagim.
Buda benim maksadim icin yeterli
Tsk ederim
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
Re: Oranlamak
ekrana 20 tane paneli koy veya dinamik olarak kod ile oluştur ve hepsinin anchor ayarlarını yap sorunun çözülür.
Re: Oranlamak

Forma 20 tane panel koyun. Dinamik create edebilir ve/veya dağınık dahi koysanız olur. Tümü kendiliğinden düzene girecektir. Forma ortalamak dediğiniz için sabit kısmından marjin değerleri girmenizi sağladım. Form başlığını hesaplatabilirsiniz ama ben aşağıda göreceğiniz şekilde 30 height yüksekliğinde varsaydım ve peşin peşin çıkardım.
Örnek kod şu şekilde...
Kod: Tümünü seç
procedure TForm1.FormResize(Sender: TObject);
Const
SolMarj = 100;
UstMarj = 100;
SagMarj = 100;
AltMarj = 100;
Var
i : Integer;
begin
for i := 0 to TForm(Sender).ComponentCount - 1 do
begin
if TForm(Sender).Components[i] is TPanel then
begin
// Satırda 5 Panel ve 4 satırdan oluşuyor = 20 panel
TPanel(TForm(Sender).Components[i]).Height := (TForm(Sender).Height-30-UstMarj-AltMarj) div 4;
TPanel(TForm(Sender).Components[i]).Width := (TForm(Sender).Width -SolMarj-SagMarj) div 5;
TPanel(TForm(Sender).Components[i]).Top := UstMarj + ( (i div 5) * TPanel(TForm(Sender).Components[i]).Height );
TPanel(TForm(Sender).Components[i]).Left := SolMarj + ( (i mod 5) * TPanel(TForm(Sender).Components[i]).Width );
end;
end;
end;
Re: Oranlamak
Arkadaslar merhaba
kod maksadim icin kismen dogru. Eline saglik.
Tsk. ederim
kod maksadim icin kismen dogru. Eline saglik.
Tsk. ederim
Hayat tüm olumsuzluklara rağmen yaşamaya değer.