- 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[]