Objekt übergeben

Pherseus

Erfahrenes Mitglied
Wie kann ich innerhalb einer Funktion z.B. der Text eines Labels ändern

Wenn ich in der Funktion nur schreibe Label1->Text = "bla"; dann funktioniert das nicht.
 
Hi.

Hast du denn die Hilfe nicht installiert? :confused:

Probier's mal mit
Code:
Label1->Caption = "xyz";

Und schreib doch bitte beim nächsten Mal was / warum das nicht funktioniert - oder kannst du mir mal eben schnell sagen warum mein Auto nicht funktioniert?

Gruß
 
Doch hilfe ist installiert. Ok dann eben nicht Text sonder Caption, aber darum ging es auch nicht. Das Problem ist, dass wenn ich in einer funktion das versuche, dass er das Objekt bzw. das Label nicht kennt. Das heist ich muss das Label irgendwie mit übergeben, also die Adresse oder so. Aber das bekomme ich halt nicht hin. So verständlicher? Welchen fehler der Compiler genau ausgibt hab ich nicht geguckt, kann ich aber wnen gewünscht auch noch ausprobieren.
 
Pherseus hat gesagt.:
Welchen fehler der Compiler genau ausgibt hab ich nicht geguckt, kann ich aber wnen gewünscht auch noch ausprobieren.
Das gehört normalerweise dazu...

Zu deinem Problem. Wie versuchst du denn das Label anzusteuern? Es gelingt nämlich nicht über den Namen des Objektes die Eigenschaft anzusteuern wenn du nicht einmal in der Instanz des Formulars bist.

Standardmäßig heißt das Instanzierte Hauptformular "Form1" und kann dementsprechend angesprochen werden. Beispielsweise so:

Form1->Label1->Caption="Der Sinn des Lebens is 42";

Denn die einzelnen Elemente die du so schön per Drag & Drop auf dem Formular platzieren kannst, müssen eben auch in der Klasse TForm enthalten sein, damit der "Formularmanager" weiß, welche Elemente er besitzt und bei Beendigung der Anwendung zum Löschen freigeben kann.

Mit freundliche Grüßen
 
Also in der cpp datei der unit (mainunit.cpp) rufe ich eine Methode einer Klasse auf.

Code:
  void __fastcall TForm1::PageControl1Change(TObject *Sender)
  {
  	memValues->Clear();
  	if(!link) {
  		memValues->Lines->Add("Keine Kettenglieder vorhanden.");
  	}
  	else {
  		memValues->Clear();
  		link->putValuesInMemo(); //hier die methode die aufgerufen wird.
  	}
  }

Die Klasse steht in einer extra CPP datei deren Header Datei in meiner mainunit.cpp includiert wird. In der entsprechenden Methode versuche ich nun, auf das Memo fehlt der Unit zuzugreifen.

Code:
  void CChainLink::putValuesInMemo() {
  	int x=1;
  	mainform->memo->Lines->Add("Kettenglied "+IntToStr(x)+ " hat folgende Werte:");
  }

Dabei kommt der Compilerfehler

E2451 Undifinertes Symbol 'mainform'.

So besser?
 
Zuletzt bearbeitet:
Zurück