![]() |
Problem mit Klassen
Hallöle!
Ich hab mir vorgenommen, mein Programm aus mehreren Klassen bestehen zu lassen. Bisher gibt es nur 2 Klassen: Unit1 (die Hauptunit) und Bild. Da ich zum ersten Mal mit mehreren Klassen arbeite, gibt es auch schon das erste Problem. Hier erstmal der (noch kurze) Quelltext der Unit Bild:
Delphi-Quellcode:
Die Klasse dient also bisher nur dazu, ein Picture zu öffnen und sich seinen Dateinamen zu merken, damit man beim Speichern nicht immer auf "Speichern unter" klicken muss.
unit Bild;
interface uses Graphics, Dialogs; type TBild = class private FCurrentFile: String; public procedure Oeffnen; end; implementation uses Unit1; procedure TBild.Oeffnen; begin If Form1.OpenPictureDialog1.Execute then begin self.FCurrentFile := Form1.OpenPictureDialog1.FileName; Form1.ImMain.Picture.LoadFromFile(Form1.OpenPictureDialog1.FileName); Form1.ImMain.Picture.Bitmap.PixelFormat := pf24Bit; Form1.ImMain.Visible := True; end; end; Beim Öffnen eines Bitmaps tritt nun eine Zugriffsverletzung auf. Wenn ich die Zeile
Delphi-Quellcode:
weglasse, tritt der Fehler nicht auf.
self.FCurrentFile := Form1.OpenPictureDialog1.FileName;
Kann mir jemand helfen? Falls es eine bessere Möglichkeit gibt, die Dateinamen zu speichern, wäre ich natürlich auch daran interessiert. Danke! |
Re: Problem mit Klassen
Ist Form1 zu diesem Zeitpunkt schon instantiiert?
BTW. ich würde das ganze mal überabeiten, so ist es nämlich nicht so toll! |
Re: Problem mit Klassen
Hallo Zusammen,
Zitat:
Zitat:
Daher muss Form1 instanziiert sein, da der Fehler ja nicht auftritt :gruebel: Ich habe eher den Eindruck, das beim Zugriff auf Self ein Fehler entsteht. Self scheint nil zu sein. Gruß, pszopp |
Re: Problem mit Klassen
Hast Du denn eine Instanz von TBild erzeugt?
|
Re: Problem mit Klassen
Wenn self=nil wäre, könnte er nicht mal die Methode aufrufen, da der Methodenzeiger aus einem Pointer auf den Code und einem Pointer auf die Klasseninstanz besteht. Das heißt, wenn die Klasse nicht instantiiert wäre, würde er bevor er in die Methode springt, übelst mit ner AV abschmieren.
|
Re: Problem mit Klassen
Zitat:
Danke, das war's. Zitat:
|
Re: Problem mit Klassen
Zitat:
Gruß Hawkeye |
Re: Problem mit Klassen
Zitat:
|
Re: Problem mit Klassen
Zitat:
|
Re: Problem mit Klassen
Zitat:
Gruß, pszopp |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 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