Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

listbox


Страницы:   1 2

Дарья ©   (2006-04-10 21:43:00) 

можно еще вопросик,
у меня на форме listbox1 кнопка и лабел
в лист боксе находяться разные итемы с текстом типа '1а', '2а','7а','4в','4э'
в разном порядке,опять же пытаюсь в лабел1 закинуть все итемы 1x, где x - буква,а в лабел2 итемы с 4x
помогите плиз,я делаю это для работы,но совсем не знакома с delphi,мне на паляцах чето объяснили
как я понимаю надо использовать for,if


Gydvin   (2006-04-10 23:42:00) [1]

а вдруг, вот у нас 12 лет образования ввели

но если так сильно нужно поменяй

 if s[2] in ['0'..'9'] then s1:=s1+s[2]
на   if s[2] in ['0'..'1'] then s1:=s1+s[2]

или здесь не добавляй

if s1 =  '1'then inc(a[0]);
   if s1 =  '2'then inc(a[1]);
    if s1 =  '3'then inc(a[2]);
    if s1 =  '4'then inc(a[3]);
    if s1 =  '5'then inc(a[4]);
    if s1 =  '6'then inc(a[5]);
    if s1 =  '7'then inc(a[6]);
    if s1 =  '8'then inc(a[7]);
    if s1 =  '9'then inc(a[8]);
    if s1 =  '10'then inc(a[9]);
    if s1 =  '11'then inc(a[10]);


Дарья   (2006-04-10 23:42:00) [2]


> procedure TForm1.Button1Click(Sender: TObject);
> var
> x:integer;
> s,s1:string;
> a:array [0..10]of integer;
> label ik;
> begin
>  FillChar(A, SizeOf(A), 0);
>  if listbox1.Items.Text='' then exit;
>  for x:=0 to listbox1.Items.Count-1 do begin
>      s:=listbox1.Items.Strings[x];
>
>      if s<>'' then  begin
>      while not(s[1]in ['0'..'9']) do begin
>          delete(s,1,1);
>          if s='' then goto ik;
>      end;
>      s1:=s[1];
>      if length(s)>1 then
>      if s[2] in ['0'..'9'] then s1:=s1+s[2];
>
>    if s1 =  '1'then inc(a[0]);
>     if s1 =  '2'then inc(a[1]);
>      if s1 =  '3'then inc(a[2]);
>      if s1 =  '4'then inc(a[3]);
>      if s1 =  '5'then inc(a[4]);
>      if s1 =  '6'then inc(a[5]);
>      if s1 =  '7'then inc(a[6]);
>      if s1 =  '8'then inc(a[7]);
>      if s1 =  '9'then inc(a[8]);
>      if s1 =  '10'then inc(a[9]);
>      if s1 =  '11'then inc(a[10]);
>
>      end;
> ik:
>  end;
>  label1.Caption:=inttostr(a[0]);
>  label2.Caption:=inttostr(a[1]);
> label3.Caption:=inttostr(a[2]);
> label4.Caption:=inttostr(a[3]);
> label5.Caption:=inttostr(a[4]);
> label6.Caption:=inttostr(a[5]);
> label7.Caption:=inttostr(a[6]);
> label8.Caption:=inttostr(a[7]);
> label9.Caption:=inttostr(a[8]);
> label10.Caption:=inttostr(a[9]);
> label11.Caption:=inttostr(a[10]);
> end;
>
> end.


во! работает как надо!чмак тя


Дарья   (2006-04-10 23:39:00) [3]


> Gydvin ©   (10.04.06 23:38) [22]
>
> Дарья   (10.04.06 23:35) [20]
>
> Gydvin ©   (10.04.06 23:34) [19]
>
> до 99 классов, хватит?

нет,их всего 11,дожен знать;)


Gydvin   (2006-04-10 23:38:00) [4]

Дарья   (10.04.06 23:35) [20]

Gydvin ©   (10.04.06 23:34) [19]

до 99 классов, хватит?


Gydvin   (2006-04-10 23:37:00) [5]


> мать учения :)))


Мучения


Дарья   (2006-04-10 23:35:00) [6]


> зато по этим двум кодам 10 и 11 класс сразу фтопку вылетают,
>  а первоклашек явно становится больше )))))))

аха,как же тогда быть?


Gydvin   (2006-04-10 23:34:00) [7]

procedure TForm1.Button1Click(Sender: TObject);
var
x:integer;
s,s1:string;
a:array [0..10]of integer;
label ik;
begin
 FillChar(A, SizeOf(A), 0);
 if listbox1.Items.Text='' then exit;
 for x:=0 to listbox1.Items.Count-1 do begin
     s:=listbox1.Items.Strings[x];

     if s<>'' then  begin
     while not(s[1]in ['0'..'9']) do begin
         delete(s,1,1);
         if s='' then goto ik;
     end;
     s1:=s[1];
     if length(s)>1 then
     if s[2] in ['0'..'9'] then s1:=s1+s[2];

   if s1 =  '1'then inc(a[0]);
    if s1 =  '2'then inc(a[1]);
     if s1 =  '3'then inc(a[2]);
     if s1 =  '4'then inc(a[3]);
     if s1 =  '5'then inc(a[4]);
     if s1 =  '6'then inc(a[5]);
     if s1 =  '7'then inc(a[6]);
     if s1 =  '8'then inc(a[7]);
     if s1 =  '9'then inc(a[8]);
     if s1 =  '10'then inc(a[9]);
     if s1 =  '11'then inc(a[10]);

     end;
