Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 15:55   #1
postaveche
Пользователь
 
Регистрация: 30.08.2010
Сообщений: 77
По умолчанию StringGrid - onDBLClick

Подскажите как реализовать чтоб при двойном щелчке на определенную ячейку у меня открывали другая форма для выбора из нее данных чтоб подставить их в эту ячейку.

узнал координаты ячейки

Код:
procedure TForm11.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
StringGrid1.MouseToCell(X, Y, Col, Row);
end;
Подскажите как написать чтоб при двойном щелчке на ячейки первой колонки открывалось одна форма

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

пробовал так но не получается

if (StringGrid1.Cells[1,Row] = StringGrid1.Cells[Col,Row]) then
Form13.ShowModal;
postaveche вне форума Ответить с цитированием
Старый 19.12.2010, 18:29   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Опиши OnDblClick
Код:
procedure TForm1.StringGrid1DblClick(Sender: TObject);
var g:TGridCoord;pnt:TPoint;
begin
 pnt:=StringGrid1.ScreenToClient(Mouse.CursorPos);
 g:=StringGrid1.MouseCoord(pnt.X,pnt.Y);
 form2.show;
 form2.Caption:=IntToStr(g.X)+' '+IntToStr(g.y);
end;
переменка g содержит координаты клетки, по которой совершен двойной клик.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.12.2010, 19:31   #3
postaveche
Пользователь
 
Регистрация: 30.08.2010
Сообщений: 77
По умолчанию

ну это ты определил тоже самое ... координаты ячейки но мне нужно другое

тоесть если кликнет по ячейки 1 1 к примеру, чтоб открывалась форма... а если по другой ячейки ничего не происходило, ну или что открывалась другая форма
postaveche вне форума Ответить с цитированием
Старый 19.12.2010, 20:49   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Странный вопрос...
Код:
if (g.x=1)and(g.y=1) then чет делаемж
if (g.x=1)and(g.y=2) then чет делаем ещеж
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.12.2010, 21:24   #5
postaveche
Пользователь
 
Регистрация: 30.08.2010
Сообщений: 77
По умолчанию

реализовал это действие так

Код:
if (StringGrid1.Cols[0] = StringGrid1.Cols[g.X]) then
 begin
 Form15.ShowModal;
 end;
 if (StringGrid1.Cols[1] = StringGrid1.Cols[g.X]) then
 begin
 Form15.ShowModal;
 end;
но возникла еще одна загвоздка

как передать эти параметры в Form15 чтоб при выборе от туда данных их вставляла в эти ячейки по которым я кликал

Код:
Form11.Stringgrid1.Cells[0,1] := DBGridEh1.Fields[1].AsString;
Form11.Stringgrid1.Cells[1,1] := DBGridEh1.Fields[2].AsString;
Form11.Stringgrid1.Cells[2,1] := DBGridEh1.Fields[3].AsString;
close;
если так то в первый ряд вставляет но мне надо вот так

Код:
Form11.Stringgrid1.Cells[0,g.Y] := DBGridEh1.Fields[1].AsString;
Form11.Stringgrid1.Cells[1,g.Y] := DBGridEh1.Fields[2].AsString;
Form11.Stringgrid1.Cells[2,g.Y] := DBGridEh1.Fields[3].AsString;
close;
И еще вопросик ... как задать DisplayFormat для колонки Стринггрида

Последний раз редактировалось postaveche; 19.12.2010 в 21:29.
postaveche вне форума Ответить с цитированием
Старый 19.12.2010, 23:17   #6
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

По теме. Как определить ячейку :
Код:
procedure TForm1.StringGrid1DblClick(Sender: TObject);
begin
if (StringGrid1.Row=2) and (StringGrid1.Col=2) then
//Label1.Caption:='Good' else
//Label1.Caption:='Bad '+IntToStr(StringGrid1.Row)+'  '+IntToStr(StringGrid1.Col);
Form2.Show;
end;
asmodey1 вне форума Ответить с цитированием
Старый 20.12.2010, 10:50   #7
postaveche
Пользователь
 
Регистрация: 30.08.2010
Сообщений: 77
По умолчанию

это не то ... помогите разобраться как как передать координаты в другую форму что б потом можно было в эти координаты вставить данные
postaveche вне форума Ответить с цитированием
Старый 20.12.2010, 11:15   #8
postaveche
Пользователь
 
Регистрация: 30.08.2010
Сообщений: 77
По умолчанию

всё разобрался ... определил g x y как глобальные и всё получилось!!!
postaveche вне форума Ответить с цитированием
Старый 20.12.2010, 17:34   #9
postaveche
Пользователь
 
Регистрация: 30.08.2010
Сообщений: 77
По умолчанию

кто подскажет как задать displayformat для ячейки Stringgrid
postaveche вне форума Ответить с цитированием
Старый 16.10.2014, 17:30   #10
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Напишу сюда, чтоб(, возможно,) мелким вопросом не мусорить в темах, тем более что вопрос как раз подходит под название темы.

Проблема вот какая. Есть StringGrid, колонки и строки которого вылезают за края видимой области. Есть обработчик события OnDblClick для этой таблицы. Есть для него же OnClick.
И вот сама проблема: если я хочу сделать DblClick в колонке, когда 1-я колонка за краем экрана, то уже после первого клика, не дав мне даже успеть сделать второй, таблица "съезжает" к первой (ACol=0) колонке. Почему? Может ли это быть связано с тем, что в событии OnClick я обращаюсь к содержимому 1-й колонки? Если да - как бороться со "сдвигом"? Если нет - в чём ещё может быть причина?
-------------------------------------------------------------
Обнаружилась и ещё одна проблема: прокрутка колеса мыши обрабатывается и в OnClick таблицы?? Что за новость? Как "обойти"? "Клик" как бы происходит в том месте, над которым расположен курсор мышки при прокручивании колеса.

Последний раз редактировалось Ship_1; 16.10.2014 в 18:19.
Ship_1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringGrid MAZADA Помощь студентам 3 31.05.2011 15:35
StringGrid serj-07 Общие вопросы Delphi 12 25.05.2010 17:43
StringGrid zmey31313 Помощь студентам 1 28.03.2010 15:18
StringGrid Chudo4258 Помощь студентам 1 17.03.2009 09:24
stringgrid UROKSAN Общие вопросы Delphi 1 08.04.2008 13:28