Delphi və MS Equation

Hamıya salam… Bu sualın cavabını internetdən axtarıb tapa bilmədiyimdən yazmaq qərarına gəldim.
Delphidə Form1 və Form1-də Button1 var. Button1 kliklənəndə C:\ diskində müəyyən adlı Word faylı yaradılır. a, b və c – tam ədədlərdir və təsadüfi qaydada seçilir. Kod hissəsinə nə yazmalıyam ki, Delphi Word faylını (*.doc və ya *.docx) açsın və ax^2+bx+c=0 formulunu MS Equationun köməyi ilə əl dəymədən yazsın və yaddaşa verib, faylı bağlasın, məsələn, şəkildəki düsturu Word proqramını açmadan ona necə yaza bilərəm?
Şəkil:


Yadda saxlama
Kateqoriya: Proqramlaşdırma . , . Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (8 cavab var)

(14:21, 02/01/2012 ) #5922

Salam. Ən yaxşı üsul deyil, amma vəziyyətdən çıxış yoludur.
ComObj modulu mütləq qoşulmalıdır.

Uses ComObj;

var Word: variant;
begin
Word:=CreateOleObject(‘Word.Application’);
Word.Visible:=true;
Word.Documents.Add;
Word.Selection.Fields.Add(Word.Selection.Range, -1, EmptyParam,false);
Word.Selection.TypeText(‘EQ ‘);
Word.Selection.Font.size := 14;
Word.Selection.TypeText(‘3x\S(‘);
Word.Selection.Font.size := 8;
Word.Selection.TypeText(‘2)’);
Word.Selection.Font.size := 14;
Word.Selection.TypeText(‘-5x+2=0’);
word.Selection.Fields.Update;
Word.ActiveDocument.SaveAs(‘C:\sizinFayl.doc’);
end;

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(22:10, 02/01/2012 ) #5940

Pis kod deyil, ancaq görüntü baxımından bu kodla işləmək alınmayacaq. Birdən inteqral, limit, kəsr, kök və s. lazım olsaydı?! 🙂

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(23:52, 02/01/2012 ) #5958

Mən sənin verdiyin suala cavab verdim 🙂
Daha ətraflı bilmək istəsən, buyur

\A(a;b;c) massiv,
\F(a;b) kəsr, a bölünsün b-ə,
\I(a;b;x+2) bu da sənin inteqralın,
\R(n;a) n-ci dərəcədən kök altında a.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(21:23, 03/01/2012 ) #5989

Sözün düzü bütün interneti ələk-vələk etsəm də, konkret MS Equationda formulu Delphidən necə sənədə yazmaq lazım olduğunu açıqlayan bir resurs tapa bilmədim. Eltən, təklif etdiyin kodu azacıq modifikasiya etdim, bəlkə kiməsə lazım olar, yerləşdirim:

begin
  W:=CreateOleObject('Word.Application');
  W.Visible:=true;
  W.Documents.Add;
  W.Selection.Fields.Add(W.Selection.Range, -1, EmptyParam,false);
  W.Selection.Font.Name:='Times New Roman';
  W.Selection.TypeText('EQ ');
  W.Selection.Font.size := 14;
  W.Selection.TypeText('f\b(x)=3x\S(');
  W.Selection.Font.size := 10;
  W.Selection.TypeText('2; )');
  W.Selection.Font.size := 14;
  W.Selection.TypeText('-5x+2+\F(a;b)\I(a;b;x+2)+\R(n;a)-det\b(\A(a;b;c))');
  W.Selection.Fields.Update;
  W.ActiveDocument.SaveAs('C:\sizinFayl.doc');
end;
Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(22:31, 03/01/2012 ) #5992

Mehman bu ele Equation özüdür də…
Sadəcə olaraq field şəklində əlavə edilib və hələ Equation tərəfindən çevrilməyib.
Üzərinə iki dəfə klik etsən Equation ilə açılacaq və artıq Equation formulu olacaq.

Daha ətraflı başa düşmək üçün aşağıdakıları yerinə yetir
1. MS Word proqramında ctrl+F9 bas.
2. EQ \I(a;b;\f(x;x+1)) sətrini yaz və F9 bas

Bağlamaq üçün Word.Quit(); kodunu yazarsan.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(23:20, 04/01/2012 ) #6028

