AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

global Variablen, Mehrfachdeklaration

Ein Thema von WS1976 · begonnen am 11. Sep 2007 · letzter Beitrag vom 17. Sep 2007
Antwort Antwort
Seite 3 von 4     123 4      
s-off
(Gast)

n/a Beiträge
 
#21

Re: global Variablen, Mehrfachdeklaration

  Alt 12. Sep 2007, 14:00
Zitat von mschaefer:
Sagt mal bei aller liebgewonnenen Zynik, warum lässt man nicht den Compiler suchen?
Prinzipiell eine schöne Sache, aber...

Zitat von mschaefer:
Nimm doch einfach alle globale Variable und nenne diese um im Stil von "Unitnamen_Variablennamen" und versuche zu compilieren.
...möchtest Du alle globalen Variablen umbenennen, die über x Dateien verteilt sind?

Zitat von mschaefer:
Jedenfalls in Map-Files suchen scheint mir doch eher Zeitvertreib zu sein.
Hier sicher die einfachste Möglichkeit, alle Doppeldeklarationen sicher zu entdecken.

Zitat von mschaefer:
Ein Tool wird kaum entscheiden können welche der doppelten Globalvariablen im Kontext nun genau hingehört.
Wie ich bereits sagte.

Fazit:
Man kann durch Analyse des Map-Files sämtliche Doppeldeklarationen aufdecken; ab da geht es allerdings per pedes weiter.
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#22

Re: global Variablen, Mehrfachdeklaration

  Alt 12. Sep 2007, 14:45
[quote="s-off"]
Zitat von mschaefer:
...möchtest Du alle globalen Variablen umbenennen, die über x Dateien verteilt sind?
Ok über die Map-Files kann man ja reden, aber prinzipiell würde ich tatsächlich in Betracht ziehen, die Variabeln mit einer systematik Projektweit umzubenennen. Das liegt daran, dass meine Projekte bisher immer wieder erweitert wurden und ich muß mich darauf verlassen, dass sowas nicht passieren kann. Das würde jede Zeitplanung sabotieren. Jemand der so ein Unsinn verzapft würde wohl auch nicht lange in meinem Projekten mitarbeiten.

Grüße // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#23

Re: global Variablen, Mehrfachdeklaration

  Alt 12. Sep 2007, 14:56
Zitat von mschaefer:
Ok über die Map-Files kann man ja reden, aber prinzipiell würde ich tatsächlich in Betracht ziehen, die Variabeln mit einer systematik Projektweit umzubenennen.
Da möchte ich Dir auch gar nicht widersprechen; das wäre natürlich eine sehr schöne Lösung. Nur denke ich, dass das automatische Umbenennen sämtlicher globaler Variablen ein nicht weniger großes Problem darstellt, als die Bereinigung der bekannten Doppeldeklarationen.
Zwar bedarf es hier keiner besonderen Logik, nur stehen wir hier vor dem Problem, den Delphi Code parsen zu müssen, was sicherlich nicht ganz anspruchslos ist, und man so auch wieder nicht um ein separates Tool herum kommt.

Zitat von mschaefer:
Jemand der so ein Unsinn verzapft würde wohl auch nicht lange in meinem Projekten mitarbeiten.
Darum ist es ja vielleicht auch sein Vorgänger
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#24

Re: global Variablen, Mehrfachdeklaration

  Alt 13. Sep 2007, 05:14
Hi alle,

mein Vorgänger ist oder war (ich weiss nicht ob er noch, als Programmierer, existiert) ein professioneller Programmierer. Die Source wurde in einer externen Softwareschmiede 1998 erstellt. Bei Ihm und seiner Beurteilung bin ich jedenfalls sehr vorsichtig da er sehr tricky programmiert hat und meist irgendein (hinterlistiger) Sinn darin steckt.

