Autor Beitrag
1Stein
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30



BeitragVerfasst: Sa 15.02.03 23:12 
Hi leutz naja bin nen absoluter newb in Delphi hab heut erst angefangen hab schon n paarprogs geschrieben und hab mich jetzt an nen kleines Quiz gesetzt auf jeden fall weiß ich net wie man Formübergreifende Variablen erstellt wenn mir da jemand helfen kann wäre das schön und wo ich gerade mal beim schreiben bin ich würd auch gern mal wissen wie man ein Bild einbinded (Delphi 7)

Sorry ich glaub das is für die meisten ein Witz aber wie gesagt ich hab heut erst angefangen

Moderiert von user profile iconTino: Titel geändert.

_________________
1Stein wäre nie 1Stein geworden wenn 2Stein nicht gewesen wäre ;)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 15.02.03 23:29 
Beispiel: du möchtest die Variable "my_var", welche Du in Form1 verwendest, auch in Form2 verwenden.

Der Kopf von Unit1 (in der Form1 enthalten ist), sieht dann so aus:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
{...}
type TForm1 = ...
{...}
var
  Form1: TForm1;
  my_var : STRING;
{...}


Um my_var nun auch in der für Form2 zuständigen Unit "Unit2" zu verwenden, schreibst Du Unit1 (in der die Variable ja deklariert wurde) in die USES-Klausel der Unit2. So:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, unit1;  //<<<---- DA STEHT's

type
  TForm2 = class(TForm)
  {...}


Auf die Variable my_var kannst in Unit2 jetzt ganz normal zugreifen.

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
1Stein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30



BeitragVerfasst: Sa 15.02.03 23:32 
:eyecrazy: sieht alles n bissl kompliziert aus :mrgreen: aber ich tests mal fehlt mir nurnoch das bild

_________________
1Stein wäre nie 1Stein geworden wenn 2Stein nicht gewesen wäre ;)
1Stein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30



BeitragVerfasst: Sa 15.02.03 23:45 
jetzt habischs kapiert :) das mit dem bild habsch jetzt auch :roll:
wie kann ich das ganze jetzt in nem Label wieder ausgeben?

_________________
1Stein wäre nie 1Stein geworden wenn 2Stein nicht gewesen wäre ;)
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: So 16.02.03 13:37 
1Stein hat folgendes geschrieben:
wie kann ich das ganze jetzt in nem Label wieder ausgeben?

Was willst du in einem Label wieder ausgeben? Vielleicht hilft das hier:
Label1.Caption := 'Delphi-Forum.de!'; :-)

Gruß
TINO

PS: Bitte in Zukuft für jede neue Frage ein neues Topic erstellen!
1Stein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30



BeitragVerfasst: So 16.02.03 13:50 
jaja soweit weiß ich das auch aber mein problem liegt darin das ich die variable aus Form2 ausgeben will der das aber net will er schreibt immer Form3 statt dem Namen der in Form2 eingegeben wurde

_________________
1Stein wäre nie 1Stein geworden wenn 2Stein nicht gewesen wäre ;)
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: So 16.02.03 14:00 
1Stein hat folgendes geschrieben:
jaja soweit weiß ich das auch

Wo her sollte ich das wissen?

1Stein hat folgendes geschrieben:
aber mein problem liegt darin das ich die variable aus Form2 ausgeben will

ausblenden Quelltext
1:
Label1.Caption := Form2.Variable;					


Gruß
TINO
1Stein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30



BeitragVerfasst: So 16.02.03 14:07 
kA vieleicht weil das thema um Formübergreifende Varis geht? naja egal thx erstmal

... Jetzt schreibt er Form2 in das leben (ein Fortschritt :evil: :evil:)

_________________
1Stein wäre nie 1Stein geworden wenn 2Stein nicht gewesen wäre ;)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 16.02.03 14:28 
Wenn Du Dein Problem klarer beschreiben würdest, könnten wir Dir auch viel besser helfen. Wie wäre es denn, wenn Du mal den Code, den Du bisher hast, hier postest?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
1Stein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30



