Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как вывести в 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-го столбца...


Наверх

Титульная страница Поиск, карта сайта Написать письмо