Einige häufig verwendete Bildbeobachtungssoftware haben eine Funktion, die lokale Bilder vergrößern kann.
Fügen Sie dem Formular zwei Timage -Komponenten hinzu, wobei eine der Timage -Komponenten auf Image1 eingestellt ist und als Träger für die Originalbildanzeige fungiert. Eine andere Timage -Komponente hat die Namenseigenschaft auf Image2 eingestellt, mit der das vergrößerte Bild angezeigt werden kann. Das Formular nach dem Hinzufügen von Komponenten ist in Abbildung 1 dargestellt.
Abbildung 1 Das Formular nach dem Hinzufügen von Komponenten
Der Kern dieses Beispiels ist die StretchBlt -Funktion, die die Stretchblt -Funktion verwendet, um die lokale Bildverstärkung zu erreichen.
Procedure tform1.image1MousEmove (Absender: Tobject; Shift: TShiftState; x, y: Integer);
Beginnen
StretchBlt (Image2.Canvas.Handle, 0,0, Image2.Width, Image2.Height,
Image1.Canvas.Handle, X-20, Y-20,40,40, Srccopy);
Image2.Refresh;
Screen.cursors [1]: = loadCursorfromFile ('Magnify.cur');
Self.cursor: = 1;
Ende;
Das Programm ruft zunächst die StretchBlt -Funktion auf, verwendet die aktuelle Position der Maus als Mittelpunkt, wählt das lokale Bild auf der Image1 -Komponente mit einer Seitenlänge von 40 aus und vergrößert das lokale Bild auf der Image2 -Komponente. Anschließend wird die Anzeige der Image2 -Komponente aktualisiert, indem die Aktualisierungsmethode der Image2 -Komponente aufgerufen wird. Stellen Sie den Mauszeiger schließlich auf die neue Form.
Der Programmcode lautet wie folgt:
Einheit Einheit1;
Schnittstelle
Verwendung
Fenster, Nachrichten, Systeme, Varianten, Klassen, Grafiken, Steuerelemente, Formulare,
Dialoge, extctrls, stdctrls;
Typ
Tform1 = Klasse (tform)
Bild1: Timage;
Bild2: Timage;
Prozedur Image1MousEmove (Absender: Tobject; Shift: TShiftState; x, y: Integer);
Verfahrensformmousemove (Absender: Tobject; Verschiebung: TShiftState; x, y: Integer);
Privat
{Private Deklarationen}
öffentlich
{Öffentliche Erklärungen}
Ende;
var
Form1: tform1;
Durchführung
{$ R *.dfm}
procedure tform1.image1MousEmove (Absender: Tobject; Shift: TShiftState; x, y: Integer);
Beginnen
StretchBlt (Image2.Canvas.Handle, 0,0, Image2.Width, Image2.Height, Image1.Canvas.Handle, X-20, Y-20,40,40, Srccopy);
Image2.Refresh;
Screen.cursors [1]: = loadCursorfromFile ('Magnify.cur');
Self.cursor: = 1;
Ende;
Prozedur tform1.FormMousemove (Absender: Tobject; Shift: TShiftState; x, y: Integer);
Beginnen
Screen.cursors [1]: = crdefault;
Self.cursor: = 1;
Ende;
Ende.
Speichern Sie die Datei und drücken Sie F9, um das Programm auszuführen.
Abbildung 2 Programmbetriebsergebnisse
Zoom in den Bildern ist eine notwendige Funktion einer hervorragenden Bild -Seh -Software.