Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi global Variablen, Mehrfachdeklaration (https://www.delphipraxis.net/99363-global-variablen-mehrfachdeklaration.html)

Nuclear-Ping 12. Sep 2007 05:19

Re: global Variablen, Mehrfachdeklaration
 
Uff, da hast du ja wirklich einen dicken Brocken bekommen.

Keine Ahnung, ob es so ein Tool schon gibt. Wenn nicht, wäre das aber sicher etwas nützliches für einige Programmierer.

Reinhard Kern 12. Sep 2007 10:13

Re: global Variablen, Mehrfachdeklaration
 
Zitat:

Zitat von WS1976
Hallo nuclear,

...
Hat jemand eine Ahnung ob es vielleicht irgendein Tool gibt mit dem mir geholfen wird?
Wenn nicht schreib ich mir selbst eins.

Fazit:
Wenn schon globale Variablen, dann übersichtlich in eine Unit!

Grüsse
Rainer

Hallo,

wenn z.B. global1 in 2 Units deklariert ist, dann taucht im Map-File im Abschnitt "Adress - Publics by Name" global1 auch 2 mal auf an verschiedenen Adressen. Liest man das in Excel ein und sortiert nach Name (hab ich noch nicht praktiziert), so kann man doppelte Publics sehen. Damit weiss man noch nicht, wo, aber dass (es doppelt vorhanden ist). Das könnte man an den benachbarten Variablen in der ursprünglichen Reihenfolge abschätzen oder mit der "Suche in allen Projektdateien".

Ein eigenes Tool müsste schon recht umfangreiche Parserfunktionen erfüllen, da es var, const und procedure Deklarationen im Programmtext erkennen müsste. Normalerweise steht da ja nicht "var global1".

Am Mapfile sieht man übrigens, wie blöde das Delphikonzept in diesem Punkt ist - doppelte Publics darf es eigentlich überhaupt nicht geben, schon garnicht unkommentiert und ohne weitere Spezifikation.

Gruss Reinhard

WS1976 12. Sep 2007 10:38

Re: global Variablen, Mehrfachdeklaration
 
Puuuh,

irgendwie ist das schon ein Hammer. Im Map File hab ich, wie Reinhard beschrieben hat, wenigstens einen Hinweis darauf, dass es die Variable doppelt gibt. Wenn ich jetzt über das Projekt suche komm ich weiter.
Ich werde ein Tool basteln das mir die doppelt vorkommenden Einträg rausfieselt. Dann muss ich wohl oder übel per Hand suchen.
Irgendwie schreit die ganze Sache noch einer Lösung.

Danke an Alle, besonders an Reinhard.
Rainer

Amateurprofi 12. Sep 2007 10:43

Re: global Variablen, Mehrfachdeklaration
 
Zitat:

Zitat von guidok
Hallo,

ich hatte mal das Problem, das TBitmap auch zweimal deklariert ist. Der Compiler nimmt sich die Deklaration, die in deiner Uses-Anweisung als erstes auftaucht (bei dir Unit1), glaube ich zumindest. Du kannst allerdings auch genau auf die Deklaration zugreifen, die du möchtest mit

Delphi-Quellcode:
unit1.versa_SB_str
unit2.versa_SB_str
Ob du solche Mehrfachdeklarationen auch anders erkennen kannst weiß ich leider nicht.

Gruß,

Guido

Nein! Der Compiler nimmt die Deklaration, die in der Uses-Liste als letzte auftaucht....

s-off 12. Sep 2007 10:45

Re: global Variablen, Mehrfachdeklaration
 
Zitat:

Zitat von WS1976
Dann muss ich wohl oder übel per Hand suchen.

Lass das doch Deine Azubis machen. Schliesslich muss man die Kosten für so eine Aktion im Auge behalten.

Zitat:

Zitat von WS1976
Irgendwie schreit die ganze Sache noch einer Lösung.

Ganz genau! Und daher freuen wir uns alle auf ein nettes kleines Tool von Dir - mit Quelltext versteht sich.

WS1976 12. Sep 2007 11:32

Re: global Variablen, Mehrfachdeklaration
 
Hi s-off,

müssen diese zynischen Bemerkungen sein?
Lass es doch einfach.

Rainer

s-off 12. Sep 2007 11:40

Re: global Variablen, Mehrfachdeklaration
 
Hallo WS1976.

Traurig, dass Du alle meine Antworten als zynisch betrachtest.

Wenn man zugrunde legt, dass Du, in Deiner Tätigkeit als Ausbilder, der Firma, für die Du tätig bist, durch Bezug Deines Gehaltes, höhere Kosten verursachst (auf der anderen Seite aber auch mehr Umsatz einfahren kannst), als Deine 'Schützlinge', dann ist es eher ein wohlwollender Rat von mir.

Und da ich davon ausgehe, dass Du mit Deinem Problem der x-Fach deklarierten Variablen nicht alleine auf weiter Flur stehst, ist auch meine zweite Aussage alles andere als zynisch.

Wenn Du Deine Anschuldigungen auf der kleinen Diskussion von gestern begründest -> ich bin nicht nachtragend; Du etwa?

WS1976 12. Sep 2007 12:31

Re: global Variablen, Mehrfachdeklaration
 
Hallo s-off,

Mir ist das sehr ernst mit meinem Problem. Wenn ich die Azubis dransetze kann ichs genausogut selbst machen, muss nämlich alles nochmal kontrollieren.

Hast du irgendeinen Ansatz zur Lösung meines Problems (Azubis ist keiner hihi)?
Ich bin schon dabei ein Tool auf Basis des Mapfiles aufzubauen. Dort kann ich wenigstens erkennen ob die Variablen doppelt sind.

Bemerkung: Meine Tools sind immer mit Quellcode. Wenn's jemand interessiert stell ich das Ganze ins DP.
Ich bin absolut nicht nachtragend. Hab Gestern mindestens 20 Mails gekriegt hab sie alle gelöscht ohne sie zu lesen. ( Hätte mich nur aufgeregt. Hab ich mir erspart )

Also Friede?

Grüsse
Rainer

s-off 12. Sep 2007 12:57

Re: global Variablen, Mehrfachdeklaration
 
Huhu,
Zitat:

Zitat von WS1976
Mir ist das sehr ernst mit meinem Problem. Wenn ich die Azubis dransetze kann ichs genausogut selbst machen, muss nämlich alles nochmal kontrollieren.

Ok, dann liege ich mit meinem Kosten-Nutzen-Vergleich tatsächlich schief :?

Zitat:

Zitat von WS1976
Hast du irgendeinen Ansatz zur Lösung meines Problems (Azubis ist keiner hihi)?

Leider nein - ich hätte sie auch nicht vorenthalten, wenn ich sie hätte :(

Zitat:

Zitat von WS1976
Ich bin schon dabei ein Tool auf Basis des Mapfiles aufzubauen. Dort kann ich wenigstens erkennen ob die Variablen doppelt sind.

Der Ansatz, über das Map-File zu gehen, erscheint mir allerdings gar nicht übel. Musst Dir nur überlegen, wie Du weitermachst, sobald Du weisst, welche Variablen mehrfach deklariert sind.

Zur Suche innerhalb Deiner Sourcen empfehle ich entweder GrepSearch, welches in den GExperts enthalten ist, oder aber ein professionelles Such-Tool wie bspw. FileLocator Pro.

Mir würde allerdings ad hoc wirklich keine Möglichkeit einfallen, Dein Problem im zweiten Schritt automatisch und vor allem sauber zu lösen. Es dürfte problematisch sein, herzuleiten, auf welche Variable aus welcher Unit bei einem speziellen Aufruf gezeigt wird.

Zitat:

Zitat von WS1976
Also Friede?

Friede kann nur dort geschlossen werden, wo Krieg herrscht - und Krieg sieht in meinen Augen anders aus - aber um es offiziell zu machen => Friede :!:

:wink:

mschaefer 12. Sep 2007 13:42

Re: global Variablen, Mehrfachdeklaration
 
Moin, moin,

Sagt mal bei aller liebgewonnenen Zynik, warum lässt man nicht den Compiler suchen? Nimm doch einfach alle globale Variable und nenne diese um im Stil von "Unitnamen_Variablennamen" und versuche zu compilieren. Dann springt der Compiler zu jeder stelle wo er nicht weiterkommt und Du kannst entscheiden welche dahin kommt. Jedenfalls in Map-Files suchen scheint mir doch eher Zeitvertreib zu sein.

Prinzipbedingt braucht man da auch kein Tool schreiben!
Ein Tool wird kaum entscheiden können welche der doppelten Globalvariablen im Kontext nun genau hingehört.


Grüße // Martin


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:48 Uhr.
Seite 2 von 4     12 34      

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