BeitragVerfasst: So 16.02.03 14:38 
Also wenn du das willst hier erstmal der von Form2

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    MainMenu1: TMainMenu;
    Programm1: TMenuItem;
    NeuesSpiel1: TMenuItem;
    N1: TMenuItem;
    Exit1: TMenuItem;
    Ansicht1: TMenuItem;
    Optionen1: TMenuItem;
    N2: TMenuItem;
    Hilfe1: TMenuItem;
    N3: TMenuItem;
    Credits1: TMenuItem;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Hilfe1Click(Sender: TObject);
    procedure Credits1Click(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;
  Name: STRING;
implementation

uses Unit1, Unit3, Unit4, Unit5;

{$R *.dfm}

procedure TForm2.Button2Click(Sender: TObject);
begin
close;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
Name := Edit1.Text;
Form3.showModal;
close;
end;

procedure TForm2.Hilfe1Click(Sender: TObject);
begin
Form4.show
end;

procedure TForm2.Credits1Click(Sender: TObject);
begin
Form5.show
end;

procedure TForm2.Exit1Click(Sender: TObject);
begin
close;
end;

end.


und hier der von Form3

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
unit Unit3;

interface

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

type
  TForm3 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    MainMenu1: TMainMenu;
    Programm1: TMenuItem;
    NeuesSpiel1: TMenuItem;
    N1: TMenuItem;
    Exit1: TMenuItem;
    Ansicht1: TMenuItem;
    Optionen1: TMenuItem;
    N2: TMenuItem;
    Hilfe1: TMenuItem;
    N3: TMenuItem;
    Credits1: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure Hilfe1Click(Sender: TObject);
    procedure Credits1Click(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;
implementation

uses Unit4, Unit5;

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);
begin
label2.caption := Form2.Name;

end;

procedure TForm3.Hilfe1Click(Sender: TObject);
begin
Form4.show
end;

procedure TForm3.Credits1Click(Sender: TObject);
begin
Form5.show
end;

procedure TForm3.Exit1Click(Sender: TObject);
begin
close;
end;

end.


Nur so neben Bei das soll nen Kleines Quiz werden und derjenige soll begrüßt werden deshalb die Formübergreifende Variable naja

_________________
1Stein wäre nie 1Stein geworden wenn 2Stein nicht gewesen wäre ;)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 16.02.03 15:00 
Form2.Name ist nicht die Variable, die Du ansprechen willst. Das ist der Name der Form und nicht die von Dir deklarierte Variable. Versuch es mal mit Unit2.Name statt Form2.Name.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: So 16.02.03 15:13 
Hi,

schreib mal deine Variable "Name" in den public Bereich:

ausblenden Quelltext
1:
2:
3:
4:
public
  { Public-Deklarationen } 
  Name: STRING;
end;


dann kannst du sie in jedem anderen Form einfach per
ausblenden Quelltext
1:
Form2.Name;					


abrufen.. auch wenn das normalerweise der Name von Form2 währe.. wird halt überschrieben die Variable.

Au'revoir,
Aya

_________________
Aya
I aim for my endless dreams and I know they will come true!
1Stein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30



BeitragVerfasst: So 16.02.03 15:21 
Naja jetzt schreibt er garnix mehr :mrgreen: bin ich schonmal weiter als vorher :mrgreen:

_________________
1Stein wäre nie 1Stein geworden wenn 2Stein nicht gewesen wäre ;)
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: So 16.02.03 15:25 
Hi,

na ja... wenn er garnix schreibt heißt das einfach das in der Variable kein inhalt ist... :)

Ruf deine Zeile:
ausblenden Quelltext
1:
label2.caption := Form2.Name;					


mal im OnShow auf, nicht im OnCreate!

Au'revoir,
Aya

_________________
Aya
I aim for my endless dreams and I know they will come true!
1Stein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30



BeitragVerfasst: So 16.02.03 15:34 
:mrgreen: thx jetzt funztz

_________________
1Stein wäre nie 1Stein geworden wenn 2Stein nicht gewesen wäre ;)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 16.02.03 15:37 
Ich finde es unschön, die Variable "Name" zu überschreiben. Lass sie doch einfach dort, wo sie bei Dir stand und rufe sie mit Unit2.Name auf. Dann kommt es auch zu keiner Kollision mit Eigenschaften der Form.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
1Stein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30



BeitragVerfasst: So 16.02.03 16:42 
Naja in 2 Jahren interessiert mich sowas vieleich aber im moment bin ich zufrieden sobalt es funktioniert aber trotzdem danke

_________________
1Stein wäre nie 1Stein geworden wenn 2Stein nicht gewesen wäre ;)