8.3 Alkalmazások közötti kapcsolatok

Hasonló dokumentumok
Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

3.2. Az alkalmazások ablaka

munkafüzet open eseményéhez

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows7 operációs rendszer és Internet Explorer 8-es verziójú böngésző esetén

Táblázatok. Táblázatok beszúrása. Cellák kijelölése

ClicXoft programtálca Leírás

8.4 Többszálú alkalmazások készítése

Makrók használata az Excelben - Makróhibák kezelése, biztonságos jelszavak generálása

Oktatási anyag Excel kezdő

CGS Civil 3D Extensions 2012 telepítése

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával Útmutató 2010.

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

ServiceTray program Leírás

Ugráló gomb oktatási segédlet Ugráló gomb

Tájékoztató. Használható segédeszköz: -

ECDL képzés tematika. Operáció rendszer ECDL tanfolyam

Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával

Képek és grafikák használata

Állomány (fájl) = összetartozó adathalmaz, program, melyet a számítógép egyetlen egységként kezel.

ContractTray program Leírás

Programozási alapismeretek (M1,M2)

Ismerkedés az új felülettel

Oktatási segédanyag. Weboldalszerkesztési gyakorlatok

Netlock Kft. által kibocsátott elektronikus aláírás telepítése Windows XP SP3 Internet Explorer 8 böngészőbe

8.5. Súgórendszer készítése Delphi alkalmazásokhoz

DOKUMENTUMOK TÖMEGES LETÖLTÉSE ÉTDR-BŐL

Hetedik témakör kiegészítés:

HASZNÁLATI ÚTMUTATÓ DOLGOZÓK IMPORTÁLÁSA KULCS BÉR PROGRAMBA AZ ONLINE MUNKAIDŐ NYILVÁNTARTÓ RENDSZERBŐL. Budapest, november 08.

DebitTray program Leírás

SEGÉDLET ADATKEZELÉS MS EXCEL-BEN. Tároljuk az adatokat Excel munkalapon. Megjegyzés: A feladatokat MS Office Excel ban oldottuk meg.

VISUAL BASIC ALAPISMERETEK

Az alábbiakban szeretnénk segítséget nyújtani Önnek a CIB Internet Bankból történő nyomtatáshoz szükséges böngésző beállítások végrehajtásában.

VARIO Face 2.0 Felhasználói kézikönyv

Diagram létrehozása. 1. ábra Minta a diagramkészítéshez

AZ N-WARE KFT. ÁLTAL ELEKTRONIKUSAN ALÁÍRT PDF DOKUMENTUMOK HITELESSÉGÉNEK ELLENŐRZÉSE VERZIÓ SZÁM: 1.1 KELT:

9. óra operációs rendszerek. Grafikus operációs rendszer

Feladatok megoldásai

Microsoft Excel 2010

ReszlAd fájl, kitöltési útmutató:

Bevezetés a táblázatok használatába és az Excel program

Bevezetés a QGIS program használatába Összeálította dr. Siki Zoltán

ivms-4200 kliensszoftver

A LOGO MOTION TANÍTÁSA


MARKETING ELEMZÉS TERVEZÉS PROGRAM ISMERTETİ

Szövegszerkesztés alapok WORD Formázások

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán

Gyári alkatrészek rendelése modul

Rövid leírás a Make Your Mark szoftver használatához

17. Többdokumentumos alkalmazások készítése..3 A többdokumentumos felület...3. A program elkészítése...27

Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

VarioFace dokumenta cio

A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows 7 operációs rendszer és Internet Explorer 9 verziójú böngésző esetén

91. MP költséghelyek felvitele, 94. MP mozgástípus konfigurálása

Választó lekérdezés létrehozása

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

A Microsoft OFFICE. EXCEL táblázatkezelő. program alapjai as verzió használatával

Táblázatkezelés 2. - Adatbevitel, szerkesztés, formázás ADATBEVITEL. a., Begépelés

1. A Windows programok telepítése

Segédanyag a WORD használatához

Microsec Zrt. által kibocsátott elektronikus aláírás telepítése Windows 7 (x86/x64) Internet Explorer 9 (32 bites) böngészőbe

Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció

Invitel levelezés címek esetén

Az MS Excel táblázatkezelés modul részletes tematika listája

Molnár Mátyás. Bevezetés a PowerPoint 2010 használatába. Csak a lényeg érthetően!

TABULÁTOROK TÁBLÁZATOK KÉSZÍTÉSE. A táblázatok készítésének lehetőségei:

Táblázatkezelés Excel XP-vel. Tanmenet

AZ N-WARE KFT. ÁLTAL ELEKTRONIKUSAN ALÁÍRT PDF DOKUMENTUMOK HITELESSÉGÉNEK ELLENŐRZÉSE VERZIÓ SZÁM: 1.3 KELT:

