Frage

Mein Programm erledigt eine zeitaufwändige Aufgabe, und ich möchte in der Mitte des Anwendungsfensters einen Zeitplan anzeigen, aber es bleibt nicht oben - meine VST ist immer oben. Wenn ich jedoch ein TPANEL benutze, bleibt es oben? Wie kann ich meinen Timage dazu bringen, das zu tun?

Tatsächlich wäre eine Lösung, die für alle Steuerungen gilt, großartig :)

Vielen Dank!

War es hilfreich?

Lösung

Du brauchst ein Fenstersteuerung (Das heißt, ein Steuerelement mit einem Fenstergriff oder einer "richtigen" Steuerung), um Ihre Nachricht anzuzeigen, da eine nicht erwinderte Steuerung über einem Fenstersteuerung nicht sichtbar sein kann. Die einfachste Lösung ist, die zu platzieren TImage in einem TPanel und set Image1.Align := alClient und Panel1.BorderStyle := bsNone.

Wenn Sie eine halbtransparente Bitmap über Ihre gewöhnlichen Steuerelemente zeichnen möchten, können Sie es so tun, als ob ich es immer tun kann:

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

Andere Tipps

Ein Timage hat kein Fenster, das damit verbunden ist, und das ist der Unterschied zwischen ihm und dem Panel.

Fügen Sie ein Panel hinzu und legen Sie das Bild in das Panel, dh das übergeordnete Bild des Bildes ist das Panel. Dann können Sie das Bild nach vorne bringen, indem Sie das Feld nach vorne bringen.

Hast du darüber nachgedacht, deine VST zu verbergen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top