AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Warum kompiliert Delphi diesen Codeabschnitt nicht???
Thema durchsuchen
Ansicht
Themen-Optionen

Warum kompiliert Delphi diesen Codeabschnitt nicht???

Ein Thema von ustra · begonnen am 11. Sep 2003 · letzter Beitrag vom 13. Sep 2003
Antwort Antwort
Seite 1 von 3  1 23      
ustra

Registriert seit: 12. Mär 2003
Ort: Geesthacht
138 Beiträge
 
Delphi 5 Professional
 
#1

Warum kompiliert Delphi diesen Codeabschnitt nicht???

  Alt 11. Sep 2003, 18:12
Hallo,

folgende Codedeklaration(steht alles in einer Unit):

Delphi-Quellcode:
  type TSicherung = class(TObject)

     public
        procedure kontrolle;
     end;

  type TsicherungCad = class(TSicherung)

     public
       procedure kontrolle;
  end;

....

  procedure TSicherungCad.kontrolle;
  begin
      exit;
  end;

  procedure TSicherung.kontrolle;
  begin
    exit;
  end;
Wenn ich das Projekt kompiliere, wird keine Fehlermeldung ausgegeben, aber es wird nicht der Inhalt der Prozedur von TsicherungCad.kontrolle compiliert. irgendwie ignoriert der Compilier den Code. Ich erkenne es folgendermaßen: Wenn ich in der Zeile, wo exit steht, einen Haltepunkt setzen will, ist in dem roten Kreis ein gelbes Kreuz. Wenn es vom Kompilier erkannt wurde als auszuführenden Code, dann ist in Delphi 5 (benutze ich) immer noch ein blauer Punkt neben der Zeile, was hier nicht der Fall ist. Nun meine Frage, wie schaffe ich es, dass Delphi diesen Codeabschnitt kompiliert? Ich stehe vor einem Rätsel und kann es mir nicht erklären.

Beste Grüße und danke im voraus für Eure Hilfe
Ulrich
Ulrich Strauer
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Warum kompiliert Delphi diesen Codeabschnitt nicht???

  Alt 11. Sep 2003, 18:17
Eventuell solltest du mal Code reinschreiben, der auch was macht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ustra

Registriert seit: 12. Mär 2003
Ort: Geesthacht
138 Beiträge
 
Delphi 5 Professional
 
#3

Re: Warum kompiliert Delphi diesen Codeabschnitt nicht???

  Alt 11. Sep 2003, 18:22
Hallo,

es steht schon Code drin. Ich habe nur exit; reingeschrieben, damit es nicht zu unübersichtlich wird. Im Original sieht es so aus:

Delphi-Quellcode:
procedure TsicherungCad.kontrolle;
  begin
      if FindWindow(nil, 'CAD-Hauptprogramm') = 0
      then begin
        Sicherung.haupt_aktiv(false);
        Sicherung.sichern(sPfadLokal);
        if boNetz
        then
         Sicherung.sichern(sPfadNetz);
      end
      //Ansonsten warten, bis Cadkontrolle geschlossen ist
      else begin
        Sicherung.haupt_aktiv(true);
        TWarten.enabled:=true;
        SendStringTohandle(FindWindow(nil, 'CAD-Hauptprogramm'), 'Schließen');
      end;
  end;
Beste Grüße
Ulrich
Ulrich Strauer
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Warum kompiliert Delphi diesen Codeabschnitt nicht???

  Alt 11. Sep 2003, 18:38
Wird der Code auch aufgerufen im Programm?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MSCH

Registriert seit: 8. Mai 2003
Ort: Berlin
42 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Warum kompiliert Delphi diesen Codeabschnitt nicht???

  Alt 11. Sep 2003, 18:42
Interessant wird, wenn wir die Stelle zu sehen bekommen, wo TSicherungCad.Controlle aufgerufen wird. Du deklarierst 2 Klassen mit ein und derselben Procedure ohne zu zu überschreiben etc.
Wo ist da der Sinn ?

