![]() |
TImage.Create() in extra Unit
Hallo,
ich möchte gerne ein Image zur Laufzeit erzeugen, was ich auch geschafft habe:
Delphi-Quellcode:
So weit so gut, erstelle ich mir aber eine extra Unit und in dieser eine Klasse funktioniert es nicht.
var bild : TImage
begin bild := TImage.Create(self); with bild do begin parent := formMain; left := 50; top := 50; height := 200; width := 200; canvas.font.name := 'Arial'; show; end; end; Im constructor der Klasse soll dann das Image erstellt werden, als Parameter wird u.a. eine TForm für die parent-Eigenschaft übergeben. Wenn ich dann jedoch zu der Stelle komme:
Delphi-Quellcode:
funktioniert es nicht.
Spielflaeche := TImage.Create(xxx);
Das Problem dürfte daran liegen, dass ich mit dem Parameter den die Create-Prozedur benötigt nicht klar komme. In der Hilfe steht dazu ja folgendes: Zitat:
Es funktioniert auch nicht wenn ich self, nil oder application übergebe. Vielleicht könnte mir ja jemand das mit den Parameter welchen ich übergeben muss genauer erklären, oder wenigstens ein Beispiel nennen wie es funktioniert. |
Re: TImage.Create() in extra Unit
Hi,
Zitat:
So ungefähr sollte das ganze aussehn:
Delphi-Quellcode:
Gruß
// Andere Unit:
TKlasse = class private FImage: TImage; public constructor Create(AParent: TForm); end; constructor TKlasse.Create(AParent: TForm); begin inherited Create; FImage := TImage.Create(AParent); with FImage do begin Parent := AParent; //... end; end; // Haupt-Unit: var Test: TKlasse; begin Test := TKlasse.Create(Form1); end; Neutral General |
Re: TImage.Create() in extra Unit
Danke, vorallem für das Beispiel.
Das mit der TForm hatte ch falsch ausgedrückt, meinte ich aber so wie du es beschrieben hast, allerdings hatte ich in der hauptUnit folgenden Fehler: Zitat:
Vielen Dank! |
Re: TImage.Create() in extra Unit
Moin Zusammen,
Vorsicht: Der Parameter, der im Konstruktor eines TComponent-Nachfolgers angegeben werden sollte ist nicht der Parent, sondern der Owner. Der Owner ist für die Freigabe zuständig. Wird er angegeben kümmern sich die internen VCL-Mechanismen darum, dass die Komponente freigeben wird, ansonsten (Owner = nil) muss man sich selber darum kümmern. Der Parent ist für die Postionierung zuständig. Die Komponente wird relativ zum Parent angezeigt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:39 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 by Thomas Breitkreuz