zdarvim vsechny,
mam takovej problem, teda spis se chci zeptat na jiny reseni. Nejdriv vsechno popisu:
Mam pruhledny formular s BorderStyle.bsNone a na nem mam 10 panelu, ktery prepinam pomoci SpeedButonu, na kazdym panelu je neco jineho, na 1. treba databazi, na 2. prohlizeni fotek, na 10. info o aplikaci a podobne.
No a ted mi nastal problem s maximalizaci. Protoze mam formular bez okraju a jeste navic pruhlednej, jsou na nem videt jako podklad prave ty panely.
Neresil jsem to teda maximalizaci formulare, coz by mi asi nepomohlo,ale tim, ze jsem vsechny panely na stisk tlacitka zvetsil a komponenty na nem posunul ... (teda jen nektery, hlavne ty co neco zobrazuji / memo,DBGrid a tlacitka mezi nima/)
je z toho ale strasnej paskvil, code vlozim pod text, navic nemam vyresenou velikost monitoru,ale pocitam, ze na 15" uz nikdo nedela a na 17" by se to melo vejit i zvetseny.
Tady je ten code: snesu vysmech,ale jestli znate nekdo nejaky rozumnejsi reseni,tak prosim poradte,tohle je hodne amaterska prace.
na zmenu tech panelu jsem pouzil tuhle proceduru:
procedure TForm1.SetProperties(ClassName, Prop: string; Value: Integer);
var
i: integer;
PropInfo: PPropInfo;
Component: TComponent;
begin
for i := 0 to ComponentCount - 1 do
begin
Component := Components[i];
if (Component is TPanel) then
begin
PropInfo := GetPropInfo(Component.ClassInfo, Prop);
if Assigned(PropInfo) then SetOrdProp(Component, PropInfo, Integer(Value));
end;
end;
end;
a tady je ten hroznej code na zvetseni/zmenseni.
procedure TForm1.LabelMaxiClick(Sender: TObject);
var w,x,y,z: integer;
begin
x:= 90;
y:= 110;
z:= 200;
If c = 0 then begin
Form1.ClientWidth:= Form1.Width +(z*2);
Form1.ClientHeight:= Form1.Height +z;
Form1.Position:= poScreenCenter;
SetProperties('Tpanel','Width',Width +(z*2));
SetProperties('Tpanel','Height',Height +z);
with Panel do begin // tenhle panel vracim na puvodni hodnoty, ten nechci menit
Width:= 193;
Height:= 97;
end;
// ----------------------------------------------- komponenty panel 1
Bevel5.Height:= Bevel5.Height +x;
DBMemo1.Height:= DBMemo1.Height +x;
Bevel6.Top:= Bevel6.Top +x;
BtNova.Top:= BtNova.Top +x;
BtSmazat.Top:= BtSmazat.Top +x;
BtUpravit.Top:= BtUpravit.Top +x;
BtTisk.Top:= BtTisk.Top +x;
BtRefresh.Top:= BtRefresh.Top +x;
Bevel7.Top:= Bevel7.Top +x;
BtKonec.Top:= BtKonec.Top +x;
Label1.Top:= LKurzEuro.Top +x;
Label2.Top:= LKurzEura.Top +x;
Bevel8.Top:= Bevel8.Top +x;
Bevel8.Height:= Bevel8.Height +y;
Bevel8.Width:= Bevel8.Width +(z*2);
DBGrid1.Top:= DBGrid1.Top +x;
DBGrid1.Height:= DBGrid1.Height +y;
DBGrid1.Width:= DBGrid1.Width +(z*2);
// ---------------------------------------------------- konec panel 1
c:= 1;
end
else
begin
SetProperties('Tpanel','Width',Width -(z*2));
SetProperties('Tpanel','Height',Height -z);
Form1.ClientWidth:= Form1.Width -(z*2);
Form1.ClientHeight:= Form1.Height -z;
Form1.Position:= poScreenCenter;
with Panel do begin // tenhle panel vracim na puvodni hodnoty, ten nechci menit
Width:= 193;
Height:= 97;
end;
// ----------------------------------------------- komponenty panel 1
Bevel5.Height:= Bevel5.Height -x;
DBMemo1.Height:= DBMemo1.Height -x;
Bevel6.Top:= Bevel6.Top -x;
BtNova.Top:= BtNova.Top -x;
BtSmazat.Top:= BtNova.Top -x;
BtUpravit.Top:= BtUpravit.Top -x;
BtTisk.Top:= BtTisk.Top -x;
BtRefresh.Top:= BtRefresh.Top -x;
Bevel7.Top:= Bevel7.Top -x;
BtKonec.Top:= BtKonec.Top -x;
Label1.Top:= LKurzEuro.Top -x;
Label2.Top:= LKurzEura.Top -x;
Bevel8.Top:= Bevel8.Top -x;
Bevel8.Height:= Bevel8.Height -y;
Bevel8.Width:= Bevel8.Width -(z*2);
DBGrid1.Top:= DBGrid1.Top -x;
DBGrid1.Height:= DBGrid1.Height -y;
DBGrid1.Width:= DBGrid1.Width -(z*2);
// ---------------------------------------------------- konec panel 1
c:= 0;
end;
end;