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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2014, 13:55   #1
Nightway
Пользователь
 
Регистрация: 18.05.2013
Сообщений: 57
По умолчанию Сохранение графика в файл.

Как сохранить график Chart и таблицу stringgrid в файлы?
Nightway вне форума Ответить с цитированием
Старый 10.04.2014, 14:29   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

http://www.google.com.ua/search?q=Ch...23.D4gMco0JOsA
http://www.google.com.ua/search?q=St...51.Suin2QOB6yY
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.04.2014, 14:36   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

сохранить stringgrid - копать на тему "работа с файлами" (100 способов, годится любой, всё зависит от уровня знаний и конкретной задачи)
сохранить Chart - есть подозрение, что содержимое самого Chart'а сохранять не нужно, а нужно "перерисовать" его после заполнения stringgrid'а или иного "источника". Если же Chart - динамически создаваемый, то тут сложнее. Но нужно сохранять не его содержимое, а список исходных данных. Ну а если нужно просто картинку сохранить, то Аватар уже поискал за вас в Google.

Последний раз редактировалось Sibedir; 10.04.2014 в 14:40.
Sibedir вне форума Ответить с цитированием
Старый 10.04.2014, 21:32   #4
Nightway
Пользователь
 
Регистрация: 18.05.2013
Сообщений: 57
По умолчанию

в общем такая ошибка вот такой код
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    Button1: TButton;
    StringGrid1: TStringGrid;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }

    function GetExcelFileName: String;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses
  ComObj;

const
  EXCEL_FILE_EXT = '.xls';

function TForm1.GetExcelFileName: String;
begin
  Result := ExtractFilePath(Application.ExeName) + Edit1.Text;

  if LowerCase(ExtractFileExt(Result)) <> EXCEL_FILE_EXT then
    Result := Result + EXCEL_FILE_EXT;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 ExcelApp, Sheet: variant;
 Col, Row: Word;
begin
  ExcelApp := CreateOleObject('Excel.Application');
  try
    ExcelApp.Visible := false;

    ExcelApp.Workbooks.Add;
    Sheet := ExcelApp.ActiveWorkbook.Worksheets[1];

    for Col := 0 to StringGrid1.ColCount - 1 do
      for Row := 0 to StringGrid1.RowCount - 1 do
        Sheet.Cells[Row + 1, Col + 1] := StringGrid1.Cells[Col, Row];

    ExcelApp.ActiveWorkbook.SaveAs(GetExcelFileName);

    ShowMessage('Ok!');
  finally
    ExcelApp.Application.Quit;
    ExcelApp := unassigned;
  end;
end;

end.
но возникает ошибка ss (2014-04-10 at 09.26.55).jpg
как быть?
Nightway вне форума Ответить с цитированием
Старый 10.04.2014, 22:28   #5
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

Код:
как быть?
Для начала почитать макулатуру на тему "Правильное объявление процедур и функций". В ошибках первое слово после двоеточия пробей в переводчике гугл.
XE5 вне форума Ответить с цитированием
Старый 11.04.2014, 08:51   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

простите, а что не так?
скопировал себе приватную функцию в отдельный проект.
всё работает.

Только не могу понять, почему код функции на скриншоте не соответствует код в сообщении!!

p.s. телепатирую, в том коде, который показан с ошибкой на скриншоте забыли сделать объявление функции в классе:
Цитата:
Код:
type
  TForm1 = class(TForm)
    Button1: TButton;
    StringGrid1: TStringGrid;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }

    function GetExcelFileName: String;
  public
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.04.2014, 13:12   #7
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

Просто код выше, это код, найденный, предположим в интернете, а скриншот ниже, это попытка запилить код выше в свой проект. Со всеми вытекающими.
XE5 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение в файл Toshibo Паскаль, Turbo Pascal, PascalABC.NET 2 05.12.2013 15:20
Цикл,сохранение результатов в файл,построение по циклу графика,вывод данных из файла в таблицу(C++Builder6 оконные приложения) Demenis Помощь студентам 0 06.07.2012 23:15
Сохранение в файл Ant1Player PHP 4 31.03.2009 16:33
Сохранение в файл Македонский Общие вопросы Delphi 4 05.09.2007 15:04
Сохранение в файл *.*С Noor Общие вопросы C/C++ 6 08.01.2007 22:44