AGB  ·  Datenschutz  ·  Impressum  







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

globale variable

Ein Thema von Privateer3000 · begonnen am 5. Jan 2003 · letzter Beitrag vom 6. Jan 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

globale variable

  Alt 5. Jan 2003, 03:59
Hi Leuts,

wenn ich in zB: Form1 eine var posit:integer;
deklariere steht sie in Form2 nicht zu Verfügung.
Obwohl in den Units die Forms "sich sehen".Ich meine in Form1 steht
uses: Unit1 usw...
Warum kann ich in Form2 nicht auf sie zugreifen??
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 5. Jan 2003, 05:09
Moin Privateer,

wo hast Du die Variable denn deklariert?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#3
  Alt 5. Jan 2003, 12:08
Steht die Unit in der uses-Klausel im interface-Teil oder im implementation-Teil? Falls sie im implementation-Teil steht, musst du den Namen der Unit angeben, wenn du sie aus einer anderen Unit aufrufst.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4
  Alt 5. Jan 2003, 12:37
Zitat von Chewie:
Falls sie im implementation-Teil steht, musst du den Namen der Unit angeben, wenn du sie aus einer anderen Unit aufrufst.
Falsch, wenn Du die Variabel im implementation-Teil deklariert hast, dann ist diese ausserhalb der UNIT, in welcher diese deklariert wurde nicht verfügbar. Wenn die Variable auch in anderen Units verfügbar sein soll, dann musst Du diese im interface-Teil deklarieren.
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#5
  Alt 5. Jan 2003, 14:12
Moin Leuts,

in diesem Teil steht das:
Code:
private
    { Private-Deklarationen }
    public

  end;

var
  Form1: TForm1;
  blinker,Anzahlsicht,posit,protset: integer;
  BGFarbindex,FontFarbindex: String;
  puff,Durch,Differ: Currency;
  Nexttick: DWORD;
  Comma: Boolean=false;


implementation

uses Unit2,Unit3,Unit4, Unit5;

{$R *.DFM}
und eigentlich muss ich auf all diese Variablen von jedem Form zugreifen,
da hier GRundeinstelluingen stehen.Momentan mach ich das nur mit Tricks, weil ich es nicht anders weiss.
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 5. Jan 2003, 15:24
Moin Privateer,

da man sich unter Umständen leicht mal Zirkelbezüge zwischen den Units einhandeln kann, fände ich es eine gute Idee diese Dinge (in diesem Falle die Variablendeklarationen), die global von allen Units aus erreichbar sein müssen in eine eigens dafür erstellte Unit auszulagern.
Die kann dann, im interface Abschnitt, in jede Unit eingebunden werden, die's braucht.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#7
  Alt 5. Jan 2003, 15:32
Jetzt hast du den Finger genau in eine Wunde gelegt.
Ich habe schon öfters probiert Proceduren uä. auszulagern.
Ich habe es nie geschafft.Immer ging irgendwas nicht.
Auch wenn ich mich an Tuts gehalten habe, habe ich es nicht verstanden.
Wie geht sowas denn nun`???
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8
  Alt 5. Jan 2003, 15:52
Hi,

Zitat von Privateer3000:
Ich habe schon öfters probiert Proceduren uä. auszulagern.Ich habe es nie geschafft.
Public : für alle zugänglich (aber innerhalb des Projekts). Vielleicht ist es nur die USES Liste

Guß
Hansa
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9
  Alt 5. Jan 2003, 16:20
Moin Privateer,

oder aber Du hast vergessen im Interfaceabschnitt die Funktionsaufrufe auch noch zu deklarieren. Was da nicht steht, kann auch von keiner anderen Unit verwendet werden.

z.B.

Delphi-Quellcode:
Unit Test

//....

procedure MeineAllgemeineProzedur;

implementation

procedure MeineAllgemeineProzedur;
begin
  //...
end;
Überall, wo die Unit Test eingebunden wird, sollte man jetzt auf die Prozedure MeineAllgemeineProzedur zugreifen können.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#10
  Alt 5. Jan 2003, 17:00
mir ging es eigetnlich um die Variablen
Code:
var
  Form1: TForm1;
  blinker,Anzahlsicht,posit,protset: integer;
  BGFarbindex,FontFarbindex: String;
  puff,Durch,Differ: Currency;
  Nexttick: DWORD;
  Comma: Boolean=false;
die ich in jeder Unit bräuchte.
Denn diese enthalten werte für Timer,labels und edits.
Bzw. integer-werte die auf anderen Units gebraucht werden.
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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