Zlúčenie Rtf reťazcov   zodpovězená otázka

VB.NET, WinForms

Dobrý večer.

Asi som zablúdil do tmavých časti VB .net. Vedel by mi niekto poradiť ako vyriešiť túto vec? Mám kód

Public Class Form1
    Dim a, b As String
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        RichTextBox1.Select(0, 5)
        a = Me.RichTextBox1.SelectedRtf
        RichTextBox1.Select(6, 10)
        b = Me.RichTextBox1.SelectedRtf
        Me.RichTextBox1.Rtf = a & b
    End Sub
End Class

Ak stlačím Button1, zobrazí mi to iba reťazac a.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Zkuste vyměnit "...SelectedRtf" za ...SelectedText a "Me.RichTextBox1.Rtf = a & b" za Me.RichTextBox1.SelectedText = a & b

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý deň pán Renner. Ďakujem za odpoveď. Skúsil som to, ale nepomohlo. Uvedený postup nezachová formátovanie.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ale řetězce se spojí. Zkusil jsem:

  Private Sub Button3_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles Button3.Click
    Dim a, b As String
    Dim fa, fb As Font
    Dim ca, cb As Color
    With Me.RichTextBox1
    .Clear()
    .AppendText("VŠEOBECNÉ PODMÍNKY PRO POSKYTOVÁNÍ VEŘEJNÉ TELEKOMUNIKAČNÍ SLUŽBY ")
    .Select(0, 10)
    .SelectionFont = New Font("Arial", 12)
    .SelectionColor = Color.DarkBlue
    fa = .SelectionFont
    ca = .SelectionColor
    a = .SelectedText
    .Select(23, 11)
    .SelectionFont = New Font("Tahoma", 12, FontStyle.Bold)
    .SelectionColor = Color.DarkOrange
    b = .SelectedText
    fb = .SelectionFont
    cb = .SelectionColor
    .Clear()
    .SelectionFont = fa
    .SelectionColor = ca
    .SelectedText = a
    .SelectionFont = fb
    .SelectionColor = cb
    .SelectedText = b
    End With
  End Sub

Nešlo by to tak nebo podobně? RTF se nezabývám, tak lépe radit neumím.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

S Rtf taky, bohužel, nepracuji, ale pokud jsem se díval do nějakých diskusí vypadá to, že nebude jednoduché cesty.

Konkrétní návod na řešení vašeho problému naleznete např. na http://forums.microsoft.com/msdn/showpos... , pokud ho shrnu v kostce, buď se musíte naučit přesnou specifikaci formátu Rtf (např. tady http://latex2rtf.sourceforge.net/rtfspec... ) a pohrát si s formátováním programově, nebo přetahovat text z jednoho richtextboxu do druhého pěkně písmenko po písmenku a současně při tom kopírovat (pro každé písmenko) i jeho formátování ze zdroje do cíle (prý z důvodu, že je takto možno zformátovat vždy jen poslední písmeno textu richtextboxu). Na tento postup tam naleznete i konkrétní příklad - sice v c-čku, ale je tak jednoduchý, že jeho předělání do VB nebude problém.

Přeji mnoho úspěchů.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nevím zda to půjde, ale můžete zkusit:

Public Class Form1
    Dim a, b As String
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        RichTextBox1.Select(0, 5)
        a = Me.RichTextBox1.SelectedRtf
        RichTextBox1.Select(6, 10)
        b = Me.RichTextBox1.SelectedRtf
        Me.RichTextBox1.Rtf = ""
        Me.RichTextBox1.Rtf += a
        Me.RichTextBox1.Rtf += b
    End Sub
End Class

sám jsem to nevyzkoušel, ale možná by to mohlo jít...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To taky, bohužel, nepůjde. Zkuste si obsah toho, co jako Rtf načtete z richtextboxu zobrazit jako prostý text třeba do labelu a hned pochopíte, kde je chyba.