E-Freight beállítási segédlet

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Levelezés és Shared IMAP beállítás Outlook Express-ben

1. Bevezetés. összeállítása ( ) majd a Lekérdezés futtatása ( ) nyomógombot kell megnyomni (2. ábra).

Tárgyfelvétel előtti órarendi nézet (órarend tervező) a Neptun HWEB-en

Egyéni párbeszédpanel Excelben

Lapműveletek. Indítsuk el az Excel programot és töröljük ki a Munka1 nevű munkalapot!

Johanyák Zsolt Csaba: Grafikus felület programozása. Copyright 2008 Johanyák Zsolt Csaba

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára

18. Szövegszerkesztők

Tartalomjegyzék. Windows XP alapokon

"Egységes erdélyi felnőttképzés Kárpát-medencei hálózatban" JAVA ALAPÚ WEBPROGRAMOZÁS. M6 Modul: A DOM Modell

Pénzintézetek jelentése a pénzforgalmi jelzőszám változásáról

Bejelentkezés. Gépelje be felhasználó nevét és jelszavát. Ha nem emlékszik az azonosítókra lépjen kapcsolatba ügyfélszolgálatunkkal.

Minőségellenőrzési kérdőív kitöltő program Felhasználói kézikönyv

Diagramok/grafikonok használata a 2003-as verzióban

Párhuzamos (fordított) szövegek többcélú felhasználása Három fő terület: 1. A szöveg előkészítése (mindhárom esetben):

C#---Access adatbáziskezelési gyakorlat

Tervez2 Monor gyakorló leírása

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

Kifizetések kezelése. 1 Kifizetési dátumok megadása pénzügyi kódokhoz

Készítsünk programot amelyik valóban a munkalapon felhasznált

Excel III. Haladó ismeretek

Microsoft Word előadás. Bevezetés az informatikába I.

Bizonylatok felvitele mindig a gazdasági eseménnyel kezdődik, majd ezután attól függően jelennek meg dinamikusan a további adatmezők.

Haladó irodai számítógépes képzés tematika

Operációs rendszerek. Tanmenet

(ArcCatalog, ArcMap)

5.6.3 Laborgyakorlat: Windows rendszerleíró adatbázis biztonsági mentése és visszaállítása

Nem gyári alkatrészek raktári betárolása modul

Átírás:

8.3 Alkalmazások közötti kapcsolatok 1. Vágólapnéző Clipboard 2. OLE-konténer használata OLECont 3. A Word elérése OLE automatizmussal WordAuto 4. Az Excel és az OLE automatizmus ExcelAuto 5. A Word elérése OLEServerként WordServer 6. Az Excel használata OLEServerként ExcelServer 1

Készítsünk programot, amely egy Image, illetve egy Edit komponensbe másolja a vágólap tartalmát, attól függően, hogy mi van a vágólapon! (Clipboard) Az alkalmazás ablaka mindössze négy építőelemet tartalmaz (két nyomógombot, egy képvezérlőt és egy szövegmezőt): Ahhoz, hogy a vágólapot használjuk, be kell építeni a clipbrd modult a programunkba: uses clipbrd; Ha mozgatjuk az egeret az ablakon a vágólap tartalmának megfelelően aktivizálhatók a lehívó gombok: procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); // Mi van a vágólapon Button1.Enabled:=Clipboard.HasFormat(CF_PICTURE) or Clipboard.HasFormat(CF_BITMAP) or Clipboard.HasFormat(CF_METAFILEPICT); Button2.Enabled:=Clipboard.HasFormat(CF_TEXT); A szöveget az Edit1 vezérlőbe másoljuk: procedure TForm1.Button2Click(Sender: TObject); Edit1.Text:=ClipBoard.AsText; A képet az Image1 vezérlőbe töltjük: procedure TForm1.Button1Click(Sender: TObject); with Clipboard do Open; Image1.Picture.Assign(ClipBoard); finally Close; 2

