Цикъл на Стринг

1 отговора 0 прегледа
#1

Цикъл на Стринг

Здравейте опитвам се да напиша алгоритъм за един цикъл в които се създава TLabel и му пиша нещо на него но не сам доволен слагам го в един панел ето как :
L_Top := 1;
L_Left := Panel1.Left + 1;
for i:= 0 to 150 do
begin
Lab := TLabel.Create( Self );
Lab.Parent := Panel1;
if L_Top = 1 then
Lab.Caption := ' '
else
Lab.Caption := IntToStr( i + 100000000 ) + ' ' + IntToStr( i + 1 + 100000000 ) + ' ' + IntToStr( i + 2 + 100000000 );
Lab.Top := L_Top + 15;
Lab.Left := L_Left;
Lab.Name := 'Lab' + IntToStr( i );
if L_Top >= Panel1.Height then
begin
// L_Left := L_Left + 100;
L_Top := 1;
end
else
Inc( L_Top, 15 );

Application.ProcessMessages;
Panel1.Refresh;
Sleep( 60 );
end;

сега когато достигна края на панела и се вращам отначало а аз бих искал като стигна края на панела горния ред да се трие и всички до сега създадени да се качат с едно нагоре и само на последния да се пише нещо.
Дано да съм се изразил достатчно ястно.

Благодаря предварително !

Отговор
в отговор на Любo #2

Re: Цикъл на Стринг

Разгледай TObjectList, и направи следните 2 стъпки:

1) Напъхай всички TLabel, събиращи се в панела в един TObjectList
2) Когато стигнеШ if L_Top >= Panel1.Height then с един цикъл for i:=... downto ... смени Caption на всеки (i-1) TLabel с този на i (за всички от втория до последния TLable в TObjectList) - това ще ти "скролира" надписите нагоре

чети и дишай по-леко
Отговор