Použití modelu dokumentu XML dokumentu. Internetový průvodce - všechny nejzajímavější online, jak vytvořit soubor XML Delphi

Jazyk XML se stále více používá k ukládání informací, sdílení mezi aplikacemi a webovými uzly. V mnoha aplikacích se tento jazyk používá jako základní úložiště dat v jiných - export a import dat XML. Z toho vyplývá, že je čas, aby vývojáři přemýšleli o tom, jak používat data XML ve vašich vlastních aplikacích.

V tomto článku se podíváme na XML Document Objektový model (DOM) a jeho implementace společnosti Microsoft - Microsoft XML DOM.

XML DOM je objektový model, který poskytuje vývojářské objekty ke stažení a zpracování souborů XML. Objektový model se skládá z následujících hlavních objektů: XMLDOMDocument, XMLDOMDOMNODELIST, XMLDOMNODE, XMLDOMDOMDOMEDNODEMAP a XMLDOMPARSEError. Každý z těchto objektů (kromě XMLDOMPARSEERROR) obsahuje vlastnosti a metody pro získání informací o objektu, manipulovat s hodnotami a strukturou objektu, stejně jako pohyb podél struktury dokumentu XML.

Zvažte hlavní objekty XML DOM a uveďte několik příkladů jejich použití v Borland Delphi.

Použití XML DOM v Borland Delphi

Chcete-li použít aplikaci Microsoft XML DOM v aplikacích Delphi, musíte k projektu připojit příslušnou knihovnu typu. Chcete-li to udělat, provádíme projekt | Knihovna typu importu a v dialogovém panelu typu Import typu, vyberte knihovnu Microsoft XML verze 2.0 (verze 2.0), která je obvykle umístěna v souboru Windows Msxml.dll

Po stisknutí tlačítka Vytvořit jednotku bude vytvořen modul rozhraní MSXML_TLB, který nám umožní používat objekty XML DOM: Domdocument, XMLDocument, XMLHTTTREQUEST a číslo druhých implementovaných v knihovně MSXML.dll. Odkaz na modul MSXML_TLB musí být uveden v seznamu použití.

XML DOM zařízení

Model objektů dokumentu představuje dokument XML ve formě stromové struktury sestávající z větví. Softwarová rozhraní XML DOM umožňuje aplikacím procházet strom dokumentu a manipulovat s jeho větvemi. Každá větev může mít specifický typ (Domnodetype), podle kterého jsou určeny rodiči a dceřiné společnosti. Ve většině dokumentů XML můžete najít pobočky prvku, atributu a větví textu. Atributy (atribut) jsou speciální typ pobočky a nejsou dceřinými pobočkami. Správa atributů používá speciální metodyobjekty XML DOM.

Kromě implementace doporučených rozhraní World Wide Web Consortium (W3C) obsahuje Microsoft XML DOM metody, které podporují XSL, XSL vzory, jmenné prostory a typy dat. Například metoda SelectNodes umožňuje použít Syntaxe Syntaxe XSL (XSL Syntaxe) pro vyhledávání větví ve specifickém kontextu a metoda transformnode podporuje použití XSL pro provádění transformací.

Test XML Document

Jako příklad dokumentu XML vezměte katalogu hudebního disku CD-ROM, který má následující strukturu:

Empire Burlesque. Bob Dylan. USA. Columbia. 10.90 1985 Skrýt své srdce. Bonnie tylor. Spojené království. Záznamy CBS. 9.90 1988 ... Nezanechat mé srdce. Joe Cocker. USA. Emi. 8.20 1987

Nyní jsme připraveni začít zvažovat objektový model XML DOM, obeznámenost, se kterou začne s objektem XMLDOMDocument.

XML dokument - Xmldomdocument object