Készítsünk olyan alkalmazást, amelyben egy OLE-konténer bármilyen OLE-kiszolgáló által kezelt objektumot képes magába fogadni! (OLECont) A program futás közbeni ablaka ChartFx objektum beszerkesztése esetén: A megoldás elkészítéséhez egy SDI alkalmazás vázából indulunk ki, melyet a File/New/Projects/SDI Application választással állíthatunk elő. Az alkalmazás formjára egy panelt (Panel1) helyezünk, és ennek Align tulajdonságát alclient értékűre állítjuk. Erre a panelre tesszük az OleContainer komponenst szintén alclient értékű Align tulajdonsággal. Az SDI alkalmazásban csak a Fájl menüt használjuk, Megnyit, Bezár és Kilép menüpontokkal. A menühöz kapcsolódóan a SpeedPanel1-en gyorsítógombokat működtetünk. A SpeedPanel1 Locked tulajdonságát true értékre állítjuk, hogy az OLE-kiszolgáló alkalmazás ne tudja megváltoztatni az eszközsort. A Statusbar komponenst szövegmegjelenítésre használjuk. A tervezés során beállítjuk az OLEContainer által kezelt objektumot valamelyik OLE-kiszolgáló által kezelt objektumra, hogy a program indításakor is módosítható legyen objektum. Az OLE-szervert a komponens területén belüli kettős kattintás hatására megjelenő párbeszédablakból választhatjuk ki: Ugyanez a párbeszédablak jelenik meg, a futó alkalmazás Fájl/Megnyit... menüpontjának, illetve a megfelelő eszközgomb kiválasztásakor is. Ekkor a megjelenítést az InsertObjectDialog metódus hívása végzi. (Indítás, illetve a menüválasztás után ezt a funkciót letiltjuk, így új objektummal csak az előző lezárása után lehet felvenni a kapcsolatot.) 3

procedure TSDIAppForm.FormCreate(Sender: TObject); Application.OnHint := ShowHint; Megnyit.Enabled:=False; MegnyitBtn.Enabled:=False; procedure TSDIAppForm.OpenItemClick(Sender: TObject); OleContainer1.InsertObjectDialog; Statusbar.Simpletext:='Megnyitott OLE-objektum.'; Megnyit.Enabled:=False; Bezar.Enabled:=True; MegnyitBtn.Enabled:=False; BezarBtn.Enabled:=True; A Bezár menüpont és eszközgomb használható az OLE-kiszolgáló lezárására és az objektum megsemmisítésére: procedure TSDIAppForm.BezarBtnClick(Sender: TObject); OleContainer1.Close; OleContainer1.DestroyObject; Statusbar.Simpletext:='Nincs megnyitott OLE-objektum.'; Bezar.Enabled:=False; Megnyit.Enabled:=True; BezarBtn.Enabled:=False; MegnyitBtn.Enabled:=True; 4

Készítsünk programot, mely adott szöveggel, egy új dokumentummal nyitja meg a Word alkalmazást! Lehessen bezárni, és újra megnyitni a Word alkalmazást! Használjuk az OLE automatizmust! (WordAuto) Helyezzünk két gombot a formra! A Button1 felirata Megnyitás, a Button2 felirata Bezárás. Ez utóbbi nem engedélyezett induláskor. A globálisan deklarált Variant típust használjuk. uses comobj; // Az OLE objektum azonosítója var Word:variant; A Button1 megnyomásakor elindítjuk a kiszolgálót. procedure TForm1.Button1Click(Sender: TObject); // Az objektum létrehozása Word:=CreateOleObject('Word.Application'); // A Word látható Word.visible:=true; // Új dokumentum nyitása Word.Documents.Add; // betűtípus beállítása és szöveg hozzáadása Word.Selection.Font.Bold:=true; Word.Selection.InsertAfter('ComputerBooks' + #13); Word.Selection.InsertAfter('Programozzunk Delphi nyelven' + #13); Button1.Enabled:=false; Button2.Enabled:=true; except A Button2 bezárja a Word alkalmazást. A gombok maguk kezelik engedélyezettségüket. procedure TForm1.Button2Click(Sender: TObject); // A Word lezárása Word.Quit(0,0,0); except Button1.Enabled:=true; Button2.Enabled:=false; 5

Készítsünk programot, amely meghatározott darabszámú adatot tölt egy Excel-tábla celláiba, az Excel összegzi azokat és az eredményt visszaadja a programnak! Használjuk az OLE automatizmust! (ExcelAuto) Készítsük el a formot! Legyen rajta egy gomb (Button1) Start felirattal, egy szövegmező (Edit1) és egy jelölőnégyzet (CheckBox1) annak beállítására, hogy látható-e az Excel! Használjuk a ComObj modult, deklarájunk egy Variant típusú változót (Excel) az Ole objektumnak és egy konstanst (MaxN), ami azt jelzi, hogy hány számot adunk össze. uses comobj; var Excel : Variant; const MaxN=20; A gombnyomásra elindul az Excel kitölti az első oszlopot, összeadja a számokat és visszaolvashatjuk az eredményt, majd leállítjuk az Excelt. procedure TForm1.Button1Click(Sender: TObject); var o:integer; Edit1.Text:=''; // Az Excel indítása Excel:=0; Excel:=CreateOleObject('Excel.Sheet'); // Szabályozhatjuk, hogy az Excel láthatató-e Excel.Application.Visible:=CheckBox1.Checked; // Feltöltjük a cellákat számokkal for o:=1 to MaxN do Excel.Application.Cells[o,1].Value:=o*10; // Az összegző formula Excel.Application.Cells[o,1].Formula:='=Sum(A1:A'+inttostr(MaxN)+')'; // Az eredmény megjelenítése Edit1.Text:=inttostr(Excel.Application.Cells[o,1].value); // Az Excel leállítása Excel.Application.Quit; except beep; 6

