AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Globale Variable in anderen Forms = 0 obwohl schon definiert
Thema durchsuchen
Ansicht
Themen-Optionen

Globale Variable in anderen Forms = 0 obwohl schon definiert

Ein Thema von DelphiforIngBachelor · begonnen am 10. Jun 2018 · letzter Beitrag vom 11. Jun 2018
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#1

AW: Globale Variable in anderen Forms = 0 obwohl schon definiert

  Alt 10. Jun 2018, 19:25
Du meinst globale Variable
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
162 Beiträge
 
#2

AW: Globale Variable in anderen Forms = 0 obwohl schon definiert

  Alt 10. Jun 2018, 20:02
Ich reduziere deinen Code auf das Wesentliche:
Delphi-Quellcode:
unit Unit6;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Math, StdCtrls;

var
  ..., ZimmerG, ...: Real;
Delphi-Quellcode:
unit Unit8;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Unit6;

var
  ..., ZimmerG, ...: Real;
So wie es aussieht hast du in Unit6 und Unit8 beide Male ZimmerG als globale Variable daklariert. Wenn du also in Unit6 der Variable einen Wert zuweist, und du eine gleichnamige Variable in Unit8 hast, greifen Funktionen in Unit8 auch auf die Variable in Unit8. Nicht auf die in Unit6.

Geändert von Alallart (10. Jun 2018 um 21:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Globale Variable in anderen Forms = 0 obwohl schon definiert

  Alt 10. Jun 2018, 20:10
Wenn er den Namespace voranstellt klappt das schon, aber ob das dann Sinn und Zweck erfüllt steht in einem anderen Kapitel.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#4

AW: Globale Variable in anderen Forms = 0 obwohl schon definiert

  Alt 10. Jun 2018, 21:51
Ein Paradebeispiel warum globale Variablen keine gute Idee sind.
Wäre das eine Eigenschaft des Formulars, wäre diese eindeutig mit Form8.ZimmerG angesprochen worden.

Der Übersicht halber würde es auch Sinn machen statt der Standardnamen wie Form8 besser der Funktion entsprechende eigebe Namen zu benutzen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Globale Variable in anderen Forms = 0 obwohl schon definiert

  Alt 11. Jun 2018, 03:18
Hallo,
so schlimm sing globale Variablen nicht.

Aber ich würde alla globalen Varablen zumindestens in ein separate Unit auslagern.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#6

AW: Globale Variable in anderen Forms = 0 obwohl schon definiert

  Alt 11. Jun 2018, 03:59
so schlimm sing globale Variablen nicht.
Dazu kommt, dass du schlecht siehst wer diese wann initialisiert und hineinschreibt. Deshalb gibt das nur unnötige Folgefehler, wenn man sie ohne Not verwendet (wie es meistens der Fall ist). Wartbar ist etwas anderes...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#7

AW: Globale Variable in anderen Forms = 0 obwohl schon definiert

  Alt 11. Jun 2018, 09:50
Und niemals extern auf die Variablen direkt zugreifen, möglichst immer über Property/Methoden.
Wenn es erstmal nur ein einfaches preperty ist, was direkt auf die Variablen geht, so kann man später immernoch Getter und Setter einfügen.
Gut, um Schreibzugriffe zu prüfen und auch zum Debuggen ganz praktisch, um da Haltepunkte reinzumachen und und und
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.413 Beiträge
 
Delphi 12 Athens
 
#8

AW: Globale Variable in anderen Forms = 0 obwohl schon definiert

  Alt 11. Jun 2018, 09:53
so schlimm sing globale Variablen nicht.
Stimmt in gleichem Maße auch für goto und with ... do .

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  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 21:22 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