Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Деструктор ума
 Аватар для log
22 / 22 / 0
Регистрация: 07.03.2009
Сообщений: 326

Проводник при создании Ole объекта

29.01.2012, 12:45. Показов 2999. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Господа решил модернизировать свою программу.
Смысл ее состоит в том, чтобы из папки, где jpg файлы, грузить их в word. В конце каждого загруженного рисунка в ворде вставляет строку, где написано название файла.
В данной версии путь к этой папке фиксирован в тексте
C++
1
2
3
4
TStringList *b = new TStringList();
  b->Clear();
  b->Sorted = true;
  AnsiString str,Path = "C:\\*.jpg";
Хочу модернизировать программу созданием проводника. Уйти от фиксированной папки, чтобы пользователь мог выбрать любую папку и количество рисунков в ней, чтобы загрузить в ворд файл.

Есть один главный вопрос
Придется ли менять весь код программы? Так как сейчас за счет фиксированной папки, я работаю с ее содержимым как со строками. Если делать проводник, то получается совсем другая программа.
Подскажите пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.01.2012, 12:45
Ответы с готовыми решениями:

Ошибка при создании объекта Circle
HMODULE SquareDLL = LoadLibrary(L"square.dll"); VoidSquare GetClassSquare; GetClassSquare =...

При создании статического объекта получают различные адреса при различных обращениях
Проблема. Описал класс в модуле object.h, там же создал его экземпляр obj. В этом же заголовочном файле в этом же пространстве имён...

Почему закрывается окно объекта OLE при открытии другого объекта?
Добрый день! Есть таблица, одно из полей которой - Поле объекта OLE. При двойном нажатии открывается окно приложения (в данном случае...

23
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
30.01.2012, 20:48
Студворк — интернет-сервис помощи студентам
Вместо вот этого
Цитата Сообщение от log Посмотреть сообщение
str= AnsiString("Рисунок №")+IntToStr(c)+AnsiString(" - ")+b->Strings[i];
вставь вот это
C++
1
str = AnsiString("Ðèñóíîê №")+IntToStr(c)+AnsiString(" - ")+ChangeFileExt(ExtractFileName(b->Strings[i]),"");
1
Деструктор ума
 Аватар для log
22 / 22 / 0
Регистрация: 07.03.2009
Сообщений: 326
30.01.2012, 20:52  [ТС]
C++
1
vVarParagraph.OlePropertyGet("Range").OlePropertyGet("InlineShapes").OleProcedure("AddPicture", (Path.SubString(1,3)+ b->Strings[i]+".jpg").c_str(), false, true);
ругается на эту строчку.
ведь параметр Path не определен
C++
1
[C++ Error] Unit1.cpp(64): E2451 Undefined symbol 'Path'
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
30.01.2012, 20:55
Просто скопируй и вставь
C++
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <utilcls.h>
#include <jpeg.hpp>
#include <sysvari.h>
#include "ComObj.hpp"
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
       TStringList *b = new TStringList();
       b->Clear();
       b->Sorted = true;
 
       OpenPictureDialog1->Options.Clear();
       OpenPictureDialog1->Options << ofFileMustExist << ofHideReadOnly << ofAllowMultiSelect << ofEnableSizing;
 
        if(!OpenPictureDialog1->Execute())return;
        {
          for(int i=0;i<OpenPictureDialog1->Files->Count;++i)
            {
              b->Add(OpenPictureDialog1->Files->Strings[i]);
            }
        }
 
 AnsiString str;
 
 Variant vVarParagraph,Var,Dms,Word;
 Word = CreateOleObject("Word.Application");
 Word.OlePropertySet("Visible", false);
 Variant Doc = Word.OlePropertyGet("Documents");
 Doc.OleProcedure("Add");
 
 if(Doc.OlePropertyGet("Count") != 1)
 {
  MessageBox(0, "Ошибка при создании документов",
                 "Ошибка", MB_OK);
 
  return;
 }
 Dms=Doc.OleFunction("Item",1);
 Dms.OleProcedure("Activate");
 Var=Dms.OlePropertyGet("Paragraphs");
 
 int d = 0,c=0;
 for(int i = 0; i < b->Count;i++)
 {
  d++;
  Var.OleProcedure("Add");
  vVarParagraph=Var.OleFunction("Item",d);
  vVarParagraph.OlePropertyGet("Range").OlePropertyGet("InlineShapes").OleProcedure("AddPicture", b->Strings[i].c_str(), false, true);
  vVarParagraph.OlePropertySet("Alignment",1);
  d++;
  c++;
  str = AnsiString("Рисунок №")+IntToStr(c)+AnsiString(" - ")+ChangeFileExt(ExtractFileName(b->Strings[i]),"");
  Var.OleProcedure("Add");
  vVarParagraph=Var.OleFunction("Item",d);
  vVarParagraph.OlePropertyGet("Range").
               OlePropertySet("Text",str.c_str());
               vVarParagraph.OlePropertySet("Alignment",1);
 }
 
 Word.OlePropertySet("Visible", true);
 
 delete b;
 b = NULL;
 
}
//---------------------------------------------------------------------------
1
Деструктор ума
 Аватар для log
22 / 22 / 0
Регистрация: 07.03.2009
Сообщений: 326
30.01.2012, 21:01  [ТС]
блин ты прав.
я просто вставлял твои строки в свой код
в результате пропустил твою строку
C++
1
vVarParagraph.OlePropertyGet("Range").OlePropertyGet("InlineShapes").OleProcedure("AddPicture", b->Strings[i].c_str(), false, true);
все пашет. все работает
спасибо огромное

Добавлено через 3 минуты
буду разбираться в коде
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.01.2012, 21:01

В экземпляре объекта не задана ссылка на объект при динамическом создании объекта
Выдается ошибка NullReferenceException в private void button2_Click(object sender, EventArgs e) { ...

Ошибка при вставке объекта в поле OLE
Добрый день! Очень нужна помощь с базой данных. Есть следующая база данных (скрин 1 + сам архив с БД). Необходимо сделать так,...

Ошибка при создании объекта. (При изменении цвета заполнения фигуры)
Дано: Adobe Flash CS3 Prof. Требуется программно изменить цвет заполнения нарисованной фигуры, преобразованной в символ. При помощи...

При подключении DLL: Ошибка при создании объекта из компоненты
Создана DLL. При попытке подключения из 1С получаем сообщение: Ошибка при создании объекта из компоненты c:Program FilesMicrosoft...

NPE при создании объекта
Добрый день! Пробую засунуть в Set класс реализующий Runnable. У класса есть конструктор куда передается число и строка. Выбрасывает...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал Материалы для обсуждения с МГСУ · 2026 Рисунки внутри приложенного ворд файла. Что за. . .
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru