Zitat von
mkinzler:
Panel.Free;
gibt dies und alle Unterkomponenten frei. danach kannst du dieses und die Labels neu erstellen
Ach Gott, logo, ich habe gegreatet, also gebe ich das Ganze frei, wenn ichs nicht mehr brauche.
Danke
Aber jetzt ist das Panel nicht mehr da, obwohl ich es neu gegreatet habe:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i,idx, tg:Integer;
MDate:TDatetime;
begin
Panel1.Free;
Panel1:=TPanel.Create(Form1);
MDate:=StrtoDate('25.06.2009');
Panel1.Free;
Panel1:=TPanel.Create(Form1);
...
...
erzeugeLabels;
end;
procedure TForm1.erzeugeLabels;
var
index, // Zeilenzähler
Reihe:integer; // Spaltenzähler
index2,FTmp, tg: integer;
begin
tg:=DaysInMonth;
SetLength(Labels,tg+1);
FTmp:=TagNummer(Now);
index2 := 1; Reihe:=0;
for index:=1 to tg do
begin
Labels[index]:=TLabel.Create(Panel1);
If ((Labels[index].top+Labels[index].height)*index2+150) >= Form1.ClientHeight then
begin
inc(Reihe); index2:=1;
Labels[index].left:=150*Reihe;
Labels[index].Top:= 10+(index2*20);
end;
Labels[index].Top := 10+(index2*20);
Labels[index].Parent:= Panel1;
Labels[index].AutoSize := false;
Labels[index].Font.Size := 10;
Labels[index].Left := 240+(150*Reihe);
Labels[index].Height:= 20;
Labels[index].Width:=140;
Labels[index].name:='Labels'+inttostr(index);
Labels[index].Caption:= inttostr(TagArray[index-1].TNum)+' '+TagArray[index-1].TgName;
Labels[index].Alignment := taLeftjustify;
Labels[index].Cursor:=crHandPoint;
Labels[index].Font.color:=clmaroon;
Labels[index].color:= clmoneygreen;
if (TagArray[index-1].TgName = 'Samstag') or (TagArray[index-1].TGName='Sonntag')then
Labels[index].Color:= clskyblue;
if FTmp=index then Labels[index].Color:= clred;
Labels[index].Tag:= index-1;
// Labels[index].OnClick := ClickEvent; //<-ClickEreignis zuweisen !!!
inc(index2);
end;
end;