Sualıma Valeh Ağayevin sayəsində cavab tapdım, makrosdan istifadə etməklə… Kodu tam başa düşmədim, ancaq hər halda işimə yarayacaq:

unit Ust;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, [u]StdCtrls, ComObj[/u];

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var   W,T:Variant; Count,Extend:Integer;
begin
W:=CreateOleObject('Word.Application');
W.Visible:=True;
W.Documents.Add;
T:=W.ActiveDocument.Characters.Count;
W.Selection.Move(1, t);
W.Selection.TypeParagraph;
W.ActiveDocument.Range.InsertAfter('ax^2+bx-c=0');
W.Selection.MoveRight(Count:=13, Extend:=true);
W.Selection.OMaths.Add(W.Selection.Range);
W.Selection.Range.OMaths.BuildUp;
W.Selection.OMaths.Item(1).ParentOMath.Justification:= 3;
end;

end.
Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(00:12, 05/01/2012 ) #6032
begin
f:='ax^2+bx-c+a/b+a_b^c+(_a^b)c+sqrt(a)+√(a&b)+∫_a^b▒c+lim┬(n→∞)⁡〖(1+1/n)^n 〗+max┬(0≤x≤1)⁡〖xe^(-x^2 ) 〗=0'; //burada f - String tipdəndir, bir neçə ifadə də özüm əlavə etdim.
W:=CreateOleObject('Word.Application');
W.Visible:=True;
W.Documents.Add;
W.Selection.Font.Name:='Times New Roman';
W.Selection.Font.Size:=12;
T:=W.ActiveDocument.Characters.Count;
W.Selection.Move(1, t);
W.Selection.TypeParagraph;
W.ActiveDocument.Range.InsertAfter(f);
W.Selection.MoveRight(Count:=Length(f), Extend:=true);
W.Selection.OMaths.Add(W.Selection.Range);
W.Selection.Range.OMaths.BuildUp;
W.Selection.OMaths.Item(1).ParentOMath.Justification:= 3;
end;
Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(00:50, 05/01/2012 ) #6047

Mən bilən, sənin yazdığın kod MS Word 2003 də işə yaramayacaq.
Bunu delphidə yazmaq mütləq deyilsə, makrosları araşdır, daha asan olar.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Bu suala aid öz sualım var:
Sual verin
Bu suala cavab vermək istəyirəm:
Cavab verin

Cavab verin


Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.

Üzvlər üçün giriş

Qeydiyyat

Elan qutusu

Son cavablar və şərhlər

Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (1 gün əvvəl)

E. Hacı cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (2 gün əvvəl)

Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (8 gün əvvəl)

Software Developer cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (8 gün əvvəl)

Triste cavab verdi - Google Adsense vergi (8 gün əvvəl)

E. Hacı cavab verdi - Xif mn kodu (16 gün əvvəl)

Khagrov cavab verdi - Axtardığım mahnını tapa bilmirəm kömək edin (35 gün əvvəl)

E. Hacı cavab verdi - Dünəndən Kompüterlə Twitter/X və Pinterest -ə girə bilmirəm. (42 gün əvvəl)

orkhanrza cavab verdi - AZ9095də bağlama qalıb (47 gün əvvəl)

Ismayil1997 cavab verdi - İndiki dövrdə İngilis dili müəllimliyi ixtisasını seçməyə dəyər? (56 gün əvvəl)

revan orucov cavab verdi - Bakıda evə 100mbps+ internet verən provayder var? (60 gün əvvəl)

E. Hacı cavab verdi - WordPress sistemli saytda Facebook və İnstagram platformalarına özəl target_blank tənzimlənməsi haqqında... (62 gün əvvəl)

Jurnalist cavab verdi - WordPress sistemli saytda Facebook və İnstagram platformalarına özəl target_blank tənzimlənməsi haqqında... (62 gün əvvəl)

asssa1 cavab verdi - Riyazi proqramlar üçün proqram (64 gün əvvəl)

Aleks cavab verdi - İndiki dövrdə İngilis dili müəllimliyi ixtisasını seçməyə dəyər? (70 gün əvvəl)

Software Developer - 615 xal

E. Hacı - 608 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 434 xal

Maqa - 346 xal

Ruslan Butdayev - 328 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

Sistemə daxil olmuş 23289 sualdan 92%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

E-Haci.net istehsalı. © 2010-2024