Verwijderd schreef op 17 november 2002 @ 13:13:
[...]
Precies, daarom gebruik ik dus die DoubleBuffered.
De listview resized mee met de form. (Sorry als dat nog niet duidelijk was.)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| procedure Tfrm_ArtikelVerpakking.FormCanResize(Sender: TObject;
var NewWidth, NewHeight: Integer; var Resize: Boolean);
begin
if (NewWidth < 493) then
NewWidth := 493;
if (NewHeight < 319) then
NewHeight := 319;
pnl_ArtikelVerpakking.Width := ClientWidth - 2;
pnl_ArtikelVerpakking.Height := ClientHeight - 58;
lstvw_Verpakkingen.Width := pnl_ArtikelVerpakking.Width - 9;
lstvw_Verpakkingen.Height := pnl_ArtikelVerpakking.Height - 68;
lbl_Afkorting.Top := pnl_ArtikelVerpakking.Height - 53;
edt_Afkorting.Top := pnl_ArtikelVerpakking.Height - 57;
lbl_Omschrijving.Top := pnl_ArtikelVerpakking.Height - 26;
edt_Omschrijving.Top := pnl_ArtikelVerpakking.Height - 30;
btn_Sluiten.Left := pnl_ArtikelVerpakking.Left + pnl_ArtikelVerpakking.Width - btn_Sluiten.Width;
btn_Sluiten.Top := pnl_ArtikelVerpakking.Top + pnl_ArtikelVerpakking.Height + 4;
Resize := True;
end; |
Misschien helpt het als je in plaats van alle nieuwe hoogtes en breedtes hier in OnCanResize te zetten, de randen van je Componenten te verankeren aan de rand van het panel met de Anchors property in de Object inspector
- de Panel en Listview met Anchors:=[akLeft,akTop,akRight,akBottom] aan alle randen
- De labels met edit met Anchors:=[akLeft,akBottom] schuift met de onderrand mee
- De button met Anchors:=[akRight,akBottom] schuift met de onderkant, en met de rechterkant mee.
Voor de OnCanResize hoef je dan alleen maar de form-grootte op orde te houden
En zelfs deze kun je met een property (Constraints) instellen.
Ik heb geen idee of dit het flikkeren tegengaat, maar je hebt wel wat fllexibiliteit met het plaatsen van je componenten binnen de panel gewonnen.