![]() |
Text von Form2 nach Form1 übergeben
Hi zusammen
Entweder spinnt mein Delphi oder ich mache einfach inen blöden Fehler den ich seit einer Stunde noch nicht gefunden habe. Ich möchte einfach Einträge aus der Form2 in die ListView1 in Form1 eintragen. Wenn ich folgenden Code von Form1 nach Form1 mache dann erscheint es auch in der ListView1, die sich in der Form1 befindent:
Delphi-Quellcode:
Jetzt hab ich versucht in Form2 diesen Code:
With ListView1.Items.Add do
begin Caption := Edit1.Text; SubItems.Add(mtext); SubItems.Add(valort); SubItems.Add(ende); SubItems.Add(neuerstart); SubItems.Add(var5); SubItems.Add(team) end;
Delphi-Quellcode:
Aber wenn ich das mache passiert rein gar nichts.
With Form1.ListView1.Items.Add do
begin Caption := Edit1.Text; SubItems.Add(mtext); SubItems.Add(valort); SubItems.Add(ende); SubItems.Add(neuerstart); SubItems.Add(var5); SubItems.Add(team) end; So und deshalb hab ich in Form1 als Test eine Label1 gemacht. Und in Form2 folgendes geschrieben:
Delphi-Quellcode:
Aber in Form1 steht immer noch Label1 ??
procedure TForm2.Button2Click(Sender: TObject);
begin Form1.Label1.Caption := 'Hallo'; end; Könnt ihr mir da bitte weiterhelfen, ich weiss nicht mehr was ich ausprobieren könnte. :gruebel: |
Re: Text von Form2 nach Form1 übergeben
Ich würde mal versuchen ein Redraw von Form1 zu erzwingen:
Delphi-Quellcode:
Wenns funktioniert in der anderen Methode das selbe.
procedure TForm2.Button2Click(Sender: TObject);
begin Form1.Label1.Caption := 'Hallo'; Form1.Update; end; |
Re: Text von Form2 nach Form1 übergeben
Hi mkinzler
Vielen Dank für die schnelle Antwort, aber leider passiert damit auch nichts :cry: |
Re: Text von Form2 nach Form1 übergeben
Es kommt auch keine Fehlermeldung? Eigentlich sollte es so funktionieren.
|
Re: Text von Form2 nach Form1 übergeben
Liste der Anhänge anzeigen (Anzahl: 1)
Hi
Bei mir geht es auch ohne Probleme, das simple Beispiel hier mal im Anhang. |
Re: Text von Form2 nach Form1 übergeben
Nein! Ich habe auch schon versucht den Computer neu zu starten.
Aber ich weiss jetzt auch nicht an wieso es nicht klappen könnte.
Delphi-Quellcode:
so steht es. Und es klappt nicht :(, naja danke muss ich eben wieder etwas anderes versuchen
procedure TForm2.Button2Click(Sender: TObject);
begin Form1.Label1.Caption := 'Hallo'; Form1.Update; Form2.Close; end; |
Re: Text von Form2 nach Form1 übergeben
Zitat:
|
Re: Text von Form2 nach Form1 übergeben
Versuch mal die Daten aus der Form2 zu holen, anstatt sie in Form1 zu schieben.
z.B.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin if Form2.ShowModal then begin Label1.Caption := form2.Edi1.Text; Update; end; end; |
Re: Text von Form2 nach Form1 übergeben
Da ich auch einmal solche Fehler hatte:
-Hast du in irgenteinem OnShow, OnHide, OnActivate ein ListBox Clear drin? Mfg Tobi |
Re: Text von Form2 nach Form1 übergeben
Zitat:
|
Re: Text von Form2 nach Form1 übergeben
Zitat:
|
Re: Text von Form2 nach Form1 übergeben
Zitat:
|
Re: Text von Form2 nach Form1 übergeben
Hi,
dass mit dem neu schreiben klingt vielleicht gar nicht so schlecht. Bitte versteh mich hier nicht falsch. Ich kenne deinen Code nicht, aber hier mal meine Vermutung, Form1 ist dein Hauptformular und öffnet irgendwann Form2? Wenn ja, dann hast du sicherlich eine dieser schönen, unter Delphi möglichen über-kreuz Einbidungen der Units? So was sollte man wirklich immer vermeiden. Mir fällt kein einziger Grund ein, warum man so etwas überhaupt erlaubt (macht imho auch keine andere "große" Programmiersprache, aber das ist eh ein anderes Thema). An sich verbaust du dir eine Menge Möglichkeiten, wenn du so etwas konstruierst. Solltest du später mal eins deiner Formulare verändern, kann das böse Auswirkungen haben. Du bist sehr stark an die beiden Formulare gebunden und kannst die halt so garnicht unabhängig benutzen. Muss einfach nicht sein. Der eine Weg ist es, dass du einen Rückgabewert benutzt (wie ja schon geschrieben wurde), alternativ kannst du natürlich auch Form2 eine Variable (vom Typ TLabel) geben, die Form2 verändert (also nur den Wert der Caption!) Gruß Der Unwissende |
Re: Text von Form2 nach Form1 übergeben
Liste der Anhänge anzeigen (Anzahl: 2)
HAi Blumi,
ich würde die Daten nicht an eine Variable der Form1 übergeben sondern einen Datenrecord via SendMessage an die Form senden. Dadurch bleibt die Verarbeitung der Daten dort wo sie sein soll, nämlich in Form1. Form2 sendet "nur" die Daten muss aber nicht wissen was mit ihnen passiert. Wenn Du also die Daten nicht mehr in einem ListView anzeigen möchtest sondern etwas anderes damit machst musst Du nur noch den Code in Form1 (dem Empfänger der Nachricht) ändern. Im Anhang mal zwei kleine Beispiele. P.S.: Die Typedeklaration sollte dann am besten in eine eigene Unit ausgelagert werden um sie zentral pflegen zu können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:29 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