Danke,
mag ja alles stimmen, aber nun verstehe ich rein gar nichts mehr!
Vergesst mal bitte GraphicEx.
Formular mit 2 Image, 3 Button und ein OpenPictureDialog (OPD).
(Das Label ist nur so, damit ich weiß, was ich ausgewählt habe.)
Die Click-Events.
Das ganze bitte mit JPG probieren, wenn Ihr wollt.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OPD.Execute then begin
label1.caption:=OPD.FileName;
image1.Picture.LoadFromFile(opd.filename);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if not image1.Picture.Bitmap.empty then begin
image2.Picture.Bitmap.Assign(image1.Picture.bitmap)
end else begin
showmessage('Bitmap leer');
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
showmessage('Test');
end;
Mit Button1 wird das jpg-Bild nach Image1 geladen.
Button2 testet, ob eine Bitmap da ist und lädt diese in image2. (Quatsch, da es bei JPGs ja keine gibt. Habe ich nur vergessen, rauszunehmen.)
Falls es keine gibt (also bei JPG) wird eine Message angezeigt, die etwas von Image1 verdeckt. (Wichtig!)
Wird diese message "weggeclickt", wird Image1 nicht aktualisiert, refreshed, invalidated... Es bleibt ein grauer (Hintergrund-)kasten.
Nehme ich statt dessen Button3, wird auch nur eine Message angezeigt, die Image1 genauso überdeckt.
Wird die weggeclickt, wird Image1 ordentlich "aktualisiert", wie es sich gehört.
Was mache ich falsch?
Gruß
Matthias