OLE nesnesi olarak word belgesi açılabiliyor. Ancak benim merak ettiğim husus, delphi'den kod ile word deki ince ayarlar yapılabilir mi, örneğin uygulamanızda richedit bileşenine bir şeyler yazdınız , aşağıdaki kodları nasıl yazarız
1-Word belgesi aç
2-Belgedeki yatay cetvelin değerlerini şu değerlere ayarla
2-Belgedeki dikey cetvel değerlerini şu değerlere ayarla
3-Sağ alta (veya üst de olabilir) sayfa numarası yaz
4-BElgeyi verilen şu adla, şuraya kaydet
5-Kapat
ve benzerleri. Yni bir dosyayı RTF olarak kaydedip, ince ayarları illa word e girerek mi yapmalıyız, kodla çözülmez mi
Word de ince ayarlar ve kayıt nasıl yapılır
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 14
- Kayıt: 02 Oca 2008 04:55
- Konum: İstanbul
s.a.
bu dediğiniz işlemleri wordde makro olarak kaydedin.
sonra bu makroları düzenle dediğiniz zaman size vb kodları gelecektir.
daha sonra bunları delphiye çevirebilirsiniz. kodlar benzer niteliktedir.
kolay gelsin.
bu dediğiniz işlemleri wordde makro olarak kaydedin.
sonra bu makroları düzenle dediğiniz zaman size vb kodları gelecektir.
daha sonra bunları delphiye çevirebilirsiniz. kodlar benzer niteliktedir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: Word de ince ayarlar ve kayıt nasıl yapılır
aslangeri olayı kafadan koparmış asncak open office i unutmayın. ole kullanırsan makinede word olmak zorunda...Mustafa YILMAZ yazdı:OLE nesnesi olarak word belgesi açılabiliyor. Ancak benim merak ettiğim husus, delphi'den kod ile word deki ince ayarlar yapılabilir mi, örneğin uygulamanızda richedit bileşenine bir şeyler yazdınız , aşağıdaki kodları nasıl yazarız
1-Word belgesi aç
2-Belgedeki yatay cetvelin değerlerini şu değerlere ayarla
2-Belgedeki dikey cetvel değerlerini şu değerlere ayarla
3-Sağ alta (veya üst de olabilir) sayfa numarası yaz
4-BElgeyi verilen şu adla, şuraya kaydet
5-Kapat
ve benzerleri. Yni bir dosyayı RTF olarak kaydedip, ince ayarları illa word e girerek mi yapmalıyız, kodla çözülmez mi
bence trichedit yada wptools gibi bir set dene word gibi sonuç elde edersin ve uygulaman bağımsız olur..
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
@aslangeri de bahsetmiş, Word'de macro kaydet diyerek istediğin işlemleri yap, sonra MSWord tarafından üretilen kodları incele. Oluşan kodu Delphi'de kullanabilirsin. Yol gösterici olsun diye bu örnek olarak saydıklarını sırasıyla hazırladım.
- Word2000 veya WordXP PAS dosyasını Delphi IDE kurulu klasörlerden arayıp bulursan içinde ihtiyacın olan CONST tanımlarını bulabilirsin. İhtiyacın olacak olanları da seçip tanımlara ekledim.
- Word2000 veya WordXP PAS dosyasını Delphi IDE kurulu klasörlerden arayıp bulursan içinde ihtiyacın olan CONST tanımlarını bulabilirsin. İhtiyacın olacak olanları da seçip tanımlara ekledim.
Kod: Tümünü seç
Uses ComObj;
procedure TForm1.Button1Click(Sender: TObject);
const
wdPaneNone = $00000000;
wdNormalView = $00000001;
wdOutlineView = $00000002;
wdPrintView = $00000003;
wdSeekCurrentPageHeader = $00000009;
wdSeekCurrentPageFooter = $0000000A;
wdFieldPage = $00000021;
wdFieldNumPages = $0000001A;
wdAlignParagraphCenter = $00000001;
wdSeekMainDocument = $00000000;
wdFormatDocument = $00000000;
Var
Word,
Doc : OleVariant;
nPageNum, nNumPages, nTip : OleVariant;
DosyaAdi, DosyaFormati, KilitDurum, Sifre, SikKullanilanaEkle, WRSifre, ReadOnlyDurum,
TTFEkle, YerelResimKaydi, FormlariKaydet, AOECKarakterKaydet : OleVariant;
begin
Word := CreateOleObject('Word.Application');
//Word.Documents.Open(ExtractFilePath(Application.ExeName)+'Test1.DOC');
Word.Documents.Add; // Template:="Normal", NewTemplate:=False, DocumentType:=0
Doc := Word.ActiveDocument;
Doc.ActiveWindow.Selection.ParagraphFormat.LeftIndent := 60;
Doc.ActiveWindow.Selection.PageSetup.TopMargin := 60;
Try
If Doc.ActiveWindow.View.SplitSpecial <> wdPaneNone Then
begin
Doc.ActiveWindow.Panes(2).Close;
End;
If (Doc.ActiveWindow.ActivePane.View.Type = wdNormalView ) Or
(Doc.ActiveWindow.ActivePane.View.Type = wdOutlineView) Then
begin
Doc.ActiveWindow.ActivePane.View.Type := wdPrintView;
End;
Doc.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader;
If Doc.ActiveWindow.Selection.HeaderFooter.IsHeader = True Then
begin
Doc.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageFooter;
end else begin
Doc.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader;
End;
nPageNum :=wdFieldPage;
nNumPages :=wdFieldNumPages;
nTip := '';
Doc.ActiveWindow.Selection.Fields.Add(Doc.ActiveWindow.Selection.Range, nPageNum, nTip, True);
Doc.ActiveWindow.Selection.TypeText('/');
Doc.ActiveWindow.Selection.Fields.Add(Doc.ActiveWindow.Selection.Range, nNumPages, nTip, True);
Doc.ActiveWindow.Selection.ParagraphFormat.Alignment := wdAlignParagraphCenter;
Doc.ActiveWindow.ActivePane.View.SeekView := wdSeekMainDocument;
DosyaAdi :='Test1.DOC';
DosyaFormati :=wdFormatDocument;
KilitDurum :=False;
Sifre :='';
SikKullanilanaEkle :=True;
WRSifre :='';
ReadOnlyDurum :=False;
TTFEkle :=False;
YerelResimKaydi :=False;
FormlariKaydet :=False;
AOECKarakterKaydet :=False;
Word.ActiveDocument.SaveAs(DosyaAdi, DosyaFormati, KilitDurum, Sifre, SikKullanilanaEkle, WRSifre, ReadOnlyDurum, TTFEkle, YerelResimKaydi, FormlariKaydet, AOECKarakterKaydet);
Except
End;
Word.Visible := True;
//Word.ActiveDocument.Close;
Word := UnAssigned;
end;
-
- Üye
- Mesajlar: 14
- Kayıt: 02 Oca 2008 04:55
- Konum: İstanbul