Code der nicht aufgerufen wird, ignoriert der Linker. Dann funktioniert auch kein Breakpoint.

grez
msch
  Mit Zitat antworten Zitat
roderich
(Gast)

n/a Beiträge
 
#6

Re: Warum kompiliert Delphi diesen Codeabschnitt nicht???

  Alt 11. Sep 2003, 18:44
Du leitest TSicherungCad von TSicherung ab, welches schon eine Methode Kontrolle hat, und deklarierst in TSicherungCad dann nochmal diese Methode Kontrolle.

Fehlt Dir da nicht ein inherited oder reintroduce oder irgendsowas (aus dem Kopf) ??!?

Roderich
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Warum kompiliert Delphi diesen Codeabschnitt nicht???

  Alt 11. Sep 2003, 18:50
Außerdem: Da nur ein Exit in der Prozedur drinne steht, könnte ich mir vorstelllen, dass die Codeoptimierung von Delphi dies entfernt, da es ja unnötig ist.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Warum kompiliert Delphi diesen Codeabschnitt nicht???

  Alt 11. Sep 2003, 18:56
@Chewie: Schon mal etwas weiter, als bis zum ersten Posting gelesen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Warum kompiliert Delphi diesen Codeabschnitt nicht???

  Alt 11. Sep 2003, 19:04
Ja, hab ich, aber ich hab es so verstanden, dass er auch beim Testen nur Exit drinnehatte und das Exit nicht nur fürs Forum geschrieben hat.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
ustra

Registriert seit: 12. Mär 2003
Ort: Geesthacht
138 Beiträge
 
Delphi 5 Professional
 
#10

Re: Warum kompiliert Delphi diesen Codeabschnitt nicht???

  Alt 11. Sep 2003, 19:12
Hallo,

vielleicht noch mal ein paar Sätze: Ich habe eine Klasse TSicherung mit verschiedenen Eigenschaften und Methoden (Bsp.: construktor, destruktor). Habe ich aber der Einfachheit hier nicht angegeben. Von dieser Klasse erzeuge ich weitere. TsicherungCad und TSicherungPHP sind weitere Klassen, die von TSicherung alle Methoden und Eigenaschften erben. Nun will ich bei den klassen TSicherungphp und TSicherungCad unterschiedlichen Code in der Prozedur kontrolle schreiben. Das will ich errreichen, in dem ich einfach die Prozedur bei den verschiedenen Klasen überschreibe. Ich habe in der Schule das auch mal so gemacht und da hat es funktioniert.

Beste Grüße und schönen Dank für die bisherige rege Beteiliung
Ulrich

PS: So sieht die Deklaration aus(diesmal nicht zensiert):

Delphi-Quellcode:
  type TSicherung = class(TObject)

     private
       LManuellDatum, LAutoDatumLetzte, LAutoDatumNaechste : TLabel;
       TAuto, TWarten : TTimer;
       App : TApplication;
       Sicherung : TKopieren;
       iInterval, iBereinigenInterval : integer;
       boNetz, boBereinigen : boolean;
       sPfadLokal, SPfadNetz, sTypart : string;
       procedure TAutoOnTimer(Sender : TObject);
       procedure SendStringToHandle(Wnd: Hwnd; const AText: string);
       procedure TWartenOnTimer (Sender : TObject);

     public
        constructor create (GStatus : TGauge; LDatei, LAutoLetzteDatum, LAutoNaechDatum, LManDatum : TLabel; Applicat : TApplication; Formular : TForm; Data : TDatabase; Query : TQuery; sTyp : string);
        destructor destroy;
        procedure kontrolle;
        procedure sichern;
        procedure einstellungen_aktualisieren;
  end;

  type TsicherungCad = class(TSicherung)

     public
       procedure kontrolle;
  end;

 type TsicherungPHP = class(TSicherung)

     public
       procedure kontrolle;
  end;
Ulrich Strauer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 15:59 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