Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr (https://www.delphipraxis.net/93653-%5Bd2007%5D-warnung-sinnvoll-bei-methode-wg-gross-kleinschr.html)

DelphiProgrammierer 8. Jun 2007 23:53


[D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Ich habe mal in einem "schlauen Buch" gelesen, man solle möglichst alle Compiler-Warnungen und Hinweise beachten.

Jetzt habe ich bei einem mittleren Projekt die einzelnen Meldungen angeschaut und bin dabei auf folgende Merkwürdigkeit gestoßen:

Macht es Sinn, dass der Compiler moniert, wenn ich "destroy" statt "Destroy" schreibe.

Folgender Code verursacht die Meldung DCC Warnung: H2365 Schreibweise der Überschreiben-Methode TTestClass.destroy muss exakt ihrem Vorfahren TObject.Destroy entsprechen.

Delphi-Quellcode:
type TTestClass=class
  destructor destroy;override;
end;

{ TTestClass }

destructor TTestClass.destroy;
begin

  inherited;
end;
Die Warnung entfällt, wenn ich Destroy großschreibe.

Außerdem: Ich kann diese Meldung unter Optionen "Compiler-Meldungen" nicht finden, um sie abzuschalten. Wo mache ich das?

semo 9. Jun 2007 00:16

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
*räusper*

es macht schon sinn wenn der compiler das moniert, sich dem problem anzunehmen und aus dem kleinen d ein großes D zu machen, anstatt diese fehlermeldung auschalten zu wollen....

also bitte....

Luckie 9. Jun 2007 00:20

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Eigentlich macht es keinen Sinn, da Delphi nicht case sensitiv ist. Es hält einen nur dazu an, sauber zu programmieren und erleichter den Umstieg auf case sensitive Sprachen, wie C usw.

semo 9. Jun 2007 00:29

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
aber es ist ja wohl selbstredend "dem wunsch des compilers nachzukommen" und alle warnungen und hinweise bereinigt zu haben.

Luckie 9. Jun 2007 00:39

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Ich lasse mir doch von einem Stück Software keine Wünsche diktieren. :mrgreen:

mkinzler 9. Jun 2007 00:45

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Das hat imho eher mit der Existenz von (VCL).Net zu tun.

DelphiProgrammierer 9. Jun 2007 02:22

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Zitat:

Zitat von mkinzler
Das hat imho eher mit der Existenz von (VCL).Net zu tun.

Klingt plausibel. Hat also wohl mit dem recht großen Versionssprung von Delphi 7 auf 2007 zu tun, den ich gemacht habe. Und Delphi 2007 ist ja eigentlich ein BDS, das nur zufällig ausschließlich für Win32 eingesetzt werden kann - aber trotzdem Rücksicht auf case-sensitive Sprachen nimmt.

Zu den anderen Kommentaren:
1) ich habe 1, bisher nicht alle Wünsche des Compilers erfüllt, ich fasste die Wünsche eher als "Denkanstoss" auf
2) das sind portierte Programme aus Delphi 7

Robert Marquardt 9. Jun 2007 05:30

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Meckert der Compiler alle Namen an oder nur Konstruktor und Destruktor?
BTW es gibt uebrigens mindestens Register als case-sensitiven Namen in Delphi.

DelphiProgrammierer 9. Jun 2007 05:55

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Zitat:

Zitat von Robert Marquardt
Meckert der Compiler alle Namen an oder nur Konstruktor und Destruktor?
BTW es gibt uebrigens mindestens Register als case-sensitiven Namen in Delphi.

Lustig, ich wollte es gerade testen. procedure a;virtual; in der Nachfolgeklasse override. Und dann das a durch ein A ersetzt. Als ich das machte, stürzte die IDE ab. Ich kann nichts eingeben oder klicken. Weiterer Bericht folgt....

Hier der angekündigte weitere Bericht. Also, auch bei einer ganz normalen procedure wird Groß- und Kleinschreibung berücksichtigt.

