С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
konsul_81
5 / 5 / 2
Регистрация: 21.03.2010
Сообщений: 46
1

глюк с savedialog-ом

25.05.2010, 14:06. Просмотров 360. Ответов 2
Метки нет (Все метки)

Доброго времени суток!!!
у меня на кнопку сохранить в savedialog повешено выгрузка и сохранение в exel-евский файл,
плюс ко всему, пралельно идет сохранение в тектовый файл в корень каталога программы.
когда вызываешь savedialog выбираешь где сохранить в exel-евский файл, прога начинает орать что тектовый файл не найден.
как savedialog влияет на жележно прописанный путь?
да что говорить вот код.
посмотрите где госяк.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
procedure TForm1.SaveDialog1CanClose(Sender: TObject; var CanClose: Boolean);
 var
E: Variant;
     StringList : TStringList;
     begin
    StringList := TStringList.Create;
     StringList.LoadFromFile('data\archive.DAT'); //проблеммы с этой строкой
StringList.Add(DATA.Text +'|'+ organizacia.text +'|'+ INN.Text +'|'+ modelKKM.Text +'|'+ zavkkm.Text +'|'+ regkkm.Text +'|'+ DATA2.Text +'|'+ ZAM_EKLZ_ZAV.Text +'|'+ ZAM_EKLZ_REG.Text +'|'+ UST_EKLZ_ZAV.Text +'|'+ UST_EKLZ_REG.Text +'|'+ smena.Text +'|'+ SUMMA.Text +'|'+ FIO_ING.Text +'|');
StringList.SaveToFile('data\archive.DAT');//проблеммы строкой тоже
 begin
end;
//------------------------------------------------------------------------------
//короткая схема
 if RadioButton1.Checked then
 begin
 
//------------------------------------------------------------------------------
 // запуск  Excel
    randomize;
    E:=CreateOleObject('Excel.Application');
E.Visible:=False;
//------------------------------------------------------------------------------
 // выбор и открытие книги-шаблона
     if RadioButton3.Checked then
E.WorkBooks.Add(ExtractFileDir(application.ExeName)+'\эталон\эталон_1.xls')
        else
     if RadioButton4.Checked then
E.WorkBooks.Add(ExtractFileDir(application.ExeName)+'\эталон\эталон_2.xls');
//------------------------------------------------------------------------------
//заполнение
 
     E.WorkSheets[3].Cells.Item[6, 1].Value := organizacia.Text;
     E.WorkSheets[2].Cells.Item[16, 3].Value := organizacia.Text;
     E.WorkSheets[1].Cells.Item[10, 2].Value := organizacia.Text;
     E.WorkSheets[1].Cells.Item[25, 1].Value := organizacia.Text;
     E.WorkSheets[1].Cells.Item[25, 6].Value := organizacia.Text;
     E.WorkSheets[1].Cells.Item[32, 6].Value := organizacia.Text;
     E.WorkSheets[3].Cells.Item[12, 2].Value := modelKKM.Text;
       E.WorkSheets[3].Cells.Item[8, 5].Value := INN.Text;
       E.WorkSheets[2].Cells.Item[17, 3].Value := INN.Text;
        E.WorkSheets[3].Cells[19, 5].Value := strtodate(DATA.Text);
        E.WorkSheets[3].Cells[31, 2].Value := strtodate(DATA.Text);
        E.WorkSheets[2].Cells[23, 3].Value := strtodate(DATA.Text);
        E.WorkSheets[2].Cells[11, 1].Value := strtodate(DATA.Text);
         E.WorkSheets[3].Cells[28, 2].Value := strtodate(DATA2.Text);
         E.WorkSheets[3].Cells.Item[13, 5].Value := zavkkm.Text;
         E.WorkSheets[2].Cells.Item[15, 6].Value := zavkkm.Text;
         E.WorkSheets[1].Cells.Item[24, 6].Value := zavkkm.Text;
          E.WorkSheets[3].Cells.Item[14, 5].Value := regkkm.Text;
          E.WorkSheets[2].Cells.Item[18, 4].Value := regkkm.Text;
           E.WorkSheets[3].Cells.Item[74, 5].Value := FIO_ING.Text;
           E.WorkSheets[3].Cells.Item [107, 5].Value := FIO_ING.Text;
           E.WorkSheets[2].Cells.Item [27, 4].Value := FIO_ING.Text;
           E.WorkSheets[1].Cells.Item [34, 1].Value := FIO_ING.Text;
            E.WorkSheets[3].Cells.Item[29, 2].Value := ZAM_EKLZ_ZAV.Text;
            E.WorkSheets[2].Cells.Item[21, 3].Value := ZAM_EKLZ_ZAV.Text;
            E.WorkSheets[1].Cells.Item[23, 7].Value := ZAM_EKLZ_ZAV.Text;
             E.WorkSheets[3].Cells.Item[30, 2].Value := UST_EKLZ_ZAV.Text;
             E.WorkSheets[2].Cells.Item[22, 3].Value := UST_EKLZ_ZAV.Text;
            E.WorkSheets[3].Cells.Item[29, 4].Value := ZAM_EKLZ_REG.Text;
            E.WorkSheets[2].Cells.Item[21, 5].Value := ZAM_EKLZ_REG.Text;
           E.WorkSheets[3].Cells.Item[30, 4].Value := UST_EKLZ_REG.Text;
           E.WorkSheets[2].Cells.Item[22, 5].Value := UST_EKLZ_REG.Text;
          E.WorkSheets[3].Cells.Item[38, 5].Value := smena.Text;
         E.WorkSheets[3].Cells.Item[38, 3].Value := smena2.Text;
        E.WorkSheets[3].Cells.Item[43, 5].Value := StrToFloat(SUMMA.Text);
       E.WorkSheets[3].Cells.Item[43, 3].Value := StrToFloat(SUMMA2.Text);
      E.WorkSheets[3].Cells.Item[44, 5].Value := SUMM_PROP1.Text;
     E.WorkSheets[3].Cells.Item[44, 3].Value := SUMM_PROP2.Text;
