Létrehozása görgetés szöveget Delphi, Damir Fattakhov
Tehát ahogy te is már sejtette, ma fogunk csinálni egy vágányon a Delphi-alkalmazás.
Egy napon vettem egyfajta tSzerkesztés \ „a, nem csak egy álló és egy vágányon (az összes karakter csak nem beleavatkozik, és szükség volt rá, hogy az összes ...) Szóval azon, hogyan kell csinálni. Ma megmutatom, 2 módon lehet megoldani ezt problemy. Tehát ahogy te is már sejtette, ma fogunk csinálni egy vágányon a Delphi-alkalmazás.
Egy napon vettem egyfajta tSzerkesztés \ „a, nem csak egy álló és egy vágányon (az összes karakter csak nem beleavatkozik, és szükség volt rá, hogy az összes ...) Szóval azon, hogyan kell csinálni. Ma megmutatom, 2 módon lehet megoldani ezt problemy.
Az első út, először jutott eszembe. Próbálja ki a tulajdon szöveg szerkesztése \ „a, azaz a egy bizonyos ideig „kiszorítja” a húr is. Kiszorításával értem eltávolítottuk az első karakter a húr, és egy új, a múlt. Így kiderül, mi ciklusban a kívánt szöveget.
Erre Kinema formájában egy időzítőt, egy tSzerkesztés és állapítsa meg a globális változó i után azonnal szót végrehajtását. i Az alapértelmezett legyen egyenlő egység, azaz a A termék műszaki nézne ki:
var
i: integer = 1;
...
Az időzítő kód is fog kinézni:
Ahhoz, hogy ez a módszer működik megfelelően, meg kell, hogy kezdetben a szövegszerkesztés \ „a tele volt valami. Mi - ez nem számít. Belátható csak a legelején. Akkor csak hogy egy csomó hiányosságok. De a szöveg hossza állandó marad, azaz a mi volt, és az is marad ...
Ez a módszer természetesen jó. De adja át a húr nem túl kényelmes, de ha a vonalat kell periodikusan változik, és több, nagyon kellemetlen. Ezen túlmenően, az elmozdulás egy karaktert, hogy ha jobban megnézed, észrevehető. És szeretnék váltani sima volt, mint lehetséges, és a kódolásához „szörnyű” kód nem akar - nem volt elég idő.
tyúk Régebben a második módszer. És a lényeg az, hogy nem szükséges újra feltalálni a kereket, ha már feltalálták. Napryazhom agyát, és emlékszik a jó öreg HTML. Opa! És ott már megvalósult egy nagy ticker! MARQUEE emlékszik? Ha nem, most már emlékszem. )
Ez a címke attribútumokkal, mint ez:
szöveg ticker
- magasság a sátor. Ebben az esetben zmeryaetsya Százalék
szélesség - a szélessége a vágányon. Ebben az esetben a mért pixelek
viselkedés - line viselkedését. Lehet egyenlő:
Irány - állítja az irányt a görgetés szöveget. Hagyható (jobbra, fel, le) - mozgás balra (jobbra, fel, le). A mozgalom a bal nem írható elő, ez az alapértelmezett mozgás.
Scrollamount - vonal sebességét. Meg lehet venni értékek 1-10.
Persze, akkor meg más HTML attribútumok (hspace, vSpace és igazítsa) ticker.
Példa ticker látható az elején ezt a cikket. A kód így néz ki:
Ugyanez ticker lesz már a Delphi-alkalmazás
A címke teszi a kis szöveget font kisebb képest a fő szöveget.
Nos, az elmélet meg kell ismételni. ) Most pedig a végrehajtási problémák.
Ahogy talán már sejtette, mutatják a honlapunkon fogunk TWebBrowser => megjelenítéséhez futó szöveg használjuk az Internet Explorer (vagy inkább TWebBrowser használ IE). Következésképpen, mindig megjelenik ugyanaz! Így nincs probléma a különbség a böngészők, nem! Ez jó.
De hogyan fog mutatni a honlapunkon, ha TWebBrowser csak megnyitni egy meglévő oldal? Nagyon egyszerű. nem fogjuk menteni lemezre, a HTML-oldal - nem respektno. ) Megjelenítéséhez oldalak használata mintegy protokollt. Röviden ez a protokoll, ha létrehoz egy sor formájában «körülbelül
. A HTML-kód „, és adja ezt a string paraméterként TWebBrowser.Navigate, akkor oldalunkat helyesen jelennek meg. Például:
Ez a kód megmutatja nekünk egy oldalt a piros háttérrel, a közepén, amely az első sorban a felirat «Helló, Dem @ nXP!» Fekete betűk.
Miért nem mutatják ugyanazt a görgetés? Igyekszünk. )
WebBrowser1.Navigate (\ „körülbelül
:
Ugyanez ticker lesz már a Delphi-alkalmazás \ „);
Urrryaya! Minden működik! Szóval, most, hogy a haza minden emberi faj, azaz Azt, hogy a mérete a WebBrowser \ „a számához Edit \” a. A várakozás az elkészült esetben mi fut alkalmazás ... és nem volt ott! Ezek a rohadt a görgetősáv! Igen, és a húr önmagában nem felülről! Opensource projektek, mi fogjuk kezelni ...
A HTML \ „e már a koncepció az alsó, felső, jobb és bal margó az oldal élek. És mi van, ha vissza?
WebBrowser1.Navigate (\ „körülbelül
:
Ugyanez ticker lesz már a Delphi-alkalmazás \ „);
Aha. Egy kicsit jobban - ha helyet csináljon az görgetősávokat, akkor látható, hogy a vonal nagyon közel van a szélek TWebBrowser \ „a. De a görgetősáv rontja az egész megjelenés! Itt vagyunk, és ők uberom. )
És eltávolítjuk igen egyszerű: a szervezetben tag prolpisyvaem scroll = »nincs». Minden ötletes egyszerű :). Hogy a méret a WebBrowser \ „a«normál»(a magasság = width = 20 és 167), megváltoztathatja a szöveg:
WebBrowser1.Navigate (\ „körülbelül
. \ „Rightmargin =»0" bottommargin = »0" scroll =» nincs »>
Ugyanez ticker lesz a \ „+
\ 'Delphi-alkalmazás \');
És élvezni az életet: Most, hogy minden működik! Nos, hogy teljesen elégedett, akkor lekötni akkora, mint egy sátor a böngésző méretét. Ez úgy történik, az alábbiak szerint:
WebBrowser1.Navigate (\ „körülbelül
. \ „Rightmargin =»0" bottommargin = »0" scroll =» nincs »>
Same \ „+
\ „Vágányon lesz a Delphi-alkalmazás \”);
Most, akkor is, ha megpróbáljuk görgetni (vagy scroller egérgombbal) honlapunkon, görgetett szöveg még nem változik a pályáját. WebBrowser1.height-5 tenni, hogy csak.
És végül, mindez lehet egy szép protsedurku:
eljárás SetRunText (Web: TWebBrowser; Szöveg: string);
kezdődik
Web.Navigate (\ „körülbelül
. \ „Rightmargin =»0" bottommargin = »0" scroll =» nincs »>
\ „+ Szöveg +
\ '\');
végén;
Nos, vagy azonnal továbbítják az eljárást, és az összes beállítást:
eljárás SetRunTextProfy (Web: TWebBrowser; szöveg, bgcolor, viselkedés, irány: string; sebesség: integer);
kezdődik
Web.Navigate (\ „körülbelül
. \ „Rightmargin =»0" bottommargin = »0" scroll =» nincs »>
\ "
+Szöveg + \ '\');
végén;
Ha azt szeretnénk, hogy hagyja meg az alapértelmezett beállításokat, akkor csak át egy üres karakterláncot a helyes beállításokat. Ez az eljárás is bővíteni, például át a színét egy húr, és TColor \ „om. De ez már kész magad :)