Delphi-Quellcode:
  TClassA=class
    procedure a;virtual;
  end;
  TClassB=class(TClassA)
    procedure A;override;
  end;

madtom 9. Jun 2007 07:20

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
@DelphiProgrammierer

Das mit der Groß- bzw. Kleinschreibung kann ich nachvollziehen, sonst wurde es bei mir aber anstandslos
übersetzt. Hast Du schon das Update 1 für Delphi 2007 eingespielt?

Beste Grüße

DelphiProgrammierer 9. Jun 2007 07:29

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
@madtom
Es wurde auch bei mir übersetzt. Es geht mir nur um die (Un-?)Sinnigkeit des Hinweises während des Compilierens.
Ja, ich habe das Update 1 installiert.

Zitat:

Zitat von madtom
@DelphiProgrammierer

Das mit der Groß- bzw. Kleinschreibung kann ich nachvollziehen, sonst wurde es bei mir aber anstandslos
übersetzt. Hast Du schon das Update 1 für Delphi 2007 eingespielt?

Beste Grüße


Hawkeye219 9. Jun 2007 09:47

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Hallo,

auf korrekte Groß-/Kleinschreibung muß immer dann geachtet werden, wenn Symbole importiert bzw. exportiert werden. Hier ist ein weiteres Beispiel:

Delphi-Quellcode:
function getTickCount: DWORD;
  external 'kernel32.dll';

begin
  ShowMessage (IntToStr(GetTickCount));
end;
Der Code läßt sich ohne Probleme übersetzen, beim Ausführen erscheint jedoch eine Fehlermeldung. In diesem Fall läßt sich der Fehler entweder durch eine Korrektur der Schreibweise oder durch die Direktive name beheben:

Delphi-Quellcode:
function getTickCount: DWORD;
  external 'kernel32.dll' name 'GetTickCount';
Der Grund für das scheinbar sinnlose Verhalten liegt in der Kompatibilität zu case-sensitiven Sprachen (C, C++). Deshalb war Borland seinerzeit mehr oder weniger gezwungen, diesen Weg zu gehen.

Gruß Hawkeye

Robert Marquardt 9. Jun 2007 13:01

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Also ich wuerde mich ueber eine Liste der Warnungen fuer die JVCL freuen. Ich will sie schon seit Jahren case-sensitiv halten.

jbg 9. Jun 2007 13:25

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Zitat:

Zitat von Robert Marquardt
Also ich wuerde mich ueber eine Liste der Warnungen fuer die JVCL freuen. Ich will sie schon seit Jahren case-sensitiv halten.

Der Compiler meckert aber nur den Konstruktor und den Destruktor an.

Hawkeye219 9. Jun 2007 14:17

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Hallo Robert,

Zitat:

Zitat von Robert Marquardt
Also ich wuerde mich ueber eine Liste der Warnungen fuer die JVCL freuen. Ich will sie schon seit Jahren case-sensitiv halten.

Vielleicht sind CodeLens und CodeWrench ganz nützlich. Da CodeLens offenbar nicht weiterentwickelt wird, hat Charles McAllister das Projekt "CodeWrench" gestartet. Es basiert zwar auf CodeLens, allerdings fehlen noch einige Features.

Gruß Hawkeye

GTA-Place 9. Jun 2007 15:13

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Hey, ich hab grad mal CodeLens ausprobiert. Das Teil ist genial (gleich mal Bug in meinem Spiel bemerkt :lol:). CodeWrench lief nicht, habs auch nicht kompiliert, aber CodeLens werd ich nun wohl häufiger benutzen.

Robert Marquardt 9. Jun 2007 17:41

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Na das koennte helfen. Danke!

