delphi: memo1 lines count + petla

0

Witam,

Mam taki problem..

 
procedure TForm2.Button3Click(Sender: TObject);
var
s:integer;
i:string;
w:real;
begin
s:=0;
i:=IntToStr(memo1.lines.count);
w:=StrToFloat(i) / 5;
for s := 0 to w do
begin

end;
end;

Jak zrobić aby pętla sie konczyla na wartosci 'w' czyli od zera do memo1.lines.count podzielone przez 5? Oczywiscie dodam ze kod powyzej nie dziala.. jak z powrotem zrobic integer z w?

Z gory dzieki za pomoc.

1

Chyba chodzi Tobie o...

var
  I : integer;
begin
  for I := 0 to (Memo1.Lines.Count div 5) do
  begin
    ShowMessage(IntToStr(I + 1));
  end;
end;

Ale ja bym jeszcze po nawiasie w określeniu zmiennej I odjął po dzieleniu 1, dlatego że wiersze Memo są indeksowane od zera. Natomiast pętla pokazuje w okienku faktyczny numer wiersza od 1. Na przykład dla 10 wierszy teraz kod powyżej wykona się do wiersza numer trzy, a po odjęciu 1 wykona się do wiersza drugiego i chyba o takie coś Tobie chodzi. Anyway, już rozumiesz ideę to sobie dostosujesz robiąc testy.

0

dlatego dzielilem na piec bo kazda grupa sklada sie z pieciu ze tak powiem wskaznikow.. i teraz jak to zrobic aby kazdy nowy item w comboxie skladal sie z memo linii 0,1,2,3,4 + nastepny item memo linia 5,6,7,8,9 nastepny item 10,11,12,13,14 i tak dlugo az dojdzie do memo1.lines.count.

for s := 0 to (memo1.Lines.Count div 5)-1 do
begin
 Combobox1.Items.Add(memo1.Lines[0] + ' / ' +  memo1.Lines[1] + ' / ' + memo1.Lines[2] + ' / ' + memo1.Lines[3] + ' / ' + memo1.Lines[4]);
 
0
var i: Integer;
    s: string;
begin
  s:= '';
  for i:= 0 to Memo1.Lines.Count - 1 do
    if (i mod 5 = 4) or (i = Memo1.Lines.Count - 1) then begin
      s:= s + Memo1.Lines[i];
      Combobox1.Items.Add(s);
      s:= '';
    end
    else s:= s + Memo1.Lines[i] + ' / ';
end;
0

Dzieki Szefie. :) Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1