![]() |
Werte an andere Form übergeben
Hallo,
eine Frage: wie kann ich Werte eines Edit-Feldes (z. Bsp.: Text) einer anderen Form übergeben? Danke für Hilfe MFG Stefan |
Re: Werte an andere Form übergeben
Such mal danach. Ich glaube das wurde shcon ein paar mal beantwortet
|
Re: Werte an andere Form übergeben
Einfach in Form1 ne String-Variable global deklarieren, und der den edit Text zuweisen.
Im Unit2 einfach Unit1 einbinden und dann kannst du die String-Variable ganz normal ansprechen. |
Re: Werte an andere Form übergeben
das habe ich mir beinahe schon gedacht, mit dieser Global-Stelle.
Aber was verstehst du unter Einbinden? wie mache ich das? |
Re: Werte an andere Form übergeben
Delphi-Quellcode:
implementation
Uses Unit1 |
Re: Werte an andere Form übergeben
so:
Delphi-Quellcode:
implementation uses Unit1; |
Re: Werte an andere Form übergeben
Ganz einfach:
Delphi-Quellcode:
Oder meinst Du was anderes???
a:string;
begin a := Form1.Edit1.Text; Form2.Edit1.Text := a; end; |
Re: Werte an andere Form übergeben
Zitat:
hm das funktioniert aber trotzdem nicht. Das hatte ich vorher auch schon mal. nur wenn ich die Variable in Form2 unter Public... definiere dann beim Verlassen der Seite einen bestimmten Wert zuteile (was bis hierher auch funzen dürfte) und dann die Variable in Form3 aufurfe, sagt er, dass diese Variable nicht bekannt ist. Schreibfehler und Form-Verwechslungen schließe ich dabei zu 100% aus :( |
Re: Werte an andere Form übergeben
@ Spider
Also ich nutze Delphi 7 und bei mir wird die Implemention von Unit1 automatisch übernommen... MfG Thomas |
Re: Werte an andere Form übergeben
Du kannst die variable auch in Form1 unter Public deklarieren, in Form2 dann:
Delphi-Quellcode:
wenn du dann kompilierst, wird Form1 in Form2 eingetragen, automatisch, wie Spider gesagt hat.
Form1.Variable := ...
|
Re: Werte an andere Form übergeben
Zitat:
genau, wenn man einmal zugreift auf eine formx.dkdkdk dann fragt er ja aber trotzdem klappts nicht |
Re: Werte an andere Form übergeben
hi,
globale Variablen sind für mich ein altes Pascal Relikt. In Objekt-Pascal sollte man besser objektorientierte Strukturen verwenden.
Delphi-Quellcode:
Die andere Unit:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private-Deklarationen } variable : String; public { Public-Deklarationen } function _variable : string; end; var Form1: TForm1; implementation {$R *.dfm} function TForm1._variable : string; begin result:=variable; end; end.
Delphi-Quellcode:
Auf den ersten Blick etwas umständlicher, aber wie ich finde auf jedenfall strukturierter.
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) Label1: TLabel; private { Private-Deklarationen } procedure beispiel; public { Public-Deklarationen } end; var Form2: TForm2; implementation uses Unit1; {$R *.dfm} procedure TForm2.beispiel; begin Label1.Caption:=Form1._variable; end; end. |
Re: Werte an andere Form übergeben
Also, so sieht's bei mir aus und geht einwandfrei:
Delphi-Quellcode:
Edit: Zu langsam ;)
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation Uses Unit2; {$R *.dfm} end. |
Re: Werte an andere Form übergeben
Zitat:
ich würde dafür in deiner zweiten Form im Public-Teil eine Procedure deklarieren.
Delphi-Quellcode:
Wenn deinen Unit von Form2 jetzt in der Uses deiner ersten steht kannst Du den Text einfach übergeben:
type
TForm2 = class(TForm) private { Private-Deklarationen } s_editform1 : String; public { Public-Deklarationen } procedure SetEdit (const value : String = ''); end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.SetEdit (const value : String = ''); begin s_editform1 := value; end;
Delphi-Quellcode:
[Edit]Manzoni scheint fast so zu coden wie ich *gg*. Nur das ich es genau anderes herum gemacht habe. [/edit]
procedure TForm1.Button1Click(Sender: TObject);
begin Form2.SetEdit(Edit1.Text); end; |
Re: Werte an andere Form übergeben
Zitat:
so habe ich es auch und es geht nicht :) normalerweise sollte es ja gehen,,, aber warum es nicht geht gibt mir zu rätseln das andere werde ich halt sonst verwenden müssen, obwohl mir das sehr aufwendig erscheint, schließlich musse ich ca. 20-30 Werte übergeben :? |
Re: Werte an andere Form übergeben
noch ein kleiner Anhang:
ich entlade die Form2 nicht einmal sondern mache sie nur unsichtbar. wenn ich dann direkt auf das Edit-Feld zugreife kriege ich den wert '' warum: ich habe dem Edit-Feld als Standard-Text nichts angegeben. aber jetzt fülle ich das Feld zur Laufzeit aus, nur will er trotzdem dann den Standardwert zurückgeben dürfte vielleicht weiterhelfen |
Re: Werte an andere Form übergeben
hm habe mal auch das mit der Prozedur probiert, nur erwartet er da irgendein Resultat
aber das andere will einfach nicht gehen :( |
Re: Werte an andere Form übergeben
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab mal so'n Beispiel im Anhang, falls du's fehlerfrei kompilieren kannst, dann musst du bei dir einen anderen Fehler haben.
|
Re: Werte an andere Form übergeben
poste doch mal dein Quellcode. :dp:
|
Re: Werte an andere Form übergeben
ich glaube langsam flippe ich komplett aus.
habe es jetzt wirklich genau so gemacht, aber wieder ohne erfolg |
Re: Werte an andere Form übergeben
Lässt sich mein Programm denn kompilieren?
|
Re: Werte an andere Form übergeben
Liste der Anhänge anzeigen (Anzahl: 2)
hm ok habe mal die Form2 und Form3 angehängt
bitte nicht über meine umständliche Code-Vorgänge, aber mir geht es vor allem darum, dass es funzt. danke jedem, der sich da durch wurstelt :-D |
Re: Werte an andere Form übergeben
Zitat:
ja dein Problem klappt einwandfrei, dass ist ja auch das, was ich nicht verstehen kann |
Re: Werte an andere Form übergeben
Hi Stefan!
Kannst du mir bitte sagen, wo genau der Fehler kommt, so auf die Schnelle seh ich keinen... :angle2: PS: Der Timer1-Code sieht ja heiß aus ;) |
Re: Werte an andere Form übergeben
Zitat:
ich habe gesagt, bitte keine Anspielungen :-D also in der procedure TForm2.Button2Click teile ich der Variable S den Wert eines Edit-Feldes zu und springe dann, wenn es wirklich soweit ist, auf Form3 über und da dürftest du dich gleich recht finden, ist noch ziemlich spährlich |
Re: Werte an andere Form übergeben
Im OnCreate der Form3 kannst du, meiner Meinung nach, nicht schreiben:
Delphi-Quellcode:
Sie wird nämlich nur beim Programmstart GeCreated (oder wie das heißt ;) ).
label2.Caption:= s;
Danach wird sie höchstens aktiviert, probier da mal, das ins OnActivate zu schreiben. |
Re: Werte an andere Form übergeben
hm dann geht es gar nicht mehr, also dann bleibt überhaupst Standard-Wert drinne
sonst geht der wenigstens weg auch im OnShow klappts nicht :( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 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