wizard 0 Share Posted April 10, 2006 Sziasztok! OleContainer segítségével betöltök 1 doksit. A doksi be is jön szépen, csak a menüimet összefésüli a Word menüjével. + ehhez még hozzájön a Word eszköztára is. Erre pedig semmi szükségem, mert nagyon zavaró. Hogy lehet ezeket eltüntetni? A kód: unit U_Ole_w97; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, StdCtrls, Menus, OleCtnrs; type TForm1 = class(TForm) MainMenu1: TMainMenu; mnuFile: TMenuItem; mnuOpen: TMenuItem; OleContainer1: TOleContainer; procedure mnuOpenClick(Sender: TObject); private procedure CloseDoc; public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.CloseDoc; begin if OleContainer1.State=osEmpty then Exit; OleContainer1.Close; OleContainer1.DestroyObject; OleContainer1.AutoActivate:=aaManual; end; procedure TForm1.mnuOpenClick(Sender: TObject); var filenev:string; begin filenev:='1.doc'; if OleContainer1.State<>osEmpty then CloseDoc; OleContainer1.AutoActivate:=aaGetFocus; OleContainer1.CreateObjectFromFile(GetCurrentDir+'\'+filenev,false); OleContainer1.DoVerb(OleContainer1.PrimaryVerb); end; end. Kaptam 1 tippet az eszköztár eltüntetéséhez, de elszállt vele a progi. A hibaüzenet: Project POlecont.exe raised exception class EIntfCastError with message 'Interface not supported'. Process stopped. Use Step or Run to continue. A tipp: uses Word97, Office97, ActiveX; procedure TForm1.mnuOpenClick(Sender: TObject); var filenev:string; cbs :CommandBars; cb :CommandBar; ObjEnum :IEnumVariant; TmpObj :OleVariant; RetVal :Cardinal; begin filenev:='1.doc'; if OleContainer1.State<>osEmpty then CloseDoc; OleContainer1.AutoActivate:=aaGetFocus; OleContainer1.CreateObjectFromFile(GetCurrentDir+'\'+filenev,false); OleContainer1.DoVerb(OleContainer1.PrimaryVerb); cbs:=IUnknown(OleContainer1.OleObject.CommandBars) as CommandBars; ObjEnum:=cbs._NewEnum as IEnumVariant; while ObjEnum.Next(1,TmpObj,RetVal)=S_OK do begin cb:=IUnknown(TmpObj) as CommandBar; try cb.Set_Visible(FALSE); except end; end; end; Link to comment Share on other sites More sharing options...
arpsoft 12 Share Posted April 10, 2006 A menüket nem fogod tudni kiirtani, az eszköztárat talán. Ez van, ha az ember OLE konténert használ. Link to comment Share on other sites More sharing options...
wizard 0 Author Share Posted April 10, 2006 Ez a régi változatom: (Benne van 1 scrollboxban, hogy lehessen görgetni.) procedure TForm1.FormActivate(Sender: TObject); begin Olecontainer1.sizemode:=smAutoSize; end; procedure TForm1.Button1Click(Sender: TObject); var filenev:string; begin try filenev:='1.doc'; OleContainer1.CreateObjectFromFile(GetCurrentDir+'\'+filenev,false); except showmessage ('Valahol hiba van!') end; end; Se újabb menük, se eszköztár. De a következõ gondok voltak vele: 1. lassú betöltés 2. szimbólumokat nem jelenítette meg. 3. egyenletszerkesztõ képeit rossz helyen jelenítette meg. A Word-ös változatnál nincs semmi ilyen gond, csak az az eszköztár ne lenne... + a menümbe is "belerondít." Link to comment Share on other sites More sharing options...
wizard 0 Author Share Posted April 14, 2006 Próbálgattam a menü OnDrawItem-jét. Ha pl ennek az eljárásába csak annyit írtam be, hogy height:=100; lazán eltüntette az 1. menüpontomat. Ezzel esetleg nem lehetne a Word menüit is megpiszkálni? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now