AGB  ·  Datenschutz  ·  Impressum  







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

Frage zur Variablendeklaration

Ein Thema von nailor · begonnen am 4. Aug 2004 · letzter Beitrag vom 4. Aug 2004
Antwort Antwort
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#1

Frage zur Variablendeklaration

  Alt 4. Aug 2004, 00:24
Kann mir mal wer den genauen inhaltlichen Unterschied meiner krassen Variablen erklären? d.h. von wo sie erreichbar sind, wieoft für sie Speicher reserviert wird, warum es da gut / schlecht ist...

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, Forms;

type
  TForm1 = class(TForm)
  public
    KrassInKlasse: byte;
  end;

var
  Form1: TForm1;
  KrassInUnit: byte;

implementation

var
  HierGehtsAuchKrass: byte;

{$R *.dfm}

end.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Frage zur Variablendeklaration

  Alt 4. Aug 2004, 00:34
also KrassInKlasse ist halt bestandteil der klasse und wenn du die instanziierst dann wird die variable auch instantiiert und jede klasse hat dann ihre eigene variable

KrassInUnit ist einfach global gehalten und überall erreichbar ( gibts auch nur einmal und nicht mehrere instanzen ) -> solang man aber auch die unit geused hat damit die variable bekannt ist

HierGehtsAuchKrass <- das wird wohl auch global sein schätze ich
//edit wobei diese erst ab der deklaration gültig ist
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#3

Re: Frage zur Variablendeklaration

  Alt 4. Aug 2004, 01:18
d.h. wenn ich mehrere TForm1 erstelle, gibt es die beiden unteren nur EINMAL, und nur EIN wert kann angenommen werden, während der obere wert für jede erzeugte form individuell ist?

auf die obere kann man auch nur zugreifen, falls eine instanz vom typ TForm1 erstellt wurde, und man eine referenz auf diese instanz hat?

und auf die beiden unteren kann man aus anderen units nur zugreifen, falls unit1 bei diesen im interface-abschnitt unter uses eingetragen ist, während für die obere ein uses-eintrag von unit1 in den implementation-abschnitt der hypothetischen zweiten unit reichen würde?
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Frage zur Variablendeklaration

  Alt 4. Aug 2004, 02:00
Zitat:
d.h. wenn ich mehrere TForm1 erstelle, gibt es die beiden unteren nur EINMAL, und nur EIN wert kann angenommen werden, während der obere wert für jede erzeugte form individuell ist?
jo.. auf die klassen variable greifst du ja mit Form1.variablenname zu
auf die globale variable einfach mit ihrem namen

wenn du aber im private bereich deklarierst ( klasse ) dann ist sie nur in proceduren INNERHALB der klasse "sichtbar"
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: Frage zur Variablendeklaration

  Alt 4. Aug 2004, 02:06
Nailor, das da ist elementar Mit Gültigkeitsbereichen muß man sich echt etwas auskennen. Das soll jetzt keine Besserwisserei sein, aber, ähm *mitzaunpfahlwinkt*
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#6

Re: Frage zur Variablendeklaration

  Alt 4. Aug 2004, 02:10
deshalb frag ich ja. aber sag du mir mal, wo ich den unterschied zwischn #2 und #3 rausfinden kann
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: Frage zur Variablendeklaration

  Alt 4. Aug 2004, 02:25
Nailor, das kann ich nicht. "Elementar" habe ich nicht umsonst gesagt. Ich gebe dir nur Hinweise : Lokal und global, das ist wichtig. Überlege dir, was ein Dreisatz ist. 8) a+b=c Wo wird nun überhaupt C gebraucht ? Und wo a oder b ? c würde wohl ausgewertet/angezeigt werden müssen, aber a und b wäre nur nötig, um c zu ermitteln.

Wenn du das verstanden hast, dann kommt noch public, published usw. und das ist schon gewaltig, um da durchzublicken.
Gruß
Hansa
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#8

Re: Frage zur Variablendeklaration

  Alt 4. Aug 2004, 04:35
Der Unterschied zwischen KrassInUnit und HierGehtsAuchKrass ist, das HierGehtsAuchKrass nicht von einer anderen Unit aus erreicht werden kann, sondern nur innherhalnb des implementation-Abschnitts von Unit1.
  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 02:35 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