AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi formularübergreifende Variablen und Zuweisung neuer Namen?
Thema durchsuchen
Ansicht
Themen-Optionen

formularübergreifende Variablen und Zuweisung neuer Namen?

Ein Thema von fabgo · begonnen am 26. Mär 2006 · letzter Beitrag vom 2. Apr 2006
Antwort Antwort
Seite 1 von 2  1 2      
fabgo
(Gast)

n/a Beiträge
 
#1

formularübergreifende Variablen und Zuweisung neuer Namen?

  Alt 26. Mär 2006, 16:37
Hallo ihr,

habe ein paar fragen zu meinem Programm.


Ich möchte nämlich sagen, dass wenn ich im LabelX von FormularX etwas eingebe und dies mit einem Button bestätige,
dass dem Text von LabelX eine Variable zugewiesen wird, die ich dann weiterverwenden kann, und im Forumlar Y aufrufen kann.

Bei erneuter Eingabe soll das dann wieder eine neue Variable sein.


zentrale Fragen:

Wie werden formularübergreifende Variablen definiert
Wie werden immer neue Variablennamen zugewiesen


Vielen Dank im vorraus

fabgo
  Mit Zitat antworten Zitat
Benutzerbild von konda
konda

Registriert seit: 20. Dez 2005
253 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: formularübergreifende Variablen und Zuweisung neuer Name

  Alt 26. Mär 2006, 16:40
Zitat von fabgo:
Hallo ihr,

habe ein paar fragen zu meinem Programm.


Ich möchte nämlich sagen, dass wenn ich im LabelX von FormularX etwas eingebe und dies mit einem Button bestätige,
dass dem Text von LabelX eine Variable zugewiesen wird, die ich dann weiterverwenden kann, und im Forumlar Y aufrufen kann.

Bei erneuter Eingabe soll das dann wieder eine neue Variable sein.


zentrale Fragen:

Wie werden formularübergreifende Variablen definiert
Wie werden immer neue Variablennamen zugewiesen


Vielen Dank im vorraus

fabgo
1. Formularübergreifende Variablen definiertst du unter Public. Um sie dann in FormY zu verwenden musst du in denn Uses-Klauseln UnitX einbinden.

2.Um immer neue Variablennamen zuzuweisen, wenn ich dich richtig verstehe musst du ein Array verwenden.
"Nichts ist schwieriger als den Gedankengang eines anderen nachzuvollziehen"

Gruß Konda
  Mit Zitat antworten Zitat
fabgo
(Gast)

n/a Beiträge
 
#3

Re: formularübergreifende Variablen und Zuweisung neuer Name

  Alt 26. Mär 2006, 17:46
Warum funktioniert folgendes nicht?

UNIT1:
Delphi-Quellcode:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure Edit1Change(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    Variable:string;
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Edit1Change(Sender: TObject);
begin
  Variable:='Hallo';
end;

end.
Unit2:
Delphi-Quellcode:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    procedure Edit1Change(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.DFM}

procedure TForm2.Edit1Change(Sender: TObject);
begin
  Edit1.Text:=Variable;
end;

end.

Folgende Fehlermeldung: Unit2.pas Undefinierter Bezeichner Variable
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: formularübergreifende Variablen und Zuweisung neuer Name

  Alt 26. Mär 2006, 17:55
1. Es fehlt Uses Unit1 in Unit2.
2. Die Variable "Variable" ist keine globale Variable von Unit 1 sondern eine Eigenschaft von Form1.
Edit1.Text:=Form1.Variable;
Markus Kinzler
  Mit Zitat antworten Zitat
fabgo
(Gast)

n/a Beiträge
 
#5

Re: formularübergreifende Variablen und Zuweisung neuer Name

  Alt 1. Apr 2006, 12:51
Ich bin noch ein Anfänger was das programmieren betrifft,
daher weiss ich nicht, wie das mit den arrays funktioniert.

Ich möchte in ein Textfeld etwas eingeben, dass per Buttonklick als Variable speichern, um diese dann woanders verwenden zu können.

var XY: array[1..?]of string

Wie wird das zugewiesen, dass der immer eins mehr zähllt???
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: formularübergreifende Variablen und Zuweisung neuer Name

  Alt 1. Apr 2006, 13:00
Wenn du nicht weißt, wiviele Elemente dein Array aufnehmen muß, nimm am Besten einen dynamischen Array. Dessen Größe kannst du zur Laufzeit verändern.

Delphi-Quellcode:
var
    XY: array of string;
...
SetLength( XY, <Größe>); //bzw
SetLength( XY, Length( XY)+1);
Markus Kinzler
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#7

Re: formularübergreifende Variablen und Zuweisung neuer Name

  Alt 1. Apr 2006, 13:06
Hallo,

ich würde dir raten, alle Variablen die du in mehreren Units brauchst in einer extra Unit zu definieren, bspw. globalsu.pas.
Diese Unit bindest du nun in jede Unit ein, in der du die Variablen brauchst.

gruss
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
fabgo
(Gast)

n/a Beiträge
 
#8

Re: formularübergreifende Variablen und Zuweisung neuer Name

  Alt 1. Apr 2006, 13:14
also müsste das dann so aussehen?

[delphi]
procedure TFormular.BtHinzufuegenClick(Sender: TObject);
var XY:array of string;
begin
Edit1.text:=SetLength( XY, Length( XY)+1); wie funktioniert das mit dem text-gleichsetzen???
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: formularübergreifende Variablen und Zuweisung neuer Name

  Alt 1. Apr 2006, 13:23
Nein ! Bei der lokalen Vraibalendefinition in einer Prozedur ist die Variable nur während des ihres Ablaufs definiert.
Du mußr den Array global definieren. am Besten in eigener Unit für Globals.

Delphi-Quellcode:
procedure TFormular.BtHinzufuegenClick(Sender: TObject);
begin
  SetLength( XY, Length( XY)+1);

  XY[Length(XY)] := edit1.Text;
end;
So fügst du den aktuellen Wert des Edits in den Array ein. Aber mir wird immer unklarer was du eigentlich vorhast.
Markus Kinzler
  Mit Zitat antworten Zitat
markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#10

Re: formularübergreifende Variablen und Zuweisung neuer Name

  Alt 1. Apr 2006, 13:34
Ausserdem empfielt es sich, wenn das Array nicht mehr gebraucht wird, dieses mittels finalize(array) wieder freizugeben. (Geht setlength(array,0) eigentlich auch?)

mfG

Markus
Markus
  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 01:09 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