Форум: "Прочее";
Текущий архив: 2009.11.22;
Скачать: [xml.tar.bz2];
ВнизКомпонент, выглядящий как создать таблицу в office 2007 Найти похожие ветки
← →
Дмитрий Белькевич (2009-09-22 19:12) [0]Подскажите готовый, линиво очередной TVelosiped кодить.
← →
TIF © (2009-09-22 19:40) [1]> выглядящий как "создать таблицу"
Не понял глубины мысли
Имеется в виду компонент-таблица "а-ля Office 2007"? Тогда это к TMS, например...
Или сабж о другом?
← →
Дмитрий Белькевич (2009-09-22 20:13) [2]Сложно без шотов объяснять, да. Имеется в виду: нажали на вставка - таблица - появилось окно "вставка таблицы", и такой контрол с квадратами и выбором разбивки таблицы - 1х1, 1х2 и т.д. Вот такой вот контрол нужон.
Может кто видел готовый?
← →
TIF © (2009-09-22 20:57) [3]> контрол с квадратами и выбором разбивки таблицы - 1х1, 1х2
> и т.д.
http://pinpic.ru/img/6692.html
Оно? :)
Готовый компонент - TAdvOfficeTableSelector
http://tmssoftware.com/site/advofficegraphics.asp
Цена конечно обалденная...
← →
Дмитрий Белькевич (2009-09-22 21:13) [4]О, я я, оно :)
http://pinpic.ru/img/6692.html
Спасибо, вот только отдельную компоненту бы: TAdvOfficeTableSelector входит в состав TMS Advanced Office Graphics Control Pack.
Как то дороговато, конечно. Учитывая, что больше ничего не нужно...
← →
test © (2009-09-22 21:39) [5]Дмитрий Белькевич (22.09.09 21:13) [4]
А что сильно интерфейсы отличаются?
var
Excel: Variant;
begin
try
Excel := CreateOleObject("Excel.Application");
(* тут много кода *)
finally
Excel.Quit;
Excel := Unassigned;
end;
end;
Такое не отработает?
← →
Дмитрий Белькевич (2009-09-22 21:48) [6]>А что сильно интерфейсы отличаются?
Так мне какбэ в своём софте такое же нужно :)
Непосредственно с таблицами и эксцелом оно никак не связано.
← →
TIF © (2009-09-22 23:31) [7]> Как то дороговато, конечно. Учитывая, что больше ничего
> не нужно...
Можно, конечно, эм... скачать исходный код, посмотреть реализацию, сделать у себя аналогично :) Или вообще скачать пиратскую версию (главное чтобы никто не догадался...) :D
Правда я сразу после этого подумал: а почему бы не решить задачу только с помощью стандартных компонентов Delphi?
На ум сразу пришёл TStringGrid.
Вот что у меня с ним получилось:procedure TForm1.StringGridMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
Col, Row: Integer;
begin
StringGrid.MouseToCell(X, Y, Col, Row);
if (Col>=1) and (Row>=1)
then
begin
StringGrid.Cols[0].Clear;
StringGrid.Rows[0].Clear;
StringGrid.Cells[Col, 0]:=IntToStr(Col);
StringGrid.Cells[0, Row]:=IntToStr(Row);
StringGrid.Hint:="Таблица: "+inttostr(StringGrid.Selection.Right)+" × "+inttostr(StringGrid.Selection.Bottom);
end;
end;
procedure TForm1.StringGridMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
GridRect: TGridRect;
Col, Row: integer;
begin
StringGrid.MouseToCell(X, Y, Col, Row);
if (Col>=1) and (Row>=1)
then
begin
GridRect.Left:=1;
GridRect.Top:=1;
GridRect.Right:=Col;
GridRect.Bottom:=Row;
StringGrid.Selection:=GridRect;
end;
end;
procedure TForm1.StringGridMouseLeave(Sender: TObject);
begin
StringGrid.Cols[0].Clear;
StringGrid.rows[0].Clear;
StringGrid.Cells[StringGrid.Selection.Right, 0]:=IntToStr(StringGrid.Selection.Right);
StringGrid.Cells[0, StringGrid.Selection.Bottom]:=IntToStr(StringGrid.Selection.Bottom);
end;
procedure TForm1.StringGridClick(Sender: TObject);
var
GridRect: TGridRect;
begin
if (StringGrid.Selection.Top>=1) or (StringGrid.Selection.Left>=1)
then
begin
StringGrid.Col:=1;
StringGrid.Row:=1;
GridRect.Left:=1;
GridRect.Top:=1;
GridRect.Right:=StringGrid.Col;
GridRect.Bottom:=StringGrid.Row;
StringGrid.Selection:=GridRect;
{
Button.SetFocus; //Сброс фокусировки со StringGrid-а
}
end;
end;
procedure TForm1.StringGridDblClick(Sender: TObject);
begin
{
Button.SetFocus; //Сброс фокусировки со StringGrid-а
}
end;
В двух словах: при щелчке или выделении ячеек не с первой (верхний левый угол, ячейка [1,1]), устанавливаем "правильное" выделение, при перемещении мыши показываем номера "активных" строки и столбца, размер таблицы выводим в Hint-е
Скриншот:
http://pinpic.ru/img/6718.html
"Пощупать вживую" (скомпилированный exe) можно тут:
http://cid-958487bcc33eedba.skydrive.live.com/browse.aspx/Delphi/OfficeInsertTableSelector
Это, конечно, не "а-ля Office 2007", но по-моему получилось вполне прилично :) Само собой, надо ещё сделать появление/скрытие StringGrid-а (можно скрывать по одинарному щелчку, а можно и по двойному, кстати)...
PS: очень удивился, увидев такой красивый StringGrid под Windows 7. В Vista такого не помню, почему-то... В XP, конечно, он пострашнее будет :(
← →
Дмитрий Белькевич (2009-09-22 23:57) [8]>Можно, конечно, эм... скачать исходный код, посмотреть реализацию,
Неэтично, не говоря, что непрактично - обвязки может быть куча.
>Или вообще скачать пиратскую версию
Код 100% чистый, зачем начинать...
Спасибо за код, посчупаем...
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.11.22;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c