Rtf má určitou strukturu, kde na začátku jsou definice jednotlivých písem a pak v textu se na ně odvolávám. Celé je to uzavřené v závorkách, takže pokud "textově" sečtu dva rtf řetězce, ta koncová závorka prvního z nich mi celý rtf text ukončí, protože tam je přerušeno formátování.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Aha, to mě vůbec nenapadlo. Na práci s RTF nejsem zvyklí.

Nechám tedy řešení dál na ostatních, protože na výsledné řešní jsem zvědaví.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Myslím, že cesta, o kterou jsem se pokusil, je jednodušší než "programovat RTF editor". Vlastností Selection... je víc než font a barva.

Je také možné nadefinovat další RTF box a použít kopírování přes paměťovou schránku

Chybí tu informace, jak bude vybírání a spojování textu probíhat a jaké formátovací vlastnosti jsou nezbytné.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ještě pro doplnění:

pokud se kouknete na tu specifikaci RTF - tam je to řečeno zcela jasně, na začátku takto formátovaného souboru je hlavička, která obsahuje mimo jiné charset, tabulku fontů, tabulku barev, tabulku stylů atd, a současně "tabulka stylů musí být umístěna před jakýmkoliv použitím stylu, tabulka fontů musí předcházet jakýkoliv odkaz na tento font, atd... Proto nejde ty řetězce jenom tak jednoduše textově sečíst.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ale jde sečítat (spojovat) prostý text. Před napojením pak lze nastavit formát z proměnných, do kterých se načetl z vybraného textu, nebo nastavit jiný.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, a to je přesně ta cesta, která je popisována ve výše odkazované diskusi. To písmenko po písmenku znamená, že, pokud nevíte, kde se v textu formát "láme" a nejmenší jednotkou formátování je právě 1 znak, text můžete sice přetáhnout jako celek, ale to formátování pak budete muset procházet písmeno po písmenku a přenastavovat. A jak je z vašeho příkladu patrné, taky jste nenalezl možnost "přelít" kompletní formát, takže se asi budou muset překopírovávat všechny atributy formátu (font, velikost, barva,.....)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nikdy jsem s RTF boxem nedělal, jen jsem zkusil odpovědět na otázku (dotaz je na řetězce) a nakonec mě práce s RTF zaujala a napadlo mě, že by se mi mohl v budoucnu i hodit. Po seznámení se s RTF boxem metodou pokusů začínám tušit, že schůdné řešení nejspíš existuje, jen o něm nevíme. K čemu by pak RTF box sloužil kromě načtení RTF souboru?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jsem na tom stejne jako Vy. Ale s tím řešením zase až takový optimista nejsem, protože to, co jsem prezentoval (z těch diskusí) tam uváděl nějaký pán, který o sobě tvrdí, že je "** Microsoft Community Moderator **", tak si myslím, že by o tom něco mohl vědět.

Ale plně s Vámi souhlasím, že je to dost divné. Ale asi to teda skutečně nepůjde.....

Ale já jsem přece řešení našel, není to sice nic moc, ale dělá to přesně to, co tazatel chtěl v tom úplně prvním dotazu:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim delka As Integer = RichTextBox1.Text.Length

        RichTextBox1.Select(0, 5)

        RichTextBox1.Copy()
        RichTextBox1.Select(delka, 0)
        RichTextBox1.Paste()

        RichTextBox1.Select(8, 4)
        RichTextBox1.Copy()
        RichTextBox1.Select(RichTextBox1.Text.Length, 0)
        RichTextBox1.Paste()

        RichTextBox1.Select(0, delka)
        RichTextBox1.Cut()
    End Sub

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Proč ten pesimismus? Vyřešil jste to! A dokonce bez pomocného boxu. Avšak, vedeme tu řeč "bez hostinského", je nyní na tazateli, zda bude spokojený.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No ten "pesimismus" má svou gnozeologii. A k řešení jste mne, vlastně, dovedl Vy.

Při psaní odpovědi jsem totiž nejprve deklamoval to, co jsem na NETu zjistil. To moc povzbudivé nebylo.

