![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Пытался создать программу, которая создаёт два одномерных массива, в каждом из которых находит минимальное значение и эти значения сравнивает, выводя в отдельный Эдит результат (t). Точную формулировку задания, к сожалению, не помню. Как я понял, у меня как-то неправильно создаются массивы, но что нужно сделать не пойму.
Код:
Код:
|
#2
|
|||||
|
|||||
![]() Цитата:
Код:
Код:
|
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Guerron (28.04.2014)
|
#3
|
||||||
|
||||||
![]() 72,74,83,86 For loop control variable must be simple local variable
Дословный перевод переменная цикла должна быть локальной переменной процедуры или функции внутри функций Button1Click и Button2Click, перед Begin вставить строчку Код:
73,75,81,82,84,85,87,88 вот это A(a1) - вызов функции, а поскольку A это не функция, а массив, то и ругается. Надо A[a1]. 99,100 не так Код:
Код:
|
Этот пользователь сказал Спасибо icWasya за это полезное сообщение: | ||
Guerron (28.04.2014)
|
#4
|
||||||||||||||
|
||||||||||||||
![]() Настоятельно рекомендуется прочитать про массивы:
http://rucodes.com/delphi-arr.html http://rucodes.com/array-pas.html Касательно вашего кода Код:
Код:
Здесь, Вы, видимо, пытаетесь инициализовать элементы массива. Код:
При этом a1 - это переменная типа integer. Команда A(a1) пытается привести целочисленную переменную a1 к выше объявленному типу А. Понятное дело у нее это не получается, поэтому выдается ошибка Код:
Что бы выполнить обращение к элементу массива вам нужно: 1) Объявить переменную соответствующего типа(выше написал как) 2) Обратится к элементу массива по индексу: A[a1] Относительно остальных ошибок. Код: Код:
Код Код:
Неправильно использует функцию Add, правильно так Код:
Невозможно заточить карандаш тупым топором. Столь же тщетно пытаться сделать это десятком тупых топоров |
Этот пользователь сказал Спасибо madMonia за это полезное сообщение: | ||
Guerron (28.04.2014)
|
#5
|
|||
|
|||
![]() Цитата:
|
#6
|
|||||||||
|
|||||||||
![]() Цитата:
Тут есть два момента: 1) Индексация в TStrings (а именно такой тип имеет свойство Lines у компонента Memo) начинается с 0 а не с 1. 2) При таком удалении Вы рискуете получить ошибку, если строк в Lines меньше 29ти. Дело в том, что при каждой команде Memo1.Lines.Delete(m); Вы удаляете строку с номером m. Последней Вы удаляете 15ю строку, а до нее удалили уже 14ть. Таким образом, до начала удаления у вас должно быть минимум 29ть строк, чтобы после удаления 14ти из них, 15я строка все же существовала и ее можно было удалить. Надеюсь я вас не запутал. Другими словами, удаление чего бы то ни было с помощью - плохая идея Код:
удалять следует, хотя бы так Код:
А лучше вообще с помощью while. Получается нужно удалить первые 15ть строк, а остальные, если такие есть, сохранить? Тогда как-то так Код:
Если же цель - просто очистить мемо, то лучше использовать Код:
Невозможно заточить карандаш тупым топором. Столь же тщетно пытаться сделать это десятком тупых топоров |
Этот пользователь сказал Спасибо madMonia за это полезное сообщение: | ||
Guerron (05.05.2014)
|
#7
|
|||
|
|||
![]() Вот исправленный код:
Код:
а) после нажатия 4-й кнопки 2,3 и 4-я кнопки отключались как при создании формы б) при нажатии 4-й кнопки в поле Memo1 Последний раз редактировалось Guerron, 05.05.2014 в 18:07. |
#8
|
||||
|
||||
![]() Так в её обработчике (жим кнопки4) в конце пропишите тоже самое, что и при создании формы
Код:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Guerron (06.05.2014)
|
#9
|
|||
|
|||
![]() Не успел дописать второй момент. В общем вещь, что мне не нравится, заключается в том, что обе строки съезжают вверх, то есть удаляется всё нормально, строки обе создаются нормально, но чтобы увидеть первую строку надо вручную прокрутить невидимый скроллбар в Мемо, т.к. она выше видимой области оказывается, хотя и само поле Мемо имеет достаточные размеры даже для 4-х строк.
|
#10
|
||||
|
||||
![]() Цитата:
Чтобы длинные строки не разбивались на несколько коротких отключи у Мемо перенос строк установкой свойства WordWrap в False. |
#11
|
|||
|
|||
![]() Попробую ещё раз объяснить - я хочу, чтобы мои две строки были сразу видны вместе после нажатия кнопки, а на данный момент после нажатия строки идут со смещением так, что первая строка оказывается чуть выше, чем должна была быть
|
#12
|
||||
|
||||
![]() В той же самой процедуре жима кнопки4 в конце (после заполнения мемо) пропишите строчку
Код:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#13
|
|||
|
|||
![]() Спасибо всем за помощь и внимание, теперь всё работает идеально
![]() |