Hallo Amateurprofi:
nochmal, dass das ganz klar ist:
bei den Mehrfachdeklaration wird nicht die erste oder die letzte genommen, sondern die sind gleichberechtigt nebeneinander vorhanden. Sogar die Unit-Reihenfolge in der uses Klausel der zugreifenden Unit ( ihr wisst was ich meine ) spielt keine Rolle.
Welche der Compiler wo wann nimmt ist scheinbar purer Zufall.
Eine zweite Sache ist noch der Debugger, der macht nochmal was er will.

Ich jedenfalls werde mich des Mapfiles bedienen!

Grüsse
Rainer
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#25

Re: global Variablen, Mehrfachdeklaration

  Alt 13. Sep 2007, 06:06
Zitat:
bei den Mehrfachdeklaration wird nicht die erste oder die letzte genommen, sondern die sind gleichberechtigt nebeneinander vorhanden. Sogar die Unit-Reihenfolge in der uses Klausel der zugreifenden Unit ( ihr wisst was ich meine ) spielt keine Rolle.
Welche der Compiler wo wann nimmt ist scheinbar purer Zufall.
Bist du dir da sicher?

Wenn du in Delphi ein neues Projekt beginnst werden ja standardmäßig in der uses-Klausel einige Units eingebunden unter anderem "windows" VOR "graphics" und eben in diesen beiden Units wird ein Typ namens TBitmap deklariert. Im weiteren Programmierverlauf wird aber immer die, in den meisten Fällen, richtige TBitmap aus graphics verwendet.
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#26

Re: global Variablen, Mehrfachdeklaration

  Alt 13. Sep 2007, 19:19
Moin, moin

Soweit ich das mit meinen Projekten beobachtet habe
werden zunächst die Units aus dem aktuellen Projekt genommen, dann die Units aus den Biblitheken .

Viele Grüße // Martin


PS: Wenn ich "tricky" programmieren will nehme ich C, Perl oder SAS-Macros.
Einigermassen übersichtlich, Kommentare und eine aufgeräumte Unit- und Objektstruktur sind mir inzwischen viel näher.

PPS: Natürlich kann man auch in Delphi Tricky programmieren. Gerade mit Pointern kann man da schöne Optimierungen machen und in der Listenprogrammierung kommt man oft nicht ohne aus. Für die meisten Aufgaben schätze ich das aber weniger. Im Team ist es oft wichtiger, dass alle schnell vertsehen welche Abläufe stattfinden damit Programmieren nicht zm Selbstzweck und zur Beschäftigungstherapie des Kollegen wird.

(Da es nicht das Threatthema ist, sind es nur Postscriptum-Anmerkungen)
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#27

Re: global Variablen, Mehrfachdeklaration

  Alt 13. Sep 2007, 19:42
Zitat von mschaefer:
PS: Wenn ich "tricky" programmieren will nehme ich C, Perl oder SAS-Macros. Einigermassen übersichtlich, Kommentare und eine aufgeräumte Unit- und Objektstruktur sind mir inzwischen viel näher.
Willst Du damit ausdrücken, dass es mit Delphi nicht möglich ist, 'tricky' zu programmieren?
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#28

Re: global Variablen, Mehrfachdeklaration

  Alt 13. Sep 2007, 19:53
Zitat von WS1976:
Hi alle,

mein Vorgänger ist oder war (ich weiss nicht ob er noch, als Programmierer, existiert) ein professioneller Programmierer. Die Source wurde in einer externen Softwareschmiede 1998 erstellt. Bei Ihm und seiner Beurteilung bin ich jedenfalls sehr vorsichtig da er sehr tricky programmiert hat und meist irgendein (hinterlistiger) Sinn darin steckt.

Hallo Amateurprofi:
nochmal, dass das ganz klar ist:
bei den Mehrfachdeklaration wird nicht die erste oder die letzte genommen, sondern die sind gleichberechtigt nebeneinander vorhanden. Sogar die Unit-Reihenfolge in der uses Klausel der zugreifenden Unit ( ihr wisst was ich meine ) spielt keine Rolle.
Welche der Compiler wo wann nimmt ist scheinbar purer Zufall.Eine zweite Sache ist noch der Debugger, der macht nochmal was er will.