jenomže pak jsem došel k poznámce "tak k čemu by to vlastně bylo" a začalo mi to vrtat hlavou - přece se to dá využít různě, můžu sám určité části formátovat, můžu sem přetáhnout již zformátované části textu z jiných aplikací a... a pak jsem se zarazil - a když jde toto, nemohl bych požít clipboard i při práci sám se sebou? no a pak už cesta k odzkoušení a ověření byla celkem snadná.

A ten hostinský? Samozřejmě, "potíme zde krev" pro něj, ale ne toliko pro něj. Díky jeho dotazu jsem se třeba i já sám dnes dozvěděl, k čemu by se dal použít richtextbox, jak by se s ním dalo pracovat, co to vlastně je Rtf dokument, atd...

Takže hostinský pouze iniciuje, učíme se my všichni a o to jde, ne?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vážení páni, ďakujem za Vaše odpovede na moju otázku.

Riešim obtekanie obrázku v RichTextBoxe (tak ako je to vo Worde).

Pôvodne som myslel, že za obrázkom urobím prázdny priestor pomocou medzerníka (space) ale funkcia "Replace" mi v RichTextBoxe nefungovala. Tak som si myslel, že rozdelím RTF na dve časti a medzi ne vložím reťazec " " a z toho vyplynula moja otázka.

Teraz ,aj na základe Vašich odpovedí, som si takmer istý, že toto nie je správna cesta a jednoduchou cestou sa dve časti RTF nedajú spojiť.

Nakoniec som to riešil funkciou

RichTextBox1.SelectedText = " ", a je to dobre. Tým pádom mám vlastne už obtekanie obrázku vlastne takmer vyriešené až na niekoľko drobností, ktoré však skôr súvisia s logikou ako s poznaním VB .net. Napríklad pozícia obrázku v závislosti od RichTextBoxVScrollbaru, vlastne aj to funguje, akurát že obrázok nie je vždy presne tam, kde by mal byť. Trošku problémy s lokalizáciou a veľkosťou fontov.

Ešte raz Vám pekne ďakujem a prajem príjemný večer.

Ľubo.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ale aj to není moc slořité - dokonce podstatně jednodušší, než předchozí příklad (protože mezery nemusíte většinou formátovat):

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


        RichTextBox1.Select(6, RichTextBox1.Text.Length - 6)

        RichTextBox1.Cut()
        RichTextBox1.AppendText("      ")
        RichTextBox1.Select(RichTextBox1.Text.Length, 0)
        RichTextBox1.Paste()

    End Sub

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

To jsem nepochopil

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

  ' označíte text za prvními šesti znaky:
        RichTextBox1.Select(6, RichTextBox1.Text.Length - 6)

        RichTextBox1.Cut()  ' ozn. text vystřihnete
   ' za ponechané znaky připojíte mezery:
        RichTextBox1.AppendText("      ")   
   ' za mezery vložíte vystřiženou část:
        RichTextBox1.Select(RichTextBox1.Text.Length, 0)  
        RichTextBox1.Paste()
   ' ? výsledek: za prvních šest znaků jste vložil 6 mezer, nebo se pletu?
    End Sub

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Snažil jsem se vyplnit "přání" našeho hostinského, který chtěl text v RTB "rozstřihnout" a do vzniklé díry vložit mezery tak, aby pak přes toto "prázdné" místo mohl plácnout obrázek, který by se tím pádem tvářil (v případě, že se podaří doladit přesné pozicování), jako by jej text obtékal.

takže:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' označíte text za prvními šesti znaky, až do konce
     RichTextBox1.Select(6, RichTextBox1.Text.Length - 6)
' ozn. text vystřihnete (a uschováme do clipboardu pro pozdější užití
     RichTextBox1.Cut()  
' za ponechané znaky připojíte mezery -OK, počet mezer dle velikosti požadovaného prázdného místa
     RichTextBox1.AppendText("      ")   

' za mezery vložíte vystřiženou část - OK
     RichTextBox1.Select(RichTextBox1.Text.Length, 0)  
     RichTextBox1.Paste()
' ? výsledek: za prvních šest znaků jste vložil 6 mezer, nebo se pletu?
' přesně tak, výsledkem je 6 původních znaků následovaných několika mezerami ("prázdné místo"), za kterými pokračuje původní formátovaný text
    End Sub

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ospravedlňujem sa, že som neuviedol celý kód.

