Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
2 / 1 / 1
Регистрация: 12.10.2016
Сообщений: 102
1

Вывод массива в строку через пробел в Memo

25.11.2017, 21:31. Показов 4201. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста как исправить, чтоб выводило в Memo массив из 10 чисел.
Здесь выводит бесконечно и все в столбик:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm3.Memo1Change(Sender: TObject);
var a: array [0..9] of integer;
    i: integer;
    str: string;
begin
  randomize;
  for i:=0 to 9 do
   begin
     a[i]:=random(10);
     str:='';
     str:=str+inttostr(a[i]);
   end;
    Memo1.Lines.Add(str);
end;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2017, 21:31
Ответы с готовыми решениями:

Ввод массива в одну строку через пробел
Помогите реализовать ввод данных через массив ограниченного длинны. Например : 5 #ввели длину...

Вывод данных из нескольких строк таблицы в одну строку через разделитель (пробел, запятую)
Добрый день! Есть табличка с адресами: addr ul1 ul2 dom вул. 1...

Как вывести два массива в одну строку через пробел?
Поменял значения в массивах, как их вывести в одну строку через пробел? int myIntArray...

Как сделать вывод массива в строчку через пробел?
как сделать что бы вывод массива был не так как в моей записи,а выводился массив a в строчку через...

2
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,133
Записей в блоге: 3
25.11.2017, 21:50 2
ты же строку обнуляешь в цикле FOR, поэтому предыдущие значения не сохраняются
1
Джоуи
1081 / 643 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
25.11.2017, 21:54 3
focusherad,
Цитата Сообщение от focusherad Посмотреть сообщение
Memo1.Lines.Add(str);
это тоже изменение Мемо, и значит оно тоже вызывает событие Memo1Change, поэтому и уходит в бесконечность

Цитата Сообщение от focusherad Посмотреть сообщение
str:='';
Это нужно делать до цикла либо при объявлении переменной str: string = '';

Для того, чтобы не зависало, Вам нужен логический флаг, указывающий программе, кто меняет Мемо: пользователь или Ваш код. Объявляете глобальную переменную, например, memchange: boolean = false;
и затем код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm3.Memo1Change(Sender: TObject);
var a: array [0..9] of integer;
    i: integer;
    str: string = '';
begin
  if memchange then exit;
  memchange := true;
  randomize;
  for i:=0 to 9 do
   begin
     a[i]:=random(10);
     str:=str+inttostr(a[i]);
   end;
    Memo1.Lines.Add(str);
    memchange := false;
end;
1
25.11.2017, 21:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2017, 21:54
Помогаю со студенческими работами здесь

Ввод и вывод массива через Memo
Здраствуйте, сижу вот уже 3-4 часа мучаюсь, как ввести массив через Memo, хоть убейте , не помню...

Считать строку из чисел, вывести на экран Все четные числа - элементы массива Входные данные вводятся через пробел, ввод
Считать строку из чисел, вывести на экран Все четные числа - элементы массива Входные данные...

Ищу встроенный метод (похожее тоже приветствуется) для заполнения массива числами из строки ,где данные в строку вводятся через пробел .
Простите за нуботемы (= Добавлено через 3 минуты Помнится на с плюс плюс было что-то подобное

Как разделить строку через пробел
есть строка которая вводится с клавиатуры . Как разделить строку через пробел. пример. Строка:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru