Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Image kopieren, funktioniert nicht! (https://www.delphipraxis.net/65288-image-kopieren-funktioniert-nicht.html)

Hallo_Thomas 14. Mär 2006 17:38


Image kopieren, funktioniert nicht!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo ich wollte ein Image in ein anderes kopieren, innerhalb eines Formular funktioniert es, aber ich versuh dies von einem sog. Splashscreen , irgendwie will das nicht, Speicherzugriffsverletzung..


Delphi-Quellcode:
Form2.Image1.Picture:=Form3.Image1.Picture;
Delphi-Quellcode:
begin
  Form3 := TForm3.Create(Application);
  try
    Form3.Show;
    Application.Initialize;
    Form3.Update;
    Sleep(3000);
    Application.CreateForm(TForm1, Form1);
    Application.CreateForm(TForm2, Form2);
    Form3.Hide;
  finally
  Form3.Free;
  end;
Application.Run;

marabu 14. Mär 2006 18:12

Re: Image kopieren, funktioniert nicht!
 
Hallo Thomas,

ohne Bezug zum Rest deines Beitrags - so wie du es zeigst kopierst du nur einen Zeiger. Wenn Form3 zerstört wird, dann wird der Zeiger ungültig:

Delphi-Quellcode:
// Form2.Image1.Picture:=Form3.Image1.Picture;      // nicht gut
Form2.Image1.Picture.Assign(Form3.Image1.Picture);  // besser
Grüße vom marabu

Hallo_Thomas 14. Mär 2006 20:05

Re: Image kopieren, funktioniert nicht!
 
@ marabu

Das hatte ich auch schon probiert.
Funktioniert aber nicht, Zugriffsverletzung...........

Palando 14. Mär 2006 20:49

Re: Image kopieren, funktioniert nicht!
 
Zitat:

Zitat von marabu
Delphi-Quellcode:
// Form2.Image1.Picture:=Form3.Image1.Picture;      // nicht gut
Form2.Image1.Picture.Assign(Form3.Image1.Picture);  // besser

Durch das Untere wird das Bild auch wirklich kopiert und nicht nur der Zeiger?
Das ist sehr gut, du hast der DelphiPraxis gerade einen Thread erspart :D

Dankesehr!

Hallo_Thomas 15. Mär 2006 23:33

Re: Image kopieren, funktioniert nicht!
 
Ich immer noch keinen Plan wie ich das Bild kopieren kann?!?

Irgendwie wills nicht.

Christian Seehase 16. Mär 2006 00:13

Re: Image kopieren, funktioniert nicht!
 
Moin Thomas,

dann prüf' doch mal die den Wert von Picture vor der Zuweisung und lass' Dir den ausgeben.

Hawkeye219 16. Mär 2006 07:37

Re: Image kopieren, funktioniert nicht!
 
Hallo Thomas,

Du greifst auf eine Komponente von Form3 zu, nachdem Du Form3 freigegeben hast!
Das Anzeigen von Form2 (und damit der OnShow-Aufruf) wird erst in Application.Run durchgeführt.

Gruß Hawkeye

Hallo_Thomas 16. Mär 2006 10:07

Re: Image kopieren, funktioniert nicht!
 
Gibt es da eine Möglichkeit, die Form3 kurzfristig aufzurufen und sie nach dem kopieren wieder zu schliessen?So das der Speicher nicht belastet wird?

Hawkeye219 16. Mär 2006 11:02

Re: Image kopieren, funktioniert nicht!
 
Nur so eine Idee:

Könntest Du das Bild nicht mittels der Zwischenablage übertragen, d.h. mit den Routinen SaveToClipboardFormat und LoadFromClipboardFormat von TGraphic?
Eine andere Möglichkeit wäre ein TMemoryStream und dessen Methoden SaveToStream und LoadFromStream.
Ein Beispiel habe ich leider nicht...

Gruß Hawkeye

NormanNG 16. Mär 2006 11:06

Re: Image kopieren, funktioniert nicht!
 
Hi,

warum legst du nicht eine "gemeinsame" Unit an, in der auch das Image liegt. Diese Unit dann im Splash als auch in der anderen Unit verwenden. Du kasnnt ja im OnCreate das Image aus der gemeinsamen Unit zuweisen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz