![]() |
AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.
Es gibt im Grunde nur 3-4 Gründe, warum diese Punkte fehlen.
- es gibt einen Fehler im Quellcode (es konnte nicht kompiliert werden, aber da meckert der Compiler ja rum) - die Funktionen/Befehle werden nirgendwo aufgerufen (was man nicht verwendet, das wird nicht mit einkompiliert) - die ganze Unit wird nicht verwendet (könnte auch sein, daß eine andere Unit stattdessen genommen wird) > dieses läßt sich rausbekommen, indem man mal einen Fehler in den Code einbaut (wie's auch schon gesagt wurde) - oder man hat die Debuginformationen deaktiviert (entweder für die entsprechenden Codesstellen oder im gesammten Projekt) > ohne Debuginfos fehlt eine Zuordnung zwischen Quelltext und kompiliertem Code So, und nun mußt du nur noch rausbekommen, welcher dieser Punkte bei dir zutrifft. |
AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.
Zitat:
Blauer Punkt beim "end" -> die Unit wird im Projekt mitkompiliert. Keine blauen Punkte sonstwo in dieser Unit -> der Code wird nicht aufgerufen (weil z.B. die Klasse nirgendwo im Projekt instanziiert wird). Gruß blauweiss |
AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.
Zitat:
Zitat:
In einer zweiten, zunächst einmal nur Test-Unit, wird dann ein Objekt der Klasse instanziiert und die Methode "Create" beim Erzeugen des Formulars und "Destroy" beim Auflösen des Formulars verwendet (die beiden Methoden aus dem "public-Bereich"). Mehr mache ich erst einmal nicht. Beim Aufrufen des Programms wird aber folgender Fehler angezeigt: "Im Projekt Soundso.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 0043E34B in Modul 'Soundso.exe'. Lesen von Adresse 00000000'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen." Zitat:
Zitat:
Zitat:
|
AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.
Zitat:
Aber ich instanziiere in einer zweiten Test-Unit ein Objekt der Klasse. Wahrscheinlich mache ich hier, bzw. im Konstruktor etwas falsch. |
AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.
Zitat:
|
AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.
Zitat:
Gar nichts, außer vielleicht zu sagen, in welcher Art und weise ich ihn senden soll. Möchte mir nicht wieder einen "Rüffel" holen, dass ich irgendetwas falsch gemacht habe und unwissentlich gegen irgendwelche Forumsregeln verstoßen habe. :? Dafür ist mir das hier zu wichtig. Hier im Forum herrscht ein gewisses Niveau vor, das woanders nicht so ist und ich daher nicht missen möchte. Das Programm besteht, wie gesagt aus zwei Units. Soll ich es als ZIP-Datei anhängen, oder beide Quellcodes als Text senden? |
AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.
Zitat:
|
AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.
Hier Teile der "Test-Unit":
Delphi-Quellcode:
Hier Teile der eigenen Unit:
[...schnipp...]
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, UNotifikationen; //<-- die verwendete, eigene Unit [...schnipp...] var Form1: TForm1; Test: TNotifikationen; //<-- die verwendete Klasse aus eigenen Unit [...schnipp...] procedure TForm1.FormCreate(Sender: TObject); //<-- und die beiden Methoden aus der Klasse begin Test.Create(self); end; procedure TForm1.FormDestroy(Sender: TObject); begin Test.Destroy; end; end.
Delphi-Quellcode:
Ist das so nachvollziehbar und ein Fehler erkennar?
[...schnipp...]
type TNotifikationen = class(TWinControl) procedure WMAdsDeviceNotificationSRr( var Message: TMessage ); message WM_ADSDEVICENOTIFICATIONSRr; private { Private-Deklarationen } LocalAddr : TAmsAddr; procedure AdsOpen(); procedure AdsClose(); public { Public-Deklarationen } constructor Create(AOwner: TComponent); override; destructor Destroy; end; [...schnipp...] procedure TNotifikationen.AdsOpen(); var VarName : PChar; begin [...tue irgendwas ...] end; [...schnipp...] procedure TNotifikationen.AdsClose(); begin [...tue irgendwas ...] end; [...schnipp...] constructor TNotifikationen.Create; begin AdsOpen(); end; destructor TNotifikationen.Destroy; begin AdsClose(); end; [...schnipp...] |
AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.
Eine Instanz einer Klasse erstellt man so:
Delphi-Quellcode:
obj := TMyClass.Create;
|
AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.
Die Instanz einer Klasse weist man so zu:
Delphi-Quellcode:
Test := TTest.Create(Self);
Im Create und Destroy Deiner Komponente fehlen das inherited. Sie wird also nicht erzeugt und nicht aufgelöst. Hinter Deinem Destructor fehlt das override. Die Freigabe der Komponente (im FormDestroy) sollte man über Test.Free veranlassen. (Bzw. kann diese Freigabe an der Stelle entfallen, da das Formular Deine Komponente als deren Eigentümer automatisch frei gibt.) Schau mal, ob Dich das schon weiter bringt... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 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