![]() |
Re: Picture2Bitmap
Wir können dem Anfänger wahrlich nicht helfen, an das Freigeben eines Funktionsergebnisses zu denken, das ist sein Problem allein.
Aber kein Profi der Welt würde je auf die Idee kommen, dass ein out-Parameter der Vorbelegung bedarf, weil es dessen Bedeutung ad absurdum führt. Jedenfalls solange er nicht in den Code schaut, und dann würde er ihn flugs umschrauben, um nicht noch einmal auf die Nase zu fliegen ;) . |
Re: Picture2Bitmap
Hmm... ja... hab ich auch schon drüber nachgedacht. Sollte man vielleicht einen var-parameter (EDIT: also out->var) draus machen? also ich will da wirklich keine Speicherleichen produzieren. Lieber mal vom Debugger unsanft drauf hingewiesen werden, seine Variablen ordentlcih zu initialisieren. Denn das fällt auf, im gegensatz zu Speicherlecks.
|
Re: Picture2Bitmap
Bei Klassen ist es recht egal ob nichts, var, out oder const. Kommt immer aufs gleiche raus.
|
Re: Picture2Bitmap
Zitat:
|
Re: Picture2Bitmap
Ich meine, wenn man eine Klasse als Parameter übergibt, ist der Zusatz egal.
|
Re: Picture2Bitmap
Auch da wäre ich mir nicht sicher.
|
Re: Picture2Bitmap
Ich mir schon.
kein Zustatz: Instanzenpointer wird übergeben. var-Zusatz: Pointer auf Instanzenpointer macht keinen Sinn -> Instanzenpointer wird übergeben. const-Zusatz: Instanzenpointer wird übergeben. out-Zusatz: Instanzenpointer wird übergeben. |
Re: Picture2Bitmap
Manuel, was passiert, wenn der Parameter in der aufgerufenen Routine verändert wird?
Gruß Hawkeye |
Re: Picture2Bitmap
Call by reference. ;)
Klar, wenn der Instanzenpointer übergeben ist. Denn wie will Delphi eine Klasseninstanz kopieren? Also eine einfache Kopie wie bei Strings geht nicht. |
Re: Picture2Bitmap
Das Thema "Picture2Bitmap" hatten wir schon mal. Das umwandeln auch. :stupid:
![]()
Delphi-Quellcode:
procedure ConvertImageToBitmap(Image: TImage);
var TmpPic: TPicture; begin TmpPic := TPicture.Create; try TmpPic.Bitmap.Assign(Image.Picture.Graphic); Image.Picture.Bitmap.Assign(TmpPic.Bitmap); finally TmpPic.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz