|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Ошибка Not enough actual parameters
При выполненииэтого кода выдаёт ошибку not enough actual parameters на строки с Razdelenie; и Dobavlenie;
Код:
procedure Razdelenie(Edit1: TEdit; StringGrid1: TStringGrid); var z, i, j, x: integer; s: string; begin x := 0; for z := 1 to length(s) do if s[z] = ',' then begin StringGrid1.Cells[i, j + x] := Edit1.Text; Edit1.Text := ''; x := x + 1; Razdelenie; Dobavlenie; end else begin Edit1.Text := Edit1.Text + s[z]; end; StringGrid1.Cells[i, j + x] := Edit1.Text; end; Слишком начинающий, чтобы понять, почему выдаёт эту ошибку |
#2
|
||||
|
||||
Ну, во-первых, Вы из процедуры Razdelenie вызываете эту же процедуру? Совершенно некорректно. Оформите её отдельной процедурой, а вызов делайте из другой процедуры (из обработчика какого-нибудь события).
Во-вторых, ошибка "Недостаточно параметров" выскакивает потому, что для процедуры Razdelenie Вами определены два параметра: Код:
procedure Razdelenie(Edit1: TEdit; StringGrid1: TStringGrid); Вызывая какую-либо процедуру или функцию, Вы обязаны указать все параметры, объявленные для этой функции, иначе код не будет скомпилирован. Последний раз редактировалось Guaho, 25.05.2019 в 14:25. |
#3
|
|||
|
|||
Сейчас убрал вызов Razdelenie из этой же процедуры,но теперь когда определяю параметры при вызове процедуры, появляется множество ошибко синтаксиса, а ошибка not enough actual parameters, тем не менее, никуда не уходит
|
#4
|
||||
|
||||
Видимо вы прочитали только половину сообщения от Guaho иначе ошибки с параметрами не было. Код процедуры Dobavlenie вы не показали, так-что там еще натворили неясно. Покажите ваш последний вариант.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
Вот все три процедуры используемых, код не очень логичный, но меня пока только интересует устранение ошибки самой
P.S. параметры процедур не указаны при вызове, ибо пробовал уже и с ними, и без них Код:
procedure Oformlenie(Edit1: TEdit; StringGrid1: TStringGrid); var x, i, j: integer; begin x := 0; StringGrid1.Cells[i, j + x] := Edit1.Text; Edit1.Text := ''; x := x + 1; end; procedure Dobavlenie(StringGrid1: TStringGrid); var i, j: integer; begin // Увеличиваем количество строк на 1 StringGrid1.RowCount := StringGrid1.RowCount + 1; // Сдвигаем содержимое таблицы вниз for i := 0 to StringGrid1.RowCount - 2 do for j := 0 to StringGrid1.ColCount - 1 do StringGrid1.Cells[j, StringGrid1.RowCount - 1 - i] := StringGrid1.Cells[j, StringGrid1.RowCount - 2 - i]; for j := 0 to StringGrid1.ColCount - 1 do StringGrid1.Cells[j, 0] := ''; end; procedure Razdelenie(Edit1: TEdit; StringGrid1: TStringGrid); var z, i, j, x: integer; s: string; begin x := 0; for z := 1 to length(s) do if s[z] = ',' then begin Oformlenie; Dobavlenie; x := x + 1; end else begin Edit1.Text := Edit1.Text + s[z]; end; StringGrid1.Cells[i, j + x] := Edit1.Text; end; |
#6
|
||||
|
||||
Как и предполагалось, вы упорно вызываете процедуры без параметров. Попробуйте все-же подставить параметры в 36 и 37 строках, а вдруг поможет
Код:
Oformlenie(Edit1,StringGrid1); Dobavlenie(Edit1,StringGrid1); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |