Вопрос

Моя программа выполняет трудоемкую задачу, и я хотел бы отобразить таймс в середине окна приложения, но она не останется на вершине - мой VST всегда на вершине. Однако, когда я использую Tpanel, она остается на вершине? Как я могу сделать это?

На самом деле, решение, которое применимо ко всем элементам управления, было бы великолепно :)

Спасибо!

Это было полезно?

Решение

Ты нуждаешься в Университетский контроль (То есть элемент управления с ручкой окна или «правильным» элементом управления) для отображения вашего сообщения, потому что не может быть виден контроль, не состоящий из Window. Самое простое решение - разместить TImage в TPanel и сет Image1.Align := alClient а также Panel1.BorderStyle := bsNone.

Если вы хотите нарисовать полупрозрачную растровую карту поверх своего обычного элемента управления, вы можете делать, как я всегда делаю:

procedure TForm1.Button1Click(Sender: TObject);
var
  bm: TBitmap;
  png: TPngImage;
begin
  // The form contains a hidden TPanel (somewhere on the form)
  // with a TImage (alClient).

  // png is a PNG image with an alpha channel
  png := TPngImage.Create;
  try
    png.LoadFromFile('C:\Users\Andreas Rejbrand\Pictures\alpha.png');
    // Create bitmap of form and blend PNG on it
    bm := GetFormImage;
    try
      bm.Canvas.Draw(0, 0, png);
      Image1.Picture.Bitmap := bm;
    finally
      bm.Free;
    end;
    Panel1.Align := alClient;
    Panel1.BringToFront;
    Panel1.Show;
  finally
    png.Free;
  end;
end;

Sample result

Другие советы

Тримаг не связан с окном, связанным с ним, и в этом разница между ним и панелью.

Добавьте панель и поместите изображение внутрь панели, то есть родителем изображения является панель. Затем вы можете донести изображение на переднюю часть, доставив панель на переднюю часть.

Вы думали о том, чтобы скрыть свой VST?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top