Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Var in einer Funktion über ein Button aufrufen ! (https://www.delphipraxis.net/113260-var-einer-funktion-ueber-ein-button-aufrufen.html)

Delphiturbo 5. Mai 2008 12:36


Var in einer Funktion über ein Button aufrufen !
 
Hallo

ich habe folgendes
Delphi-Quellcode:
function serial(user: string): string;
var:
s1: string // das will ich über ein Button aufrufen
...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.text = serial(s1) then
begin
Form2.Show;
end;
Die Variable ist nicht in Button deklariert sondern nur in der Funktion
wie kann ich s1 in Button deklarieren ?

DP-Maintenance 5. Mai 2008 12:38

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Windows API / MS.NET Framework API" nach "Object-Pascal / Delphi-Language" verschoben.
Ist ja keine API Frage

Matze 5. Mai 2008 12:43

Re: Var in einer Funktion über ein Button aufrufen !
 
Hallo,

irgendwas stimmt an deinem Konzept nicht. Wenn du in Button1Click die Variable s1 benötigst, könntest du diese in der Funktion zurückgeben oder - weniger schön - ginge es mit einer globalen Deklaration (Private-Abschnitt).
Eine Variable ist generell nur in dem Block gültig, in dem sie deklariert wurde. Eine doppelte Deklaration würde folglich nichts nützen.

Es wäre jedoch sinnvoll, wenn du genau erklären würdest, was du erreichen möchtest. Da gibt es sicher eine deutlich bessere Lösung.
Ich gehe davon aus, dass OOP noch nichts für dich ist und ob das was bringen würde, kann ich aus deiner Beschreibung nicht entnehmen. ;)

Grüße

RavenIV 5. Mai 2008 12:48

Re: Var in einer Funktion über ein Button aufrufen !
 
Ich wollte grad selber lostippeln, dann hab ich den roten Kasten gesehen.

Ich stimme mit Matze völlig überein, bis auf das hier:
Zitat:

Zitat von Matze
Ich gehe davon aus, dass OOP noch nichts für dich ist und ob das was bringen würde, kann ich aus deiner Beschreibung nicht entnehmen. ;)


Der.Kaktus 5. Mai 2008 12:49

Re: Var in einer Funktion über ein Button aufrufen !
 
Zitat:

Zitat von Delphiturbo
Hallo

ich habe folgendes
Delphi-Quellcode:
function serial(user: string): string;
var:
s1: string // das will ich über ein Button aufrufen
...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.text = serial(s1) then
begin
Form2.Show;
end;
Die Variable ist nicht in Button deklariert sondern nur in der Funktion
wie kann ich s1 in Button deklarieren ?


Zitat:

Zitat von Matze
Hallo,

irgendwas stimmt an deinem Konzept nicht. Wenn du in Button1Click die Variable s1 benötigst, könntest du diese in der Funktion zurückgeben oder - weniger schön - ginge es mit einer globalen Deklaration (Private-Abschnitt).
Eine Variable ist generell nur in dem Block gültig, in dem sie deklariert wurde. Eine doppelte Deklaration würde folglich nichts nützen.

Es wäre jedoch sinnvoll, wenn du genau erklären würdest, was du erreichen möchtest. Da gibt es sicher eine deutlich bessere Lösung.
Ich gehe davon aus, dass OOP noch nichts für dich ist und ob das was bringen würde, kann ich aus deiner Beschreibung nicht entnehmen. ;)

Grüße

Hallo, ich wuerde an Deiner Stelle s1 als globale Variable definieren..also nicht innerhalb einer Funktion.

RavenIV 5. Mai 2008 12:53

Re: Var in einer Funktion über ein Button aufrufen !
 
Zitat:

Zitat von Der.Kaktus
Hallo, ich wuerde an Deiner Stelle s1 als globale Variable definieren..also nicht innerhalb einer Funktion.

Und der Variablen auch gleich einen aussagekräftigen Namen geben.
z.B. fButtonString (oder so was in der Art)

Delphiturbo 5. Mai 2008 13:01

Re: Var in einer Funktion über ein Button aufrufen !
 
Die variable s1 ist ein String in der Funktion

Über das Button habe ich vorher das String in Edit1.Text verwendet :
Delphi-Quellcode:
if edit2.text = serial(Edit1.Text)
....
nun möchte ich nicht Edit1.Text als String nehmen sondern ein String von der Funktion

Ich habe das Problem mit einer Idee gelöst :Ich die Funktion komplett
in Button Code doppelt kopiert. Aber das ist vielleicht unnötig

Wie kann ich das String s1 als global deklarieren ?

Matze 5. Mai 2008 13:03

Re: Var in einer Funktion über ein Button aufrufen !
 
Recht weit oben in deiner Unit im Private-Abschnitt:

Delphi-Quellcode:
// ...
private
  s1: string;
// ...

DeddyH 5. Mai 2008 13:04

Re: Var in einer Funktion über ein Button aufrufen !
 
Darf man fragen, wozu Du unbedingt solche wilden Konstrukte haben möchtest? Die Variante mir der Funktion aus #1 ist doch vollkommen in Ordnung.

Delphiturbo 5. Mai 2008 13:21

Re: Var in einer Funktion über ein Button aufrufen !
 
Zitat:

Zitat von Matze
Recht weit oben in deiner Unit im Private-Abschnitt:

Delphi-Quellcode:
// ...
private
  s1: string;
// ...

So hast du die Variable deklariert und wird damit keine Fehlermeldung beim Kompilieren
angezeigt.
Das Programm nehmt das String s1 = ' ' !!!
Ich bekomme ein Ergebnis als S1:=' nichts drin :(';


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:47 Uhr.
Seite 1 von 3  1 23      

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