Werte von Form1 zu Form2..??
-
Also, ich arbeite im Moment mit Borland C++ Builder 5.0 (Std), Windows natürlich
![;] 😉](https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso)
Ich habe ein Problem, und zwar habe ich keine Ahnung (auch nach 54689 Versuchen), wie ich einen Wert z.B. 'int p' aus Form1 (Unit1.cpp) nach Form2 (Unit2.cpp) bringe..?? Ich hab es geschafft über die Labels den Wert auf der anderen Form darzustellen, aber ich möchte es als Integer-Wert im Kasten haben..
Hier ma n bissl 'Inhalt' zur Verdeutlichung:
Unit1.cpp[...]
int p=23;
[...]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
/*Hier wird 'Label1' von 'Form2' gleich 'p' (in diesem Falle 23) gesetzt*/
Form2->Label1->Caption=p;/*Hier wird die 'Form2' aufgerufen*/
Form2->ShowModal();
}^^und dann wird dieser Wert 'p' in dem neuen fenster (Form2) wunderschön wiedergegeben, aber jezz halt nich im 'int p' ich hab auch keene Ahnung wie -.-*
Danke für Antworten

-
Ich empfehle dir, erstmal Standard C++ in der Konsole zu lernen, um C++ einigermaßen zu verstehen. Wenn ich dich richtig verstanden habe, kannst du es ungefähr so lösen:
#include <iostream> class one { int p; public: one(int p) : p(p) {} int getp() const { return p; } }; class two { const int& rp; // referenz auf p public: two(const int& rp) : rp(rp) // zuweisen {} void print() const; // p hier ausgeben.., oder grafisch halt machen per vcl }; void two::print() const { std::cout << rp << std::endl; // in konsole } int main() { one obj1(23); // obj generieren, p per konstruktor, geht natürlich auch anders two obj2(obj1.getp()); // p obj2 geben bei instanziierung, wenn erst nachher bekann ist, keine referenz sondern nen pointer nehmen und später per methode zuweisen obj2.print(); // ausgabe zum testen, geht wie oben gesagt, natürlich auch grafisch per labels, etc. }Meinst du so etwas?
-
Es waere vllt vorteilhalt, wenn du etwas deutlicher ausdruecken wuerdest, was du überhaupt willst. Willst du die Variable p (bzw. deren Inhalt) in einer Variablen der Klasse der Form2 haben oder was genau ist dein Ziel?
Ich kann z.B. damit nichts anfangen:[...]aber ich möchte es als Integer-Wert im Kasten haben..
was fürn Kasten?
Edit:
Handelt es sich um eine Member Variable oder eine lokale Variable? Aussehen tut es ja wie eine lokale, aber man weiss ja nie
)
Wenn du den Wert dieser Variablen in einer Variable der Klasse der Form2 haben willst, koenntest du sie evtl. einfach aus dem String des Labels auslesen.Gruss,
DeSoVoDaMu
-
^^danke für die Hilfe

Ja, ich arbeite mit Konsole und Builder abwechselnd.
Hm, dat hab ich ja noch nie gesehn, was du mir da hingeschrieben hast, ist interessant, funzt in meinem Fall aber leider nicht

Also es geht dadrum, dass im Prinzip in den einem Quellcode der Zweite aufgerufen wird und dabei noch ein Wert übergeben wird, und das alles in einem Programm, total wirsch.
Du hast mir zwei Funktionen erstellt, in dem einer -irgendwie- den Wert vom anderen holt, oder??..
sorry, wenn ich das hier so unverständlich erkläre
-
@Mod bitte ins BCB-Forum verschieben.

@betrueger:
Guck in die FAQ des BCB Forums, da findest antworten auf deine Fragen.
-
betrueger schrieb:
^^danke für die Hilfe

Ja, ich arbeite mit Konsole und Builder abwechselnd.
Mache nur Konsole.
Ist besser, glaubs mir.Hm, dat hab ich ja noch nie gesehn, was du mir da hingeschrieben hast, ist interessant, funzt in meinem Fall aber leider nicht

Warum denn nicht? Erkläre mal genauer.
Also es geht dadrum, dass im Prinzip in den einem Quellcode der Zweite aufgerufen wird und dabei noch ein Wert übergeben wird, und das alles in einem Programm, total wirsch.
Binde in dem einen dann halt die Klassendefinition der Zweiten ein und lasse den Linker dann alles zusammenbauen. In der ersten Klasse rufst du nun die Methoden der zweiten Klasse auf, sie sind ja deklariert in dem Header. Den Wert kannst du übergeben, wie ich es dir oben gezeigt habe.
Du hast mir zwei Funktionen erstellt, in dem einer -irgendwie- den Wert vom anderen holt, oder??..

Ich habe die Klasse Form1 und Form2 bei dir nachgebildet, wie du es machen kannst, dass Form2 von p von Klasse Form1 weiß. Ich sehe, du scheinst dringend Nachholbedarf in C++ brauchen.
sorry, wenn ich das hier so unverständlich erkläre

Versuchs mal, genauer zu erklären.

-
Hallo,
wenn du p aus der ersten Form auf der zweiten darstellen willst, mußt du in der Headerdatei der ersten Form p als public deklarieren. Dann kannst du sie überall innerhalb oder außerhalb der Klasse verwenden. Natürlich mußt du die Headerdatei inkludieren. mit der Anweisung in Form2:
Edit1->Text=Form1->pkannst du dann p ganz einfach in ein Edit Feld schreiben bzw. verwenden.
Viel Erfolg noch
Ebi01
-
Ebi01 schrieb:
Hallo,
wenn du p aus der ersten Form auf der zweiten darstellen willst, mußt du in der Headerdatei der ersten Form p als public deklarieren.
siehe http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=InstPriv#Answ warum man es grade nicht so machen soll
-
Es wurde ja schon auf die BCB-FAQ verwiesen. Hier ist auch der korrekte Link dafür.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Borland C++ Builder (VCL/CLX) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.