Me.RichTextBox1.Select(5, 0)
Me.RichTextBox1.SelectedText = "       "

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To funguje úplně stejně - vloží se mezery :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V jednoduchosti je krása! Máte pravdu a problém je vyřešen.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pane Bladere, když jsme pro vložení mezer vyřešili i formát (to není výtka - byla to bezvadná inspirace ke studiu RTF!), ukažte prosím víc z Vašeho kódu kolem vložení a pozicování (posouvání) obrázku.

Chystám se RTF Box použít v mém příštím "udělátku" - vše se hodí.

Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Doporučuji shlédnout další přínos pana Bladera :

http://www.vbnet.cz/forum-tema--491-velk...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pôvodne so mal taký návrh už v tejto diskuzii, že či by nebol priestor na tejto stránke na publikáciu projektov členov tohto fóra, ku ktorému by sa ostatní mohli vyjadrovať , ale potom som ho zmazal. Ak chcete vidieť kód, ktorý je v štádiu hlbokej rozpracovanosti a ktorý je tiež len časťou planovaného projektu, potvrďte to, prosím a ja ho tu skopírujem.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Rozhodně z Vás nemámím celé dílo, přivítal bych část kolem obrázku a jeho posouvání

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Troška ma mrzí, že som z mladickej nerozvážnosti zverejnil kód v stave ako je uvedený vyššie, preto uverňujem tento kód upravený a viac menej funkčný. Moderátorov prosím o zmazanie predchádzajúceho príspevku, kedže ja túto možnosť nemám.

Príjemný večer

Imports System.Runtime.InteropServices
Public Class Form1
    Dim RtfText, pismeno, medzerySirkyObrazka, medzeryDoMedzery As String
    Dim F As Integer = FreeFile()
    Dim pbx As New PictureBox
    Dim charIndex, charIndex2, i, j As Integer
    Dim obr() As Object
    Dim pt As Point = (pbx.Location)
    Dim prvaPolohaPbx As Integer
    Dim sirkaObrazka, vyskaPismena, pocetRiadkov As Integer
    Dim VScrollPosition As Integer
    'udaje potrebne pre funkcnost RichTextBox1_VScroll
    Private Const SBS_VERT = 1
    <DllImport("User32.dll")> Public Shared Function GetScrollPos(ByVal hWnd As IntPtr, ByVal nBar As Integer) As Integer
    End Function
    'ulozi skopirovaný text z RTB do suboru - nemusi sa ukladat ani nacitavat staci skopirovat do RTB
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.RtfText = Me.RichTextBox1.Rtf
        FileOpen(F, "c:\RtfText.txt", OpenMode.Binary)
        FilePutObject(F, RtfText)
        FileClose(F)
    End Sub
    'nacita text zo súboru
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        FileOpen(F, "c:\RtfText.txt", OpenMode.Binary)
        FileGetObject(F, RtfText)
        Me.RichTextBox1.Rtf = RtfText
        FileClose(F)
    End Sub
    'Vlozi obrazok na poziciu kurzoru v texte
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        pbx.Image = Image.FromFile("c:\ruza.jpg")
        pbx.Height = 140
        pbx.Width = 50
        pbx.Location = Me.RichTextBox1.GetPositionFromCharIndex(Me.RichTextBox1.SelectionStart)
        pbx.SizeMode = PictureBoxSizeMode.CenterImage
        Me.RichTextBox1.Controls.Add(pbx)
        'toto mi dalo zabrat
        Me.prvaPolohaPbx = Me.pbx.Top + VScrollPosition
    End Sub
    'pohybuje obrazkom v RTB
    Private Sub RichTextBox1_VScroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.VScroll
        VScrollPosition = GetScrollPos(RichTextBox1.Handle, SBS_VERT)
        pbx.Top = -VScrollPosition + Me.prvaPolohaPbx
    End Sub
    'toto bude riaditel nerobi nic pouzival somh na zobrazenie zobrazenie pozicii
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        'pt = Me.pbx.Location
        'pt.X = pt.X
        'pt.Y = pt.Y + pbx.Height + Me.RichTextBox1.Font.Height - 13
        'charIndex = RichTextBox1.GetCharIndexFromPosition(pt)
        'Me.Label1.Text = Me.Top
    End Sub
    ' samotne obtekanie
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        ' pozicia laveho horneho rohu obrazka 
        pt = Me.pbx.Location
        ' poradie pismena v texte na uvedenej pozicii
        charIndex = RichTextBox1.GetCharIndexFromPosition(pt)
        pt.X = pt.X + pbx.Width
        charindex2 = RichTextBox1.GetCharIndexFromPosition(pt)
        'zisti sirku obrazka v pismenach
        Me.sirkaObrazka = charIndex2 - charIndex
        For i = 0 To Me.sirkaObrazka
            Me.medzerySirkyObrazka = Me.medzerySirkyObrazka & "  "
        Next

        Me.RichTextBox1.Select(charIndex, 0)
        'zisti pocet riadkov
        vyskaPismena = Me.RichTextBox1.SelectionFont.Height
        pocetRiadkov = Int(pbx.Height / vyskaPismena) + 1
        ' pozicia laveho horneho rohu obrazka odkial zacneme vkladat medzery
        pt = Me.pbx.Location
        For j = 0 To pocetRiadkov - 1
            pt.Y = pt.Y + Math.Sign(j) * vyskaPismena
            charIndex = RichTextBox1.GetCharIndexFromPosition(pt)
            Me.RichTextBox1.Select(charIndex, 0)
            'spocita pocet pismen do medzery vlavo od obrazka
            Do While pismeno <> " " '
                Me.RichTextBox1.Select(Me.RichTextBox1.SelectionStart - 1, 1)
                pismeno = Me.RichTextBox1.SelectedText
                Me.medzeryDoMedzery = Me.medzeryDoMedzery & " "
                i += 1
            Loop
            Me.RichTextBox1.SelectedText = Me.medzerySirkyObrazka & Me.medzeryDoMedzery
            Me.medzeryDoMedzery = "  "
            pismeno = "a" ' aby nepreskocil vyhladavanie medzery v dalsom riadku
        Next
    End Sub
