Форум: "Основная";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c