![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() не понимаю как...
вот ревально работающая програмаа Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls, Grids ; type TForm1 = class(TForm) StringGrid1: TStringGrid; StringGrid2: TStringGrid; Edit1: TEdit; Button1: TButton; Button2: TButton; BitBtn1: TBitBtn; Button3: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; n,k,i:Integer; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin n:=3; Edit1.Text:=IntToStr(n); StringGrid1.ColCount:=n; StringGrid2.ColCount:=n; end; procedure TForm1.Button1Click(Sender: TObject); begin n:=StrToInt(Edit1.Text); StringGrid1.ColCount:=n; StringGrid2.ColCount:=n; end; procedure TForm1.Button2Click(Sender: TObject); var i,j:integer; s:string; //преобразование массива begin with StringGrid1 do begin for i:=0 to RowCount-1 do begin for j:=0 to Rows[i].Count-1 do begin tag:=StrToIntDef(rows[i][j],0); if (tag mod 2) =0 then begin StringGrid2.Rows[i].Add(rows[i][j]); rows[i][j]:=''; end else s:=s+rows[i][j]+#13#10; end; Rows[i].Text:=s; s:=''; end; end; end; procedure TForm1.Button3Click(Sender: TObject); var i:integer; begin if StringGrid1.Cells[0,0]='' then for i:=0 to n do StringGrid1.Cells[i,0]:=inttostr(random(100)) end; end. |
#2
|
|||
|
|||
![]() Ячейку удалить нельзя (можно очистить).
Удалить можно или строку или колонку. Примерно так : Код:
//Удалить строку ARow function StringGrid_DeleteRow(SG : TStringGrid; ARow : integer) : boolean; Var N1,N2,i : integer; begin Result:=FALSE; if SG<>NIL then begin N1:=ARow; N2:=(SG.RowCount-2); if (SG.RowCount-1)>SG.FixedRows then begin for i:=N1 to N2 do begin SG.Rows[i].Assign(SG.Rows[i+1]); end; SG.Rows[SG.RowCount-1].Clear; SG.RowCount:=SG.RowCount-1; Result:=TRUE; end else begin SG.Rows[SG.FixedRows].Clear; Result:=TRUE; end; end; end; //Удалить колонку ACol function StringGrid_DeleteCol(SG : TStringGrid; ACol : integer) : boolean; Var N1,N2,i : integer; begin Result:=FALSE; if SG<>NIL then begin N1:=ACol; N2:=(SG.ColCount-2); if (SG.ColCount-1)>SG.FixedCols then begin for i:=N1 to N2 do begin SG.Cols[i].Assign(SG.Cols[i+1]); end; SG.Cols[SG.ColCount-1].Clear; SG.ColCount:=SG.ColCount-1; Result:=TRUE; end else begin SG.Cols[SG.FixedCols].Clear; Result:=TRUE; end; end; end; |
#3
|
|||
|
|||
![]() Посмотрите мою программу. я забиваю количество клонок(строка у меня только одна).
Далее0из первой строки мне выводятся элементы во вторую но поскольку их количество совпадает с начальным-а их должно быть в два раза меньше-мне надо убрать половину..... посммотрите картинку-сейчас выложу |