ik:
 end;
 label1.Caption:=inttostr(a[0]);
 label2.Caption:=inttostr(a[1]);
label3.Caption:=inttostr(a[2]);
label4.Caption:=inttostr(a[3]);
label5.Caption:=inttostr(a[4]);
label6.Caption:=inttostr(a[5]);
label7.Caption:=inttostr(a[6]);
label8.Caption:=inttostr(a[7]);
label9.Caption:=inttostr(a[8]);
label10.Caption:=inttostr(a[9]);
label11.Caption:=inttostr(a[10]);
end;

end.


Во блин )))))))


Мефисто   (2006-04-10 23:24:00) [8]

Shturmovik   (10.04.06 23:17) [17]

Зачем нам этот загнивающий капитализм, у нас комунизм
Все для народа, не важно какого потреба и качества
:)


Shturmovik   (2006-04-10 23:17:00) [9]

Решаю задачи по Pascal и Delphi для студентов ВУЗов и старшеклассников. Оплата по WebMoney или Яндекс.Деньги. Вопросы сюда: shturmovik.mail@mail.ru


Мефисто   (2006-04-10 23:16:00) [10]

Gydvin ©   (10.04.06 23:11) [15]

Дык это.... повторение мать учения :)))


Gydvin   (2006-04-10 23:11:00) [11]

зато по этим двум кодам 10 и 11 класс сразу фтопку вылетают, а первоклашек явно становится больше )))))))


Дарья   (2006-04-10 23:05:00) [12]

var
x:integer;
s:string;
i,i1,i2,i3,i4:integer;
begin
i:=0;
i1:=0;
i2:=0;
i3:=0;
i4:=0;
if listbox1.Items.Text='' then exit;
for x:=0 to listbox1.Items.Count-1 do begin
    s:=listbox1.Items.Strings[x];
    if s<>'' then  begin
        if s[1]='1' then inc(i);
        if s[1]='2' then inc(i1);
        if s[1]='3' then inc(i2);
        if s[1]='4' then inc(i3);
        if s[1]='5' then inc(i4);
    end;

end;
label1.Caption:=inttostr(i);
label2.Caption:=inttostr(i1);
label3.Caption:=inttostr(i2);
label4.Caption:=inttostr(i3);
label5.Caption:=inttostr(i4);
то что доктор прописал,спасб ребят,выручили


Мефисто   (2006-04-10 23:01:00) [13]

значит по коду не встречаются ни 1-е ни 4-е классы.


Дарья   (2006-04-10 22:58:00) [14]

хм...а теперь получилось....странно...ща потестю,спасибо ребят


Дарья   (2006-04-10 22:56:00) [15]


> procedure TForm1.Button1Click(Sender: TObject);
> var
> x:integer;
> s:string;
> i,i1:integer;
> begin
>  i:=0;
>  i1:=0;
>  if listbox1.Items.Text='' then exit;
>  for x:=0 to listbox1.Items.Count-1 do begin
>      s:=listbox1.Items.Strings[x];
>      if s<>'' then  begin
>          if s[1]='1' then inc(i);
>          if s[1]='4' then inc(i1);
>      end;
>
>  end;
>  label1.Caption:=inttostr(i);
>  label2.Caption:=inttostr(i1);
> end;


пишет в лейбелы по '0' ;) я хз...


Мефисто   (2006-04-10 22:53:00) [16]

Gydvin ©   (10.04.06 22:50) [8]

На все классы, но

Мефисто   (10.04.06 22:40) [7]
>> Не все глюки устранены...

:)


Gydvin   (2006-04-10 22:53:00) [17]

да и вообще конвертационных функций типа inttostr, да и еще в циклке.


Gydvin   (2006-04-10 22:50:00) [18]


> Мефисто   (10.04.06 22:40) [7]


И чем же этот код лучше, а ну-ка в середину пустую строку и вот готово одно исключение. А если в перед '4' поставить пробел, как и у меня один класс не учтет. Только циклов больше


Мефисто   (2006-04-10 22:40:00) [19]

Не все глюки устранены...

 var
   I, J: Integer;
   A: Array [1..11] of Integer;
begin
 FillChar(A, SizeOf(A), 0);

 for I := 0 to ListBox1.Items.Count - 1 do
   ListBox1.Items[I] := ListBox1.Items[I][1];

 ListBox1.Sorted := True;

 for J := 1 to 11 do
   for I := 0 to ListBox1.Items.Count - 1 do
     if ListBox1.Items[I] = IntToStr(J) then Inc(A[J]);

 Label1.Caption := IntToStr(A[4]) + '-х классов';
.....
end;


Gydvin   (2006-04-10 22:31:00) [20]

Понятно, этот вариант я как раз и неучел )))

procedure TForm1.Button1Click(Sender: TObject);
var
x:integer;
s:string;
i,i1:integer;
begin
 i:=0;
 i1:=0;
 if listbox1.Items.Text='' then exit;
 for x:=0 to listbox1.Items.Count-1 do begin
     s:=listbox1.Items.Strings[x];
     if s<>'' then  begin
         if s[1]='1' then inc(i);
         if s[1]='4' then inc(i1);
     end;

 end;
 label1.Caption:=inttostr(i);
 label2.Caption:=inttostr(i1);
end;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо