الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

فتح الوورد انطلاقا من نموذج

مغلق
بدأه rm31 في 4 سبتمبر 2007 · 6 رد · 1,543 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة اله وبركاته

أقوم حاليا بتطوير برنامج خاص بتسيير المشاريع وأحتجت لفتح الوورد . إستعملت الكود التالي بعد إضافة

ComOpj

في

Uses

procedure TForm1.Button1Click(Sender: TObject);
var
  word : variant;
begin
  try
	word := CreateOleObject('Word.Application');
  except
	ShowMessage('Word n''a pas pu être lancé!');
	Exit;
  end;
  word.Visible := True;
  word.Documents.Add;
  end;

وهو يعمل جيدا والحمد لله. ما أحتاجه حاليا هو فتح الوورد إنطلاقا من نموذج مخزن بالحاسوب

بعد البحث وجدت هذا الكود

Template:='C:\Program Files\Microsoft Office\Modèles\Rapports\Rapport professionnel.dot'; 
	AsModel:=False; 
	DocWord:=WordApplication1.Documents.Add(Template,AsModel);

حيث يضاف في المتغيرات مايلي

var  
   Template, 
   AsModel: OleVariant;

لكن لا يعمل مع الاجرائية السابقة

أرجو أن أكون وفقت في عرض الفكرة

عن ‏ ‏أسامة بن زيد قال: ‏قال رسول الله - ‏صلى الله عليه وسلم -: ( من صنع إليه معروف فقال لفاعله جزاك الله خيرا فقد أبلغ في الثناء ) .

رواه الترمذي و قال ‏هذا ‏ ‏حديث حسن جيد غريب.

و صححه العلامة الألباني في صحيح الترغيب

www.sahab.net

#2
var
  Form1: TForm1;
	WordApp: Variant;

implementation

uses ComObj; 

{$R *.dfm}


function Tform1.Replace_W(yourNewStr,yourOldStr:string):Boolean;
begin
WordApp.Selection.Find.ClearFormatting;
WordApp.Selection.Find.Text := yourOldStr;
WordApp.Selection.Find.Replacement.Text := yourNewStr;
WordApp.Selection.Find.Forward := True;
WordApp.Selection.Find.Wrap := 1; {wdFindContinue}
WordApp.Selection.Find.Format := False;
WordApp.Selection.Find.MatchCase := False;
WordApp.Selection.Find.MatchWholeWord := False;
WordApp.Selection.Find.MatchWildcards := True;
WordApp.Selection.Find.MatchSoundsLike := False;
WordApp.Selection.Find.MatchAllWordForms := False;
WordApp.Selection.Find.Execute(Replace := 2); {wdReplaceAll}
{Or as alternative:  WordApp.Selection.Find.Execute(Replace := 1); for one replace}
//WordApp.ActiveDocument.SaveAs(yourNewDocFile);
Result:=true;
end;

ثم في أي زر

   WordApp := CreateOleObject('Word.Application');
   WordApp.Visible := True;
   WordApp.Documents.Open(test.doc');
   Replace_W('yourNewStr','yourOldStr');
   WordApp.ActiveDocument.SaveAs('Test1.doc');
1
#3

بارك الله فيك وجزاك الله خيرا

هذا الجواب كما كنت أبحث عنه (جعله الله في ميزان حسناتك)

فقط الكود السابق لم يعمل حتى غيرت

function Tform1.Replace_W(yourNewStr,yourOldStr:string):Boolean;

فصار

function Replace_W(yourNewStr,yourOldStr:string):Boolean;

سؤالي الآن هو

حول السطر التالي

WordApp.ActiveDocument.SaveAs('C:\Data\Test1.doc');

لا أريده أن يقوم بالحفظ مباشرة لأنه اذا كان هذا الملف موجود فسيقوم باستبداله دون استعلام

كيف يمكنني وضع كود يسألك قبل الاستبدال(الحفظ) في حالة ما كان ملف بنفس الاسم ؟

وشكرا جزيلا مرة أخرى

عن ‏ ‏أسامة بن زيد قال: ‏قال رسول الله - ‏صلى الله عليه وسلم -: ( من صنع إليه معروف فقال لفاعله جزاك الله خيرا فقد أبلغ في الثناء ) .

رواه الترمذي و قال ‏هذا ‏ ‏حديث حسن جيد غريب.

و صححه العلامة الألباني في صحيح الترغيب

www.sahab.net

#4

اذا لاحظت أخي يمكنك وضع أسم الملف اللذي تريده عند الحفظ

في البداية يقوم البرنامج بفتح ملف Test

ثم يحفظ بملف Test1

#5

بسم الله الرحمن الرحيم

ياأخي ما رأيك أن تجرب مكون EKRTF الذي يمكنك من طباعة تقارير نوعية انطلاقا من قوالب RTF. أم إذا كنت تريد استعمال قوالب DOC (وورد) يمكنك استعمال المكون ARWordReport

للقوالب XLS (إكسل) يمكنك استعمال المكون ARExcelReport

1141068814.gif

It doesn't matter how slow you go, as long as you don't stop

#6

DelphiCoder لو اضفت له رابط احسن، فربما لا يعرف من اين يحصل عليها

http://www.vector-ski.com/reports/download.htm

d4baa0.gif
#7

EK RTF report components

http://ekrtf.code.net.ru/

d4baa0.gif

هذا الموضوع مغلق.

مواضيع مشابهة