![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
listbox
Дарья © (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;