Készítsünk programot, mely adott szöveggel, egy új dokumentummal megnyitja a Word-öt! Lehessen bezárni, és újra megnyitni a Word alkalmazást! Használjuk a TOleServer leszármazottait! (WordServer) A programot ugyanúgy készítjük elő, mint a WordAuto alkalmazást, azonban most a Servers lap három komponensét helyezzük a formra (WordApplication, WordDocument, WordFont). Érdemes megfigyelni, hogy programunkba beépülnek a Word97 és az OleServer modulok is. A Button1 gomb megnyomása indítja a kiszolgálót: procedure TForm1.Button1Click(Sender: TObject); var Template,NewTemplate,ItemIndex:OleVariant; // A Word bekapcsolása Template := EmptyParam; NewTemplate := True; ItemIndex := 1; Wordapplication.Connect; except Abort; Wordapplication.Visible := True; // Látható a Word WordApplication.Caption := 'Delphi automation'; // A cím //Új dokumentum Template := EmptyParam; NewTemplate := False; WordApplication.Documents.Add(Template, NewTemplate); // Hozzárendeljük a dokumentumot a Word komponenshez WordDocument.ConnectTo(WordApplication.Documents.Item(ItemIndex)); // Betűtípus beállítás WordFont.ConnectTo(WordDocument.Sentences.Get_Last.Font); WordFont.Underline := 1; WordFont.Bold := 1; WordFont.Italic := 1; WordFont.Size := 13;; WordFont.Name := 'Times New Roman'; // A szöveg beszúrása WordDocument.Range.InsertAfter('ComputerBooks' + #13); WordDocument.Range.InsertAfter('Programozzunk Delphi nyelven! ' + #13); Button1.Enabled:=false; Button2.Enabled:=true; except WordApplication.Disconnect; A Button2 pedig bezárja azt. procedure TForm1.Button2Click(Sender: TObject); var SaveChanges, OriginalFormat, RouteDocument: OleVariant; // A kapcsolat megszüntetése és a Word leállítása SaveChanges := WdDoNotSaveChanges; // Nincs mentés OriginalFormat := UnAssigned; RouteDocument := UnAssigned; WordFont.Disconnect; WordDocument.Disconnect; WordApplication.Quit(SaveChanges,OriginalFormat,RouteDocument); WordApplication.Disconnect; Button1.Enabled:=true; Button2.Enabled:=false; 7

8

Írjuk Delphi programmal egy Excel táblázatba a Pascal háromszög számait! Használjuk a TOleServer leszármazottait! (ExcelServer) A form hasonlít a WordServer programéhoz, azonban most az Excel elérésével kapcsolatos komponenseket használjuk. Az OleServer és az Excel97 modulra való hivatkozás automatikusan bekerül a programba, azonban szükségünk van az ActiveX modulra is. Deklaráljunk egy MaxN és egy lcid egészet, az előző a háromszög méreteit, míg az utóbbi a nyelvet azonosítja. var lcid: integer; MaxN: integer=10; A Button1 (Megnyitás) gomb kapcsolatot teremt a kiszolgálóval. Feltöltjük a Pascal háromszög elemeit. procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; // Az Excel kapcsolása ExcelApplication1.Connect; lcid := GetUserDefaultLCID; // A nyelvi azonosító ExcelApplication1.Visible[lcid]:=True; // Az Excel látható ExcelApplication1.DisplayAlerts[lcid] := False; // Jóváhagyás letiltása // A munkalap és a munkafüzet csatlakoztatása ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Add(TOleEnum(xlWBATWorksheet), lcid)); ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Worksheets[1] as _Worksheet); // Cella értékek ExcelWorkSheet1.Range['A1', 'A1'].Value := 'Pascal háromszög'; for i:=1 to Maxn do for j:=1 to Maxn-i+1 do if (i=1) or (j=1) then ExcelWorkSheet1.Cells.Item[1+i, 1+j].Value := '1' else ExcelWorkSheet1.Cells.Item[1+i, 1+j].Value := IntToStr(StrToInt(ExcelWorkSheet1.Cells.Item[i, 1+j].Value)+ StrToInt(ExcelWorkSheet1.Cells.Item[1+i, j].value)); Button1.Enabled:=false; Button2.Enabled:=true; A Button2 (Bezárás) gombbal kilépünk a programból: procedure TForm1.Button2Click(Sender: TObject); // Lekapcsolódás, leállítás ExcelWorkSheet1.DisConnect; ExcelWorkBook1.DisConnect; ExcelApplication1.Quit; ExcelApplication1.DisConnect; Application.Terminate; Button1.Enabled:=true; Button2.Enabled:=false; 9

10