- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
procedure TForm1.Timer1Timer(Sender: TObject);
var Ras, MinRas, MinC, Comp: Integer;
begin
Ras:=0;
MinC:=0;
MinRas:=0; // всё по нулям
for Comp:=0 to ComponentCount-1 do // цикл по всем компонентам
begin
IF (Components[Comp] is TPanel) and (Components[Comp] <> Panel1) and (Panel1.Left>TPanel(Components[Comp]).Left) then
Ras:=Panel1.Left-TPanel(Components[Comp]).Left
else
IF (Components[Comp] is TPanel) and (Components[Comp] <> Panel1) and (Panel1.Left<TPanel(Components[Comp]).Left) then
Ras:=TPanel(Components[Comp]).Left-Panel1.Left;
If Ras < MinRas
then begin
MinRas:= Ras; //устанавливаем переменные этой панельки за основные
MinC:= Comp;
end;
end;
if Panel1.top<(TPanel(Components[MinC]).Top-TPanel(Components[MinC]).Height) then
Panel1.Top:=Panel1.Top+3; //если панель ниже то допрыгиваем
PROBEL:=Panel1.Top=TPanel(Components[MinC]).Top-TPanel(Components[MinC]).Height
end;
То есть увеличил разрешение - и окно всё равно занимает тот же процент площади, что и раньше? А в чём удобство?
я обычно использую картинки побольше, а при отображении подгоняю размеры поменьше
ну и обходить правильнее не по .Components[] а по .Controls[]