Kako poredjati labele od najvece do najmanje vrednosti

  • 2 odgovora
  • 2.702 pregleda
Kako poredjati labele od najvece do najmanje vrednosti 11.08.2013. u 16:25 · pre 160 meseci #1
Imam osam komponenti Tlabel kreiranih dinamicki.
Problem je u tome sto zelim da ih prikazem od najvece do najmanje vrednosti u svojstvu CAPTION 8,7,6,5,4,3,2,1 medjutim uvek bude od 1,2,3,4,5,6,7,8?

Code:
 

procedure TForm1.FormCreate(Sender: TObject);
var
  l: Integer;
begin
 for l := 8 downto 1 do
    begin
      with TLabel.Create(self) do
      begin
        Name := 'lbl' + IntToStr(l);
        Parent := Self;
        Caption :=  IntToStr(l);
        Top := 8;
        Left := l * 42;
      end;
    end;
  end;
end.



Na koji nacin mogu resiti problem i da dobijem : 8,7,6,5,4,3,2,1.
Re: Kako poredjati labele od najvece do najmanje vrednosti 11.08.2013. u 19:16 · pre 160 meseci #2
Rekao bih da ti je problem u ovoj liniji:
Code:
Left := l * 42;
Razlog je taj sto je 8*42 uvek 336, dok je npr. 7*42 = 294, tako da ce labela 8 uvek da bude desno (tj. "vise levo") od labele 7, bez obzira sto ti labele kreiras od 8 do 1. Kako je 1*42 = 42, labela "1" ce uvek biti prva (najmanje levo).

Resenja ima mnogo, jedno bi bilo da promenis tu liniju u:
Code:
Left := (9-l) * 42;

Onda bi imao da je (9-8)*42 = 42, dok bi (9-1)*42 bilo 336, pa bi labele bile poredjane od 8 do 1. Ovo nije najelegantnije, ali vrsi posao i moze ti dati ideju za neko malo lepse resenje :)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme