In grafische weergave "programmeren" a thumbnail is een verkleinde versie van een afbeelding.
Hier is een idee voor uw volgende toepassing: maak een 'formulierkiezer' waarmee gebruikers eenvoudig open formulieren kunnen selecteren en navigeren door miniaturen van allemaal in een dialoogvenster weer te geven.
Interessant idee? Klinkt als de "Quick Tabs" -functie van de IE 7-browser :)
Voordat u daadwerkelijk zo'n handige functie voor uw volgende Delphi-toepassing maakt, moet u weten hoe u de afbeelding van het formulier ("formulier-screenshot") kunt pakken en hoe u het formaat proportioneel kunt aanpassen aan de gewenste miniatuurafbeelding.
Hieronder vindt u een codeblok om de afbeelding van een formulier (Form1) te maken met behulp van de GetFormImage methode. De resulterende TBitmap wordt vervolgens aangepast aan de maximale miniatuurbreedte (200 pixels) en / of hoogte (150 pixels).
Door het formaat te wijzigen, blijft de beeldverhouding van de afbeelding behouden.
De resulterende afbeelding wordt vervolgens weergegeven in een TImage-besturingselement, genaamd "Image1".
const max. breedte = 200; maxHeight = 150; var thumbnail: TBitmap; thumbRect: TRect; beginnen thumbnail: = Form1.GetFormImage; proberen thumbRect.Left: = 0; thumbRect.Top: = 0; // proportioneel formaat wijzigen als thumbnail.Width> thumbnail.Hoogte vervolgens beginnen thumbRect.Right: = maxWidth; thumbRect.Bottom: = (maxWidth * thumbnail.Hight) div Thumbnail breedte; einde anders beginnen thumbRect.Bottom: = maxHeight; thumbRect.Right: = (maxHeight * thumbnail.Width) div thumbnail.Height; einde; thumbnail.Canvas.StretchDraw (thumbRect, thumbnail); // afbeelding formaat wijzigen thumbnail.Width: = thumbRect.Right; thumbnail.Height: = thumbRect.Bottom; // weergeven in een TImage-besturingselement Image1.Picture.Assign (thumbnail); Tenslotte thumbnail.Free; einde; einde;
Merk op GetFormImage kopieert alleen het clientgebied van het formulier - als u de volledige "schermafbeelding" van een formulier (inclusief de rand) moet maken, hebt u een andere aanpak nodig ... de volgende keer meer informatie.