Einzelnen Beitrag anzeigen

Root2k

Registriert seit: 7. Jun 2011
Ort: Ulm
49 Beiträge
 
Delphi XE Enterprise
 
#1

Bildgröße zur Laufzeit ändern

  Alt 4. Jul 2011, 12:43
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.
  Mit Zitat antworten Zitat