//------------------------------------------------------------------------------
// сохранение
E.ActiveWorkbook.SaveAs(FileName:=SaveDialog1.FileName);
 
//------------------------------------------------------------------------------
 
 // выбор вывода на печать
 if CheckBox1.Checked then
  begin
       if Form5.CheckBox4.Checked then
         E.WorkSheets[3].PrintOut(Copies:=Form5.Edit3.Text);
            if Form5.CheckBox3.Checked then
              E.WorkSheets[2].PrintOut(Copies:=Form5.Edit2.Text);
            if Form5.CheckBox2.Checked then
            E.WorkSheets[1].PrintOut(Copies:=Form5.Edit1.Text);
              end;
 
  E.DisplayAlerts := False;  // отключение предупреждения о не сохраненой книге
  E.Quit;                  // выход из Excel
  end
//------------------------------------------------------------------------------
// длинная схема
       else
 if RadioButton2.Checked then
begin
 //------------------------------------------------------------------------------
 // запуск  Excel
    randomize;
    E:=CreateOleObject('Excel.Application');
E.Visible:=False;
//------------------------------------------------------------------------------
 // выбор и открытие книги-шаблона
     if RadioButton3.Checked then
E.WorkBooks.Add(ExtractFileDir(application.ExeName)+'\эталон\эталон_1.xls')
        else
     if RadioButton4.Checked then
