Hallo,
gleich mal vorweg: Ich habe zu meinem Problem schon im Internet gesucht, aber leider keine Lösung gefunden. Weiterhin ist zu sagen dass ich mit Delphi sehr wenig Erfahrung habe und mich hier gerade erst einlerne.
Folgendes habe ich bereits gemacht:
- Neue Form angelegt
- Drag&Drop: TImage32-Objekt + Laden eines Bildes (über Bitmap32-Editor)
Jetzt will ich die
Größe des Bildes zur Laufzeit ändern. D.h. das Bild soll also größer oder kleiner dargestellt werden, als es tatsächlich ist. Ich will also nicht die tatsächliche Größe des Bildes (auf dem Speichermedium) ändern, sondern ich will das Bild in meiner Anwendung (temporär) neu skalieren.
Ich hab das jetzt über verschiedene Wege versucht, aber leider wird das Bild jedes Mal schwarz wenn ich es neu skalieren will.
Hab hierzu mal eine kleine Beispielanwendung geschrieben.
Am Anfang wird hier ein Bild geladen und auch korrekt angezeigt. Wenn ich jetzt auf den angelegten Button klicke wird der Anzeigebereich zwar auf die 100x100 Pixel skaliert, aber das Bild ist nur noch schwarz.
Kann mir einer sagen was ich hier machen muss damit das Bild skaliert angezeigt wird?
Hab langsam echt kein Plan mehr was ich noch probieren könnte.
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, GR32_Image, StdCtrls, Buttons, JvExButtons, JvButtons;
type
TForm1 =
class(TForm)
imageWindow: TImage32;
btnScale: TJvHTButton;
procedure btnScaleClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnScaleClick(Sender: TObject);
begin
imageWindow.Bitmap.Height := 100;
imageWindow.Bitmap.Width := 100;
end;
end.
Ausgabe:
http://imageshack.us/photo/my-images/811/vorher.jpg/
http://imageshack.us/photo/my-images/228/danach.jpg/
PS: Mit den Methoden Repaint, Resized, Refresh, etc. hab ichs auch schon probiert, aber die haben mir auch nicht weitergeholfen.