![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вставка строки в ячейку Grid по нажатию кнопки [D6, Win2k]
Spooky © (2002-07-12 10:10:00)Помогите решить проблему.
Есть Grid, не важно какой (если надо, я подстроюсь) и есть кнопка. Мы находимся в режиме редактирования ячейки, нажимаем кнопку и там где был курсор должна вставиться определенная строка.
Я знаю, что можно на нажатие кнопки поставить
PostMessage(Prof.Handle, WM_CHAR, Word("р"), 0);
НО! При нажатии на кнопку мы автоматически выходим из режима редактирования и ... текст то в ячейку вставляется, но совсем не туда, где был курсор, а в начало или конец (в зависимости от настроек).
Spooky (2002-07-12 13:42:00) [1]Спасибо народ!
MBo (2002-07-12 11:13:00) [2]type
TXGrid=class(TStringGrid);
...
Var
EDPos:integer;
IsEditing:boolean;
procedure TForm1.Button1Click(Sender: TObject);
var dwStyle:DWord;
begin
with StringGrid1 do
Cells[Col,Row]:=Copy(Cells[Col,Row],1,EdPos)+"qq"+
Copy(Cells[Col,Row],EdPos+1,Length(Cells[Col,Row]));
end;
procedure TForm1.StringGrid1Exit(Sender: TObject);
begin
if IsEditing then begin
EdPos:=TXGrid(StringGrid1).inplaceeditor.selstart;
caption:=inttostr(edpos);
end;
IsEditing:=False;
end;
procedure TForm1.StringGrid1GetEditText(Sender: TObject; ACol,
ARow: Integer; var Value: String);
begin
IsEditing:=True;
end;
Yuri-7 (2002-07-12 10:56:00) [3]Для режима редактирования, точнее будет
SG.Cells[SG.Col,SG.Row]:=SG.Cells[SG.Col,SG.Row]+"jjjjj";
Yuri-7 (2002-07-12 10:53:00) [4]SG.Cells[SG.Col,SG.Row]:="jjjjj";
still (2002-07-12 10:44:00) [5]Делай это на нажатие не кнопки, а, например, панели (она не принимает фокус). Раздичными бордерами на MouseDown и MouseUP имитируй нажатие кнопки, на OnClick делай PostMessage.
ВСЕ OK!
BAY (2002-07-12 10:34:00) [6]DataSet.Edit;
<Пишем куда надо>
DataSet.Post;
Spooky (2002-07-12 10:32:00) [7]Вообще то без DataSet, у меня просто Grid, не DB.
А что ты имеешь в виду "пиши в DataSet"?
BAY (2002-07-12 10:29:00) [8]У тебя Grid связанный с DataSet?
Если да то и пиши в DataSet.