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

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

StringGrid & mouse [D7, Win2k, WinXP]


Homa_Programer ©   (2005-06-03 09:47:00) 

помогите!
необходимо чтобы по нажатию на правую кнопку мыши в StringGrid-е выделялась ячейка !
не получается у меня... грид выделяется ячейки с опозданием..


Homa_Programer   (2005-06-03 10:58:00) [1]

ага, спасибо
> Pearled   (03.06.05 10:27) [4]

просто

> col1,row1
у меня были в
procedure Tplan.sgMonthMouseMoveтак что я оттуда брал их!!!
ну терь все работает :)
благодарю!!!


Pearled   (2005-06-03 10:27:00) [2]


> memo1.Text:=sgmonth.Cells[col1,row1];

А откуда col1, row1 ? Если нужна текущая ячейка замени на c и r.
А так у себя проверял - все работает..


Homa_Programer   (2005-06-03 10:01:00) [3]

работает как и работало, с опозданием. вот в чем касяк:
нажимаю правой кнопкой на ячейку любую, он пишет ее, затем правой нажимаю на другую, а он пишет в мемо содержание предыдущей ячейки .
вот код:
procedure Tplan.sgMonthMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
var
r: integer;
c: integer;
begin
try
if Button = mbRight then begin
  sgMonth.MouseToCell(X, Y, C, R);
  with sgMonth do
  begin
   if ((Row <> r) or(Col <> c)) then
    if (c<= ColCount-1) and (r<=RowCount-1) then
    begin
    Row := r;
    Col := c;
    end;
  end;//with
end;//if button
except
end;

memo1.Text:=sgmonth.Cells[col1,row1];
end;


Homa_Programer   (2005-06-03 09:52:00) [4]

проверю щас же :)


Antonn   (2005-06-03 09:50:00) [5]

Так?

procedure TForm.StringGridMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
var
 r: integer;
 c: integer;
begin
 try
 if Button = mbRight then begin
StringGrid.MouseToCell(X, Y, C, R);
 with SG_Conn do
 begin
   if ((Row <> r) or(Col <> c)) then
    if (c<= ColCount-1) and (r<=RowCount-1) then
   begin
     Row := r;
     Col := c;
   end;
 end;
 end;
 except
 end;
end;


Наверх

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