Ich jedenfalls werde mich des Mapfiles bedienen!

Grüsse
Rainer
Das, was ich jetzt gern schreiben würde, schreibe ich aus Gründen der Höflichkeit nicht.
Glaubst du denn ernsthaft, daß der Compiler quasi per Zufallsgenerator arbeitet ??
Ich glaube das nicht und (daß auch das ganz klar ist), die Verfasser der Delphi-Helpfiles glauben das offensichtlich auch nicht.

Zitat:
Mehrere und indirekte Unit-Referenzen

Die Reihenfolge der Units in der uses-Klausel bestimmt die Reihenfolge der Initialisierung dieser Units und wirkt sich auf die Suche des Compilers nach den Bezeichnern aus. Wenn zwei Units eine Variable, eine Konstante, einen Typ, eine Prozedur oder eine Funktion mit identischem Namen deklarieren, verwendet der Compiler die Deklaration der in der uses-Klausel zuletzt angegebenen Unit. Wollen Sie auf den Bezeichner in einer anderen Unit zugreifen, müssen Sie den vollständigen Bezeichnernamen angeben: Unitname.Bezeichner
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#29

Re: global Variablen, Mehrfachdeklaration

  Alt 14. Sep 2007, 10:05
Hi Amateuerprofi,

Zitat:
Das, was ich jetzt gern schreiben würde, schreibe ich aus Gründen der Höflichkeit nicht.
Dieser Kommentar ist absolut überflüssig.

Zitat:
Glaubst du denn ernsthaft, daß der Compiler quasi per Zufallsgenerator arbeitet ??
Ich hab dás so nie behauptet und auch so nicht dargestellt.
Vielleicht solltest du, bevor du Kommentare abgibst, meinen Originalbeitrag lesen.
Ich habe mehr als 100 Units in denen die Reihenfolge der Uniteinträge beliebig ist. In
mehreren sind die gleichen Variablennamen (Unitglobal) definiert.

Tatsache ist:
Es ist völlig egal wo im Programm ich debugge ( hab mir die Variablen auch schon per label angeschaut, gleiches Ergebnis ), ich bekomme mal die richtigen und mal die falsche Variable angezeigt und das ist völlig wilkürlich.

Grüsse
Rainer

PS:
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#30

Re: global Variablen, Mehrfachdeklaration

  Alt 14. Sep 2007, 18:06
Zitat von WS1976:
Hi Amateuerprofi,

Zitat:
Das, was ich jetzt gern schreiben würde, schreibe ich aus Gründen der Höflichkeit nicht.
Dieser Kommentar ist absolut überflüssig.

Zitat:
Glaubst du denn ernsthaft, daß der Compiler quasi per Zufallsgenerator arbeitet ??
Ich hab dás so nie behauptet und auch so nicht dargestellt.Vielleicht solltest du, bevor du Kommentare abgibst, meinen Originalbeitrag lesen.
Ich habe mehr als 100 Units in denen die Reihenfolge der Uniteinträge beliebig ist. In
mehreren sind die gleichen Variablennamen (Unitglobal) definiert.

Tatsache ist:
Es ist völlig egal wo im Programm ich debugge ( hab mir die Variablen auch schon per label angeschaut, gleiches Ergebnis ), ich bekomme mal die richtigen und mal die falsche Variable angezeigt und das ist völlig wilkürlich.

Grüsse
Rainer

PS:
@ws1976

Wenn du das so nie behauptet hast, wie soll denn der Satz "Welche der Compiler wo wann nimmt ist scheinbar purer Zufall." sonst zu verstehen sein.
Es war auch nicht gefragt, was der Debugger anzeigt, sondern wie der Compiler den Source-Code umsetzt.
Und der Compiler benutzt weder die Deklarationen der zuerst genannten Unit noch überläßt er es dem Zufall, welche Deklarationen er verwendet sondern er benutzt immer die Deklarationen der zuletzt genannten Unit.
Vielleicht solltest du, bevor du Kommentare abgibst, deinen Originalbeitrag lesen......
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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:25 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