Einzelnen Beitrag anzeigen

Codix32

Registriert seit: 23. Apr 2009
137 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Dynamisch erstellte Labels neu zeichnen...

  Alt 19. Jul 2009, 20:39
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;
  Mit Zitat antworten Zitat