1. 程式人生 > >磁碟分割槽大小顯示(以對數的形式)

磁碟分割槽大小顯示(以對數的形式)

var
  pts: array [0..8] of single= (111, 399, 90, 300, 5, 5, 1, 2, 18);//單位:M

procedure TForm1.Button1Click(Sender: TObject);
var
  dw: Integer;
  I: Integer;
  px, t: Single;
begin
  //以對數的方式顯示磁碟分割槽大小(
  dw := Panel1.Width;

  t := 0;
  for I := Low(pts) to High(pts) do
  begin
    if pts[I] > 0 then
      t := t + Log10(pts[I]);//統計分割槽對數和
  end;
  px := dw / t;//對數和佔總寬度的比例
  for I := High(pts) downto Low(pts) do
  begin
    //建立一個Panel,其寬度 = 對數值 * 總寬度佔比
    if pts[I] > 0 then
    with TPanel.Create(Panel1) do
    begin
      Parent := Panel1;
      Align := alLeft;
      Caption := IntToStr(I);
      Width := Round(Log10(pts[I]) * px);
    end;
  end;
end;