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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.07.2009, 22:17   #1
fitc
Пользователь
 
Регистрация: 10.07.2009
Сообщений: 15
По умолчанию несколько вопросов

Я работаю с Delphi недавно, так что не судите строго за вопросы
На данном этапе возникли вопросы:
1) как открыть или сохранить из/в папки/у проекта не указывая полного пути от харда?
открываю _.dot, сохраняю в _.doc.
2) как перемещать курсор на другую страницу в вордовском документе?
в книге В.Корнякова не нашел(
3) как применить компонент progressbar к функции?
fitc вне форума
Старый 10.07.2009, 22:22   #2
RNT
Пользователь
 
Аватар для RNT
 
Регистрация: 15.09.2008
Сообщений: 59
По умолчанию

Просто укажи название файла без пути и он сохранится в папку с программой
RNT вне форума
Старый 10.07.2009, 22:27   #3
fitc
Пользователь
 
Регистрация: 10.07.2009
Сообщений: 15
По умолчанию

делал так, почему то не помогает(

Работает только так:
Код:
Doc:=WordApp.Documents.Open('c:\ooo.dot');
Так не пашет:
Код:
Doc:=WordApp.Documents.Open('ooo.dot');
П.С. Естественно в файле проекта открываемый файл лежит

Последний раз редактировалось Stilet; 13.07.2009 в 10:59.
fitc вне форума
Старый 10.07.2009, 22:33   #4
RNT
Пользователь
 
Аватар для RNT
 
Регистрация: 15.09.2008
Сообщений: 59
По умолчанию

надо показывать исходник , откуда мне знать , что у вас не работает

WordApp -это переменная какого типа ? Покажите больше

Последний раз редактировалось Stilet; 13.07.2009 в 11:01.
RNT вне форума
Старый 10.07.2009, 22:40   #5
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

Цитата:
Сообщение от fitc Посмотреть сообщение
Работает только так:
Doc:=WordApp.Documents.Open('c:\ooo .dot');
Так не пашет:
Doc:=WordApp.Documents.Open('ooo.do t');
П.С. Естественно в файле проекта открываемый файл лежит
Код:
Doc:=WordApp.Documents.Open(Extractfilepath(application.exename)+'ooo.dot');
Возможно понадобится слеш(\) перед 'ooo.dot' , писал от руки.
Lime вне форума
Старый 10.07.2009, 22:41   #6
fitc
Пользователь
 
Регистрация: 10.07.2009
Сообщений: 15
По умолчанию

ну надо так надо:
Код:
unit word1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,ComObj, StdCtrls, ComCtrls;
type

  ObjParam = record
    Nname : string;
    Ccount : double;
  end;
  TForm1 = class(TForm)
    Button1: TButton;
    ProgressBar1: TProgressBar;
    procedure Button1Click(Sender: TObject);
    //function CloseWord:boolean;
  private
    { Private declarations }
  public
    { Public declarations }
//-- Îáúÿâëåíèå ìàññèâà òèïà ObjParam
  ObjRecords: array[0..1] of ObjParam;
end;
function FindAndInsert(W:variant;findText,ReplacementText:string):boolean;
var
  Form1: TForm1;
  WordApp,Doc:Variant;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
 var
  s:string; //-- Ñòðîêîâàÿ ïåðåìåííàÿ, ïðåäíàçíà÷åííàÿ äëÿ õðàíåíèÿ ÷èñëà ñ ïëâàþùåé òî÷êîé
  i:integer; //-- Ïåðåìåííàÿ-ñ÷åò÷èê
 begin
//-- Îáíóëèòü îêíî ïðîãðåññà
  ProgressBar1.Position := 0;
//-- Ïîïûòêà ñîçäàíèÿ äîêóìåíòà òèïà Word
  try
   WordApp:=CreateOleObject('Word.Application');
//-- Åñëè íåóäà÷à  - âûâåñòè ñîîáùåíèå 'Ïîõîæå, ÷òî Word íå óñòàíîâëåí' è âûéòè
  except
   ShowMessage('Ïîõîæå, ÷òî Word íå óñòàíîâëåí');
   exit;
  end;
//-- Çàïèñûâàåì â ñòðóêòóðó äàííûå
  for i := 0 to 1 do
  begin
   ObjRecords[i].Nname:='Ýòî òåñòîâîå  ñîîáùåíèå';
   ObjRecords[i].Ccount:=13.56;
  end;
//-- Ðàáîòàåì ñ çàêðûòûì äîêóìåíòîì
  WordApp.Visible:=false;
//-- Îòêðûâàåì øàáëîí äîêóìåíòà
  Doc:=WordApp.Documents.Open('c:\ooo2.dot');
//-- Îïåðàöèè ñî ñäâèãîì êóðñîðà è çàïèñüþ
  WordApp.Selection.MoveRight(3,1, false);
  //WordApp.Selection.MoveRight(12,18,false);
  WordApp.Selection.Move(10,3);
  for i := 0 to 1 do
  begin
   WordApp.Selection.TypeText(ObjRecords[i].Nname);
   WordApp.Selection.Move(12,1);
   s:=FloatToStr(ObjRecords[i].CCount);
   WordApp.Selection.TypeText(s);
   WordApp.Selection.Move(10,1);
   //WordApp.Selection.Move(12,1);
  end;
//-- Îêíî ïðîãðåññà çàïîëíåíî íà 30%
  ProgressBar1.Position:=30;
//-- Ïåðåõîä íà çàïèñü â êîëîíòèòóë
  WordApp.ActiveWindow.ActivePane.View.SeekView := 10;
  FindAndInsert(WordApp,'Óñòðîéñòâî','!!!!!!!!!!');
//-- Çàïèñü òåêñòà â êîëîíòèòóë
  WordApp.Selection.Move(10,1);
  WordApp.Selection.Move(9,6);
  WordApp.ActiveWindow.Selection.Text := 'Òåêñò â êîëîíòèòóë(òåñò)';
  //FindAndInsert(WordApp,'Óñòðîéñòâî','!!!!!!!!!!');
//-- Îêíî ïðîãðåññà çàïîëíåíî íà 70%
  ProgressBar1.Position:=70;
//-- Ñîõðàíåíèå äîêóìåíòà
  WordApp.ActiveDocument.SaveAs('c:\aa.doc');
//-- Ïðîâåðêà - ñîõðàíèëñÿ ëè äîêóìåíò
  if WordApp.ActiveDocument.Saved then begin
//-- Îêíî ïðîãðåññà çàïîëíåíî íà 100%
              ProgressBar1.Position := 100;
              messagebox(handle,'Äîêóìåíò ñîõðàíåí! (aa.doc)','Âíèìàíèå!',0);
  end;
  if not WordApp.ActiveDocument.Saved then begin
              messagebox(handle,'Äîêóìåíò íå ñîõðàíåí!','Âíèìàíèå!',0);
  end;
//-- Çàêðûòèå äîêóìåíòà
  Doc.Close;
//-- Îáíóëèòü îêíî ïðîãðåññà
  ProgressBar1.Position := 0;
end;

function FindAndInsert(W:variant;findText,ReplacementText:string):boolean;
 const wdReplaceAll=2;
begin
 W.Selection.Find.Text:=FindText;
 W.Selection.Find.Replacement.Text:=ReplacementText;
 FindAndInsert:=W.Selection.Find.Execute(Replace:=wdReplaceAll);
end;

end.
П.С.: извините комменты в абракадабру превратились(

Последний раз редактировалось Stilet; 13.07.2009 в 11:02.
fitc вне форума
Старый 10.07.2009, 22:42   #7
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

Цитата:
Возможно понадобится слеш(\) перед 'ooo.dot' , писал от руки.
не, не понадобится=) ExtractFilePath вместе со слэшем заключающим даёт строку=)
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума
Старый 10.07.2009, 22:43   #8
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

Цитата:
Сообщение от goblinyara Посмотреть сообщение
не, не понадобится=) ExtractFilePath вместе со слэшем заключающим даёт строку=)
Есть 2 похожие функции , а я всегда забываю каторая из них без слеша.
Lime вне форума
Старый 10.07.2009, 22:45   #9
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

ExtractFileDIR дайт без слэша, а ExtractFilePath со слэшем
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума
Старый 10.07.2009, 22:48   #10
RNT
Пользователь
 
Аватар для RNT
 
Регистрация: 15.09.2008
Сообщений: 59
По умолчанию

Код:
3) как применить компонент progressbar к функции?
Возможно , вам нужно применить его к циклу ?
RNT вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько вопросов pix_l Общие вопросы Delphi 1 29.03.2009 22:26
Несколько вопросов Зубоскалик Общие вопросы Delphi 14 20.11.2008 14:28
несколько вопросов по RichEdit TaTT DoGG Компоненты Delphi 4 27.05.2008 10:57
Несколько Вопросов Дорст Общие вопросы Delphi 3 12.11.2007 09:18