Hallo zusammen.
Ich versuche nach Jahren mal wieder mit Delphi zu Programmieren.
Ich habe eine Form1 und darin 4 Groupboxen mit den Namen Tipp1 bis Tipp4.
Nun wollte ich in jede Groupbox 49 Panel wärend der Laufzeit einfügen.
Leider bekomme ich es nicht hin an die jeweilige groupbox gebunden wird wegen der ausrichtung.
												| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 37:
 38:
 39:
 40:
 41:
 42:
 43:
 44:
 45:
 
 | procedure TForm1.FormCreate(Sender: TObject);var newpanel : Tpanel;
 feld: Integer;    Zeile: Integer;
 Spalte: Integer;
 Nummer : Integer;
 x : Integer;    y : Integer;  begin
 
 
 Nummer :=1;
 x:=10;
 y:=30;
 feld:=1;
 for feld := 1 to 4 do
 begin
 Nummer:=1;
 for Zeile := 1 to 7 do
 begin
 Y:=30;
 for Spalte := 1 to 7 do
 begin
 newpanel := Tpanel.create(form1.FindComponent('Tipp' + inttostr(feld)));
 newpanel.name := 'T' + inttostr(feld) + inttostr(Nummer);
 newpanel.caption := inttostr(Nummer);
 newpanel.parent := form1;
 newpanel.Width:=24;
 newpanel.Height:=24;
 newpanel.left := x;
 newpanel.Top  := y;
 newpanel.visible := true;
 
 y:=y+24;
 Nummer:=Nummer+1;
 end;
 x:=x+24;
 end;
 end;
 end;
 end.
 | 
		
	  
Moderiert von  Narses: Code- durch Delphi-Tags ersetztModeriert von
Narses: Code- durch Delphi-Tags ersetztModeriert von  Narses: Beiträge zusammengefasst
Narses: Beiträge zusammengefasstHabe jetzt eine andere lösung gefunden.
Ich erstelle die Groupboxes wärend der laufzeit.
												| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 37:
 38:
 39:
 40:
 41:
 42:
 43:
 44:
 45:
 46:
 47:
 48:
 49:
 50:
 51:
 52:
 53:
 54:
 55:
 56:
 
 | procedure TForm1.FormCreate(Sender: TObject);var newpanel : Tpanel;
 newgroupbox : tgroupbox;
 ngbx : integer;
 ngby : integer;
 feld: Integer;      Zeile: Integer;
 Spalte: Integer;
 Nummer : Integer;
 x : Integer;      y : Integer;  begin
 
 ngbx:=20;
 ngby:=50;
 for feld := 1 to 4 do
 begin
 Nummer:=1;
 x:=10;
 y:=30;
 newgroupbox := tgroupbox.Create(Form1);
 newgroupbox.Name := 'Tipp' + inttostr(feld);
 newgroupbox.Caption := 'Tipp' + inttostr(feld);
 newgroupbox.Parent := Form1;
 newgroupbox.Width := 188;
 newgroupbox.Height :=225;
 newgroupbox.Left := ngbx;
 newgroupbox.Top := ngby;
 newgroupbox.Visible := true;
 for Zeile := 1 to 7 do
 begin
 for Spalte := 1 to 7 do
 begin
 newpanel := Tpanel.create(newgroupbox);
 newpanel.name := 'T' + inttostr(feld) + inttostr(Nummer);
 newpanel.caption := inttostr(Nummer);
 newpanel.parent := newgroupbox;
 newpanel.Width:=24;
 newpanel.Height:=24;
 newpanel.left := x;
 newpanel.Top  := y;
 newpanel.visible := true;
 
 x:=x+24;
 Nummer:=Nummer+1;
 end;
 y:=y+24;
 x:=10;
 end;
 ngbx := ngbx + 188 +20 ;
 end;
 end;
 
 | 
		
	  
Nun muss ich nur noch für jedes Panel ein onklick generieren, wo ich eine funktion aufrufe.
Moderiert von  Narses: Code- durch Delphi-Tags ersetztModeriert von
Narses: Code- durch Delphi-Tags ersetztModeriert von  Narses: Beiträge zusammengefasst
Narses: Beiträge zusammengefasstVileicht kann mir jemand helfen.
Ich versuche die zur Laufzeit erstellten Panel farblich zu ändern doch es klappt nicht so recht.
Habe zu Testzwecken ein Label erstellt, wo der Name des angeklickten Panel angezeigt wird, was auch funktioniert.
Nur das mit der Farbe klappt nicht.
		                     
             Delphi-Quelltext
                        Delphi-Quelltext                    
           	 										| 1:2:
 3:
 4:
 5:
 
 | procedure Tform1.Myclick(Sender: TObject);   beginLabel1.Caption:= (Sender as Tpanel).name ;
 (sender as Tpanel).Color := clblue;
 end;
 | 
		
	  
Moderiert von  Narses: Code- durch Delphi-Tags ersetztModeriert von
Narses: Code- durch Delphi-Tags ersetztModeriert von  Narses: Beiträge zusammengefasst
Narses: Beiträge zusammengefasstHabe es geschafft.
Ich musste nur beim erstellen der Panel folgende eigenschaft anpassen.
		                     
             Delphi-Quelltext
                        Delphi-Quelltext                    
           	 										| 1:
 | newpanel.parentbackground := false;					 | 
		
	  
Moderiert von  Narses: Code- durch Delphi-Tags ersetzt
Narses: Code- durch Delphi-Tags ersetzt