Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Початківцям";
Поточний архів: 2018.12.23;
Завантажити: [xml.tar.bz2];

Вниз

memo. запис в рядок Знайти схожі гілки


Arthur   (2016-09-28 00:38) [0]

ось частина коду ... є матриця і мемо ... потрібно вивести кількість непарних чисел в кожному столбе..как зробити щоб в мемо числа виводилися в один рядок (тобто. під кожним стовпом)



Arthur   (2016-09-28 00:38) [1]

procedure TForm1.Button2Click (Sender: TObject);
var x:array of array of integer;
   i,j,Cod,counter:integer;
починати
SetLength (x, n, m);
 counter:=0;
for j: = 0 to m-1 do
begin
for i: = 0 to n-1 do
begin
     Val(StringGrid1.Cells[j,i],x[i,j],Cod);
     if Cod<>0 then begin
                    ShowMessage("ошибка синтаксиса в матрице");
                    SetLength(x,0,0); Exit;
end;
if x [i, j] mod 2 = 1 then
     counter:=counter+1;
end;
   SendMessageA(Memo1.Handle,EM_SETHANDLE,LongInt(counter),0);
     Memo1.Lines.Add(IntToStr(counter));
     counter:=0;
end;
end;



kilkennycat ©   (2016-09-28 02:51) [2]


> как сделать чтобы в мемо числа выводились в одну строку(т.
> е. под каждым столбом)


для этого главное: использовать моноширинный шрифт - где ширина у всех символов, в том числе пробелов, одинаковая.


> SendMessageA(Memo1.Handle,EM_SETHANDLE,LongInt(counter),0);

это зачем, да еще в цикле?

> Val

устарела.



kilkennycat ©   (2016-09-28 02:55) [3]


> for j:=0 to m-1 do
> begin
> for i:=0 to n-1 do
> begin
> Val(StringGrid1.Cells[j,i]

небезопасное обращение к массиву ячеек, нет проверки и\или обработки выхода за пределы



Игорь Шевченко ©   (2016-09-28 10:25) [4]


> > Val
>
> устарела.


Нифига. У этой функции есть полезное свойство - возвращать индекс первого нечислового символа.



kilkennycat ©   (2016-09-28 15:24) [5]


> Ігор Шевченко © (28.09.16 10: 25) [4]

да, забыл про это. но и вредное свойство тоже есть - сепараторы не поддерживаются.



Arthur   (2016-09-28 18:47) [6]

> это зачем, да еще в цикле?

чтобы вывести количество нечетн чисел под каждым столбом, щас попробую



Arthur   (2016-09-28 18:51) [7]

> Kilkennycat © (28.09.16 02: 51) [2]

а куда вставить эту строку?



kilkennycat ©   (2016-09-29 00:53) [8]


> Arthur (28.09.16 18:47) [6]
> чтобы вывести количество нечетн чисел под каждым столбом,
>  щас попробую

Так?
тогда что делает эта:
Memo1.Lines.Add(IntToStr(counter)); ?



kilkennycat ©   (2016-09-29 00:56) [9]

а взагалі, я правильно розумію, що це все виглядає як стрінггрід з розташованим під ним мемо ??



kilkennycat ©   (2016-09-29 01:01) [10]


> Kilkennycat © (29.09.16 00: 56) [9]

в этом случае почему бы просто не отрисовывать это всё в последней строке стринггрида?
если проблема связана с вертикальным скроллингом, то отрисовывать самому в TStringGrid.OnDrawCell, выводя в последнюю строку вместо "данных" стринггрида то самое кол-во чисел. Другим цветом. или на другом фоне.



Arthur   (2016-09-29 02:17) [11]

> а вообще, я правильно понимаю, что это всё выглядит как стринггрид с расположенным под ним мемо??

та правильно.

> в этом случае почему бы просто не отрисовывать это всё в последней строке стринггрида?

это слишком для меня)



kilkennycat ©   (2016-09-29 15:53) [12]

ну тогда как-то так:
procedure TForm1.Button2Click(Sender: TObject);
var
  col,row,err,chislo,counter:integer;
  s : string;
begin
counter:=0;
s = " "; //тут пробелами задается первый отступ
for row := 0 to StringGrid1.RowCount-1 do begin
  for col := 0 to StringGrid1.ColCount-1 do begin
    Val(StringGrid1.Cells[col,row],chislo,err);
    if err<>0 then begin
        ShowMessage("ошибка синтаксиса в матрице");
        Exit;
    end;
    if chislo mod 2 = 1 then inc(counter);
  end;
 s := s + IntToStr(counter) + " "; //тут пробелами задается расстояние между числами
 counter:=0;
end;
Memo1.Text = s;
end;



kilkennycat ©   (2016-09-29 15:54) [13]


> s = " "; //тут пробелами задается первый отступ

двоеточие пропустил. s := " ";



сторінки: 1 вся гілка

Форум: "Початківцям";
Поточний архів: 2018.12.23;
Завантажити: [xml.tar.bz2];

наверх









Пам'ять: 0.6 MB
Час: 0.026 c
15-1475791274
Германн
2016-10-07 01:01
2018.12.23
Світла пам'ять Анатолію Підгорецькому!


15-1475753599
Gavana
2016-10-06 14:33
2018.12.23
автопоновлення даних


15-1476200879
Хто б сумнівався
2016-10-11 18:47
2018.12.23
А є розширення для хрому для перевірки email?


2-1472129362
jcl
2016-08-25 15:49
2018.12.23
Допоможіть розібратися з потоками в сервісі


15-1476172583
xteam777
2016-10-11 10:56
2018.12.23
Допоможіть переписати код C ++ на Delphi





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в&#39;єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська