Delphi - Excel táblázat megjelenítése saját alkalmazáson belül

forráskód letöltése
A Delphi segítségével igen egyszerűen, szinte programozás nélkül képesek lehetünk arra, hogy megjelenítsünk saját alkalmazásunkban például egy Excel-ben készült táblázatot.

Ahogyan azt látni is fogjuk, ezzel a megoldással nem csak Excel táblázatot jeleníthetünk meg, hanem még sok minden mást is. A megoldás egyszerűvé válik, ha a TOleContainer komponenst levesszük a System palettáról és elhelyezzük a Form-on.

Ennek a CreateObjectFromFile metódusát használva egyszerűen betölthetjük a kérdéses XLS állományt. Első paraméterként ennek az állománynak a nevét, elérési útvonalát adhatjuk meg. Második paraméterként egy logikai értéket kell megadnunk. Ha ez igaz, akkor csak ikon formájában fog megjelenni az adott XLS állomány, majd ha erre kattint a felhasználó, akkor elindul az Excel a saját alkalmazásunkon belül és betöltődik az állomány, mely ezek után szerkeszthető. Ha hamis értéket adunk második paraméterként, akkor megjelenik maga az XLS állomány a TOleContainer területén, ekkor viszont az nem lesz szerkeszthető.

TOleContainer komponens az OLE 2.0-t használva minden olyan alkalmazást kezelni tud, mely ezzel kompatíbilis. Így az Excel táblán kívül még igen sokféle objektumot képesek vagyunk megjeleníteni. Ennek kipróbálásához kattintsunk a mellékelt példában az InsertObjectDialog gombra.

Ha a megjelenő listából például a Calendar Control-t választjuk, akkor kapunk egy naptár objektumot, melyet akár programból vezérelhetünk is, így olyan mintha csak egy Delphi komponenst használnánk fel.

Ezt a "komponenst" a TOleContainer komponens OleObject property-én keresztül érhetjük el. A Calendar Control rendelkezik egy NextMonth metódussal, mely a következő hónapra lépteti a naptárat. Így ezt meghívhatjuk az alábbiak szerint:
procedure TForm1.Button3Click(Sender: TObject);
begin
  OleContainer1.OleObject.NextMonth;
end;
Ha erre a Calendar Control-ra duplán kattintunk, akkor megjelenik egy kis dialógus ablak, melyen keresztül néhány beállítási lehetőségünk nyílik az objektum működésének, kinézetének szabályozására.

Itt találunk egy Help gombot is. Erre kattintva elindul a help, ahol megtaláljuk, hogy a NextMonth eljáráson kívül még milyen metódusai, eseményei, property-ei vannak a Calendar Control-nak, melyeket felhasználhatunk saját alkalmazásunkban.