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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2011, 15:00   #1
Tenebor
Пользователь
 
Аватар для Tenebor
 
Регистрация: 07.03.2011
Сообщений: 19
Вопрос Проблемы StringGrid-> OnsetEdittext

Добрый день господа. Всех с празником Праздник-праздником, а дела не ждут.
Такая ситуация:
На форме имею:
1) Кнопки "Виход" и т.д.
2) StringGrid

в обработчике собития StringGrid -> OnsetEdittext
procedure TForm2.StringGrid1SetEditText(Sende r: TObject; ACol,ARow: Integer; const Value: String);
begin
z:=stringgrid1.Cells[ACol,Arow];
ACol1:=StringGrid1.Col;
ARow1:=StringGrid1.Row;
if z<>''then Q2;
end;
Процедура Q2 имеет дела с динамическими массивами

Такой вопрос: Как завершить автоматически редактирование ячейки StringGrid ?

Потому как при нажатии кнопки "выход" невнимательный "пользователь" может не заметить что находится в режиме редактирование ячейки, тоесть, ввел в ячейку число и курсор там и остался мегать, хотя эффект редактирование уже пошло в Q2 и нажимает "выход"
При нажатии "Виход " проблем нет, проэкт при это работает, есть проблемы при повторной загрузки этой формы пишет ошибку, видно что та ячейка в Stringgrid активная.



Кнопка "Выход"
procedure TForm2.SpeedButton3Click(Sender: TObject);
begin
if prov=true then begin
mastype:=nil;
Form2.image1.Picture:=nil;
A3:=NIL;
A2:=Nil;
Form2.Memo1.Clear;
Form2.Edit1.Clear;
Form2.Edit2.Clear;
Form2.Edit3.Clear;
Prov:=false;
end;
Form2.Close;
end;

Пробывал обновить
Form2.Refresh;
Form2.StringGrid1.Refresh;
все бесполезно
Меня не интересует, почему «нет», меня интересует, что нужно сделать для того, чтобы было «да»!

Последний раз редактировалось Tenebor; 09.05.2011 в 15:07.
Tenebor вне форума Ответить с цитированием
Старый 09.05.2011, 16:46   #2
Tenebor
Пользователь
 
Аватар для Tenebor
 
Регистрация: 07.03.2011
Сообщений: 19
По умолчанию

Вот нашел способ:

Переносим форму в Availabel forms
в кнопке запуска формы
Form2:=TForm2.Create(self);
Form2.ShowModal;

на выходе из формы
Form2.Close;

Все как языком слизует с формы ! Правда мне не очень нравится каждый раз так форму запускать. Хоть задачу дефактум решил, может кто чего еще порекомендует ?
Меня не интересует, почему «нет», меня интересует, что нужно сделать для того, чтобы было «да»!
Tenebor вне форума Ответить с цитированием
Старый 09.05.2011, 21:28   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

попробуй установить в гриде selection(для этого понадобится создать запись tgridrect ) на нетекущую ячейку
phomm вне форума Ответить с цитированием
Старый 09.05.2011, 22:32   #4
Tenebor
Пользователь
 
Аватар для Tenebor
 
Регистрация: 07.03.2011
Сообщений: 19
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
попробуй установить в гриде selection(для этого понадобится создать запись tgridrect ) на нетекущую ячейку
type TGridRect = record
case Integer of
0: (Left, Top, Right, Bottom: Longint);
1: (TopLeft, BottomRight: TGridCoord);
end;

property Selection: TGridRect;
----------------------------------------------------------------
Указанная операция выделения нескольких ячеек мышкой окажется невозможной, если опция goEditing (отвечающая за возможность ввода в ячейку с клавиатуры) будет равна True. Это значит, что для того чтобы иметь возможность и выделять несколько ячеек, и делать ввод с клавиатуры в ячейку, нужно поочерёдно, в нужные моменты подключать или удалять из множества Optons опцию goEditing.


Используется для выдиления группы ячеек, а мне нужно убрать курсор(автоматически) с ячейки таблицы, после ввода в нее данных. Грубо говоря выйти из режима редактировать автоматически, допустим что бы курсор стал на Edit или на любое таксторое поле.


Может я чего не понял ? но кажется это не тот случай ?
Меня не интересует, почему «нет», меня интересует, что нужно сделать для того, чтобы было «да»!
Tenebor вне форума Ответить с цитированием
Старый 10.05.2011, 09:31   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

TstringGrid F1 Methods showEditor
Цитата:
Displays the inplace editor when the grid enters edit mode.
Есть и другие методы See Also
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 10.05.2011 в 09:33.
evg_m вне форума Ответить с цитированием
Старый 10.05.2011, 10:39   #6
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

я некогда делал так для переключения ячейки (обычно же ячейка 0,0 неактивная) : grid.selection := tgridrect(rect(0,0,0,0));
но соглашусь, hideeditor, showeditor, editormode именно для данной задачи что надо )
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringGrid ВасяСВВ C++ Builder 4 31.03.2011 23:25
stringgrid+колесо мыши=>stringgrid.onclick aalleexxaa Общие вопросы Delphi 5 16.02.2011 16:58
StringGrid zmey31313 Помощь студентам 1 28.03.2010 15:18
StringGrid, Excel проблемы artemavd Общие вопросы Delphi 8 28.11.2008 19:37