![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вывести в Label содерживое ячейки 2-го столбца... [D7, 95/98]
fast2 © (2006-06-30 11:41:00)текущего рядка? (StringGrid)
koha (2006-06-30 16:42:00) [1]Пример простого навигатора по StringGrad размером в 2 колонки
по нажатии кнопки TForm2.UpBtnClick выделенные ячейки перемещаются
на 1 позицию вверх, а при нажатии TForm2.DownBtnClick выделенные ячейки перемещаются на 1 позицию в низ.
{------------------------------------ Down ------------------------------------}
procedure TForm2.DownBtnClick(Sender: TObject);
Var i: Integer;
ItmSG: Array[0..1] of string;
RecSG: TGridRect;
begin
RecSG:=EdStrGrid.Selection;
If RecSG.Bottom <> EdStrGrid.RowCount-1 then begin
ItmSG[RecSG.Left]:=EdStrGrid.Cells[RecSG.Left,RecSG.Bottom+1];
ItmSg[RecSG.Right]:=EdStrGrid.Cells[RecSG.Right,RecSG.Bottom+1];
for i:=0 to (RecSG.Bottom-RecSG.Top) do begin
EdStrGrid.Cells[RecSG.Left,RecSG.Bottom+1-i]:=EdStrGrid.Cells[RecSG.Left,RecSG.Bottom-i];
EdStrGrid.Cells[RecSG.Right,RecSG.Bottom+1-i]:=EdStrGrid.Cells[RecSG.Right,RecSG.Bottom-i];
end;
EdStrGrid.Cells[RecSG.Left,RecSG.Top]:=ItmSG[RecSG.Left];
EdStrGrid.Cells[RecSG.Right,RecSG.Top]:=ItmSG[RecSG.Right];
RecSG.Top:=RecSG.Top+1;
RecSG.Bottom:=RecSG.Bottom+1;
EdStrGrid.Selection:=RecSG;
end;
end;
{------------------------------------- Up -------------------------------------}
procedure TForm2.UpBtnClick(Sender: TObject);
Var i: integer;
ItmSG: Array[0..1] of string;
RecSG: TGridRect;
begin
RecSG:=EdStrGrid.Selection;
If RecSG.Top <> 1 then begin
ItmSG[RecSG.Left]:=EdStrGrid.Cells[RecSG.Left,RecSG.Top-1];
ItmSg[RecSG.Right]:=EdStrGrid.Cells[RecSG.Right,RecSG.Top-1];
for i:=0 to (RecSG.Bottom-RecSG.Top) do begin
EdStrGrid.Cells[RecSG.Left,RecSG.Top-1+i]:=EdStrGrid.Cells[RecSG.Left,RecSG.Top+i];
EdStrGrid.Cells[RecSG.Right,RecSG.Top-1+i]:=EdStrGrid.Cells[RecSG.Right,RecSG.Top+i];
end;
EdStrGrid.Cells[RecSG.Left,RecSG.Bottom]:=ItmSG[RecSG.Left];
EdStrGrid.Cells[RecSG.Right,RecSG.Bottom]:=ItmSG[RecSG.Right];
RecSG.Top:=RecSG.Top-1;
RecSG.Bottom:=RecSG.Bottom-1;
EdStrGrid.Selection:=RecSG;
end;
end;
koha (2006-06-30 16:34:00) [2]> MBo
Нет не отменили, но в TGridRect можно сохранить границы всех выделенных
ячеек, а затем вообще вывести скопировать целый блок ячеек от верхнего левого до нижнего правого
Loginov Dmitry (2006-06-30 16:26:00) [3]> koha (30.06.06 16:08) [4]
А что, свойства Row и Col уже отменили?
koha (2006-06-30 16:26:00) [4]Можно также вывести содержимое выделенной ячейки :
procedure TForm1.BitBtn2Click(Sender: TObject);
var RecSG: TGridRect;
begin
RecSG:=StringGrid1.Selection;
ShowMessage(StringGrid1.Cells[RecSG.Left,RecSG.Top]);
end;
Если будет выделлено несколько ячеек, то будет выведена на экран первая выделеная от верхнего левого угла.
MBo (2006-06-30 16:14:00) [5]>koha
Стоит изучить свойства TStringGrid
koha (2006-06-30 16:08:00) [6]если необходимо узнать номер выделенной ячейки то можно сделать так:
procedure TForm1.BitBtn2Click(Sender: TObject);
var RecSG: TGridRect;
begin
RecSG:=StringGrid1.Selection;
ShowMessage(IntToStr(RecSG.Left)+' '+IntToStr(RecSG.Top));
end;
fast2 (2006-06-30 12:06:00) [7]>ЮЮ © (30.06.06 12:01) [2]
Спасибо!
ЮЮ (2006-06-30 12:01:00) [8]if (StrringGrid1.Row > -1) and (StrringGrid1.ColCount > 1) then
Label1.Caption := StrringGrid1.Cells[1, StrringGrid1.Row]
MBo (2006-06-30 11:57:00) [9]конкретизируй проблему - не знаешь, как сделать что именно:
1. вывести в Label
2. узнать текущий рядок
3. получить данные из 2-го столбца...