AGB  ·  Datenschutz  ·  Impressum  







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

Globale Variablen

Ein Thema von mumu · begonnen am 6. Feb 2005 · letzter Beitrag vom 6. Feb 2005
Antwort Antwort
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#1

Globale Variablen

  Alt 6. Feb 2005, 11:48
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.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Globale Variablen

  Alt 6. Feb 2005, 11:50
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: Globale Variablen

  Alt 6. Feb 2005, 11:57
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 Delphi-Referenz durchsuchenProperties lösen.
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 (Turbo Pascal ist 10 Jahre her, warum muss ich mich noch heute mit solchen Altlasten herumärgern? )
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#4

Re: Globale Variablen

  Alt 6. Feb 2005, 12:03
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.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: Globale Variablen

  Alt 6. Feb 2005, 12:09
[Strg+LinksKlick}
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#6

Re: Globale Variablen

  Alt 6. Feb 2005, 12:17
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.
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#7

Re: Globale Variablen

  Alt 6. Feb 2005, 12:19
Zitat von Robert_G:
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 Delphi-Referenz durchsuchenProperties lösen.
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 (Turbo Pascal ist 10 Jahre her, warum muss ich mich noch heute mit solchen Altlasten herumärgern? )
Weil es in Einzelfällen sehr praktisch ist. Und das mit den öffentlichen Funktionen ist ja wohl ein Witz -- soll man etwa erst eine Instanz von Math erzeugen müssen, um eine Mathefunktion verwenden zu können?
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]
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Globale Variablen

  Alt 6. Feb 2005, 12:33
@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
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#9

Re: Globale Variablen

  Alt 6. Feb 2005, 12:43
Zitat von dizzy:
@Oxmyx: Wie wäre es mit Klassenmethoden?
Genau!
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]
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#10

Re: Globale Variablen

  Alt 6. Feb 2005, 13:00
Zitat von dizzy:
@Oxmyx: Wie wäre es mit Klassenmethoden?
Was sind denn Klassenmethoden? Im Prinzip auch nur öffentliche Funktionen. Sie sind an keine Instanz einer Klasse gebunden.
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.
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:28 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