In der Grafik "Programmierung" a Miniaturansicht ist eine verkleinerte Version eines Bildes.
Hier ist eine Idee für Ihre nächste Anwendung: Erstellen Sie eine "Formularauswahl", mit der Benutzer auf einfache Weise offene Formulare auswählen und durch diese navigieren können, indem Miniaturansichten von allen in einem Dialogfeld angezeigt werden.
Interessante Idee? Klingt wie die "Quick Tabs" -Funktion des IE 7-Browsers :)
Bevor Sie eine solche nette Funktion für Ihre nächste Delphi-Anwendung erstellen, müssen Sie wissen, wie Sie das Bild des Formulars aufnehmen ("Formular-Screenshot") und wie Sie die Größe proportional zum gewünschten Miniaturbild ändern können.
Unten finden Sie einen Codeblock, mit dem Sie das Bild eines Formulars (Form1) mit dem Befehl GetFormImage Methode. Die resultierende TBitmap wird dann so angepasst, dass sie der maximalen Breite (200 Pixel) und / oder Höhe (150 Pixel) der Miniaturbilder entspricht..
Durch Ändern der Größe wird das Seitenverhältnis des Bildes beibehalten.
Das resultierende Bild wird dann in einem TImage-Steuerelement mit dem Namen "Image1" angezeigt..
const maxWidth = 200; maxHeight = 150; var thumbnail: TBitmap; thumbRect: TRect; Start thumbnail: = Form1.GetFormImage; Versuchen thumbRect.Left: = 0; thumbRect.Top: = 0; // proportionale Größenänderung wenn thumbnail.Width> thumbnail.Height dann Start thumbRect.Right: = maxWidth; thumbRect.Bottom: = (maxWidth * thumbnail.Height) div thumbnail.Width; Ende sonst fange an thumbRect.Bottom: = maxHeight; thumbRect.Right: = (maxHeight * thumbnail.Width) div thumbnail.Height; Ende; thumbnail.Canvas.StretchDraw (thumbRect, thumbnail); //Bildgröße anpassen thumbnail.Width: = thumbRect.Right; thumbnail.Height: = thumbRect.Bottom; // In einem TImage-Steuerelement anzeigen Image1.Picture.Assign (thumbnail); schließlich thumbnail.Free; Ende; Ende;
Beachten Sie das GetFormImage kopiert nur den Formular-Client-Bereich - wenn Sie den gesamten "Screenshot" eines Formulars (einschließlich seines Rahmens) aufnehmen möchten, benötigen Sie einen anderen Ansatz ... mehr dazu beim nächsten Mal.