![]() |
Globale Variablen
ich hab viele Klassen mit sehr vielen Globalen Variablen. Ich will jetzt eigentlich alle auf locale Variablen abändern.
Nur greife ich oft aus einer Klasse heraus auf die Variablen einer anderen Klasse zu. Mein Problem ist jetzt, dass ich z.B. in Klasse A schauen möchte, welche Variablen diese aus anderen Klassen verwendet. Wie kann man sich das anzeigen lassen? das Problem ist nämlich, dass ich nicht immer klassenname.variable verwendet habe, sondern oft einfach nur den variablennamen angebe und delphi nimmt dann automatisch die Variable aus der anderen Klasse, weil ich diese über uses eingebunden hab. |
Re: Globale Variablen
Hallo mumu,
du koenntest die Variablen, welche du global deklariert hast, einfach als private/public-Variablen deiner Formklasse verwenden. Alle Variablen welche du auch in anderen Units brauchst als public deklarieren, die anderen als private. Ist zwar nicht ganz perfekte OOP (normalerweise verwendet man private mit public Get/Set-Methoden), aber es reicht schon mal. Greetz alcaeus |
Re: Globale Variablen
Globale Variablen hängen doch an keiner Klasse.
Das scheußliche an ihnen ist (genau wie mit dumm in der Gegend herumvegitierenden Funktionen), dass sie einfach so in der Source herumlungern. Öffentliche Zugriiffe auf Werte von Instanzen lassen sich prima über ![]() Globale Variablen haben genauso wenig mit OOP zu tun wie funktionen, die keine Methoden sind. Ich kapiere auch gar nicht warum der Delphi Compilier so etwas zulässt :roll: (Turbo Pascal ist 10 Jahre her, warum muss ich mich noch heute mit solchen Altlasten herumärgern? ) |
Re: Globale Variablen
ja stimmt hab mich falsch ausgedrückt. ich mein halt dass sich die variablen in verschiedenen units befinden. und ich möchte halt wissen, welche variablen in einer anderen unit deklariert wurden.
|
Re: Globale Variablen
[Strg+LinksKlick}
|
Re: Globale Variablen
ja das ist mir auch klar, das mit strg+Linksklick ich zur definition komm. aber ich hab halt in meinem ganzen rießen quellcode vielleicht 100 mal auf variablen einer anderen unit zugegriffen. und ich möchte mir alle variablen aufzeigen lassen. gibts da in delphi ne option, oder irgend ein tool dafür.
|
Re: Globale Variablen
Zitat:
Nebenbei zwingt dich niemand, öffentliche Variablen und Funktionen zu verwenden. Du musst dich nicht damit herumärgern, wenn du nicht willst. Für alle anderen {edit by Admin} sind sie hilfreich und nicht wegzudenken. [edit=Admin]Wenn es ein 'Witz' war, dann war er schlecht. Ausdruck entfernt. Mfg, Daniel[/edit] |
Re: Globale Variablen
@Oxmyx: Wie wäre es mit Klassenmethoden?
@Topic: Grundsätzlich sei gesagt, dass der gesamte Programmaufbau, wie du ja grad merkst, mit globalen Variablen ziemlich verhunzt wird, und man schnell die Übersicht verliert. Genau deshalb ist das Konzept tot. Die auf lange Sicht einzig vernünftige Vorgehendweise wäre ein komplettes Umstrukturieren des Programmes nach OOP. Das wäre das konsequenteste. Alternativ könntest du dir, wo du ja scheinbar schon sehr viel geschrieben hast, eine einzige Unit machen, die alle deine globalen Variablen enthält, und die dann überall eingebunden würde. Ist zwar nicht wirklich schön, aber du weisst immer von wo sie kommen. Konsequenter wäre es aber trotzdem sie zu Membern deiner Formularklassen etc. zu machen, und dann immer mit Instanz.Variable anzusprechen. Auch dann weisst du immer genau wo sie her kommt, und es gibt keine solche hässlichen Überschneidungen bei mehreren gleichlautenden Bezeichnern in mehreren Units (da geht's Geheule nämlich erst richtig los ;) ). Gruss, Fabian |
Re: Globale Variablen
Zitat:
Das ist auch etwas, dass Borland anscheinend selbst nicht ganz kapiert hat. Sonst würden sie einen nicht mit 5 Mio. Bezeichnern zuschütten, selbst wenn man keine Unit (also nur System) eingebunden hat. [edit=Admin]Quote aus Beitrag weiter oben entfernt. War zum Glück eh' OT. Mfg, Daniel[/edit] |
Re: Globale Variablen
Zitat:
Nebenbei hat Delphi doch das Konzept der Units. Wenn alle meine Mathefunktionen in der Unit Math drinstehen, dann kann ich doch darauf zugreifen mit z.B. Math.Power. Da reduziert sich der Unterschied zu Klassenmethoden auf ein Minimum. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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