AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.
Thema durchsuchen
Ansicht
Themen-Optionen

Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.

Ein Thema von FriendOfDelphi · begonnen am 24. Nov 2010 · letzter Beitrag vom 25. Nov 2010
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#11

AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.

  Alt 24. Nov 2010, 18:15
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (24. Nov 2010 um 18:28 Uhr)
  Mit Zitat antworten Zitat
blauweiss

Registriert seit: 19. Jun 2007
142 Beiträge
 
#12

AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.

  Alt 25. Nov 2010, 09:56
Der Compiler meldet keinen Fehler beim copilieren.
Aber nur das letzte "end" erhält den blauen Punkt.
In einem Krimi würde der Kommissar genau hier die entscheidenden Indizien finden.
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
  Mit Zitat antworten Zitat
FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#13

AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.

  Alt 25. Nov 2010, 10:48
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)
Ich möchte diesen Punkt zwar nicht grundsätzlich ausschließen, aber der eigentliche Code hat im "Stand Alone Programm", also ohne eigene Unit und ohne eigene Klasse, ja funktioniert. Und der Compiler meckert auch nicht.
- die Funktionen/Befehle werden nirgendwo aufgerufen (was man nicht verwendet, das wird nicht mit einkompiliert)
Das kann ich nicht so eindeutig sagen. Innerhalb der Unit/der Klasse habe ich 2 Prozeduren im "private-Bereich", sowie einen "constructor" und einen "destructor" im "public-Bereich" deklariert und im "implementation-Bereich" definiert. Konstruktor und Destruktor rufen innerhalb der Klasse je eine der beiden "privaten" Prozeduren auf.
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."
- 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)
Sobald ich absichtlich einen Fehler in den Quellcode einbaue, wird dieser auch vom Compiler angemeckert.
- 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
Nein, die Debuginformationen habe ich nicht deaktiviert, sonst würde er ja nie Fehler anzeigen.
So, und nun mußt du nur noch rausbekommen, welcher dieser Punkte bei dir zutrifft.
Ich glaube ich mache einen anderen Fehler. Nachdem der oben beschriebene Fehler vom Compiler angezeigt wurde, habe ich nach diesem gesucht und bin auf die fehlenden Punkte in der "Klassen-Unit" gestoßen und habe deshalb an dieser Stelle gesucht.
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#14

AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.

  Alt 25. Nov 2010, 10:55
Der Compiler meldet keinen Fehler beim copilieren.
Aber nur das letzte "end" erhält den blauen Punkt.
In einem Krimi würde der Kommissar genau hier die entscheidenden Indizien finden.
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
Wie ich schon in der Antwort an "himitsu" geschrieben habe wird, wenn ich absichtlich einen Fehler im Quellcode der Unit einbaue, dieser auch vom Compiler angemeckert. Das läßt darauf schließen, dass diese auch mitkompiliert wird.
Aber ich instanziiere in einer zweiten Test-Unit ein Objekt der Klasse. Wahrscheinlich mache ich hier, bzw. im Konstruktor etwas falsch.
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.

  Alt 25. Nov 2010, 10:57
Wahrscheinlich mache ich hier, bzw. im Konstruktor etwas falsch.
Was müssen wir tun, damit du ihn uns zeigst?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#16

AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.

  Alt 25. Nov 2010, 11:18
Wahrscheinlich mache ich hier, bzw. im Konstruktor etwas falsch.
Was müssen wir tun, damit du ihn uns zeigst?
Lach
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?
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17

AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.

  Alt 25. Nov 2010, 11:24
Wahrscheinlich mache ich hier, bzw. im Konstruktor etwas falsch.
Was müssen wir tun, damit du ihn uns zeigst?
Lach
Gar nichts, außer vielleicht zu sagen, in welcher Art und weise ich ihn senden soll.
Wie wäre es mit posten des relevanten Codeteiles?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#18

AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.

  Alt 25. Nov 2010, 12:00
Hier Teile der "Test-Unit":
Delphi-Quellcode:
[...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.
Hier Teile der eigenen Unit:
Delphi-Quellcode:
[...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...]
Ist das so nachvollziehbar und ein Fehler erkennar?
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#19

AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.

  Alt 25. Nov 2010, 12:02
Eine Instanz einer Klasse erstellt man so:
obj := TMyClass.Create;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Quellcode wird nicht compiliert. Compiler meldet keinen Fehler.

  Alt 25. Nov 2010, 12:07
Die Instanz einer Klasse weist man so zu:
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...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (25. Nov 2010 um 12:10 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:31 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