Управление сверху, как может сделать Tpanel?
Вопрос
Моя программа выполняет трудоемкую задачу, и я хотел бы отобразить таймс в середине окна приложения, но она не останется на вершине - мой 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;
Другие советы
Тримаг не связан с окном, связанным с ним, и в этом разница между ним и панелью.
Добавьте панель и поместите изображение внутрь панели, то есть родителем изображения является панель. Затем вы можете донести изображение на переднюю часть, доставив панель на переднюю часть.
Вы думали о том, чтобы скрыть свой VST?