CCRDude 9. Jun 2007 17:53

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Nachdem ich mir die Videos hier aus der Delphi-PRAXiS mal reingezogen habe, habe ich sogar die QA-Audits &c. im BDS gefunden (da wird ja sogar gewarnt, wo camelCase und wo PascalCase angewendet werden soll(te)), und die büroweit prompt als Pflicht eingeführt (Null Warn-Toleranz und CodeHealer waren's schon).

Sobald man im Team arbeitet, ist ein Standard einfach unumgänglich, um Irritationen zu vermeiden und schnellere Lesbarkeit zu gewährleisten, und kann imho sogar arbeitsplatzentscheidend sein.

Robert Marquardt 9. Jun 2007 18:02

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Ich habe ja die ganzen JVCL-Sourcen ueberarbeitet und ich kann sicher sagen das strikte Einhaltung der Schreibweise definitiv leichter lesbar ist. Je mehr das Gehirn mit dem Vergleich von Namen zu tun hat desto anstrengender wird es. Das kann doch aber nicht Sinn der Sache sein. Man verschwendet Energie auf das Lesen der Source statt auf den Algorithmus.
Inzwischen kann ich per PageDown eine Source im Sekundentakt durchgehen und Unregelmaessigkeiten sehen. Eine Unregelmaessigkeit ist auch fast immer ein Punkt wo ein Fehler steckt.

DelphiProgrammierer 9. Jun 2007 22:38

Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Zitat:

Zitat von jbg
Zitat:

Zitat von Robert Marquardt
Also ich wuerde mich ueber eine Liste der Warnungen fuer die JVCL freuen. Ich will sie schon seit Jahren case-sensitiv halten.

Der Compiler meckert aber nur den Konstruktor und den Destruktor an.

Nein, wie in meinem obigen Beispiel meckert der Compiler auch bei
Delphi-Quellcode:
procedure a;
und
Delphi-Quellcode:
procedure A;
Das hatte ich ja nach der Rückfrage ausprobiert.

Delphi-Laie 18. Okt 2016 21:41

AW: Re: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Wollte gerade ein neues Thema aufmachen, fand zum Glück aber dieses hier. XE2 geht mir damit auch auf die Nerven. Nicht nur, daß der Grundsatz der Beliebigkeit der Groß-/Kleinschreibung verletzt wird, ist diese Meldung auch in sich völlig unlogisch: Zum einen ist es nur ein Hinweis, zum anderen ist dieser aber modalverbal maximal restriktiv: "...muss exakt..."

Ja, was denn nun - muß (exakt) oder doch nicht?

Man möchte meinen, Programmierer denken exakt und logisch und zudem, daß alles vorab beraten und hinterher noch einmal kontrolliert wird, denn das ist ja nicht zufällig entstanden. Wie so etwas in den Compiler hineingeraten konnte, ist nicht nachvollziehbar.

hoika 19. Okt 2016 04:00

AW: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Hallo,
es geht hier ja auch um den c++-Complier,
der ev. mit den "falsch" geschriebenen Destroy Probleme bekommen könnte.

Wo ist jetzt das Problem Destroy so zu schreiben, wie es der Compiler haben will?

Ja, ist doof, dass sich diese Meldung nicht ausknipsen läßt.

mkinzler 19. Okt 2016 09:14

AW: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
C(++) ist nun mal case sensitive

himitsu 19. Okt 2016 10:21

AW: [D2007] Warnung sinnvoll bei Methode wg. Groß-Kleinschr
 
Wenn man multiplatform entwickelt, dann ist soeine Meldung bei jeder Platform OK, aber auch da ist es sinnlos, daß man viele C++-Warungen im Delphi nicht "ganz" einfach und allgemein (standardmäßig) in den Projektoptionen deaktivierbar hat.

Aber reine Meldungen für einen Compiler sinnlos im anderen Compiler anzuzeigen ist einfach nur schwachsinnig.
Wenn man dabei vergisst, dass man (falls ich das richtig verstanden hab) im C++Builder auch Delphi-PAS einbinden kann?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 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