End Class

Za prípadné pripomienky a návrhy budem vďačný. Napríklad ako vlo žiť ďalší obrázok. Radšej by som bol, keby to bol funkčný kód ako návrhy ako by som to mal urobiť

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Omlouvám se, dřív jsem se k odpovědi nedostal. Napsal jsem dlouhou odpověď, ale odeslání skončilo chybou a text je pryč.

....

No a tohle prošlo. Víc až příště...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji za zveřejnění kódu. Myslel jsem původně, že obrázek bude vložený v textu, ne jako samostatný objekt (PictureBox). Jaký bude vlastně zdroj textu a obrázku?

Posuvání PictureBoxu s obrázkem jde souběžně s textem, to máte vyřešené. Rozestup textu pro obtečení obrázku je těžší, mění se podle napsaného či vloženého textu, rozšíření řádky se zalamují. Proto se ptám na zdroj textu.

Pochopil jsem názor pana Langera kontrolovat kód znak po znaku. Žádáte kód, ne jen návrh na řešení. Nemám, nedokázal jsem to. Nevím, co je cílem, jak má vypadat obsah okna (formuláře). Možná bych šel cestou rozmisťování více objektů RTF a dalších.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Váženy pán Renner.

Ďakujem za odpoveď. S radosťou príjmem každú myšlienku, alebo nápad nielen hotové riešenia aj keď je pravda, že by som bol radšej, keby to bol funkčný kód.

A teraz aby som to upresnil. Po spustení programu je tam prázdny RitchTextBox, do ktorého chcem z internetových stránok nakopírovať nejaký text a obrázky , pričom by som chcel zachovať formatovanie, URL odkazy a obtekanie textu. Presne tak ako to funguje vo Worde. Do RichTextBoxu preto, lebo s tým textom potom chcem pracovať. Potom to všetko uložiť a podľa potreby znova načítať.

