Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.28;
Скачать: CL | DM;

Вниз

StringGrid   Найти похожие ветки 

 
Михайлов Антон ©   (2003-04-16 20:16) [0]

Человеки, подскажите как сделать в стринггриде вырезание, копирование и вставку в выделенной ячейки???
Очень срочно нужно...
Заранее спасибо!


 
Skier ©   (2003-04-16 20:23) [1]

Или я чего не понял или ответ очень простой :
StringGrid.Options := StringGrid.Options + [goEditing, goAlwaysShowEditor];


 
Михайлов Антон ©   (2003-04-16 20:26) [2]

Неее... это уже сделано... нужно по нажатию на кнопку "вставить" ,на панели управления, вставлялся текст из буфера обмена в выделенную ячейку
Так же с вырезанием и копированием....


 
Skier ©   (2003-04-16 20:31) [3]

>Михайлов Антон

> ... нужно по нажатию на кнопку "вставить" ,на панели управления,
>

Какой панели управления ? Твоего приложения ? Или ?


 
Михайлов Антон ©   (2003-04-16 20:34) [4]

да! у мя есть стринггрид и панель с кнопками...
Кнопки: вырезать, копировать, вставить...
Я хочу сделать чтобы они работали к выделенной ячейке


 
Babay ©   (2003-04-17 07:40) [5]

я делал это вот так
может не лучшее решение но работает и можно даже в ексель и обратно

procedure stgPasteFromClipboard(stg:TStringGrid;
Acol,Arow //адрес ячейки куда вставлять
:Integer);
Var m:TMemo;
c,r:Integer;
sl:TStringList;
begin
m:=TMemo.Create(stg);m.Visible:=False;
m.Parent:=stg;m.WordWrap:=False;
sl:=TStringList.Create;
Try
m.PasteFromClipboard;
stgStringsToStringGrid(stg,m.Lines,chr(VK_Tab),Acol,Arow);
finally
sl.Free;
m.Free
end;
end;

Procedure stgStringsToStringGrid(stg:TStringGrid;s:TStrings;sep:Char;Acol,Arow:Integer);

//Разбирает таблицу находящуюся в S где столбики разделены символом Sep и укладывает ее в грид начиная с ячейкиACol, ARow

Var sl:TStringList;
c,r:Integer;
begin
sl:=TStringList.Create;
for r:=0 to s.Count-1 do begin
sl.Clear;
GetWordList(s.Strings[r],sep,sl);
For c:=0 to sl.count-1 do
stg.Cells[c+Acol,r+aRow]:=sl.Strings[c];
end;
sl.Free;
end;

procedure stgCopyToClipboard(stg:TStringGrid;AcolLeft,ArowTop,AcolRight,ArowBottom:Integer);

Var m:TMemo;
begin
m:=TMemo.Create(stg);m.Visible:=False;
m.Parent:=stg;m.WordWrap:=False;
stgStringGridToStrings(stg,m.Lines,chr(VK_Tab),AcolLeft,ArowTop,AcolRight,ArowBottom);
m.SelectAll;
m.CopyToClipboard;
m.Free
end;

Procedure stgStringGridToStrings(stg:TStringGrid;s:TStrings;sep:Char;
AcolLeft,ArowTop,AcolRight,ArowBottom:Integer);

// ложит в S данные из Stg начиная с ячейки AColLeft,ArowTop по ячейку AcolRight,ArowBottom
//разделяя столбики символом Sep

Var i,j:Integer;
st:String;
begin
s.Clear;
For i:=ARowTop to ARowBottom do begin
st:="";
for j:=AcolLeft to AColRight do
st:=st+stg.Cells[j,i]+sep;
Delete(st,Length(st),1);
s.Add(st)
end;
end;

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


 
Babay ©   (2003-04-17 07:45) [6]

Да...
Вот посмотрел на свой код. Коментарии старые...
я ТАВ ввел жестко теперь, но переделать ежели че не сложно



Страницы: 1 вся ветка

Текущий архив: 2003.04.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
3-91153
Askik
2003-04-09 11:59
2003.04.28
Как отлавливать в чем ошибка неудачного подключения к серверу?


1-91367
Seledka
2003-04-16 11:16
2003.04.28
Blob


14-91462
Style
2003-04-03 14:50
2003.04.28
Money...Money...Money ?


1-91378
sashas
2003-04-16 12:29
2003.04.28
Помоготе разобраться в иерархии.


14-91542
Cyborg!
2003-04-11 14:42
2003.04.28
TreeView аля ICQ