![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Вот тут вот кажется всё просто???
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm1 = class(TForm) str1: TEdit; Button1: TButton; str2: TEdit; str3: TEdit; str4: TEdit; StringGrid1: TStringGrid; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; procedure vgrids; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var begin vGrids(0,'12~12~3~456~23); end; procedure vGrids(j: integer; str: string; a:TStringGrid); var i, si :integer; st:string; begin for i:=1 to Length(str)+1 do begin if (str[i]='~') or (i=Length(str)+1) then begin if j=0 then a.ColCount:= a.ColCount+1; a.Cells[si,0]:=st; st:=''; si:=si+1; end else st:=st+str[i]; end; end; end. |
#2
|
||||
|
||||
![]() Цитата:
Во-вторых не нужно прибавлять единицу к длине строки. UPD. А, всё, я понял зачем прибавляется единица к длине строки - второе моё замечание прошу считать недействительным ![]() Последний раз редактировалось poli-smen, 27.09.2012 в 17:18. |
#3
|
|||
|
|||
![]() su: integer;
а если не прибавить 1 то не получишь последнее значение |
#4
|
||||
|
||||
![]() Цитата:
Код:
si := 0; Цитата:
![]() |
#5
|
||||
|
||||
![]() Ага. Вот ещё здесь ошибка:
Цитата:
Код:
vGrids(0,'12~12~3~456~23', StringGrid1); |
#6
|
|||
|
|||
![]() Поправил процедуру, как вы говорили)))
Смысл от этого не поменялся. implementation {$R *.dfm} Код:
procedure TForm1.Button1Click(Sender: TObject); begin vGrids(1,'jy~~~~~34~',StringGrid1); end; procedure vGrids(j: integer; str: string; a:TStringGrid); var i, si :integer; st:string; begin si:=0; for i:=1 to Length(str)+1 do begin if (str[i]='~') or (i=Length(str)+1) then begin if j=0 then a.ColCount:= a.ColCount+1; a.Cells[si,0]:=st; st:=''; si:=si+1; end else st:=st+str[i]; end; end; end. [Error] Unit1.pas(36): Too many actual parameters((((( |
#7
|
||||
|
||||
![]() Если процедура не объявлена в интерфейсе, то подними ее выше того места где вызываешь.
00110001 00101100 00110110 00110001 00111000 00110000 00110011 00110011 00111001 00111000 00111000 00110111 00110100 00111001 00111000 00111001 00110100 00111000 00110100 00111000 00110010 00110000 00110100 00110101 00111000 00110110 00111000 00110011 00110100 00110011 00110110 00110101 00110110 |
#8
|
|||
|
|||
![]() Я удалил объявление процедуры в шапке, и поставил её ниже процедуры обработки клика. Всё заработало спасибо. Но если процедуру не ставить выше, где её требуеться объявлять и каким образом???
|
#9
|
||||
|
||||
![]() Перед implementation.
Если процедура такая: Код:
procedure A(b: string; c: MyType); var i: Integer; begin ... end; Код:
procedure A(b: string; c: MyType); 00110001 00101100 00110110 00110001 00111000 00110000 00110011 00110011 00111001 00111000 00111000 00110111 00110100 00111001 00111000 00111001 00110100 00111000 00110100 00111000 00110010 00110000 00110100 00110101 00111000 00110110 00111000 00110011 00110100 00110011 00110110 00110101 00110110 Последний раз редактировалось ~TB~, 28.09.2012 в 09:15. |
#10
|
|||
|
|||
![]() >to tiberianss
>Но если процедуру не ставить выше, где её требуеться объявлять и каким образом??? В Вашем первом посте строчки 28 и 39 должны быть одинаковыми. |
#11
|
||||
|
||||
![]() Код:
type TForm1 = class(TForm) Button1: TButton; StringGrid1: TStringGrid; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure vGrids(j: integer; str: string; a:TStringGrid); var i, si :integer; st:string; begin si:=0; for i:=1 to Length(str)+1 do begin if (str[i]='~') or (i=Length(str)+1) then begin if j=0 then a.ColCount:= a.ColCount+1; a.Cells[si,0]:=st; st:=''; si:=si+1; end else st:=st+str[i]; end; end; procedure TForm1.Button1Click(Sender: TObject); begin vGrids(0,'12~12~3~456~23',StringGrid1); end; end. ![]() 11011111 INED Home code VK |