Na vloženie obrázkov do textu je na týchto stránkach už niekoľko kódov http://vbnet.cz/forum-tema--478-richtext...,ale tieto vlastne vložia obrázok len do jedného riadku a rozdelia RTB na hornú a dolnú časť, takže takto, nemôžem zabezpečiť obtekanie textu.

Toto, čo mám, mi vlastne ako tak funguje, ale nie je to presne to čo by som očakával. Ak by ste chceli mať presnejšiu predstavu, skúste si napr. skopírovať zo stránky http://www.listen-to-english.com/ do Wordu druhý článok začínajúci "Amy comes to Birmingham" a zformatovať obrázok na obtekanie do obdlžníka. Tak taký výsledok by som očakával. Tým nechcem naznačiť, žeby som očákaval od niekoho hotové riešenie, veď by som prišiel o vzrušenie z pátrania ako to vyriešiť a v podstate ani výsledok nie je až taký dôležitý, len som Vám chcel upresniť, že čo robím. A keď sa nemýlim, tak som už takmer všetky časti svojho projektu uverejnil na týchto stránkach.

Uf tak veľa som nenapísal najmenej X-rokov.

Ešte raz Vám ďakujem a prajem príjemný večer.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vím, že je tohle vlákno již vyřešené, ale našel jsem u RTB zajímavou vlastnost AppendText. Nevím ale jak to má s formátováním.

Hodit by se mohlo :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím, Tomáši. AppendText pouze přidá text (bez formátu) ke stávajícímu obsahu RTB.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Aha, toho jsem si nevšiml, protože jsem pracoval s neformátovaným textem. Díky za upozornění.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Srdečná vďaka za Vašu snahu pomôcť.

Bohužiaľ takto to asi nepôjde. Ak dovolíte, chcel by som Vám povedať, že toto vlákno zatiaľ nie je vyriešené. Vidím iba dve možnosti, alebo spoznať vnútornú štrukturu RichTextBox-u, alebo použiť ,ako to navrhuje pán Vrat. Renner, nejaké knižnice. Keďže obe veci sú pre mňa španielská dedina, nechám to zatiaľ asi uležať.

Príjemný večer.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím, pane Bladere

jak jsem to tady tak pročítal, napadlo mě, že bu se docela dobře dalo použít HMTL skrze komponetu WebBrowser. A pokud má být dokument přepisovatelný, můžete to udělat jednoduše pře contenteditable.

Je to jen takový nápad, já sám to někdy používám a obtékání obrázků a podbné věci jsou jedna radost :-)

Tady je základní HTML, které když dostanete do WebBrowseru, máte z něj RTB:

<html>
<head><title>Dokument 1</title></head>
<body contenteditable="true"></body>
</html>

a přes WebBrowser1.Document.ExecCommand můžete skoro cokoliv.

Doporučuji si přečíst si něco o ExecCommand, kdybyste chtěl vyzkoušet tento způsob.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ďakujem za odpoveď, pán Hübelbauer. Priznám sa, že som už skúšal WebBowser predtým, ale zistil som, že v tomto prípade mi chýbajú zakladné vedomosti. Mohli by ste mi poradiť, kde by som si mohol niečo prečítať o ExecCommand?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jistě, mohu Vám nabídnou seznam řetězců, které zadáváte do paramteru Document.ExecCommand.

Link:

http://msdn.microsoft.com/library/defaul...

je to v angličtině, ale je to "přímo od koryta".

A prosím omluvte mou zpožděnou odpověď.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ďakujem pán Hübelbauer (veľmi zaujímavé), ale toto je nejako mimo mojich znalosti a vedomosti. Nebolo by ,prosím, niečo v češtine? Alebo, čo by bolo lepšie, nenapíšete nejaký článoček?

Príjemný večer.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Zdravím,

prosím omluvte moji zpožděnou odpověď.

Npiště mi na mail [email protected] a já Vám (doufejme obratem) pošlu zdrojové kódy.

A k tomu článku: vydržte až dodělám svůj web (http://www.tomas-h.ic.cz/) a pak Vám tam pověsím článek. Teď jsou bohužel menší technické potíže.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback