Форум: "Начинающим";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];
Внизlistbox Найти похожие ветки
← →
Дарья (2006-04-10 21:43) [0]можно еще вопросик,
у меня на форме listbox1 кнопка и лабел
в лист боксе находяться разные итемы с текстом типа "1а", "2а","7а","4в","4э"
в разном порядке,опять же пытаюсь в лабел1 закинуть все итемы 1x, где x - буква,а в лабел2 итемы с 4x
помогите плиз,я делаю это для работы,но совсем не знакома с delphi,мне на паляцах чето объяснили
как я понимаю надо использовать for,if
← →
Gydvin © (2006-04-10 22:03) [1]вопрос непонятен. Тебе что надо выбрать номера итемов где присутсвует "1+любая буква" и "4+любая буква" или содержимое этих итемов. Или номера итемов где присутствуют "1Х" и "4Х" или или содержимое этих итемов.
Более подробно пожалуста
← →
Gydvin © (2006-04-10 22:05) [2]Gydvin © (10.04.06 22:03) [1]
Во блин, а ошибок сколько )))
← →
Дарья (2006-04-10 22:13) [3]
> вопрос непонятен. Тебе что надо выбрать номера итемов где
> присутсвует "1+любая буква" и "4+любая буква" или содержимое
> этих итемов. Или номера итемов где присутствуют "1Х" и
> "4Х" или или содержимое этих итемов.
> Более подробно пожалуста
смари на примере,в listboxе:
1а
4в
1в
4г
1э
мне нужно чтоб при нажатии на кнопку, в лабел 1 писалось кол-во этих "1а,э,в" т.е. 3, а в лабел 2 кол-во этих с "4в,г" т.е. число 2
дык в лист боксе их там разных многа с номером 1+буква и 4+буква и мне нужно их посчитать
← →
Virgo_Style © (2006-04-10 22:20) [4]программировать не умеем, сформулировать проблему не умеем... учиться не хотим... э-эх...
короче, оплата не озвучена.
← →
Дарья (2006-04-10 22:25) [5]
> программировать не умеем, сформулировать проблему не умеем.
> .. учиться не хотим... э-эх...
>
> короче, оплата не озвучена.
дело в том что я устроилась секретарем,меня напрягли сделать форму,чтобы в лэйбелах писалось типо "4" 1-ых класса, "3" 11-ых класса и .д.
← →
Gydvin © (2006-04-10 22:31) [6]Понятно, этот вариант я как раз и неучел )))
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;
← →
Мефисто (2006-04-10 22:40) [7]Не все глюки устранены...
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:50) [8]
> Мефисто (10.04.06 22:40) [7]
И чем же этот код лучше, а ну-ка в середину пустую строку и вот готово одно исключение. А если в перед "4" поставить пробел, как и у меня один класс не учтет. Только циклов больше
← →
Gydvin © (2006-04-10 22:53) [9]да и вообще конвертационных функций типа inttostr, да и еще в циклке.
← →
Мефисто (2006-04-10 22:53) [10]Gydvin © (10.04.06 22:50) [8]
На все классы, но
Мефисто (10.04.06 22:40) [7]
>> Не все глюки устранены...
:)
← →
Дарья (2006-04-10 22:56) [11]
> 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:58) [12]хм...а теперь получилось....странно...ща потестю,спасибо ребят
← →
Мефисто (2006-04-10 23:01) [13]значит по коду не встречаются ни 1-е ни 4-е классы.
← →
Дарья (2006-04-10 23:05) [14]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);
то что доктор прописал,спасб ребят,выручили
← →
Gydvin © (2006-04-10 23:11) [15]зато по этим двум кодам 10 и 11 класс сразу фтопку вылетают, а первоклашек явно становится больше )))))))
← →
Мефисто (2006-04-10 23:16) [16]Gydvin © (10.04.06 23:11) [15]
Дык это.... повторение мать учения :)))
← →
Shturmovik (2006-04-10 23:17) [17]Решаю задачи по Pascal и Delphi для студентов ВУЗов и старшеклассников. Оплата по WebMoney или Яндекс.Деньги. Вопросы сюда: shturmovik.mail@mail.ru
← →
Мефисто (2006-04-10 23:24) [18]Shturmovik (10.04.06 23:17) [17]
Зачем нам этот загнивающий капитализм, у нас комунизм
Все для народа, не важно какого потреба и качества
:)
← →
Gydvin © (2006-04-10 23:34) [19]
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:35) [20]
> зато по этим двум кодам 10 и 11 класс сразу фтопку вылетают,
> а первоклашек явно становится больше )))))))
аха,как же тогда быть?
← →
Gydvin © (2006-04-10 23:37) [21]
> мать учения :)))
Мучения
← →
Gydvin © (2006-04-10 23:38) [22]
Дарья (10.04.06 23:35) [20]
Gydvin © (10.04.06 23:34) [19]
до 99 классов, хватит?
← →
Дарья (2006-04-10 23:39) [23]
> Gydvin © (10.04.06 23:38) [22]
>
> Дарья (10.04.06 23:35) [20]
>
> Gydvin © (10.04.06 23:34) [19]
>
> до 99 классов, хватит?
нет,их всего 11,дожен знать;)
← →
Дарья (2006-04-10 23:42) [24]
> 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.
во! работает как надо!чмак тя
← →
Gydvin © (2006-04-10 23:42) [25]а вдруг, вот у нас 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]);
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.013 c