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ő:

  • Lapozzunk - Normál görgetés (nem lehet regisztrálni, mert ez az alapértelmezett)
  • Slide - lapozzunk a stop, a vonal fut a szélére, és megállt.
  • Alternatív - line fog mozogni széltől szélig.

    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 :)