Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2018.12.23;
Скачать: CL | DM;

Вниз

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;
begin
 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.005 c
15-1475789401
Юрий
2016-10-07 00:30
2018.12.23
С днем рождения ! 7 октября 2016 пятница


15-1475245332
iop
2016-09-30 17:22
2018.12.23
задачка


4-1290258828
Eraser
2010-11-20 16:13
2018.12.23
Определить под Wine мы или нет


2-1474431273
glazkov
2016-09-21 07:14
2018.12.23
TreeView


4-1290160827
Boatswain
2010-11-19 13:00
2018.12.23
Кат узнать флэшка или кард-ридер