E.WorkBooks.Add(ExtractFileDir(application.ExeName)+'\эталон\эталон_2.xls');
//------------------------------------------------------------------------------
//заполнение
 
     E.WorkSheets[3].Cells.Item[6, 1].Value := organizacia.Text;
     E.WorkSheets[2].Cells.Item[16, 3].Value := organizacia.Text;
     E.WorkSheets[1].Cells.Item[10, 2].Value := organizacia.Text;
     E.WorkSheets[1].Cells.Item[25, 1].Value := organizacia.Text;
     E.WorkSheets[1].Cells.Item[25, 6].Value := organizacia.Text;
     E.WorkSheets[1].Cells.Item[32, 5].Value := organizacia.Text;
      E.WorkSheets[3].Cells.Item[12, 2].Value := modelKKM.Text;
       E.WorkSheets[3].Cells.Item[8, 5].Value := INN.Text;
       E.WorkSheets[2].Cells.Item[17, 3].Value := INN.Text;
        E.WorkSheets[3].Cells[19, 5].Value := strtodate(DATA.Text);
        E.WorkSheets[3].Cells[31, 2].Value := ('"_____"________________20_____г.');
        E.WorkSheets[2].Cells[23, 3].Value := ('"_____"________________20_____г.');
        E.WorkSheets[2].Cells[11, 1].Value := strtodate(DATA.Text);
         E.WorkSheets[3].Cells[28, 2].Value := strtodate(DATA2.Text);
         E.WorkSheets[3].Cells.Item[13, 5].Value := zavkkm.Text;
         E.WorkSheets[2].Cells.Item[15, 6].Value := zavkkm.Text;
         E.WorkSheets[1].Cells.Item[24, 6].Value := zavkkm.Text;
          E.WorkSheets[3].Cells.Item[14, 5].Value := regkkm.Text;
          E.WorkSheets[2].Cells.Item[18, 4].Value := regkkm.Text;
           E.WorkSheets[3].Cells.Item[74, 5].Value := FIO_ING.Text;
           E.WorkSheets[2].Cells.Item [27, 4].Value := FIO_ING.Text;
            E.WorkSheets[3].Cells.Item[29, 2].Value := ZAM_EKLZ_ZAV.Text;
            E.WorkSheets[2].Cells.Item[21, 3].Value := ZAM_EKLZ_ZAV.Text;
            E.WorkSheets[1].Cells.Item[23, 7].Value := ZAM_EKLZ_ZAV.Text;
            E.WorkSheets[3].Cells.Item[29, 4].Value := ZAM_EKLZ_REG.Text;
            E.WorkSheets[2].Cells.Item[21, 5].Value := ZAM_EKLZ_REG.Text;
         E.WorkSheets[3].Cells.Item[38, 3].Value := smena.Text;
       E.WorkSheets[3].Cells.Item[43, 3].Value :=StrToFloat(SUMMA.Text);
     E.WorkSheets[3].Cells.Item[44, 3].Value := SUMM_PROP1.Text;
//------------------------------------------------------------------------------
// сохранение
 
if CheckBox1.Checked then
  begin
       if Form5.CheckBox4.Checked then
         E.WorkSheets[3].PrintOut(Copies:=Form5.Edit3.Text);
            if Form5.CheckBox3.Checked then
              E.WorkSheets[2].PrintOut(Copies:=Form5.Edit2.Text);
            if Form5.CheckBox2.Checked then
            E.WorkSheets[1].PrintOut(Copies:=Form5.Edit1.Text);
              end;
//------------------------------------------------------------------------------
 
  E.DisplayAlerts := False;  // отключение предупреждения о не сохраненой книге
  E.Quit;                  // выход из Excel
       end;
 end;
помогите разобраться пожалуйста!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2010, 14:06
Ответы с готовыми решениями:

savedialog
if (SaveDialog.Execute()) then beFileName.Text := SaveDialog.FileName; ...

Savedialog
Как сделать так, чтобы при использовании компоненты savedialog, по в какой файл...

SaveDialog
Здравствуйте. Подскажите пожалуйста у меня на форме расположены stringgrid,...

SaveDialog
Здравствуйте ВСЕ ! Проблема следующая. 1) При первом запуске SaveDialog...

SaveDialog
Привет, это снова нуб :D Собственно опять нубский вопрос - как сохранить файл с...

2
arni
907 / 872 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
25.05.2010, 14:20 2
Версия:
у вас применяются относительные пути.
после отработки SaveDialog есть вариант, что текущий каталог в вашем приложении смещается, из-за чего относительные пути в пересчете на абсолютные начинают показывать совсем в другое место.
0
konsul_81
5 / 5 / 2
Регистрация: 21.03.2010
Сообщений: 46
25.05.2010, 19:28  [ТС] 3
решил проблему вот так

Delphi
1
StringList.SaveToFile(ExtractFilePath(Application.ExeName)+'data\archive.DAT');
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2010, 19:28

SaveDialog
Привет. У меня есть файл f, содержимое которого я загрузил в memo(с помощью...

SaveDialog
Мужики, подскажите как предложить имя файла в SaveDialog1.FileName по первым...

SaveDialog
Как изменить код : if OpenDialog1.FileName<>'' Then ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru