Delphi - IntraWeb Form-ok használata

IntraWeb 2. rész

forráskód letöltése
Az előző részben készítettünk egy egyszerű IntraWeb alkalmazást, amely csak egyetlen Form-ból állt. Ebben a részben megismerkedünk az IntraWeb Form-ok tulajdonságaival és használatukkal. Megnézzük, hogy hogyan lehet több Form-ból álló alkalmazásokat készíteni, és hogy hogyan lehet az egyes Form-ok között adatokat átadni. Megismerkedünk az IWLayoutMgrHTML, IWLink és IWURL komponensek használatával is.
Az IntraWeb-es Form-ok használata egy picit eltér az eddig megszokottól. Használatukkal kapcsolatban három szabály van.
Mivel a Form tartalmát egy Internet böngésző program jeleníti meg, egyszerre csak egy ablak lehet látható.
Nincsenek megkülönböztetve a modális és nem modális Form-ok. Az alapkoncepció az, hogy egyszerre csak egy Form látható, ezért tulajdonképpen minden Form modális.
A Form-ok szülője a WebApplication kell hogy legyen.
Készítsünk egy két Form-ból álló alkalmazást. Az első Form legyen egy bejelentkező ablak, amelyben meg kell adni egy nevet a bejelentkezéshez. Ha megadtunk egy nevet, akkor jelenjen meg egy új Form, ami kiírja az előző Form-ban megadott nevet. A második Form-on elhelyezünk egy külső és egy belső linket is.
Ez előző részben leírt módon, hozzunk létre egy új IntraWeb Stand Alone Application-t.
A View Unit ikon segítségével válasszuk ki az IWUnit1-et. Jelenítsük meg a hozzá tartozó Form-ot, majd kattintsunk rá. Nézzük meg, hogy egy IntraWeb-es Form milyen tulajdonságokkal rendelkezik. Itt csak azokat a tulajdonságokat vizsgáljuk, amelyek nem léteznek egy hagyományos Form esetében.
Tulajdonság Funkció
Background A tulajdonságon keresztül megadhatjuk az oldal hátterét. A háttér egy állományból vagy egy URL címről származhat. Ha a Fixed értéke igaz, akkor a háttér nem görgetődik a weboldal tartalmával együtt.
BackGroundColor Az oldal hátterének színe.
ExtraHeader Itt megadhatunk egy szöveget, amely a HTML kód <HEAD> részébe kerül.
JavaScript Java Script-ek megadását teszi lehetővé.
LinkColor A weboldalon megjelenő linkek színei.
StyleSheet Stíluslapok használatát teszi lehetővé. Stíluslapot URL címről és állományból is megadhatunk.
SupportedBrowsers Logikai változók segítségével beállíthatjuk, hogy az oldal mely Internet böngészőket támogassa.
TemplateProcessor Az IW Control paletta tartalmaz néhány komponenst, amely segítségével a Form-on elhelyezkedő objektum megjelenítését befolyásolhatjuk. Ezeket a komponenseket, ezen tulajdonságon keresztül rendelhetjük hozzá a Form-hoz.
Title Az a cím, amely az Internet böngészőben megjelenik.
VLinkColor A már meglátogatott linkek színe.
Az IW Standard palettáról helyezzünk el a Form-on egy IWLabel, IWEdit, valamint egy IWButton komponenst. Az IWLabel1 Caption értékébe írjuk be a következőt: „Felhasználónév:”. Az IWEdit1 Text mezőjének tartalmát töröljük ki. A nyomógomb feliratát állítsuk „Bejelentkezés”-re.
A Bejelentkezés feliratú gomb alatt helyezzünk el egy képet is. Ehhez az IW Standard palettáról válasszuk az IWImage komponenst. A sima Image komponenshez hasonlóan, itt is a Picture property-n keresztül kell megadni a megjelenítendő képet. Bármilyen képet adunk meg, az a From-ra JPG formátummá konvertálva kerül. Az így létrejött kép JPG tulajdonságait a JPegOptions tulajdonságon keresztül módosíthatjuk.
A Form háttérszínét állítsuk át, hogy ne fehér legyen.
Amikor futtatjuk az alkalmazást, a Form objektumai a böngészőprogram által megjelenített weblap baloldalára kerülnek. Ezt az elhelyezést az IW Controls paletta néhány komponensével módosíthatjuk.
Helyezzünk el a Form-on egy IWLayoutMgrHTML komponenst az IW Controls palettáról. A Form TemplateProcessor tulajdonságában adjuk meg a IWLayoutMgrHTML1 objektumot.
Kattintsunk duplán az IWLayoutMgrHTML1 objektumon. Ekkor megjelenik egy szerkesztő program, amellyel a megjelenő weboldal kinézetét állíthatjuk be. Egyenként kattintsunk rá az objektumokra, és a Microsoft Word-ből ismert középre igazítás gomb segítségével igazítsuk őket a lap közepére. Lehetőségünk van arra is, hogy a HTML kódot módosítsuk, ezt a Source fülön tehetjük meg. Ha végeztünk zárjuk be az ablakot.
Mentsük el munkánkat, majd futtassuk az alkalmazást. Nézzük meg az IWLayoutMgrHTML1 hatását.
Most készítsük el alkalmazásunk második Form-ját. Az IntraWeb-es Form-ok nem azonosak a hagyományos Form-okkal. Kattintsunk a File – New – Other menüpontra. Az IntraWeb fülről válasszuk az Application Form-ot.
Az új Form nevét állítsuk át MenuForm-ra. Itt is állítsuk be a háttérszínt, valamint a VLinkColor értékét.
Az IW Standard palettáról helyezzünk el a Form-on egy IWRectangle komponenst. Ennek Color tulajdonságát állítsuk olyanra, amely eltér a háttérszíntől. Méretezzük akkorára, hogy az előző ablakban megadott felhasználónevet meg tudjuk jeleníteni benne. A felhasználó nevének megjelenítéséhez helyezzünk el a Form-on két IWLabel komponenst. Az IWLabel1 Caption tulajdonságába írjuk a következőt: „Felhasználó:”. Az IWLabel2 nevét módosítsuk lUser-re.
Az IW Standard palettáról helyezzünk egy IWURL és egy IWLink komponenst a Form-ra.
Az IWURL komponens URL tulajdonságában megadhatunk egy szabályos URL címet. Ha futási időben rákattintunk erre az objektumra, akkor a böngésző a megadott cím tartalmát tölti be. Itt helyezzük el egy tetszőleges oldal címét.
Az IWLink1 objektum segítségével megvalósítjuk a visszalépést az előző ablakba. A Caption mezőben adhatjuk meg azt a szöveget, amelyet meg kell jelenítenie. OnClick eseményében kell megadnunk azt a kódot, amelyet le szeretnénk futtatni akkor, amikor a felhasználó rákattint. Az OnClick-ben helyezzük el az alábbi kódot:
Release;
Ellentétben a hagyományos Form-okkal, itt nincs Close metódus, helyette a Release metódussal zárhatunk be egy ablakot. A Release az ablak által lefoglalt memóriaterületet is felszabadítja. Ez azonban csak akkor történik meg, ha a Release-t tartalmazó metódus teljesen lefutott.
Ha csak el akarjuk rejteni az ablakot, akkor a Hide utasítás itt is működik.
Mentsük el a második ablakot Unit1 néven, majd térjünk vissza az első ablakhoz.
A uses listában vegyük fel a hivatkozást a Unit1-re. Ellentétben a normál Form-okkal, itt nem jönnek létre példányváltozók az osztályokhoz. Ha az első ablakban hivatkozni akarunk a második ablakra, akkor azt kétféle módon tehetjük meg. Az egyik, hogy felveszünk egy példányváltozót, az adott ablak típusával. A másik, amit az IWButton1 OnClick-jében használunk fel.
procedure TformMain.IWButton1Click(Sender: TObject);
begin
  if IWEdit1.Text='' then WebApplication.ShowMessage('Meg kell adnia egy nevet!')
  else
    with TMenuForm.Create(WebApplication) do begin
      lUser.Caption:=IWEdit1.Text;
      Show;
    end;
end;
A Form-ot a WebApplication-nek kell létrehoznia. Üzenet küldésére is a WebApllication.ShowMessage metódust használjuk. Miután létrehoztuk a második ablakot, az lUser címkének átadhatjuk az IWEdit1-be beírt felhasználónevet.
Egy Form megjelenítésére a Show metódus szolgál. ShowModal utasítás itt nem létezik.
Mentsük el az alkalmazást, majd próbáljuk ki.
Bizonyára észrevettük, hogy a böngésző vissza gombja nem működik. Erre is van megoldás. A View Unit ikon segítségével válasszuk ki a ServerController unitot. Jelenítsük meg a hozzá tartozó ablakot, majd kattintsunk rá. A HistoryEnabled értékét állítsuk igazra, a ShowResyncWarning értékét pedig hamisra. Ha most ismét elindítjuk a programot, akkor a vissza gomb is használhatóvá válik.

IntraWeb cikksorozat