Per Laufzeit ein Label auf einer GroupBox erstellen - Wie?
-
ich habe es jetzt mal so versucht:
GroupBox->Parent = Parent;Dann kommt aber die Fehlermeldung:
Element GroupBox hat kein übergeordnetes FensterIst das denn falsch wie ich es versucht habe?
-
Hallo
du sollst dem neuem Label die Groupbox als Parent zuweisen
label[i]->Parent = GroupBox; // Wie auch immer die Groupbox in dem Kontext ereichbar istbis bald
akari
-
indem du die Groupbox als Parent zuweist ...und zwar dem Label
label[i]->Parent = GroupBox1;
-
Danke. Das hat wunderbar geklappt.
Ich hätte noch eine kleine Frage. Vielleicht kannst mir dabei auch noch helfen. Der Groupbox habe ich als Font-Style Bold zugewiesen. Das möchte ich bei meinem Label nicht haben.
Ich habe es jetzt schon so versucht:label[i]->Font->Style = "";oder
label[i]->Font->Style = [];Leider klappt das alles nicht. Was muß ich da machen?
Danke im voraus.
-
die Hilfe benutzen? da gibts sogar ein Beispiel
-
Sorry. Habe ich auch gerade gesehen. Da sieht man den Wald vor lauter Bäumen nicht.

Jetzt habe ich allerdings noch einen kleine Frage. Ich gabe dem Label mit
label[i]->Name = "Clagerplatz";einen Namen.
Wie kann ich denn das Label jetzt in der Entwurfszeit "benutzen"?
Wenn ich jetzt z. B. einen Button habe, mit dem ich per Click folgendes ausführen möchte:Clagerplatz->Caption = "Neuer Text";Wenn ich das in der Entwurfszeit schon einge kommt natürlich die Meldung, dass es die "Clagerplatz" nicht gibt.
Gibt es da eine Möglichkeit?
-
entweder suchst du alle Componenten der Groupbox (ComponentCount) durch und änderst das wo der Name stimmt, oder du sprichts das Label über einen Index an, genau wie bei der Erstellung
-
Wie mache ich das denn über einen Index?
Label4->Caption = checkbox[0]->So funktioniert das leider nicht.
Danke im voraus.
-
jetzt hab ich mal ne Frage:
Wann fängst du an meine Beiträge mal RICHTIG zu lesen?
Linnea schrieb:
... oder du sprichts das Label über einen Index an, genau wie bei der Erstellung
-
Hallo
du hast doch in label[i] bereits ein passends Array? Von welchem Typ ist das und welchen Gültigkeitsbereich ist es?
Wenn es TLabel und Member der Form-Klasse ist, dann ist es doch einfach, zum Beispiel ein Label anzusprechen :int i = ....; label[i]->Caption = "Test";bis bald
akari
-
@Linnea,
ich habe deinen Beitrag richtig gelesen. Und ich habe auch gefragt, was du mit einem Index meinst. Ich gehe mal davon aus, dass es sich dabei um diese deklaration handelt, oder liege ich da falsch?TCheckBox *checkbox[10];Ich weiß jetzt nicht, was ich nicht richtig gelesen haben soll.
@akari
Momentan deklariere ich es folgender maßen:void __fastcall Tartikel_bearbeiten_abgang::FormActivate(TObject *Sender) { AnsiString sql_select; //TCheckBox *checkbox[10]; int hohe = 150; Labgang_kunde->Caption = artikel_bearbeiten->CBkunde->Text; Labgang_artikelnr->Caption = artikel_bearbeiten->Eartikel_nr->Text; sql_select = "SELECT * from lagerplatze_artikel where kunde = '"+Labgang_kunde->Caption+"' AND artikelnr = '"+Labgang_artikelnr->Caption+"'"; DataModule1->sql_select->SQL->Clear(); DataModule1->sql_select->SQL->Add(sql_select); DataModule1->sql_select->Open(); DataModule1->sql_select->First(); for(int i = 0; i < DataModule1->sql_select->RecordCount; i++) { checkbox[i] = new TCheckBox(this); checkbox[i]->Parent = GroupBox5; checkbox[i]->Top = hohe; checkbox[i]->Left = 9; checkbox[i]->Font->Style = TFontStyles(); checkbox[i]->Name = "Clagerplatz" + i; checkbox[i]->Show(); checkbox[i]->Caption = DataModule1->sql_select->FieldByName("lagerplatz")->AsString; DataModule1->sql_select->Next(); hohe = hohe + 17; } }Wo genau müsste ich denn das Array deklarieren?
Danke im voraus.
-
Hallo
im Header des Forms Tartikel_bearbeiten_abgang, zwichen den Einträgen private und public. Dann kannst du aus allen Methoden des Forms auf da gleiche Array pro Instanz zugreifen.
Ich empfehle dir erstmal noch OPP-Grundlagen anzueignen, sonst kommst du nicht viel weiter.
bis bald
akari
-
Danke. Habe es jetzt hinbekommen. Hatte es über private versucht, was natürlich nicht geklappt hat. Steht da ja auch.
