![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
При выполненииэтого кода выдаёт ошибку 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); |