Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi: Variable in anderer Procedure einlesen (https://www.delphipraxis.net/105228-delphi-variable-anderer-procedure-einlesen.html)

Larsi 18. Dez 2007 13:35


Delphi: Variable in anderer Procedure einlesen
 
hi,
wenn ich jez in der procedure von buuton1 click drinstehen hab das die variable i um eins erhöt werden
soll, kann ich das dann in zb der buttton 2 procedure abfragen welchen wert die variable i in button 1 click hat?


MFG Lars Wiltfang

Dax 18. Dez 2007 13:36

Re: Delphi: Variable in anderer Procedure einlesen
 
Nein. Du müsstest i zum Instanzfeld oder (ieks) zur globalen Variable hochstufen.

Tumm 18. Dez 2007 13:37

Re: Delphi: Variable in anderer Procedure einlesen
 
Hi

Solange du die Variable nur in der Prozedur deklariert hast, wird das nicht möglich sein, da sie lokal in der Prozedur deklariert wurde. Es gibt aber auch globale Variablen, welche nach der Typendekleration deklariert werden können. Diese sind in allen Prozeduren / Funktionen "abrufbar".

Kurz: Nimm globale Variablen.

mkinzler 18. Dez 2007 13:38

Re: Delphi: Variable in anderer Procedure einlesen
 
Zitat:

Kurz: Nimm globale Variablen.
Das sollte man vermeiden.

Larsi 18. Dez 2007 13:39

Re: Delphi: Variable in anderer Procedure einlesen
 
wie kann ich globale variablen nehmen :)

Tumm 18. Dez 2007 13:40

Re: Delphi: Variable in anderer Procedure einlesen
 
Nach der Typendeklaration deine Variablen deklarieren. Also nach dem ganzen type-Zeug. Dann einfach:
Delphi-Quellcode:
var
i:Integer;
Wie auch sonst bei lokalen Variablen.

An mKinzler: Was ist an globalen Variablen denn so schlimm? Ich meine außer der Unübersichtlichkeit.

Dax 18. Dez 2007 13:43

Re: Delphi: Variable in anderer Procedure einlesen
 
Ignorier Tumm, tu es so nicht!

Lieber so:
Delphi-Quellcode:
type
  TGedöns = class(TForm)
  // IDE-Geblubber
  private
    i: Integer;
  public
  end;

Tumm 18. Dez 2007 13:43

Re: Delphi: Variable in anderer Procedure einlesen
 
Sehr nett, wirklich...

Aber für Einsteiger ist das doch das einfachste.

Aurelius 18. Dez 2007 13:44

Re: Delphi: Variable in anderer Procedure einlesen
 
Du kannst die Variable auch im Private-Bereich deklarieren. Im Type-Teil steht irgendwo unten private, dort einfach die daklaration i : integer; reinschreiben

Dax 18. Dez 2007 13:46

Re: Delphi: Variable in anderer Procedure einlesen
 
Zitat:

Zitat von Tumm
Sehr nett, wirklich...

Aber für Einsteiger ist das doch das einfachste.

Mit dem selben Argument kann man Einsteiger zu einfacheren Sprachen wie VB leiten...

Edsger W. Dijkstra
It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration

mkinzler 18. Dez 2007 13:48

Re: Delphi: Variable in anderer Procedure einlesen
 
Zitat:

Aber für Einsteiger ist das doch das einfachste.
Wer das falsche nicht lernt, braucht es sich später auch nicht abgewöhnen. Deshalb besser gleich richtig machen.

Tumm 18. Dez 2007 13:50

Re: Delphi: Variable in anderer Procedure einlesen
 
OkOk, aber was ist daran so viel richtiger, das hab' ich immer noch nich verstanden. Tolles Gesprächsklima hier.

Aurelius 18. Dez 2007 13:51

Re: Delphi: Variable in anderer Procedure einlesen
 
Vielleicht hilft das ein wenig: http://de.wikipedia.org/wiki/Variabl..._versus_global

Tumm 18. Dez 2007 13:52

Re: Delphi: Variable in anderer Procedure einlesen
 
Hmm. Aber wenn es nur eine ist wird davon die Welt wohl nicht untergehen...

vlees91 18. Dez 2007 13:53

Re: Delphi: Variable in anderer Procedure einlesen
 
Was ist jetzt eigentlich der Unterschied zwischen da, wo du es nanntest, un d es da, wo die Prozeduren, Funktionen, usw. deklariert sind, zu deklarieren?

Tumm 18. Dez 2007 13:55

Re: Delphi: Variable in anderer Procedure einlesen
 
Meinst du in den Prozeduren und co.?

Progman 18. Dez 2007 13:56

Re: Delphi: Variable in anderer Procedure einlesen
 
An globalen Variablen ist nichts Schlimmes und ihr Einsatz ist manchmal zweckmäßiger als für jeden Klacks eine Klasse (TObject mit all seinem vom Compiler generiertem überflüssigen Code) zu machen. Es muss nur übersichtlich bleiben.
Wenn ich welche einsetze, habe ich dazu extra eine Unit "vars", in der ich alle Variablen und Constanten, die global verfügbar sein müssen, unterbringe. OOP gut und schön, aber nicht OOP um jeden Preis ;)

vlees91 18. Dez 2007 13:58

Re: Delphi: Variable in anderer Procedure einlesen
 
nein, ich meine da, wo du die procedures und functions deklarierst (da kann man ja waehlen zwischen public, private etc.)

Larsi 18. Dez 2007 14:04

Re: Delphi: Variable in anderer Procedure einlesen
 
wenn ich das jetzt global dekleniere und dann so abfrage, wie weit i ist steht bei delphi ausdruck muss boolean sein:

Delphi-Quellcode:
if i := 3 then
blablabla
else
blablalbla

dominikkv 18. Dez 2007 14:07

Re: Delphi: Variable in anderer Procedure einlesen
 
Zitat:

Zitat von Larsi
wenn ich das jetzt global dekleniere und dann so abfrage, wie weit i ist steht bei delphi ausdruck muss boolean sein:

Delphi-Quellcode:
if i := 3 then
blablabla
else
blablalbla

man vergleicht in delphi auch nur mit einem = also nicht := das ist der zuweisungsoperator

mkinzler 18. Dez 2007 14:08

Re: Delphi: Variable in anderer Procedure einlesen
 
if i := 3 then

Larsi 18. Dez 2007 14:10

Re: Delphi: Variable in anderer Procedure einlesen
 
was is daran jez anders, da kommt bei mir der geliche fehler:(

dominikkv 18. Dez 2007 14:11

Re: Delphi: Variable in anderer Procedure einlesen
 
einfach den doppelpunkt löschen...
Delphi-Quellcode:
if i = 3 then
blablabla
else
blablalbla;

Larsi 18. Dez 2007 14:12

Re: Delphi: Variable in anderer Procedure einlesen
 
aso

vlees91 18. Dez 2007 14:12

Re: Delphi: Variable in anderer Procedure einlesen
 
da ist der : durchgestrichen
da der bei if, while und anderen kontrollstrukturen entfaellt

Apollonius 18. Dez 2007 14:13

Re: Delphi: Variable in anderer Procedure einlesen
 
Der entfällt bei allen Vergleichen, also auch bei
Delphi-Quellcode:
BoolVar := a=b;


Alle Zeitangaben in WEZ +1. Es ist jetzt 07: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