Práce s dokumentem XML začíná jeho stahování. K tomu použijeme metodu zatížení, která má pouze jeden parametr označující URL staženého dokumentu. Při stahování souborů z místního disku je zadán pouze celý název souboru (soubor: /// Protocol v tomto případě může být vynechán). Pokud je dokument XML uložen jako řetězec, metoda LoadXML by měla být použita ke stažení takového dokumentu.

Chcete-li řídit způsob stahování dokumentu (synchronní nebo asynchronní), použije se vlastnost Async. Ve výchozím nastavení je tato vlastnost true, což znamená, že dokument je načten asynchronně a řízení je vráceno do aplikace, i když je dokument plně načten. V opačném případě je dokument načten synchronně, a pak musíte zkontrolovat hodnotu vlastnosti ReadyState, abyste zjistili, dokument načten nebo ne. Můžete také vytvořit obslužný program událostí OnReadyStateChange, který obdrží kontrolu při změně hodnoty vlastnosti ReadyState.

Níže je uvedeno níže, jak stáhnout dokument XML pomocí metody zatížení:

Uživatelé ... MSXML_TLB ... Postup TForm1.Button1Click (odesílatel: Togject); Var xmldoc: ixmldomdocument; Začněte xmldoc: \u003d codomdocument.create; Xmldoc.async: \u003d false; Xmldoc.load ('C: Data Data.xml'); // // Zde je kód, který manipuluje // xml dokument a jeho pobočky // xmldoc: \u003d nil; konec;

Po načtení dokumentu můžeme odkazovat na jeho vlastnosti. Vlastnost Nodename tak bude obsahovat hodnotu #document, vlastnost NodetPestring je hodnota dokumentu, vlastnost URL je soubor: //// C: /data/data.xml Hodnota.

Zpracování je chyba

Zvláště zajímavé jsou vlastnosti spojené se zpracováním dokumentu, když je načten. Vlastnost ParseError tedy vrátí objekt XMLDOMPARSEError obsahující informace o chybách, ke kterým došlo během procesu zpracování.

Chcete-li napsat popisovač chyb, můžete přidat následující kód:

Var xmlerror: ixmldomparseError; ... xmldoc.load ('C: Data Data.xml'); Xmlerror: \u003d xmldoc.parseError; Pokud xmlerror.errorCode.<> 0 Potom // // Zde zpracujeme chybu // Else memo1.lines.add (xmldoc.xml); ... xmldoc: \u003d nil;

Chcete-li zjistit, které informace jsou v případě chyby vráceny, změňte následující položku adresáře:

Empire Burlesque. Bob Dylan. USA. Columbia. 10.90 1985

vyjmutí uzavíracího prvku Ve druhé linii:</p><p> <CD> <TITLE>Empire Burlesque. <ARTIST>Bob Dylan.</ARTIST> <COUNTRY>USA.</COUNTRY> <COMPANY>Columbia.</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> </p><p>Nyní napište kód, který vrátí vlastnosti objektu XMLDOMPARSEErrorror:</p><p>Xmlerror: \u003d xmldoc.parseError; Pokud xmlerror.errorcode.<> 0 Potom s xmlerrorem, memo1.lines do začátek přidat (souboru: '+ url); Přidat ('kód: "+ INTTOSTR (ERRORCODE)); Přidat ("chyba:" + důvod); Přidat (text: "+ SRCTEXT); Přidat ('Row:' + INTTOSTR (LINE)); Přidat ('Pozice:' + INTTOSTR (LINEPOS)); End Ensse Memo1.Lines.add (Xmldoc.xml); Konec;</p><p>a naplňují naši aplikaci. V důsledku toho získáme následující informace o chybách.</p> <p>Jak je vidět z výše uvedeného příkladu, informace vrácené objektem XMLDOMPARSEError je dostačující na lokalizaci chyby a pochopit důvod pro jeho výskyt.</p> <p>Nyní obnovte zavírací položku <TITLE> V našem dokumentu a pokračovat v diskusi o XML DOM.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Přístup k stromu dokumentu</h2> <p>Pro přístup k stromu dokumentu můžete buď získat kořenový prvek a pak projít jeho dceřinými společnostmi, nebo najít určitou konkrétní pobočku. V prvním případě se dostaneme kořenový prvek prostřednictvím vlastnosti dokumentuLement, který vrací objekt typu XMLDOMNODE. Níže je uvedeno, jak používat vlastnost DocumentLement, aby se získal obsah každého podřízeného prvku:</p><p>VAR uzl: ixmldomnode; Kořen: ixmldomElement; I: celé číslo; ... kořen: \u003d xmldoc.documentelement; Pro I: \u003d 0 k root.childnodnes.Length-1 Začněte uzel: \u003d root.childnodes.Item [i]; Memo1.lines.add (node.text); Konec;</p><p>Pro náš dokument XML dostaneme následující text.</p> <p>Pokud se zajímáme o určitý druh konkrétní úrovně pobočky nebo pobočky pod první dceřiné společnosti, můžeme použít buď nodefromidovou metodu nebo metodu getelementbytagname objektu XMLDOMDocument.</p> <p>Metoda nodefromid vyžaduje určení jedinečného identifikátoru definovaného v definici schématu XML nebo definice typu dokumentu (DTD) a vrátí větev s tímto identifikátorem.</p> <p>Metoda GetElementbyTagNname vyžaduje indikaci řetězce s konkrétním prvkem (tagem) a vrátí všechny větve s touto položkou. Níže je uvedeno, jak použít tuto metodu najít všechny umělce v našem adresáři CD-ROM:</p><p>Uzly: ixmldomnodelist; Uzel: ixmldomnode; ... uzly: \u003d xmldoc.getelementsbytagname ('Artist'); Pro I: \u003d 0 k uzlům.Length-1 do začátku uzlu: \u003d nodles.Item [i]; Memo1.lines.add (node.text); Konec;</p><p>Pro náš dokument XML dostaneme následující text.</p> <p>Všimněte si, že metoda XMLDOMNODE SelectNodes poskytuje flexibilnější způsob přístupu k větvům dokumentu. Ale o tom je o něco nižší.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Větev dokumentů - xmldomnode objekt</h2> <p>Objekt XMLDOMNODE je větev dokumentů. Tento objekt jsme se již setkali, když byl získán kořenový prvek dokumentu:</p><p>Kořen: \u003d xmldoc.documentelement;</p><p>Chcete-li získat informace o větvi dokumentu XML, můžete použít vlastnosti objektu XMLDOMNODE (tabulka 1).</p> <p>Přístup k datům uloženým v pobočce, obvykle používají vlastnost Nodevalue (k dispozici pro atributy, textové větve, komentáře, pokyny pro oddíly pro zpracování a cdata) nebo vlastnost Text, která vrací textový obsah pobočky nebo vlastnost NodetypedValue. Ten, nicméně, může být použit pouze pro větve s napsanými prvky.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h3> Pohybující se na stromu dokumentu</h3> <p>Objekt XMLDOMNODE poskytuje různé způsoby, jak se pohybovat přes strom dokumentu. Chcete-li například přístup k nadřazené pobočce, použije se vlastnost Parentnode, přístup k dětským větvům se provádí prostřednictvím vlastností dětí (XMLDCHILD typ), firstchild a LandChild (typ xmldomnode) atd. Vlastnost OwnerDocument vrátí objekt XMLDocument, který identifikuje samotný dokument XML. Výše uvedené vlastnosti usnadňují přesunutí stromu dokumentu.</p> <p>Nyní překonám všechny větve dokumentu XML:</p><p>Kořen: \u003d xmldoc.documentelement; Pro I: \u003d 0 k root.childnodnes.Length-1 Začněte uzel: \u003d root.childnodes.Item [i]; Pokud uzl.haschildnodes pak getChilds (uzel, 0); Konec;</p><p>Jak bylo uvedeno výše, SelectNodes objekt XMLDOMNODE poskytuje flexibilnější způsob přístupu k větví dokumentu. Kromě toho je metoda selectSinglende, která vrací pouze první pobočku dokumentu. Obě tyto metody umožňují určit šablony XSL pro vyhledávání větví.</p> <p>Zvažte proces používání metody SelectNodes extrahovat všechny větve, které mají pobočku CD a inflace.</p><p>Kořen: \u003d xmldoc.documentelement; Uzly: \u003d root.Selectnodes ('CD / Cena');</p><p>Kolekce uzlů bude umístěna všechny větve CD Switter Cena. Diskuse of XSL šablon se vrátí o něco později.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h3> Manipulace podle dceřiných větví</h3> <p>Pro manipulaci s dceřinými společnostmi můžeme použít metody objektu XMLDOMNODE (tabulka 2).</p> <p>Chcete-li zcela odstranit záznam prvního disku, musíte provést následující kód:</p><p>Var xmldoc: ixmldomdocument; Kořen: ixmldomnode; Uzel: ixmldomnode; XMLDOC: \u003d CODOMDocument.Create; Xmldoc.async: \u003d false; Xmldoc.load ('C: Data Data.xml'); // dostat kořenový prvek kořen: \u003d xmldoc.documentelement; Uzel: \u003d root; // Odstraňte první dceřiný node.removechild (node.firstchild);</p><p>Vezměte prosím na vědomí, že v tomto příkladu odstraníme první dceřiná společnost. Jak odstranit první prvek první dceřiné společnosti, je uvedeno níže:</p><p>Var xmldoc: ixmldomdocument; Kořen: ixmldomnode; Uzel: ixmldomnode; XMLDOC: \u003d CODOMDocument.Create; Xmldoc.async: \u003d false; Xmldoc.load ('C: Data Data.xml'); // dostat kořenový prvek kořen: \u003d xmldoc.documentelement; // a první dceřiný uzel: \u003d root.firstchild; // Odstraňte první dceřiný node.removechild (node.firstchild);</p><p>V příkladu výše, jsme neodstraňovali první pobočku. <CD>…</CD>a první prvek větve - <TITLE>….

Nyní přidejte novou pobočku. Níže je uveden kód, který ukazuje, jak přidat nový záznam hudebního disku CD-ROM:

VAR NOVINKA: IXMLDOMNODE; Dítě: Ixmldomnode; ... // vytvořit novou pobočku - Newnode: \u003d xmldoc.createnode (1, 'CD', ''); // přidat prvek Dítě: \u003d xmldoc.createenode (1, 'název', ''); // přidat newnode.appendchild (dětský) prvek; // a nastavte svou hodnotu dítěte.text: \u003d 'Pink Floyd'; // přidat prvek <ARTIST> Dítě: \u003d xmldoc.createenode (1, 'Umělec', ''); // přidat newnode.appendchild (dětský) prvek; // a zřídit její hodnotu dítěte.text: \u003d 'Division Bell'; // přidat prvek <COUNTRY> Dítě: \u003d xmldoc.createenode (1,, země ',' '); // přidat newnode.appendchild (dětský) prvek; // a nastavit svou hodnotu dítěte.text: \u003d 'UK'; // přidat prvek <COMPANY> Dítě: \u003d XMLDOC.CReatenode (1, 'Společnost', ''); // přidat newnode.appendchild (dětský) prvek; // a nastavit jeho hodnotu dítě.text: \u003d 'EMI záznamy Ltd.'; // přidat prvek <PRICE>Dítě: \u003d xmldoc.createenode (1, 'cena', ''); // přidat newnode.appendchild (dětský) prvek; // a zřídit její hodnotu dítěte.text: \u003d '11,99 "; // přidat prvek <YEAR> Dítě: \u003d XMLDOC.CREATENODE (1, 'rok', ''); // přidat newnode.appendchild (dětský) prvek; // a vytvořit svou hodnotu dítěte.text: \u003d '1994'; // a přidejte root.appendChild větev (newnode); ...</p><p>Výše uvedený kód zobrazuje následující posloupnost akcí pro přidání nové větve:</p> <ul><li>Vytvoření nové pobočky pomocí CreatErenode: <ul><li>vytvoření položky pomocí metody CreatErode;</li> <li>přidání prvku do větve metodou aplikace ADDENDCHILD;</li> <li>nastavení hodnoty prvku prostřednictvím vlastnosti textu;</li> <li>... opakujte pro všechny položky.</li> </ul></li> <li>Přidání nové větve do dokumentu AppendChild.</li> </ul><p>Připomeňme si, že metoda AppendChild přidává na konci stromu větev. Chcete-li přidat větev na konkrétní místo stromu, musíte použít metodu vložky.</p> <h2> Sada poboček - Xmldomnodelist objekt</h2> <p>Objekt XMLNODELIST obsahuje seznam větví, které mohou být postaveny pomocí metod SelectNodes nebo GetElentsByTAGNAME a je také získána z vlastnictví Childnodes.</p> <p>Už jsme považovali za použití tohoto objektu v příkladu uvedeném v sekci "Stěhování na stromě dokumentu". Zde dáváme také nějaké teoretické komentáře.</p> <p>Počet poboček v seznamu lze získat jako hodnotu vlastnosti délky. Větve mají indexy od 0 do délky-1 a každá jednotlivá větev je k dispozici prostřednictvím prvku pole pole s odpovídajícím indexem.</p> <p>Stěhování na seznamu větví lze také provádět pomocí metody NextNode, která vrátí další pobočku v seznamu, nebo nil, pokud je aktuální pobočka druhá. Chcete-li se vrátit k horní části seznamu, měli byste zavolat metodu resetu.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Vytváření a ukládání dokumentů</h2> <p>Takže jsme se podívali na to, jak můžete přidat pobočky a prvky do existujících dokumentů XML. Nyní vytvoří XML dokument "na letu". Nejprve vám připomínáme, že dokument může být načten nejen z adresy URL, ale také z obvyklého řetězce. Níže je uvedeno, jak vytvořit kořenový prvek, který může být pak použit k dynamickému vybudování zbývajících prvků (které jsme již považovali v sekci "Manipulace s dceřinými společnostmi"):</p><p>Var xmldoc: ixmldomdocument; Kořen: ixmldomnode; Uzel: ixmldomnode; S: WideString; ... s: \u003d ' <CATALOG></CATALOG>"; XMLDOC: \u003d CODOMDocument.Create; Xmldoc.async: \u003d false; Xmldoc.loadxml (y); Kořen: \u003d xmldoc.documentelement; Uzel: \u003d xmldoc.createnode (1, 'CD', ''); Root.appendChild (uzel); Memo1.lines.add (xmldoc.xml); ... xmldoc: \u003d nil;</p><p>Po vytvoření dokumentu XML uložte jej do souboru pomocí metody Uložit. Například:</p> <p>XMLDOC.SAVE ('C: Data Newcd.xml');</p> <p>Kromě uložení v souboru umožňuje Uložit dokument uložit dokument XML v novém objektu XMLDOMDocument. V tomto případě je dokument plné zpracování a v důsledku toho kontrola jeho struktury a syntaxe. Níže je uvedeno, jak uložit dokument v jiném objektu:</p><p>POSTUP TFORM1.BUTTON2CLICK (odesílatel: Togject); Var xmldoc2: ixmldomdocument; Začněte xmldoc2: \u003d codomdocument.create; Xmldoc.save (xmldoc2); Memo2.lines.add (xmldoc2.xml); ... xmldoc2: \u003d nil; konec;</p><p>Závěrem si všimneme, že metoda Save také umožňuje uložit dokument XML do jiných objektů COM, které podporují rozhraní Istream, ISESTREAM nebo IPESCSTESTREAMINIT.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Použití šablon XSL</h2> <p>Diskutovat o metodě SelectNodes XMLDOMNODE, zmínili jsme se, že poskytuje flexibilnější způsob přístupu k větvům dokumentu. Flexibilita spočívá v tom, že jako kritérium pro výběr větví, můžete zadat šablonu XSL. Tyto šablony poskytují výkonný mechanismus pro vyhledávání informací v dokumentů XML. Například, aby se seznam všech názvů hudebního disku CD-ROM v našem adresáři, můžete postupovat podle následujícího dotazu:</p><p>Chcete-li zjistit, zda jsou disky, které jsou umělci propuštěni ve Spojených státech, je žádost vytvořena následovně:</p><p>Uzly: \u003d root.SelektNODES ('CD / ARRTIST');</p><p>Níže je uvedeno, jak najít první disk v adresáři:</p><p>Uzly: \u003d root.Selectnodes ('CD / název');</p><p>a poslední:</p><p>Uzly: \u003d root.Selectnodes ('CD / název');</p><p>Chcete-li najít disky Bob Dilan, můžete provést následující dotaz:</p><p>Uzly: \u003d root.Selectnodes ('CD [$ všechny $ Arst \u003d "Bob Dylan"] / název ");</p><p>a dostat seznam disků propuštěných po roce 1985 provádíme následující dotaz:</p><p>Uzly: \u003d root.Selectnodes ('CD / název');</p><p>Podrobnější diskusi o Syntaxe XSL vyžaduje samostatnou publikaci. Inovační čtenáře a tlačit další výzkum, dám pouze jeden malý příklad možného použití XSL. Předpokládejme, že musíme převést náš adresář do obvyklého html tabulky. Využití tradičních způsobů, musíme vyřešit všechny větve stromů a pro každou položku získanou pro vytvoření odpovídajících značek <TD>…</TD>.</p> <p>Pomocí XSL, jednoduše vytvoříme šablonu (nebo styl tabulky), ve které naznačujeme co a jak převést. Pak tuto šablonu uveďte na náš katalog - a připraveni: Před námi text šablony XSL, který převádí adresář v tabulce (výpis 2).</p> <p>Kód pro překrytí šablony XSL k našemu katalogu vypadá takto:</p><p>POSTUP TFORM1.BUTTON2CLICK (odesílatel: Togject); Var xsdocc: ixmldomdocument; Začněte XSLDOC: \u003d kódomdocument.Create; XSLDOC.LOAD ('C: Data Data.xsl'); Memo2.text: \u003d xmldoc.transformnode (xsdoc); XSLDOC: \u003d nil; konec;</p><p>Dokončením naší diskuse o XSL by mělo být uvedeno, že v současné době se tento jazyk aktivně používá pro transformaci mezi různými dokumenty XML, stejně jako pro formátování dokumentů.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Závěr</h2> <p>Pro poměrně srozumitelné důvody, v jednom článku není možné zvážit všechny objekty Microsoft XML DOM a přinést příklady jejich použití. Zde jsme se dotkli hlavních problémů používání XML DOM v aplikacích. V záložce. 3 Zobrazuje všechny objekty implementované v Microsoft XML DOM.</p> <p>Computerpress 12 "2000 2000</p> <p>Řešení úkolů na Delphi <br> Delphi je druhým programovým jazykem, se kterými se studenti nejčastěji seznámí v procesu učení. Jedná se o začátek vzdělávacího objektově orientovaného programování. Já, jako student, který pro sebe učinil závěr, že není snadnější metoda zvládnout jazyk, než napsat kalkulačku na něj. I když si uvědomíte elementární funkci přidání dvou čísel, je to již na mnoha světlech.</p> <p>CodeGaear, Delphi 7, Lazarus je různé kompilátory, programy, které budou přeneseny do počítačového kódu, který vám napsal, převádějí jej do Zoliki a jeden. Jedná se o všechny programy pro vytváření programů a ne samostatných programovacích jazyků. Tyto kompilátory používají objektový programovací jazyk objektu, který je základem Delphiho jazyka, který je podobný syntaxi podobné obvyklému Pascal, ale je funkční významně odlišný. <br></p> <h2>Co je syntaxe programovací jazyky?</h2> <p>Jedná se o formát pro psaní různých operátorů. Například "pro" cyklus na Pascal má následující formát: "Pro n: \u003d 1 až k" atd.</p><p>V programovacím jazyce C ++ je stejný cyklus psán poněkud odlišně: pro (n \u003d 1; n píšeme kalkulačku</p><p>To vám umožní pochopit, jak objekty s kódovým kódem interagují, co je "proměnné", jak fungují matematické funkce. Všechny programování v každém případě bude výpočet. Hra je také program, který něco neustále zvažuje, pracuje s čísly a číselnými funkcemi. Programování je neoddělitelné od matematiky.</p> <p>Používáme k napsání vývojového prostředí Lazarus. Jeho funkčnost není tak bohatá jako, řekněme, CodeGear, ale je to volný přístup a je navržen tak, aby studoval.</p><p>Otevření vývojového prostředí, vidíme tvar a panel prvků. Zde je formulář.</p> <p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-24.jpg' width="100%" loading=lazy loading=lazy></p><p>Zde je panel prvku.</p><p>První věc, kterou uděláme, je přidat tři položky, které potřebujete k implementaci adiční funkce dvou čísel. Potřebujeme: "TEDIT" na počtu tří kusů a "Tbutton". Na obrázku níže jsou uvedeny v panelu šipek. Klikněte na ně jednou a pak jednou ve tvaru a objeví se na něm.</p><p>Jedná se o textová pole pro vstup a pravidelné tlačítko. Setkáte se s těmito prvky pomocí téměř libovolného programu Windows. Podívej se.</p><p><img src='https://i1.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-27.jpg' width="100%" loading=lazy loading=lazy><br></p> <p>Nyní vyčistěte tyto nápisy. Klepněte na kartu Zobrazení. A klikněte na "Inspektor objektů. Zobrazí se toto okno.</p><p><img src='https://i0.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-28.jpg' width="100%" loading=lazy loading=lazy></p><p>Klikněte jednou na našem prvku "na formuláři a změňte hodnotu" titulek "v okně inspektora jiným. Například na slovo "OK". Klepněte na tlačítko Enter. Vidíme ve formě, protože prvek změnil název.</p><p>Jen to udělej s úpravou, prostě nepřihlédněte, ale my je učiníme bez obsahu. Zvýrazňujeme je zase a vyčistíme textovou hodnotu v inspektoru. Nezapomeňte stisknout klávesu Enter.</p><p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-29.jpg' width="100%" loading=lazy loading=lazy></p><p>Podle výsledku vypadá naše forma takto.</p><p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-30.jpg' width="100%" loading=lazy loading=lazy><br></p> <p>Nyní, že naše kalkulačka získala, musíte zaregistrovat potřebný softwarový kód pro postup našeho tlačítka. Dvakrát klikněte na prvek tlačítka a otevřete zdrojový editor.</p><p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-31.jpg' width="100%" loading=lazy loading=lazy></p><p>Vidět? Button1Click postup. Jedná se o postup, který je zodpovědný za to, co se stane, když jednou klikujeme na tlačítko jednou. A musí nastat následující: program je zapotřebí na třetí úpravách, aby nás součet čísel zavedených v prvních dvou polích. Píšeme kód.</p><p><img src='https://i1.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-32.jpg' width="100%" loading=lazy loading=lazy></p><p>Takové jednoduché 5 řádků kódu, které potřebujeme psát. Komentáře a vysvětlení jsou viditelné na obrázku výše. Poté klikněte na toto tlačítko.</p> <p>Bude sestavena kompilace našeho projektu. Bude sestavena v programu. Zadáme čísla do prvních dvou polí, klikněte na tlačítko a získáte hodnotu částky.</p><p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-34-2.jpg' width="100%" loading=lazy loading=lazy></p> <h2>Závěr</h2> <p>Klepnutím na tlačítko "Soubor", pak "Uložit vše", vyberte složku, kterou chcete uložit a budete mít plnohodnotný program, jehož začátek lze provést z pracovní plochy. Nyní se snažte přijít na to sami, že je třeba přepsat v tomto kódu tak, aby byl program rozdělen dvěma čísly a ne složenými. Tip: Musíte změnit typ dat. Níže uvedené video ukazuje podobný příklad, ale v Delphi 7, ne Lazarus.</p><p><span class="6qR5tjJKK3g"></span></p> <p>Mnoho programátorů DELPHI, uložení nastavení <i>Ini.</i> Ve svých programech. Použití této metody, v méně závažných projektech, je třeba se vyhnout, protože limity v pružnosti, která zabraňuje dalšímu rozšíření programu. Stojí za to říkat, že takový přístup je zcela populární, vzhledem k jeho snadnému použití a přítomnosti vestavěných prostředků na vývojové prostředí. <br><br> Ideální volba pro ukládání nastavení programu je však strukturována <i>Xml.</i> Soubory. Jejich výhodou je, že počet parametrů nemusí být stanoven. Chcete-li to lépe pochopit, zvažte konkrétní příklad.</p><p>V programu USERSEARCH, když kliknete na nahrávání, zobrazí se kontextová nabídka, která zobrazuje seznam bodů. Tyto položky jsou příkazy, které jsou zase staženy z souboru nastavení. V případě, že byla nastavení uložena v <i>Ini.</i> Soubor by mohl program ukládat a načíst určitý počet příkazů, například 10 nebo 50. Jakmile budete potřebovat důležitější, budete muset kód přepsat a odpovídajícím způsobem jej zkompilovat.</p><p><img src='https://i1.wp.com/zoo-mania.ru/wp-content/uploads/2011/08/settings.ini_.jpg' height="145" width="247" loading=lazy loading=lazy><br> Použití přístupu <i>Xml.</i> Soubory, budeme mít možnost stahovat všechny parametry sekce dynamicky. Ke všem, konfigurační soubor se stane elegantnější, bez nadměrného číslování parametrů. Nicméně, standardní nástroje pro práci s <i>Xml.</i> Delphi má mnoho nevýhod, takže doporučuji používat standardní knihovnu <b>Msxml.</b>. Obvykle je to výchozí část rodinných systémů Windows.</p><p><img src='https://i2.wp.com/zoo-mania.ru/wp-content/uploads/2011/08/settings.xml_.jpg' align="center" width="100%" loading=lazy loading=lazy><br> Pro připojení <b>Msxml.</b>Musíme vytvořit soubor rozhraní se seznamem všech funkcí importem ze serveru COM. Jak importovat rozhraní je napsáno Nedostatek podrobných článků, doporučuji stáhnout soubor <b>Msxml2_tlb.pas.</b> Již připravené k použití. Po stažení souboru jej umístěte vedle svého projektu nebo hodte do složky Delphi lib lib. Všechny vytvořené programy tak budou moci používat modul. <b>Msxml.</b>, Stačí přidat MSXML2_TLB k použití.</p><p>Pro přehlednost zvažte následující příklad aplikace této knihovny:</p><p>Postup LoadData; Var xmldoc: Domdocument; Kořen: ixmldomElement; Začněte xmldoc: \u003d codomdocument.create; Xmldoc.load ("settins.xml"); Kořen: \u003d xmldoc.documentelement; Showmessage ("velikost / šířka"). Text); Kořen: \u003d nil; XMLDOC: \u003d nil; konec;</p><p>Nejprve je vytvořena instance třídy Domdocument, po kterém je obsah souboru Settings.xml načten do paměti. Jako podle normy <i>Xml.</i> Soubor musí obsahovat kořenový tag (v tomto případě <i>konfigurace</i>), pak se musíme dostat pomocí funkce <i>Dokument</i>. Pak obsah obsahu mezi značkami <width></width> které jsou zase mezi značkami <size></size> . Tak, z souboru Settations.xml, naše metoda nasadí text ve zprávě <i>"100px"</i>.</p><p> <?xml version="1.0" encoding="utf-8"?> <config> <size> <height>500px.</height> <width>100px.</width> </size> </config> </p><p>Zde se použije metoda SelectSinglende, která vezme řetězec jako parametr.</p> <p>Vítejte! Tento blog je věnován internetu a počítačům, a přesněji, byli jim věnováni.</p> <p>Pravděpodobně je okamžitě vidět, že mnoho let se na místě objevilo mnoho let. Ano, toto je osud většiny blogů. Jakmile byl tento projekt ambiciózním podnikem, a autor, stejně jako v mnoha dalších, kteří v té době napsal, byly rozsáhlé plány stát se jedním z nejlepších ruských bloggerů. No, pokud se podíváte, pak z těchto blogů, které byly vytvořeny současně s důlem, nejvíce již rozpustil věčnost. A já jsem se stal chybějícím časovým blogem. Takže ano, to již není aktualizováno. I když jsem kdysi vyhrál na těchto stránkách v soutěži 2011 blog.</p> <p>Dokonce jsem měl ten nápad odstranit to všechno, ale pak jsem revidoval staré materiály, a uvědomil si, že by mohli být pro čtenáře stále užitečné. Ano, některé články jsou zastaralé (pokud mám dostatek síly, dostanou příslušné známky), ale místo, například může být užitečné pro začátečníky - zde si můžete přečíst o základních pojmech internetu, naučit se přizpůsobit přizpůsobení Internet, Windows nebo dokonce rozhodnout jít do Linuxu. Tak se podívejte na záhlaví a vyberte ten, který je pro vás vhodný.</p> <p>A koneckonců doufám, že je to více než jen blog, ale skutečný internet průvodce. Stránka naleznete v režimu adresáře, kde jsou všechny dostupné články strukturovány kategoriemi. A kdo ví možná, nové výrobky se začnou objevovat zde.</p> <p><i>Sander.</i></p> <p>Picodi.ru je slevový portál z mezinárodních kupónů, polského experta na úsporu a levné nákupy. Poláci jsou považovány za jedno z nejekonomičtějších národů na světě, proto není překvapující, že tento typ projektu se rozrostl z polského startu Kodyrabatowe.pl. Co může být užitečné pro tento portál pro obyčejný internetový uživatel v Rusku?</p> <p>Moderní telefony Android jsou více než telefony. Zvyknete si na sadu nainstalovaných programů, do historie hovorů a textových zpráv, sbírek fotografií a hodně. Ale čas přejde, a plně uspořádané zařízení se začne zpomalit, bug, nebo jednoduše ztratí prezentovatelnou zobrazení, protože štípací pouzdro nebo škrábance na obrazovce. Existuje otázka výběru nového telefonu a změna telefonu Android. A pokud otázka volby, nyní budeme obejít večírek, pak "Stěhování" do nového telefonu zůstává vážným problémem - absolutně nechci spustit všechna data od nuly. Tady budeme dnes hovořit.</p> <p>Většina čtenářů tohoto blogu, s největší pravděpodobností čelil verzím řízení verzí a nebude v blízké budoucnosti přijít. A promiň. Tento extrémně uživatelsky příjemný vynález je široce používán programátory, ale podle mého názoru by to mohlo být velmi užitečné a těm, kteří aktivně pracují s texty. Ale pravděpodobně neexistuje žádný systém řízení verzí, což by bylo snadné začít používat pro "Office" (Microsoft Office) práce. Přesto si myslím, že materiál uvedený v článku může být zajímavý pro všechny čtenáře.</p> <p>Pokud jste přemýšleli o tom, jak z televizního sledování filmů přes síť a přistupovat k Internetu, tento článek je pro vás. Ne, vím, že některé televizory mají funkčnost chytrého televize, ale nikdy jsem neviděl pracovat dobře. Zřejmě proto společnost Google nedávno prokázal zcela ohromující zařízení, okamžitě skončilo pocitem. Mluvíme o Media Streamer Chromecast (Chromkast), perfektnější a cenově dostupnější verzi loňského oblíbeného hráče Nexus Q.</p> <p>Dongle CHROMKAST, jejichž rozměry nepřesahují 2 palce, se připojují k HDMI portu televizoru a umožňuje si vychutnat sledování webového obsahu streamování. Chcete-li ovládat Streamer, můžete použít libovolné zařízení (tablet, PC, Smartphone) na základě operačního platformy IOS, Windows, Android nebo Mac OS.</p> <p>Tento článek je věnován paměťovému zařízení systému Android, problémy, které mohou vzniknout v důsledku jeho nedostatku a jak je vyřešit. Já sám jsem neměl tak dávno, že můj telefon Android začal pravidelně vydávat zprávy o nedostatku paměti při pokusu o vytvoření konkrétní aplikace. To, co bylo pro mě velmi zvláštní, navzdory skutečnosti, že na popisu na trhu by měl být asi 16 GB, a také tento objem zvýšil pomocí další paměťové karty. Nicméně, problém byl a musel jsem důkladně tinker, než jsem našel správné řešení, které nevyžaduje příjem kořenového přístupu nebo úplné obnovení telefonu do výrobního stavu.</p> <p>V poslední době je hodně pozornosti věnována budování e-business systémů, nebo jak jsou také nazývány - B2B (podnikání k podnikání). Vzhledem k doporučením o výstavbě systémů streamování výměny koordinačních internetových technologií těla - www konsorcium: Důraz je kladen na technologie XML a budování systémů výměny dokumentů XML.</p> <p>Výhodou použití XML v e-businessu je vysoce účinnost systémů B2B při nízkých nákladech pro jeho vytvoření díky jasné a vizuální reprezentaci strukturovaných informací, schopnost používat moderní síťové protokoly a vytváření obchodních systémů v reálném čase.</p> <p>Nezávislost prezentace informací ve formě dokumentů XML umožňuje odlišné, účastnit se elektronického obchodu, vyrábět nezávislé od sebe.</p> <p>Ve všech systémech je výměna obvykle postavena stejným schématem pomocí požadavků HTTP. Protokol SSL se použije jako protokol SSL (ale to je samostatné téma).</p> <p>Jedním z možných možností pro zpracování zpráv XML je vybudování BIN / CGI (ISAPI) -NEWS nebo COM (server) komponenty tvořících nebo zpracovávají dokumenty XML.</p> <p>Na jedné straně aplikace působí jako klient, který v režimu post vydává dotaz HTTP, na druhé straně, je webový server na straně, jehož zpracovává dotaz a odpověď. Výměna informací používá dokumenty XML.</p> <p>Jednou z nejúčinnějších možností implementace je využití existujícího analyzátoru XML podporující model DOM. Takový parser je distribuční dodávka Win`98 nebo nedílnou součástí IE 4.7 a vyšší (pro Win`95) a představuje server COM, který se nachází v knihovně MSXML.dll.</p> <p>Model Component Object (COM) je zapouzdřená data a metody do jediné podstaty a způsob přístupu k jejich přístupu přes systém rozhraní. Delphi je prostě přístupný přístup k třídám objektu COM (v jednom serveru COM může být zahrnuta několik tříd. Přístup k objektům se provádí inicializací instance třídy prostřednictvím systému rozhraní. Popis rozhraní se provádí jazykem definice rozhraní (IDL), který je možné automaticky provést prostředky média.</p> <p>Delphi znamená imports z serveru COM <i>msxml.dll.</i>Soubory popisu rozhraní IDL jsou postaveny a soubor binární popis typu knihovny je TLB. Tato operace se provádí prostřednictvím systému System: <b>Projekt | Typ Knihovna Import:</b>(Obrázek 1). Zobrazí se následující dialogové okno (Obrázek 2), ve kterém chcete vybrat objekt COM (v našem případě je objekt registrován jako "Microsoft.xmldom (verze 2.0)") a vytvořit soubor TLB (tlačítko <b>Vytvořit jednotku.</b>). Pomocí souboru TLB generuje prostředí "PaskAlevsky" Popis souboru COM Server - msxml_tlb.pas</p> <p>Soubor MSXML_TLB.PAS popisuje všechna rozhraní, konstanty a servery COM.</p> <p>Pro přístup k objektům prvku COM je nezbytné ve směrnici <b>Použití.</b>přidejte název souboru knihovny (MSXML_TLB.PAS). Níže je nejjednodušší program, který používá standard Standard MSXML.dll analyzátor, který stahuje dokument XML a zobrazí jej v prvku textového pole Memo1.</p> <b>použití.</b> Okna, zprávy, sysutily, třídy, grafika, ovládací prvky, formy, dialogy, oleserver, msxml_tlb, stdctls; <b>typ</b> TForm1 \u003d. <b>třída</b>(TFORM) Button1: tbutton; MEMO1: TMEMO; <b>postup.</b> Tlačítko1Click (odesílatel: Togject); <b> konec;</b> <b>var.</b> Form1: TFORM1; <b>implementace</b> ($ R * .dfm) <b>Postup.</b>TFORM1.BUTTON1CLICK (odesílatel: Togject); <span> // Deklarace objektu Soklass Object Domdocument;</span> <b>var.</b>codoc: Codomdocument; <span> // třídy, v souladu s rozhraním idomdocumentu;</span> <b>var.</b>DOC: IXMLDOCENT; <b>začít.</b> <span> // Vytvoření instance objektu Domdocumentu;</span> DOC: \u003d Codoc.Create; <span> // volání způsobu režimu instance objektu Domdocument;</span> Doc.load ("data.xml"); <span> // Přístup k instanci vlastnosti XML objektu Domdocument;</span> MEMO1.TEXT: \u003d doc.xml; <b>konec;</b> <b>konec.</b> <h2>DOM CONCEPT - model dokumentu dokumentu</h2> <p>Každý dokument XML je reprezentován jako sada množiny objektů (tříd), se kterým je možný přístup k jednotlivým prvkům (objektová pole). Dom - Rozhraní popisuje přístup k objektům a součásti DomSring nebo znaky znaků nebo oddělených XML prvků dokumentu: DomFragmentelement, Domnode, Dodelement.</p> <p>Následující jsou nejdůležitější vlastnosti a metody Xmldomdocument, Xmldomnode, Xmldomnodelist. Je třeba poznamenat, že model msxml.dll xml analyzátor, analyzátor msxml.dll xml, prezentovaný níže, je používán analyzátorem msxml.dll xml, než je konsorcium DOM schválený modelem W3C.</p> <p>Úplnější popis objektů rozhraní DOM lze nalézt na</p> <table cellspacing="0" cellpadding="4" width="500" border="1"><tbody><tr><td valign="top" colspan="2"> Xmldomdocument object.</td> </tr><tr><td valign="top" colspan="2">Představuje nejvyšší úroveň hierarchie objektů a obsahuje metody práce s dokumentem: jeho stahování, analýza, vytváření prvků, atributů, komentářů v něm atd. .</td> </tr><tr><td valign="top" colspan="2"><b>Vlastnosti</b> </td> </tr><tr><td valign="top" width="39%"><b>Async.</b> </td> <td valign="top" width="61%">Vlastnost Identifikace aktuálního režimu zpracování</td> </tr><tr><td valign="top" width="39%" height="19"><b>ParseError.</b> </td> <td valign="top" width="61%" height="19">Vrátí odkaz na objekt zpracování chyb xmldomparseError</td> </tr><tr><td valign="top" width="39%"><b>Povolit ověření dokumentu.</b> </td> <td> </td> </tr><tr><td valign="top" width="39%"><b>url</b> </td> <td valign="top" width="61%">Vrátí adresu URL dokumentu</td> </tr><tr><td valign="top" width="39%"><b>dokument</b> </td> <td valign="top" width="61%">Obsahuje odkaz na kořenový prvek dokumentu jako objekt xmldomement.</td> </tr><tr><td valign="top" colspan="2"><b>Metody</b> </td> </tr><tr><td valign="top" width="39%"><b>zatížení (adresa URL) <br>loadxml (Xmlstring)</b> </td> <td valign="top" width="61%">Načte dokument XML</td> </tr><tr><td valign="top" width="39%"><b>uložit (Objtarget)</b> </td> <td valign="top" width="61%">Uloží dokument XML v souboru</td> </tr><tr><td valign="top" width="39%"><b>pŘERUŠIT.</b> </td> <td valign="top" width="61%">Přerušení procesu stahování a zpracování dokumentu.</td> </tr><tr><td valign="top" width="39%"><b>createatTribute (jméno)</b> </td> <td valign="top" width="61%">Vytvoří nový atribut se zadaným názvem aktuální položky.</td> </tr><tr><td valign="top" width="39%"><b>kreatenode (typ, název, namespaceuri)</b> </td> <td valign="top" width="61%">Vytvoří uzel zadaného typu a názvu</td> </tr><tr><td valign="top" width="39%"><b>createelement (tagname)</b> </td> <td valign="top" width="61%">Vytvoří prvek dokumentu se zadaným názvem.</td> </tr><tr><td valign="top" width="39%"><b>createTextNode (data)</b> </td> <td valign="top" width="61%">Vytvoří text uvnitř dokumentu</td> </tr><tr><td valign="top" width="39%"><b>getelementsbytagname (tagname)</b> </td> <td valign="top" width="61%">Vrátí odkaz na sběr položek dokumentu se zadaným názvem</td> </tr><tr><td valign="top" width="39%"><b>nodefromid (idstring)</b> </td> <td valign="top" width="61%">Vyhledávací prvek podle identifikátoru</td> </tr></tbody></table><br><table cellspacing="0" cellpadding="4" width="500" border="1"><tbody><tr><td valign="top" colspan="2"> <b>Xmldomnode objekt</b> </td> </tr><tr><td valign="top" colspan="2">Xmldomnode objekt, který implementuje základní domovné rozhraní <b>Uzel.</b>, Navržen tak, aby manipuloval s odděleným uzlem stromu dokumentu. Jeho vlastnosti a metody umožňují přijímat a měnit úplné informace o aktuálním uzlu - jeho typu, jméno, celé jméno, její obsah, seznam dětských prvků atd.</td> </tr><tr><td valign="top" colspan="2"><b>Vlastnosti</b> </td> </tr><tr><td valign="top" width=" "><b>nodename, Sokename.</b> </td> <td valign="top" width="65%">Vrátí název aktuálního uzlu.</td> </tr><tr><td valign="top" width="35%"><b>předpona.</b> </td> <td valign="top" width="65%">Vrátí předponu oboru názvů.</td> </tr><tr><td valign="top" width="35%"><b>datový typ</b> </td> <td valign="top" width="65%">Definuje typ obsahu aktuálního uzlu</td> </tr><tr><td valign="top" width="35%"><b>nodetype, nodetypestring.</b> </td> <td valign="top" width="65%">Vrátí typ aktuálního uzlu:</td> </tr><tr><td valign="top" width="35%"><b>atributy.</b> </td> <td valign="top" width="65%">Vrátí seznam atributů aktuálního uzlu jako kolekce Xmldomnamendemap.</td> </tr><tr><td valign="top" width="35%"><b>tEXT.</b> </td> <td valign="top" width="65%">Vrátí obsah aktuální podpory ve formě textu.</td> </tr><tr><td valign="top" width="35%"><b>xml.</b> </td> <td valign="top" width="65%">Vrátí XML reprezentaci aktuální podpory.</td> </tr><tr><td valign="top" width="35%"><b>nodevalue.</b> </td> <td valign="top" width="65%">Vrátí obsah aktuálního uzlu.</td> </tr><tr><td valign="top" width="35%"><b>childnodes.</b> </td> <td valign="top" width="65%">Vrátí seznam dětských prvků jako Xmldomnodelist.</td> </tr><tr><td valign="top" width="35%"><b>první, Lastchild.</b> </td> <td valign="top" width="65%">Vrátí prvního / posledního podřízeného prvku</td> </tr><tr><td valign="top" width="35%"><b>předchozí předchozí, nextsibling.</b> </td> <td valign="top" width="65%">Vrátí předchozí / následující ošetřovatelský prvek.</td> </tr><tr><td valign="top" width="35%"><b>parentNode.</b> </td> <td valign="top" width="65%">Obsahuje odkaz na rodičovský prvek.</td> </tr><tr><td valign="top" width="35%"><b>vlastníkodocument.</b> </td> <td valign="top" width="65%">Vrátí ukazatel na dokument, ve kterém je aktuální uzel umístěn.</td> </tr><tr><td valign="top" colspan="2"><b>Metody</b> </td> </tr><tr><td valign="top" width="35%"><b>appendChild (NewChild)</b> </td> <td valign="top" width="65%">Přidá nový podřízený prvek do aktuálního uzlu.</td> </tr><tr><td valign="top" width="35%"><b>iNSORTBEFORE (NewChild, RefChild)</b> </td> <td valign="top" width="65%">Vloží dětský uzel, který má v aktuálním subtree "vlevo" uzlu určeného parametrem RefChild.</td> </tr><tr><td valign="top" width="35%"><b>klonenode (hluboký)</b> </td> <td valign="top" width="65%">Vytvořte kopii aktuálního prvku.</td> </tr><tr><td valign="top" width="35%"><b>getAtribute.</b><b>(Název) <br> </b><b>getAttributenode.</b><b><span> (Název) <br>sETATETRIBUTE (název, hodnota) <br>setAttributenode (XMLDOMATTRIBUTE)</span> </b> </td> <td valign="top" width="65%">Přístup k atributům (vytváření, čtení, psaní) objektu. Jméno - název atributu, hodnota - jeho hodnota. Vrátí hodnotu objektu XMLDOMATTRIBUTE.</td> </tr><tr><td valign="top" width="35%"><b>lepisleChild (NewChild, Oldchild) Odbojovec (Oldchild)</b> </td> <td valign="top" width="65%">Nahrazení oldchild předmětu aktuálního seznamu dceřiných společností na NewChild. Odstranění objektu OldChild</td> </tr><tr><td valign="top" width="35%"><b>selectNodes SelectSinglende (Pagringstring)</b> </td> <td valign="top" width="65%">Vrátí objekt xmldomnodelist vybraný podle vyhledávacího vzorku nebo prvního uzlu</td> </tr><tr><td valign="top" width="35%"><b>transformnode (Stylíš) <br>transformNodetObject (Stylesheet, OutputObject)</b> </td> <td valign="top" width="65%">Přiřazuje tabulku ve stylu pro podporu aktuálního uzlu a vrátí řetězec - výsledek zpracování. Odkaz na objekt Domdocument je vysílán jako parametr, ve kterém jsou umístěny pokyny XSL.</td> </tr></tbody></table><br><h2>Pomocí XML v podnikání.</h2> <p>Pro jasnější obrázek je nutné vysvětlení a proč je to vše nezbytné s tím, co pochopit, jak to funguje:</p> <p>Při budování systému B2B nebo firemního ERP při organizaci informační výměny dokumentů XML mezi podniky nebo pobočkami Prom-I, efektivně osvědčený informační systém se používá na základě dostupných webových serverů na protokolech HTTP.</p> <p>Na jedné straně aplikace působí jako klienta, který v režimu Post vydává dotaz HTTP, na druhé straně webový server je na straně, na které je požadavek zpracován a odpověď. Dokumenty XML se používají jako výměna.</p> <p>Například v jednoduchém firemním ERP systému účetního programu (ACS účetnictví) je nutné vytvořit určitou žádost o fakturu a převést ji na pobočku, která má sklad (ACS Warehouse). Umění je podobným nastavením problému při vytváření B2B systému, když podnik požadavky požadavků na dostupnost produktů (provádí objednávku na nákup) od dodavatele V.</p> <p>Podnik A a jeho program působí jako klient. Sklad slouží dodavateli, který má komplex skladiště BD na serveru SQL Server. Exchange se provádí prostřednictvím firemního dodavatele webového serveru V.</p> <p>Níže je následující typický exchange algoritmus:</p> <br>Obrázek 3. <ol><li><b>Podnik A.</b>iniciátiva <b>proces A.</b>(Objednávka produktu), který funguje jako webový klient.</li><li><b>Proces A.</b>generuje dokument XML (například fakturu) a přenáší jej jako dotaz Post HTTP na server dodavatele webu V. Jako URI - použitý identifikátor zpracování. URI může být stejná jako u všech typů dokumentů nebo jednotlivců pro každý typ. To vše závisí na struktuře serveru B2B (Web).</li><li>Webový server analyzuje požadavek a generuje server <b>Proces B.</b>Předáním XML dokumentu jako parametr. <br>Proces na webovém serveru je spuštěn a zpracován buď jako stránka ASP, CGI (ISAPI) - aplikace nebo Java Sevrlet (serverová aplikace)</li><li><b>Proces B.</b>- Generuje požadavek na databázový server SQL.</li><li>SQL Server činí potřebné operace v databázi, formulá odpověď a vrátí jej. <b>Proces B.</b>.</li><li>Na odpovědi z serveru SQL <b>Proces B.</b> Generuje dokument XML (odpověď) a umožňuje jako odpověď na požadavek HTTP do klientské aplikace.</li><li>Dále, v závislosti na situaci na straně klienta, vytvoří se nový dotaz HTTP nebo končí relace.</li> </ol><h2>Několik slov o organizaci správy dokumentů.</h2> <p>Obecné pravidlo vývoje XML Exchange System je:</p><ul><li><b>za prvé</b>- Vývoj okruhu toku elektronických dokumentů a jejich struktury;</li><li><b>za druhé</b>- vývoj tabulek funkcí procesů (podprocesy) tj. Jakou funkci v souvislosti s tímto dokumentem XML bude realizovat každý proces.</li> </ul><p>Každý dokument XML, jako dokument HTML, měl by se skládat ze záhlaví zprávy (Informační vězně) a tělo zprávy (pro dotaz tyto informace orámované označením reagovat na požadavek). Aby byl dokument XML správně vytvořen, je nutné například pro jeho dvě komponenty "záhlaví" a "požadavek" pro zarámování značek. Pohled na standardní dokument je uveden níže:</p> <p>Název (obrázek 4), na rozdíl od HTML dokumentu, by měl obsahovat různé druhy servisních informací, včetně informací o typu dokumentu vysílaného a zpracování procesu. Informační zpracování dokumentu je přijato, tj. Smysluplnou část je orámována značkou. Je třeba poznamenat, že struktura záhlaví by měla být sjednocena pro všechny typy dokumentů.</p> <p>Pro proces běžící serverem je algoritmus zpracování s výhodou (ale není nutné) stavět následujícím způsobem:</p> <img src='https://i1.wp.com/codenet.ru/np-includes/upload/2005/01/05/128666.jpg' height="500" width="408" loading=lazy loading=lazy><br>Obrázek 6. <h2>Některé hlavní okamžiky při vytváření klientské části</h2> <p>Jak již bylo vysvětleno, při vytváření dokumentu XML používá svou prezentaci ve formě modelu DOM. Níže je uveden příklad textu textu Delphi programu zpráv zprávy XML zprávy.</p> <b>postup.</b>Thread1.HeaderCreate (odesílatel: togject); <b>var.</b> <span> // Vyhlášení tříd je potřeba k vytvoření</span> Codoc: Codomdocument; <span> // xmldomdocument object.</span> Doc: Domdocument; R: IxmldomElement; Uzel: ixmldomElement; // DOMTEXT TXT: IXMLDOMTEXT; // domattribute attr: ixmldomattribute; <b>začít.</b> <span> // Vytvoření DOM dokumentu</span> DOC: \u003d Codoc.Create; Doc.set_async (false); <span> // počáteční iniciační DOM dokument</span> Doc.loadxml (" <Header/>"); <span> // Vytvoření domočementu (tag<<b>Odesílatel.</b>>) </span> Uzel: \u003d doc.Createelement ("odesílatel"); <span> // Vytvoření textového uzlu " <b>LLC "Typhoon"</b>" </span> Txt: \u003d doc.createTextNode ("llc" Typhoon "); <span> // přiřazení uzlu<<b>Odesílatel.</b>\u003e Hodnota</span> <span> // textový uzel " <b>LLC "Typhoon"</b>" </span> Node.appendChild (txt); <span> // přidání položky<<b>Odesílatel.</b>\u003e V kořenu dokumentu jako dceřiné společnosti</span> R.appendChild (uzel); <span> <<b>Z.</b>> </span> Uzel: \u003d doc.Createelement ("od"); Txt: \u003d doc.createTextNode ("http://tayfun.ru/xml/default.asp"); Node.appendChild (txt); R.appendChild (uzel); <span> // Podobné operace pro značku<<b>Na.</b>> </span> Uzel: \u003d Doc.Createelement ("do"); Txt: \u003d doc.createTextNode ("http://irbis.ru"); Node.appendChild (txt); R.appendChild (uzel); <span> // vytvořit domočement ()</span> Uzel: \u003d doc.Createelement ("typedocument"); <span> // Vytvoření uzlu XMLDOMATTRIBUTE</span> ATT: \u003d Doc.Createattribute ("ID", "Objednávka"); <span> // <TypeDocument Id="Order"/> </span> Node.appendChild (att); R.appendChild (uzel); <b>konec;</b> <p>Je třeba poznamenat, že vyhlášení kodexu: CODOMDocument a doc: Domdocument proměnná, jakož i vytvoření metody CREATE (DOC: \u003d Codoc.Create;) se provádí jednou. Prohlášení proměnné je v části popisu globálních proměnných, a nikoli v místním postupu, jak bylo prokázáno, že viditelnost v tomto příkladu (tj. Jeden globální proměnná typu programového modulu typu DomDocument).</p> <p>Výsledkem výše uvedeného programu bude vytvořený záhlaví, ve vztahu k našemu příkladu dokumentu XML: znázorněný na obrázku 5.</p> <img src='https://i0.wp.com/codenet.ru/np-includes/upload/2005/01/05/128662.gif' height="116" width="298" loading=lazy loading=lazy><br>Obrázek 5. <p><img src='https://i0.wp.com/codenet.ru/np-includes/upload/2005/01/05/128664.gif' height="179" width="385" loading=lazy loading=lazy><br>Obrázek 6.</p><p>Hlavní výhodou vysílání informací ve formě dokumentů XML je to, že je možné vytvořit zprávu pomocí nezávislé struktury tabulek v DBMS jak na přijaté, tak na přenášené straně. Pomocí našeho příkladu nechte přenést informace o fakturách podniku A, od DBMS struktury uvedené na obrázku 6</p> <p>Chcete-li vytvořit dokument XML obsahující fakturu, původně postavený požadavek SQL (dotaz A) s informacemi o faktuře:</p> <b>VYBRAT</b> * Z faktury_general. <b>Kde</b> Fakturie \u003d: num <b>VYBRAT</b>Zboží, Quulity, Cena, Hz_cod <b>Z.</b>Zboží <b>Kde</b> Fakturie \u003d: num <span> //: num - parametr, který určuje číslo faktury.</span> <p>Níže je součástí programu, který tvoří tělo dokumentu XML:</p> <b>postup.</b> Thread1.dataBodycreate (odesílatel: tobject); <b>var.</b> <span> // třídy a xmldomdocument</span> // Codoc: Codomdocument; <span> // musí být globální, pro celý modul.</span> // doc: Domdocument; <span> Oznámení o domostřích</span> R: IxmldomElement; // DOLELENCE; Uzel, uzel2: ixmldomElement; NODE3, NODE4: IXMLDOMELEMENCE; // DOMTEXT TXT: IXMLDOMTEXT; Str: řetězec; <span> // Číslo faktury: <b>celé číslo;</b> - Globální proměnná - // Masching 987654 // Querya, Queryb: <b>Tětiva;</b> - globální proměnná, // zachování žádosti o požádání // Querya - žádost a obecné informace o faktuře // Queryb - dotaz b Informace o zboží popsaném v // faktuře (viz text)</span> <b>začít.</b> Query.Close; <span> // Viz text "Žádost A"</span> Query.text: \u003d Querya; <span> // spuštění požadavku</span> Query.Execsql; Query.Open; <span> // Získejte adresu kořenového prvku</span> R: \u003d doc.get_documentElement; Node2: \u003d doc.Createelement ("žádost"); <span> // vytvořit domočement (tag)</span> Uzel: \u003d doc.Createelement ("faktura"); <span> // přidání položky do kořene</span> R.appendChild (uzel2); <span> // přidání položky do</span> Uzl2. AppendChild (uzel); <span> // vytvořit domočement (tag)</span> Node3: \u003d doc.Createelement ("depurture"); <span> // přidání položky do</span> Uzel. AppendChild (Node3); <span> // Odvolání na pole "Depurture"</span> STR: \u003d Query.fieldbyName ("depurture"). Prostor; <span> // Vytvoření textového uzlu \u003d Hodnota pole</span><span> // Hodnota přiřazení uzlu</span> <span> // textový uzel, variabilní str</span> Node.appendChild (txt); <span> // Podobné operace pro značku <Destination>, <DataSend>, // <DataDepurture>, <Currency> // <DestinationCompany> (pole db "příjemce")</span> Uzel: \u003d doc.Createelement ("cíl"); <span> // název pole databáze se nesmí shodovat s názvem</span> STR: \u003d Query.fieldbyName ("příjemce") .asstruring; <span> // taga, v této výhodě použití</span> Txt: \u003d doc.createTextNode (str); <span> // DOM rozhraní před DBMS majícím podporu rozhraní XML, // typ Oracle 8i nebo MS SQL 2000</span> Node.appendChild (txt); ... <span> // vytvoření žádosti o specifikaci zboží</span> <span> // zavírá žádost o přístup</span> Query.Close; <span> // zobrazí se na text "Žádost in", info. O produktech</span> Query.text: \u003d Queryb; <span> // přiřazení hodnot parametrů</span> Query.params.asinsteger: \u003d foicenumber; <span> // spuštění požadavku</span> Query2.Execsql; <span> // otevření přístupu k údajům o vyžádání</span> Query.Open; <span> // vytvořit domočement (tag)</span> Node3: \u003d doc.Createelement ("IMEMS"); <span> // přidání položky do</span> Uzel. AppendChild (Node3); <span> // cyklus na všech požadavcích</span> <b>zatímco</b> <b>ne.</b> Eof.Query. <b>dělat.</b> Začněte node4: \u003d doc.Createelement ("imem"); <span> // přidání položky do</span> Node3.appendChild (Node4); <span> // generace dat pro značku</span> STR: \u003d Query.fieldByName ("cena"). Prostor; Txt: \u003d doc.createTextNode (str); Node.appendChild (txt); ... <span>// Podobné operace pro značky <HZ_Cod>, <Quality>, <GoodName> </span> <b>konec;</b> <b>konec;</b> <p>V důsledku tohoto postupu se vytvoří následující text dokumentu XML:</p> <table width="100%"><tbody><tr><td align="middle"><br><img src='https://i2.wp.com/codenet.ru/np-includes/upload/2005/01/05/128661.gif' width="100%" loading=lazy loading=lazy></td> </tr></tbody></table><p>Otevřená metoda se používá k vytvoření dotazu. <b>IXMLHTTTREQUEST.</b>:</p> <b>postup.</b> Otevřít (CONST BSTMETHOD, - typ metody \u003d "Post" Bstrurl, - adresa serveru URL Varasync, - asynchronní / synchronní komunikační režim \u003d TRUE BSTRUSER, - Uživatelské jméno pro ověřování BSTPSWORD) - Heslo <h2>Vytvoření serverové části zpracování dokumentů</h2> <p>Jak již bylo uvedeno dříve, zpracování požadavku HTTP lze provádět buď CGI aplikace nebo Java Servlets. Možné možnosti pro psaní stránek ASP. V tomto případě je však přenos dat možné pouze pomocí "GET" pomocí řetězce dotazu. Ačkoli, http zpracování požadavku na stránku ASP funguje efektivněji než aplikace CGI. Podle mého názoru však bez jakéhokoli rozdílu, jak zpracovat, a co je důležitější řešit otázku - jak vytvořit program zpracování a ne s tím, co znamená.</p> <p>Pokud jsme přezkoumali možnosti formování dokumentu XML z předchozí kapitoly, pak úkol serverové aplikace je opakem dokumentů XML. Níže je součástí programu, který analyzuje dokument XML:</p> <b>postup.</b>Thread1.dataParser (odesílatel: tobject); <b>var.</b> <span>Oznámení o domostřích</span> R, fnode: ixmldomelement; STR, název souboru: řetězec; Parm: řetězec; <span>// oznámení sokolů a</span> Codocxml, Codocxsl, Codocresult: Codomdocument; <span>// xmldomdocument object.</span> XMLLDOC, XSLDOC, DRUSDDOC: Domdocument; <span>// httpstr: řetězec; - globální proměnná obsahující řetězec dotazu HTTP</span> <b>Začít.</b> XMLDOC: \u003d Codocxml.Create; Xmldoc.loadxml (httpstr); <span> // Získejte adresu kořenového prvku</span> R: \u003d doc.get_documentElement; <span> // získání hodnoty prvku</span> Fnode: \u003d r.Selectsinglenode ("// typedocument"); <span> // Získejte hodnotu atributu ID \u003d "Objednávka"</span> Název souboru: \u003d fnode.getattibute ("id"); <span> // a vytvoření řádu názvu souboru.xsl</span> Název souboru: \u003d název souboru + ". Xsl"; <span> // Vytvoření dokumentu XSLDOC</span> XSLDOC: \u003d Codocxsl.Create; Xsdoc.loadxml (název souboru); <span> // Vytvoření dokumentu XMLDOC</span> DreatDDOC: \u003d Codocresult.Create; <span> // Nastavení režimu synchronního zpracování</span> Resultdoc.set_async (false); <span> // Instalace debutace kontroly</span> VýsledekDoc.validateonparase: \u003d true; <span> // Sbalit XMLDOC pomocí šablony XSL</span> XMLDOC.TRANSFORMNOC, DRUSDDOC (XSLDOC, DRESTEDDOC); <span> // Variabilní STR je přiřazen hodnotě textu</span> <span> // výsledný dokument.</span> Str: \u003d výsledekDoc.text; <span> // vyhledávací prvek</span> Fnode: \u003d R.Selectsinglenode ("// foicenumber"); <span> // a získání hodnoty prvku</span> Parm: \u003d fnode.text; <span> // zavírá žádost o přístup</span> Query.Close; Query.text: \u003d str; <span> // přiřazení hodnoty parametru</span> Query.params.asstring: \u003d parm; <span> // spuštění požadavku</span> Query.Execsql; <b>konec;</b> <p>Celý rozsah analýzy je aplikovat šablonu XSL, která je tvořena pro každý typ dokumentu individuálně. Výsledkem analýzy je řetězec dotazu SQL. V důsledku toho provede provedení generovaného řetězce dotazu SQL nezbytné změny v DBMS.</p> <p>Výhodou použití analýzy přes šablonu je také ve skutečnosti, že ukazuje některá flexibilita dat, a kompletní nezávislost operace algoritmu z programového kódu je získána. Níže je uveden text šablony XSL, jak je použito pro zpracování typu dokumentu.</p><p> <!-- файл Order.xsl --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <xsl:for-each select="//header"> Vložka do tabulek tabR (od, na hodnotu typedocu) (" <xsl:value-of select="from" />", "<xsl:value-of select="to" />", "<xsl:value-of select="TypeDocument/@id" />") </xsl:for-each> <xsl:for-each select="//item"> Vložte do zboží (fakturovat, jméno, cena, kvalita) hodnot (": num", " <xsl:value-of select="name" />", "<xsl:value-of select="price" />", "<xsl:value-of select="quality" /> ") </xsl:for-each> </xsl:template> </xsl:stylesheet> </p><p>Vysvětlení výše uvedeného příkladu je třeba poznamenat, že použití párů značek a je formální, protože Po analýze by měl být v výsledném dokumentu XML přítomen alespoň jeden uzel. Metoda VýsledkyDoc.text přiřazuje hodnotu textu získané během analýzy dokumentu XML DocumentDoc. V tomto případě je hodnota vše, co jsou páry značek zarámovány a tj. Jsme vytvořili žádost SQL.</p> <p>Dalším znakem psaní Program je třeba poznamenat možnost použití parametru SQL <b>: num.</b> Pomocí parametru umožňuje zjednodušit text šablony XSL. Definice Hodnota odpovídajících prvků uzlů dokumentu XML je stanovena zpočátku výběrem názvu odpovídajícího uzlu, například:</p><h2>Stručně o XSL.</h2> <p>XSL Zkratka pochází z rozšiřitelného jazyka stylů - formátování tabulky stylu (XML data). Jak je zřejmé z rozšiřitelného jazyka (XSL) (XSL) (XSL) se používá pro formátování dat XML. Definice W3C XSL se skládá ze dvou částí:</p> <ul><li>XSLT - XSL transformace. Jazyk používaný k převodu nebo formátu (transformace) XML dokumentů. Tak, pomocí XSLT, můžeme získat různé části více datových a datových formulářů.</li><li>Formátování prvků. Tyto prvky zahrnují všechny prvky typografického data dat, poté, co byly zpracovány pomocí XSL. Používá se pouze pro vytvoření stránek HTML.</li> </ul><p>Pomocí XSLT můžeme vybrat data z souboru XML, které potřebujete, a uspořádat je ve formuláři poskytnout uživateli. Například v našem případě jsme transformovali data XML jako dotaz SQL. Classic XSL aplikace je obvykle formátování dat jako stránky HTML nebo vzácné reprezentace ve tvaru souborů RTF.</p> <p>Soubor XSL popisuje šablonu (šablonu), podle které bude provedena konverze dat XML. Vrácení do XSL šablon, následující prvky mohou být přiděleny v XSLT (Směrnice):</p> <table cellspacing="0" cellpadding="4" width="500" border="1"><tbody><tr><td valign="top" width="31%"> <b>XSL Směrnice</b> </td><th align="middle" width="69%"> <b>popis</b> </th> </tr><tr><td>xSL: Použít šablony</td> <td>Směrnice, označující aplikaci příslušných šablon atribut vyberte \u003d "Jméno šablony"</td> </tr><tr><td>xSL: Atribut.</td> <td>vytvoří stromu atributu a přidá ji do výstupního prvku, parametr názvu \u003d "" Atribut název ", jmenný prostor - URI na oboru názvů (předpona oboru názvů)</td> </tr><tr><td>xSL: Call-šablona</td> <td>způsobuje šablonu, název atributu \u003d "Uri na šabloně"</td> </tr><tr><td>xSL: Vyberte si. <br>xSL: Kdy. <br>xSL: Jinak.</td> <td>výběr podle stavu XSL: Když Expr \u003d "Výpočet výrazu na skriptu", <br>jazyk \u003d "Jazyk-jméno" <br>test \u003d "Vypočítaný výraz"</td> </tr><tr><td>xSL: Komentář</td> <td>generuje komentář k výstupnímu dokumentu</td> </tr><tr><td>xSL: Kopírovat <br>xSL: kopie</td> <td>zkopíruje aktuální uzel ve výstupním zdroji nebo vloží fragment dokumentu do uzlu, kde se atribut Select \u003d "název zdroje uzlu"</td> </tr><tr><td>xSL: Element.</td> <td>vytvoří výstupní prvek podle názvu, názvu atributu \u003d "Název prvku", namespace \u003d "URI odkaz na obor názvů"</td> </tr><tr><td>xSL: Pro-každý</td> <td>re-aplikovat šablonu pro všechny uzly uzlů uzlů, vyberte atribut Seznam uzlů.</td> </tr><tr><td>xSL: Jestli.</td> <td>kontrola podmínek je nastavena atributem testu jako výraz</td> </tr><tr><td>xSL: zahrnují</td> <td>zahrnuje externí šablonu, atribut href \u003d "URI reference"</td> </tr><tr><td>xSL: Výstup</td> <td>určuje výsledek výstupu, atribut metody může mít "xml", "html" nebo "text"</td> </tr><tr><td>xSL: Param.</td> <td>určuje hodnotu parametru, atribut název \u003d "název parametru", vyberte \u003d "hodnota"</td> </tr><tr><td>xSL: Instrukce zpracování</td> <td>vytvoří pokyny pro zpracování, název atributu \u003d "Název procesu procesu"</td> </tr><tr><td>xSL: Seřadit.</td> <td>seřadí mnoho uzlů, atributy Select \u003d "Name Název", datový typ \u003d Typ dat ("Text" | "Číslo" | QName), Order \u003d Sort Směr ("vzestupně" | Descending ")</td> </tr><tr><td>xSL: StyleSheet.</td> <td>definuje dokument XSL šablony, je kořenový prvek pro XSLT</td> </tr><tr><td>xSL: Šablona.</td> <td>určuje šablonu XSL, název předpony URI \u003d "URI Prefix Atribut na název šablony", Match \u003d "Poznámka k uzlu, ke kterému se šablona vztahuje"</td> </tr><tr><td>xSL: Text.</td> <td>generuje text do výstupního proudu, Disable-Output-escaping \u003d "Ano" nebo "Ne" atribut označuje schopnost generovat znaky ESC</td> </tr><tr><td>xSL: Hodnota</td> <td>vloží hodnotu vybraného uzlu jako text, ukazatel SELECT \u003d "na atribut uzlu", ze kterého je hodnota přijata</td> </tr><tr><td>xSL: Proměnná</td> <td>určuje hodnotu hranic proměnných, atribut název \u003d "název proměnné", vyberte \u003d "Vypočítejte hodnotu proměnné"</td> </tr><tr><td>xSL: s-param</td> <td>platí parametr do šablony, atribut názvu \u003d "název parametrů", vyberte \u003d výraz pro výpočet aktuálního kontextu, výchozí hodnotu "."</td> </tr></tbody></table><h2>Závěr</h2> <p>Závěrem je třeba poznamenat, že pomocí standardního analyzátoru XML <i>msxml.dll.</i>není to jediné způsoby analýzy a vytváření dokumentů XML. Chcete-li například vytvořit dokumenty XML, abyste efektivně používali komponenty <b>TpageProduser.</b>a <b>Ttableproduser.</b>. Tento článek však zdůrazňuje jen šířku a možnost použití modelu DOM v praxi.</p> <p>Autor bude velmi vděčný za zpětnou vazbu o relevanci tématu, celkový obsah, styl prezentace, stejně jako všechny ostatní komentáře, které pomohou dále zlepšit kvalitu sbírku článků a vydání knih, které pokrývá Předmět praktické strany použití XML dokumentů v e-commerce. Pro více informací o praktické stránce aplikace elektronických dokumentů se můžete poučit z www.edocs.al.ru na webových stránkách autora, je také plánováno umístit zdrojové texty a příklady.</p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> <div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div> </div> <footer> <div class="td-block-row td-post-next-prev"> <div class="td-block-span6 td-post-prev-post"> <div class="td-post-next-prev-content"><span>Předchozí článek</span><a href="https://obanracer.ru/cs/kurortnyi-pos-lok-kalifeya-halkidiki-opisanie-i-otzyv-kalifeya.html">Resort Village Califai.</a></div> </div> <!-- /next_post --> <div class="td-next-prev-separator"></div> <div class="td-block-span6 td-post-next-post"> <div class="td-post-next-prev-content"><span>Další článek</span><a href="https://obanracer.ru/cs/kallifeya-greciya-opisanie-krasivye-vidy-kallifei-gde-mozhno.html">Kallithea Řecko Popis</a></div> <!-- /next_post --> </div> </div> <div class="td-author-name vcard author" style="display: none"><span class="fn"><a href="https://obanracer.ru/cs/author/iulia">Julia.</a></span></div> <span style="display: none;" itemprop="author" itemscope itemtype="https://schema.org/Person"><meta itemprop="name" content="Юлия"></span> <meta itemprop="datePublished" content="2016-05-16T15:47:37+00:00"> <meta itemprop="dateModified" content="2016-10-25T16:54:41+00:00"> <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="/other/kak-zavyazat-galstuk-foto-poshagovo.html" /><span style="display: none;" itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><span style="display: none;" itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="//obanracer.ru/wp-content/uploads/2017/01/logo-300x100.png"></span> <meta itemprop="name" content="Мой секрет"> </span> <meta itemprop="headline " content="Как завязать галстук пошагово фото"><span style="display: none;" itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="/wp-content/uploads/2016/05/1-19.jpg"><meta itemprop="width" content="640"><meta itemprop="height" content="450"></span> </footer> </article> <div class="td_block_wrap td_block_related_posts td_uid_3_5a236fb03c961_rand td_with_ajax_pagination td-pb-border-top td_block_template_1" data-td-block-uid="td_uid_3_5a236fb03c961" ><script>var block_td_uid_3_5a236fb03c961 = new tdBlock(); block_td_uid_3_5a236fb03c961.id = "td_uid_3_5a236fb03c961"; block_td_uid_3_5a236fb03c961.atts = '{ "limit":9,"sort":"","post_ids":"","tag_slug":"","autors_id":"","installed_post_types":"","category_id":"","category_ids":"","custom_title":"","custom_url":"","show_child_cat":"","sub_cat_ajax":"","ajax_pagination":"next_prev","header_color":"","header_text_color":"","ajax_pagination_infinite_stop":"","td_column_number":3,"td_ajax_preloading":"","td_ajax_filter_type":"td_custom_related","td_ajax_filter_ids":"","td_filter_default_txt":"\u0412\u0441\u0435","color_preset":"","border_top":"","class":"td_uid_3_5a236fb03c961_rand","el_class":"","offset":"","css":"","tdc_css":"","tdc_css_class":"td_uid_3_5a236fb03c961_rand","live_filter":"cur_post_same_categories","live_filter_cur_post_id":10046,"live_filter_cur_post_author":"694350","block_template_id":""} '; block_td_uid_3_5a236fb03c961.td_column_number = "3"; block_td_uid_3_5a236fb03c961.block_type = "td_block_related_posts"; block_td_uid_3_5a236fb03c961.post_count = "9"; block_td_uid_3_5a236fb03c961.found_posts = "26"; block_td_uid_3_5a236fb03c961.header_color = ""; block_td_uid_3_5a236fb03c961.ajax_pagination_infinite_stop = ""; block_td_uid_3_5a236fb03c961.max_num_pages = "3"; tdBlocksArray.push(block_td_uid_3_5a236fb03c961); </script><h4 class="td-related-title td-block-title"><a id="td_uid_4_5a236fb03e35d" class="td-related-left td-cur-simple-item" data-td_filter_value="" data-td_block_id="td_uid_3_5a236fb03c961" href="#">Podobné články</a></h4><div id=td_uid_3_5a236fb03c961 class="td_block_inner"> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/kak-v-mainkrafte-zarabatyvat-dengi-sozdanie-kart-hosting.html" rel="bookmark" title="Jak in."Майнкрафте" зарабатывать деньги: создание карт, хостинг сервера и продажа ресурсов Как заработать в minecraft реальные деньги"><img width="218" height="150" class="entry-thumb" src="/uploads/afcbce1b7e914af6ae122d25f02ce1cc.jpg" alt="Jak in."Майнкрафте" зарабатывать деньги: создание карт, хостинг сервера и продажа ресурсов Как заработать в minecraft реальные деньги" title="Jak in."Майнкрафте" зарабатывать деньги: создание карт, хостинг сервера и продажа ресурсов Как заработать в minecraft реальные деньги"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/cs/category/windows-7/" class="td-post-category">Windows 7.</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/kak-v-mainkrafte-zarabatyvat-dengi-sozdanie-kart-hosting.html" rel="bookmark" title="Jak in."Майнкрафте" зарабатывать деньги: создание карт, хостинг сервера и продажа ресурсов Как заработать в minecraft реальные деньги">Jak vydělat peníze v Minecraft: Vytváření karet, server hosting a prodeje zdroje, jak vydělat peníze v minecraft skutečných penězích</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/kak-polzovatsya-skaipom-na-kompyutere-poshagovaya-instrukciya-kak-ustanovit.html" rel="bookmark" title="Jak nainstalovat"скайп" на телефон и пользоваться им"><img width="218" height="150" class="entry-thumb" src="/uploads/f3dcf86cee739b27674f98cb9a246126.jpg" alt="Jak nainstalovat"скайп" на телефон и пользоваться им" title="Jak nainstalovat"скайп" на телефон и пользоваться им"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/cs/category/monitors/" class="td-post-category">Monitory</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/kak-polzovatsya-skaipom-na-kompyutere-poshagovaya-instrukciya-kak-ustanovit.html" rel="bookmark" title="Jak nainstalovat"скайп" на телефон и пользоваться им">Jak nainstalovat "Skype" na telefonu a použít jej</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/chto-uchit-programmistu-obuchenie-programmirovaniyu-s-nulya-poshagovoe.html" rel="bookmark" title="Programování učení od nuly - krok za krokem průvodce pro začátečníky"><img width="218" height="150" class="entry-thumb" src="/uploads/6dd3b3707e9f1aed620f6871d2d743b2.jpg" alt="Programování učení od nuly - krok za krokem průvodce pro začátečníky" title="Programování učení od nuly - krok za krokem průvodce pro začátečníky"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/cs/category/internet/" class="td-post-category">Internet</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/chto-uchit-programmistu-obuchenie-programmirovaniyu-s-nulya-poshagovoe.html" rel="bookmark" title="Programování učení od nuly - krok za krokem průvodce pro začátečníky">Programování učení od nuly - krok za krokem průvodce pro začátečníky</a></h3> </div> </div> </div> </div> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/kto-sozdal-pervyi-arifmometr-v-1672-godu-cifrovaya-melnica-xvii-veka.html" rel="bookmark" title="Digitální mlýn XVII století"><img width="218" height="150" class="entry-thumb" src="/uploads/9ea1055fe470170f4295195302ca43f4.jpg" alt="Digitální mlýn XVII století" title="Digitální mlýn XVII století"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/cs/category/the-winchesters/" class="td-post-category">Winchester</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/kto-sozdal-pervyi-arifmometr-v-1672-godu-cifrovaya-melnica-xvii-veka.html" rel="bookmark" title="Digitální mlýn XVII století">Digitální mlýn XVII století</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/otkryt-levoe-menyu-fudzheira-otkryt-levoe-menyu-fudzheira-pravila.html" rel="bookmark" title="Otevřete levý menu Fujairah pravidla v Emirate Fujaira"><img width="218" height="150" class="entry-thumb" src="/uploads/db0aa0723ea5b33d175084cf050525c7.jpg" alt="Otevřete levý menu Fujairah pravidla v Emirate Fujaira" title="Otevřete levý menu Fujairah pravidla v Emirate Fujaira"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/cs/category/windows-7/" class="td-post-category">Windows 7.</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/otkryt-levoe-menyu-fudzheira-otkryt-levoe-menyu-fudzheira-pravila.html" rel="bookmark" title="Otevřete levý menu Fujairah pravidla v Emirate Fujaira">Otevřete levý menu Fujairah pravidla v Emirate Fujaira</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/otkryt-levoe-menyu-fudzheira-otkryt-levoe-menyu-fudzheira-priroda-i-mestnye.html" rel="bookmark" title="Otevřené levé menu Fujaira Příroda a místní Ladmashafty"><img width="218" height="150" class="entry-thumb" src="/uploads/76db616820a891735d379024af838a06.jpg" alt="Otevřené levé menu Fujaira Příroda a místní Ladmashafty" title="Otevřené levé menu Fujaira Příroda a místní Ladmashafty"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/cs/category/motherboard/" class="td-post-category">základní desky</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/otkryt-levoe-menyu-fudzheira-otkryt-levoe-menyu-fudzheira-priroda-i-mestnye.html" rel="bookmark" title="Otevřené levé menu Fujaira Příroda a místní Ladmashafty">Otevřené levé menu Fujaira Příroda a místní Ladmashafty</a></h3> </div> </div> </div> </div> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/kak-zaregistrirovatsya-vkontakte-kak-sdelat-vtoruyu-stranicu.html" rel="bookmark" title="Jak vytvořit druhou stránku VKontakte pro jedno číslo?"><img width="218" height="150" class="entry-thumb" src="/uploads/52dbe0968199d05d0cb2d2d1b0a43d6f.jpg" alt="Jak vytvořit druhou stránku VKontakte pro jedno číslo?" title="Jak vytvořit druhou stránku VKontakte pro jedno číslo?"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/cs/category/security/" class="td-post-category">Bezpečnost</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/kak-zaregistrirovatsya-vkontakte-kak-sdelat-vtoruyu-stranicu.html" rel="bookmark" title="Jak vytvořit druhou stránku VKontakte pro jedno číslo?">Jak vytvořit druhou stránku VKontakte pro jedno číslo?</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/pochemu-hamachi-ne-podklyuchaetsya-k-seti-reshaem-problemu-podklyucheniya-hamachi-k.html" rel="bookmark" title="Řešíme problém připojení Hamachi do problému síťového adaptéru"><img width="218" height="150" class="entry-thumb" src="/uploads/af7c1d6f7565d884e071b0d6e2174690.jpg" alt="Řešíme problém připojení Hamachi do problému síťového adaptéru" title="Řešíme problém připojení Hamachi do problému síťového adaptéru"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/cs/category/the-winchesters/" class="td-post-category">Winchester</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/pochemu-hamachi-ne-podklyuchaetsya-k-seti-reshaem-problemu-podklyucheniya-hamachi-k.html" rel="bookmark" title="Řešíme problém připojení Hamachi do problému síťového adaptéru">Řešíme problém připojení Hamachi do problému síťového adaptéru</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/prilozhenie-pohozhee-na-instagram-s-luchshie-programma-dlya-instagram-dlya.html" rel="bookmark" title="Nejlepší program pro Instagram pro vysílání a zpracování fotografií"><img width="218" height="150" class="entry-thumb" src="/uploads/49727ad65ca4cc36067b8759af3f9ba8.jpg" alt="Nejlepší program pro Instagram pro vysílání a zpracování fotografií" title="Nejlepší program pro Instagram pro vysílání a zpracování fotografií"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/cs/category/security/" class="td-post-category">Bezpečnost</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/prilozhenie-pohozhee-na-instagram-s-luchshie-programma-dlya-instagram-dlya.html" rel="bookmark" title="Nejlepší program pro Instagram pro vysílání a zpracování fotografií">Nejlepší program pro Instagram pro vysílání a zpracování fotografií</a></h3> </div> </div> </div> </div></div></div> </div> </div> <div class="td-pb-span4 td-main-sidebar"> <div class="td-ss-main-sidebar"> <aside class="widget �lambda_169101"> <div style="margin:10px 0"> </div> </aside> <div class="td_block_wrap td_block_1 td_block_widget td_uid_2_5a23c04f0cdc0_rand td-pb-border-top td_block_template_1 td-column-1" data-td-block-uid="td_uid_2_5a23c04f0cdc0"> <div class="td-block-title-wrap"> <h4 class="block-title"><span class="td-pulldown-size">Doporučeno</span></h4> </div> <div id=td_uid_2_5a23c04f0cdc0 class="td_block_inner"> <div class="td-block-span12"> <div class="td_module_4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/krashit-mainkraft-1-5-2-reshenie-problem-v-tlauncher-lagi-i-vylety-vo.html" rel="bookmark" title="Zrušit Minecraft 1.5 2. Řešení problémů v TLAUNCHERU. LAG a odlety během hry"><img width="324" height="235" class="entry-thumb" src="/uploads/be518d19c81c51a36a10ec67569d2ab4.jpg" alt="Zrušit Minecraft 1.5 2. Řešení problémů v TLAUNCHERU. LAG a odlety během hry" title="Zrušit Minecraft 1.5 2. Řešení problémů v TLAUNCHERU. LAG a odlety během hry"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/cs/category/multimedia/" class="td-post-category">Multimédia</a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/krashit-mainkraft-1-5-2-reshenie-problem-v-tlauncher-lagi-i-vylety-vo.html" rel="bookmark" title="Zrušit Minecraft 1.5 2. Řešení problémů v TLAUNCHERU. LAG a odlety během hry">Zrušit Minecraft 1.5 2. Řešení problémů v TLAUNCHERU. LAG a odlety během hry</a></h3> <div class="td-module-meta-info"> </div> <div class="td-excerpt"> Od vydání Minecraftu, hodně času. Hra našla své fanoušky, kteří pravidelně užívají hru. Můžeš ...</div> </div> <!-- /next_post --> </div> <div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/panasonic-g6-tehnicheskie-harakteristiki-sistemnaya-kamera-panasonic-lumix-dmc-g6-chto-pod.html" rel="bookmark" title="Systémová kamera Panasonic Lumix DMC-G6"><img width="100" height="70" class="entry-thumb" src="/uploads/7c2f764019a17704196c7c833be2a3aa.jpg" alt="Systémová kamera Panasonic Lumix DMC-G6" title="Systémová kamera Panasonic Lumix DMC-G6"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/panasonic-g6-tehnicheskie-harakteristiki-sistemnaya-kamera-panasonic-lumix-dmc-g6-chto-pod.html" rel="bookmark" title="Systémová kamera Panasonic Lumix DMC-G6">Systémová kamera Panasonic Lumix DMC-G6</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/cs/category/processors/" class="td-post-category">Procesory</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/v-kakoi-programme-narisovat-kryshu-doma-luchshie-programmy-dlya-proektirovaniya.html" rel="bookmark" title="Nejlepší designové programy pro domy a pokoje"><img width="100" height="70" class="entry-thumb" src="/uploads/cafa05facb96903bc9477ef34665ecd1.jpg" alt="Nejlepší designové programy pro domy a pokoje" title="Nejlepší designové programy pro domy a pokoje"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/v-kakoi-programme-narisovat-kryshu-doma-luchshie-programmy-dlya-proektirovaniya.html" rel="bookmark" title="Nejlepší designové programy pro domy a pokoje">Nejlepší designové programy pro domy a pokoje</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/cs/category/windows-7/" class="td-post-category">Windows 7.</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/vyletaet-mainkraft-iz-za-java-vyletaet-mainkraft-chto-delat-minecraft-ne.html" rel="bookmark" title="Minecraft havaruje, co má dělat?"><img width="100" height="70" class="entry-thumb" src="/uploads/8d552799cceafe8b9066f31d0562c62f.jpg" alt="Minecraft havaruje, co má dělat?" title="Minecraft havaruje, co má dělat?"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/vyletaet-mainkraft-iz-za-java-vyletaet-mainkraft-chto-delat-minecraft-ne.html" rel="bookmark" title="Minecraft havaruje, co má dělat?">Minecraft havaruje, co má dělat?</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/cs/category/monitors/" class="td-post-category">Monitory</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/prekrashchena-rabota-java-tm-platform-se-binary-chto-delat-prekrashchena-rabota-java-tm-platform-se.html" rel="bookmark" title="Práce Java TM platformy SE Binary byla zastavena - co dělat o chybě dojde k chybě"><img width="100" height="70" class="entry-thumb" src="/uploads/e548d1d3c153b2eb65e8007e957ca6b8.jpg" alt="Práce Java TM platformy SE Binary byla zastavena - co dělat o chybě dojde k chybě" title="Práce Java TM platformy SE Binary byla zastavena - co dělat o chybě dojde k chybě"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/prekrashchena-rabota-java-tm-platform-se-binary-chto-delat-prekrashchena-rabota-java-tm-platform-se.html" rel="bookmark" title="Práce Java TM platformy SE Binary byla zastavena - co dělat o chybě dojde k chybě">Práce Java TM platformy SE Binary byla zastavena - co dělat o chybě dojde k chybě</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/cs/category/power-supply/" class="td-post-category">Zásoby energie</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/perevod-direkcionnyh-uglov-v-rumby-onlain-zamknutyi-teodolitnyi-hod-obrabotka-i-metodika-rasscheta.html" rel="bookmark" title="Uzavřený Theodolite Move: Zpracování a způsob výpočtu souřadnic"><img width="100" height="70" class="entry-thumb" src="/uploads/21aa23d49bb25b138edc583ce466e4f2.jpg" alt="Uzavřený Theodolite Move: Zpracování a způsob výpočtu souřadnic" title="Uzavřený Theodolite Move: Zpracování a způsob výpočtu souřadnic"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/perevod-direkcionnyh-uglov-v-rumby-onlain-zamknutyi-teodolitnyi-hod-obrabotka-i-metodika-rasscheta.html" rel="bookmark" title="Uzavřený Theodolite Move: Zpracování a způsob výpočtu souřadnic">Uzavřený Theodolite Move: Zpracování a způsob výpočtu souřadnic</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/cs/category/windows-8/" class="td-post-category">Windows 8.</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/printery-epson-kak-smenit-kartridzhi-na-printerah-zamena-obmen-i-zapravka.html" rel="bookmark" title="Výměna výměnných a doplňovacích vložek"><img width="100" height="70" class="entry-thumb" src="/uploads/46fd0883101f3a03012229e5902eb502.jpg" alt="Výměna výměnných a doplňovacích vložek" title="Výměna výměnných a doplňovacích vložek"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/printery-epson-kak-smenit-kartridzhi-na-printerah-zamena-obmen-i-zapravka.html" rel="bookmark" title="Výměna výměnných a doplňovacích vložek">Výměna výměnných a doplňovacích vložek</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/cs/category/windows-7/" class="td-post-category">Windows 7.</a> </div> </div> </div> </div> </div> </div> </div> <aside class="widget_text td_block_template_1 widget widget_custom_html"> <div class="textwidget custom-html-widget"> </div> </aside> </div> </div> </div> </div> </div> <div class="td-footer-wrapper td-container-wrap "> <div class="td-container"> <div class="td-pb-row"> <div class="td-pb-span12"> </div> </div> <div class="td-pb-row"> <div class="td-pb-span4"> <div class="td_block_wrap td_block_15 td_block_widget td_uid_11_5a23980e76adb_rand td-pb-border-top td_block_template_1 td-column-1 td_block_padding" data-td-block-uid="td_uid_11_5a23980e76adb" > <div class="td-block-title-wrap"></div><div id=td_uid_11_5a23980e76adb class="td_block_inner td-column-1"><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/raznica-mezhdu-mikrokontrollerom-i-mikroprocessorom-pro-mikrokontrollery.html" rel="bookmark" title="O mikrokontroléru pro začátečníky - historie stvoření, hlavní typy a rozdíly architektury FPGA"><img width="218" height="150" class="entry-thumb" src="/uploads/dd20b8f85d484712bb0399e8e0fc5b94.jpg" alt="O mikrokontroléru pro začátečníky - historie stvoření, hlavní typy a rozdíly architektury FPGA" title="O mikrokontroléru pro začátečníky - historie stvoření, hlavní typy a rozdíly architektury FPGA"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/raznica-mezhdu-mikrokontrollerom-i-mikroprocessorom-pro-mikrokontrollery.html" rel="bookmark" title="O mikrokontroléru pro začátečníky - historie stvoření, hlavní typy a rozdíly architektury FPGA">O mikrokontroléru pro začátečníky - historie stvoření, hlavní typy a rozdíly architektury FPGA</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/sozdanie-lichnogo-informacionnogo-prostranstva-uchitelya-lichnoe.html" rel="bookmark" title="Osobní informační prostor"><img width="218" height="150" class="entry-thumb" src="/uploads/cc2cf1bbe7714a272028a46c4f29c4db.jpg" alt="Osobní informační prostor" title="Osobní informační prostor"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/sozdanie-lichnogo-informacionnogo-prostranstva-uchitelya-lichnoe.html" rel="bookmark" title="Osobní informační prostor">Osobní informační prostor</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/analiz-besprovodnyh-setei-s-pomoshchyu-netspot-skanery-skrytyh-setei.html" rel="bookmark" title="Analýza bezdrátových sítí pomocí NetSpot"><img width="218" height="150" class="entry-thumb" src="/uploads/8b91d3f608b25500885eebdb1013012b.jpg" alt="Analýza bezdrátových sítí pomocí NetSpot" title="Analýza bezdrátových sítí pomocí NetSpot"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/analiz-besprovodnyh-setei-s-pomoshchyu-netspot-skanery-skrytyh-setei.html" rel="bookmark" title="Analýza bezdrátových sítí pomocí NetSpot">Analýza bezdrátových sítí pomocí NetSpot</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/telefon-s-dvumya-standartami-gsm-i-cdma-razlichiya-mezhdu-cdma-i-gsm.html" rel="bookmark" title="Rozdíly mezi standardy CDMA a GSM"><img width="218" height="150" class="entry-thumb" src="/uploads/cd232591d0cf8dd8a759886c5500efc4.jpg" alt="Rozdíly mezi standardy CDMA a GSM" title="Rozdíly mezi standardy CDMA a GSM"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/telefon-s-dvumya-standartami-gsm-i-cdma-razlichiya-mezhdu-cdma-i-gsm.html" rel="bookmark" title="Rozdíly mezi standardy CDMA a GSM">Rozdíly mezi standardy CDMA a GSM</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/trudnyi-vybor-smartfon-ili-planshet-v-chem-raznica-mezhdu-smartfonom-i.html" rel="bookmark" title="Jaký je rozdíl mezi smartphone a rozdílem pro Android Tablet z tabletu"><img width="218" height="150" class="entry-thumb" src="/uploads/49f84ccce7b49306a8b73f20627c79a1.jpg" alt="Jaký je rozdíl mezi smartphone a rozdílem pro Android Tablet z tabletu" title="Jaký je rozdíl mezi smartphone a rozdílem pro Android Tablet z tabletu"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/trudnyi-vybor-smartfon-ili-planshet-v-chem-raznica-mezhdu-smartfonom-i.html" rel="bookmark" title="Jaký je rozdíl mezi smartphone a rozdílem pro Android Tablet z tabletu">Jaký je rozdíl mezi smartphone a rozdílem pro Android Tablet z tabletu</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/email-generator-parolei-kak-sozdat-i-zapomnit-nad-zhnyi-parol-pochemu.html" rel="bookmark" title="Jak vytvořit a pamatovat spolehlivé heslo"><img width="218" height="150" class="entry-thumb" src="/uploads/706eca5222f097994818b5387bed77d8.jpg" alt="Jak vytvořit a pamatovat spolehlivé heslo" title="Jak vytvořit a pamatovat spolehlivé heslo"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/email-generator-parolei-kak-sozdat-i-zapomnit-nad-zhnyi-parol-pochemu.html" rel="bookmark" title="Jak vytvořit a pamatovat spolehlivé heslo">Jak vytvořit a pamatovat spolehlivé heslo</a></h3> </div> </div> </div></div></div> <div class="clearfix"></div> </div> <div class="td-pb-span4"> <div class="td_block_wrap td_block_15 td_block_widget td_uid_12_5a23980e79990_rand td-pb-border-top td_block_template_1 td-column-1 td_block_padding" data-td-block-uid="td_uid_12_5a23980e79990" > <div class="td-block-title-wrap"></div><div id=td_uid_12_5a23980e79990 class="td_block_inner td-column-1"><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/mozhno-li-otsledit-aifon-bez-simki-pochemu-ne-rabotaet-funkciya-naiti-iphone.html" rel="bookmark" title="Proč funguje funkce "Najít iPhone"?"><img width="218" height="150" class="entry-thumb" src="/uploads/05b919e8672efb5d60c44b4baf0db500.jpg" alt="Proč funguje funkce "Najít iPhone"?" title="Proč funguje funkce "Najít iPhone"?"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/mozhno-li-otsledit-aifon-bez-simki-pochemu-ne-rabotaet-funkciya-naiti-iphone.html" rel="bookmark" title="Proč funguje funkce "Najít iPhone"?">Proč funguje funkce "Najít iPhone"?</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/pochemu-itools-ne-vidit-iphone-prichina-i-reshenie-kak-nastroit-i.html" rel="bookmark" title="Jak nastavit a používat program ITools: Pokyny pro aplikaci ITOOLS nevidíte iPhone"><img width="218" height="150" class="entry-thumb" src="/uploads/8946bedbcd2867ed43f3a32d130a8689.jpg" alt="Jak nastavit a používat program ITools: Pokyny pro aplikaci ITOOLS nevidíte iPhone" title="Jak nastavit a používat program ITools: Pokyny pro aplikaci ITOOLS nevidíte iPhone"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/pochemu-itools-ne-vidit-iphone-prichina-i-reshenie-kak-nastroit-i.html" rel="bookmark" title="Jak nastavit a používat program ITools: Pokyny pro aplikaci ITOOLS nevidíte iPhone">Jak nastavit a používat program ITools: Pokyny pro aplikaci ITOOLS nevidíte iPhone</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/perenos-nastroek-iphone-na-novyi-sposoby-perenosa-dannyh-s.html" rel="bookmark" title="Metody přenosu dat z jednoho iPhone do jiného iPhone"><img width="218" height="150" class="entry-thumb" src="/uploads/50a0b5480336144be0f1d1ecdfa15a5b.jpg" alt="Metody přenosu dat z jednoho iPhone do jiného iPhone" title="Metody přenosu dat z jednoho iPhone do jiného iPhone"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/perenos-nastroek-iphone-na-novyi-sposoby-perenosa-dannyh-s.html" rel="bookmark" title="Metody přenosu dat z jednoho iPhone do jiného iPhone">Metody přenosu dat z jednoho iPhone do jiného iPhone</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/blokirovka-aktivacii-iphone-5-kak-snyat-parol-bystryi-obhod.html" rel="bookmark" title="Rychlé procházení iPad Aktivace"><img width="218" height="150" class="entry-thumb" src="/uploads/18838ec1f91e48279ac1947120c453e7.jpg" alt="Rychlé procházení iPad Aktivace" title="Rychlé procházení iPad Aktivace"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/blokirovka-aktivacii-iphone-5-kak-snyat-parol-bystryi-obhod.html" rel="bookmark" title="Rychlé procházení iPad Aktivace">Rychlé procházení iPad Aktivace</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/kak-ochistit-istoriyu-na-aipad-kak-ochistit-istoriyu-v-safari-na-iphone-ipad-i-mac-kak.html" rel="bookmark" title="Jak čistit příběhy v safari na iPhone, iPad a Mac"><img width="218" height="150" class="entry-thumb" src="/uploads/c35843ede0fa4d8127b9d98e79b6ac3b.jpg" alt="Jak čistit příběhy v safari na iPhone, iPad a Mac" title="Jak čistit příběhy v safari na iPhone, iPad a Mac"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/kak-ochistit-istoriyu-na-aipad-kak-ochistit-istoriyu-v-safari-na-iphone-ipad-i-mac-kak.html" rel="bookmark" title="Jak čistit příběhy v safari na iPhone, iPad a Mac">Jak čistit příběhy v safari na iPhone, iPad a Mac</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/kak-otklyuchit-faily-cookie-chto-takoe-faily-cookie-i-kak-s-nimi-rabotat-mogut-li.html" rel="bookmark" title="Jaké jsou soubory cookie a jak s nimi pracovat?"><img width="218" height="150" class="entry-thumb" src="/uploads/cc75d1865f5980133f34840d2caf5ca4.jpg" alt="Jaké jsou soubory cookie a jak s nimi pracovat?" title="Jaké jsou soubory cookie a jak s nimi pracovat?"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/kak-otklyuchit-faily-cookie-chto-takoe-faily-cookie-i-kak-s-nimi-rabotat-mogut-li.html" rel="bookmark" title="Jaké jsou soubory cookie a jak s nimi pracovat?">Jaké jsou soubory cookie a jak s nimi pracovat?</a></h3> </div> </div> </div></div></div> <div class="clearfix"></div> </div> <div class="td-pb-span4"> <div class="td_block_wrap td_block_15 td_block_widget td_uid_13_5a23980e7caa8_rand td-pb-border-top td_block_template_1 td-column-1 td_block_padding" data-td-block-uid="td_uid_13_5a23980e7caa8" > <div class="td-block-title-wrap"></div><div id=td_uid_13_5a23980e7caa8 class="td_block_inner td-column-1"><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/sboi-aktivacii-iphone-nedostupen-server-ili-chto-to-pohuzhe.html" rel="bookmark" title="Selhání aktivace iPhone je nedostupný server nebo něco horšího?"><img width="218" height="150" class="entry-thumb" src="/uploads/6d97e44c5b70f1dee2f20e93cd34266c.jpg" alt="Selhání aktivace iPhone je nedostupný server nebo něco horšího?" title="Selhání aktivace iPhone je nedostupný server nebo něco horšího?"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/sboi-aktivacii-iphone-nedostupen-server-ili-chto-to-pohuzhe.html" rel="bookmark" title="Selhání aktivace iPhone je nedostupný server nebo něco horšího?">Selhání aktivace iPhone je nedostupný server nebo něco horšího?</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/lineiki-napravlyayushchie-i-setka-v-fotoshope-osnovy-photoshop-ispolzovanie.html" rel="bookmark" title="Základy Photoshopu: pomocí sítě Mesh (Grid) ve Photoshopu, jak vytvořit mřížku v aplikaci Photoshop CS6"><img width="218" height="150" class="entry-thumb" src="/uploads/f26b20924c99d93d3ab44ec683de8053.jpg" alt="Základy Photoshopu: pomocí sítě Mesh (Grid) ve Photoshopu, jak vytvořit mřížku v aplikaci Photoshop CS6" title="Základy Photoshopu: pomocí sítě Mesh (Grid) ve Photoshopu, jak vytvořit mřížku v aplikaci Photoshop CS6"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/lineiki-napravlyayushchie-i-setka-v-fotoshope-osnovy-photoshop-ispolzovanie.html" rel="bookmark" title="Základy Photoshopu: pomocí sítě Mesh (Grid) ve Photoshopu, jak vytvořit mřížku v aplikaci Photoshop CS6">Základy Photoshopu: pomocí sítě Mesh (Grid) ve Photoshopu, jak vytvořit mřížku v aplikaci Photoshop CS6</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/mediateka-icloud-ne-vklyuchaetsya-chto-takoe-mediateka-icloud-kak.html" rel="bookmark" title="Jaká je knihovna Icloud Media?"><img width="218" height="150" class="entry-thumb" src="/uploads/c4a9a21f6487cdd84cf6e87d5a030919.jpg" alt="Jaká je knihovna Icloud Media?" title="Jaká je knihovna Icloud Media?"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/mediateka-icloud-ne-vklyuchaetsya-chto-takoe-mediateka-icloud-kak.html" rel="bookmark" title="Jaká je knihovna Icloud Media?">Jaká je knihovna Icloud Media?</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/povorachivaetsya-ekran-iphone-5s-ne-povorachivaetsya-ekran-iphone-chto.html" rel="bookmark" title="Obrazovka iPhone se neotáčí, co dělat?"><img width="218" height="150" class="entry-thumb" src="/uploads/2a6a73cd892c552df6a9069b3cd6dff5.jpg" alt="Obrazovka iPhone se neotáčí, co dělat?" title="Obrazovka iPhone se neotáčí, co dělat?"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/povorachivaetsya-ekran-iphone-5s-ne-povorachivaetsya-ekran-iphone-chto.html" rel="bookmark" title="Obrazovka iPhone se neotáčí, co dělat?">Obrazovka iPhone se neotáčí, co dělat?</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/kak-zaryazhat-nesertificirovannym-kabelem-vazhno-dannyi-kabel-ili.html" rel="bookmark" title="Důležité Tento kabel nebo příslušenství není certifikováno nebo není podporováno."><img width="218" height="150" class="entry-thumb" src="/uploads/9fcf7a35719c3615538760373497465f.jpg" alt="Důležité Tento kabel nebo příslušenství není certifikováno nebo není podporováno." title="Důležité Tento kabel nebo příslušenství není certifikováno nebo není podporováno."/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/kak-zaryazhat-nesertificirovannym-kabelem-vazhno-dannyi-kabel-ili.html" rel="bookmark" title="Důležité Tento kabel nebo příslušenství není certifikováno nebo není podporováno.">Důležité Tento kabel nebo příslušenství není certifikováno nebo není podporováno.</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/cs/postoyannyi-poisk-seti-iphone-5s-chto-delat-aifon-ne-lovit-set-sbroste.html" rel="bookmark" title="Constant Hledat síť iPhone 5S Co dělat"><img width="218" height="150" class="entry-thumb" src="/uploads/ea08d4d9468475fc8f84fc457468a393.jpg" alt="Constant Hledat síť iPhone 5S Co dělat" title="Constant Hledat síť iPhone 5S Co dělat"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/cs/postoyannyi-poisk-seti-iphone-5s-chto-delat-aifon-ne-lovit-set-sbroste.html" rel="bookmark" title="Constant Hledat síť iPhone 5S Co dělat">Constant Hledat síť iPhone 5S Co dělat</a></h3> </div> </div> </div></div></div> <div class="clearfix"></div><aside class="td_block_template_1 widget widget_text"> <div class="textwidget"> </div> </aside><aside class="td_block_template_1 widget widget_text"> <div class="textwidget"> </div> </aside> </div> </div> </div> </div> <div class="td-sub-footer-container td-container-wrap "> <div class="td-container"> <div class="td-pb-row"> <div class="td-pb-span td-sub-footer-menu"> </div> <div class="td-pb-span td-sub-footer-copy"> Copyright 2021 - Oprava počítačů a notebooků. Videohledové karty, pevné disky, internet, monitory.</div> </div> </div> </div> </div> <style type="text/css" media="screen"> /* custom css theme panel */ .td-post-header .entry-title { font-weight: normal !important; } h1.entry-title { font-weight: normal !important; border-bottom:#c44c4c 2px dotted; } h1.entry-title:before { content: "\f184"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .sf-menu ul .td-menu-item > a:hover, .sf-menu ul .sfHover > a, .sf-menu ul .current-menu-ancestor > a, .sf-menu ul .current-category-ancestor > a, .sf-menu ul .current-menu-item > a { color: #edf3f7; } .td-post-content h2 { border-bottom:#c44c4c 2px dotted;} .td-post-content h2:before { content: "\f184"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .td-post-content h3 { border-bottom:#c44c4c 2px dotted;} .td-post-content h3:before { content: "\f103"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .category-my .td-page-title { color:#c44c4c; font-weight: 400; font-size: 36px; } .post header .entry-title { line-height: 40px; } .td-category-description h2, .td-category-description h3 { color:#c44c4c;} .td-category-description h2 { border-bottom:#c44c4c 2px solid;} .td-category-description h2:before { content: "\f055"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .td-category-description h3 { border-bottom:#c44c4c 2px solid;} .td-category-description h3:before { content: "\f103"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .td-category-description ol, .td-category-description ul { margin-top:20px !important; margin-bottom:20px !important;} .td-category-description ul, .td-post-content ul { padding:0; margin:0; list-style:none; clear:both;} .td-category-description ul li, .td-post-content ul li { padding:0 0 0 15px; margin:0 0 10px 35px; position:relative;} .td-category-description ul li:before, .td-post-content ul li:before { content: "\f192"; font-family: "FontAwesome"; color:#c44c4c; position:absolute; left:-10px;} .td-category-description ol, .td-post-content ol { padding:0; margin:0 0 0 5px; list-style:none; counter-reset: lipoint; clear:both;} .td-category-description ol li, .td-post-content ol li { padding:0 0 0 15px; margin:0 0 10px 35px; position:relative;} .td-category-description ol li:before, .td-post-content ol li:before { content: counter(lipoint); counter-increment: lipoint; color:#fff; position:absolute; left:-16px; background:#c44c4c; width:20px; height:20px; line-height:20px; text-align:center; -webkit-border-radius: 20px;border-radius: 20px; font-size:12px; top:3px;} .toc_list li:before { display:none} .td-header-style-9 .td-header-menu-wrap-full { /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#c44c4c+0,c10000+100 */ background: #c44c4c; /* Old browsers */ background: -moz-linear-gradient(top, #c44c4c 0%, #c10000 100%); /* FF3.6-15 */ background: -webkit-linear-gradient(top, #c44c4c 0%,#c10000 100%); /* Chrome10-25,Safari5.1-6 */ background: linear-gradient(to bottom, #c44c4c 0%,#c10000 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c44c4c', endColorstr='#c10000',GradientType=0 ); /* IE6-9 */ } .sf-menu > li > a { color: #fff; } .td-header-style-9 .header-search-wrap .td-icon-search { color: #fff; } .td-affix a { color:#000 !important;} </style> <script type='text/javascript'> /* <![CDATA[ */ var tocplus = { "smooth_scroll":"1"} ; /* ]]> */ </script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/table-of-contents-plus/front.min.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/wp-postratings/js/postratings-js.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/themes/Newspaper/js/tagdiv_theme.js'></script> <script type='text/javascript' src='/wp-includes/js/comment-reply.min.js'></script> <script type='text/javascript'> /* <![CDATA[ */ var boxzilla_options = { "testMode":"","boxes":[]} ; /* ]]> */ </script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/boxzilla/assets/js/script.min.js'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/client/js/prod/lib.core.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/client/js/prod/lib.view.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/themes/baseline/js/prod/client.js'></script> <script type='text/javascript' src='/assets/client1.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/template-tags/item/js/prod/tag.item.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/template-tags/ui/js/prod/tag.ui.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/content-handlers/image/js/prod/handler.image.js'></script> <script> (function(){ var html_jquery_obj = jQuery('html'); if (html_jquery_obj.length && (html_jquery_obj.is('.ie8') || html_jquery_obj.is('.ie9'))) { var path = '/wp-content/themes/Newspaper/style.css'; jQuery.get(path, function(data) { var str_split_separator = '#td_css_split_separator'; var arr_splits = data.split(str_split_separator); var arr_length = arr_splits.length; if (arr_length > 1) { var dir_path = '/wp-content/themes/Newspaper'; var splited_css = ''; for (var i = 0; i < arr_length; i++) { if (i > 0) { arr_splits[i] = str_split_separator + ' ' + arr_splits[i]; } //jQuery('head').append('<style>' + arr_splits[i] + '</style>'); var formated_str = arr_splits[i].replace(/\surl\(\'(?!data\:)/gi, function regex_function(str) { return ' url(\'' + dir_path + '/' + str.replace(/url\(\'/gi, '').replace(/^\s+|\s+$/gm,''); } ); splited_css += "<style>" + formated_str + "</style>"; } var td_theme_css = jQuery('link#td-theme-css'); if (td_theme_css.length) { td_theme_css.after(splited_css); } } } ); } } )(); </script> </body> </html>