[ Fenix @ 05.11.2009. 20:08 ] @
Koristim dosta rich control u programu. Međutim niti je lagan sa svojim kodovima i karakterima niti neke stvari se uopšte mogu izvesti izgleda. Evo ne mogu npr. tabelu da napravim, tekst prelazi preko okvira ćelije i to je izgleda tako sa rich editom, nema lijeka.

E sad da li ima i neki drugi način da u svom vb programu prezentujem lijepo formatiran tekst (u skladu sa mojim raznim potrebama, a biće tu raznih fontova i pisama, kao npr. arapski kao i latinica itd., raznih boja teksta, raznih boja pozadina teksta na nivou riječi, tabela, linkova itd.).

Šta preporučujete, šta bi bilo najbolje u tu svrhu???

(Nešto nisam vičan ovom DHTML-u, može li se sa njim šta uraditi po ovom pitanju?)

[Ovu poruku je menjao Fenix dana 05.11.2009. u 21:38 GMT+1]
[ Marko_L @ 05.11.2009. 20:39 ] @
Da bi ti neko predložio adekvatno rešenje, moraš prvo malo bolje i detaljnije da objasniš šta tačno želiš da napraviš. Iz ovoga što si napisao, da se naslutiti da pokušavaš da napraviš nekakav WYSIWYG HTML editor ili nešto tome slično. Ako je tako, kaži, pa da pričamo dalje. Ako nije, onda objasni šta tačno pokušavaš da napraviš.
[ Shadowed @ 05.11.2009. 21:48 ] @
U svakom slucaju mozes staviti InternetControl (ili kako god da se bese zove) i izgled formatiras kreirajuci html dokument.
[ Fenix @ 05.11.2009. 22:08 ] @
Ovako, jedna od konkretnih karakteristika: Pretpostavimo na desnoj strani dokumenta arapski tekst (dakle smjer s desna ulijevo) koji treba prevoditi, dakle na lijevoj strani će biti latinični tekst prevoda.

Sad, odvojene su rečenice (ili pasusi) na jednoj i na drugoj strani ali je potrebno da idu uporedo, na desnoj i na lijevoj strani, tj. da budu jednake po visini jedna naspram druge, što se ne može postići prijelomima redaka s obzirom da je font na desnoj strani obično veći sa većim proredom itd., zato bi se valjda moralo ići na tabelu.

Dalje, neke riječi bi trebalo označiti drugom bojom, neke drugom bojom pozadine, dobro bi bilo da mogu pokupiti riječ iznad koje zastanem mišem ili na koju kliknem mišem itd.

Al najbitnije mi je u svemu ovome ova paralelenost tj. uporednost rečenica teksta na desnoj i na lijevoj strani.

Nadam se da sam uspio biti manje konfuzan u izlaganju...:)
[ Fenix @ 05.11.2009. 22:13 ] @
Shadowed,

to sa InternetControl bi bilo odlično, međutim, koliko se sjećam da sam jednom to pokušao pa nisam imao načina da html tekst koji ja kreiram i mijenjam u toku rada programa prezentujem u toj kontroli.
A još bih trebao često "u letu" mijenjati tekst i izgled teksta kao odgovor na razne akcije korisnika.
[ Marko_L @ 05.11.2009. 22:35 ] @
Pa možeš da kreiraš neki temp html fajl (koji je zapravo običan text fajl, samo ima html ekstenziju, al to već znaš) i onda povežeš web browser kontrolu na taj fajl, a zatim, kad nešto menjaš u textboxu ili čemu već, istovremeno menjaš i taj fajl i refrešuješ web browser kontrolu.
[ Shadowed @ 05.11.2009. 22:37 ] @
Moze i bez temp fajla ali je u 6ici malo zeznuto i ne secam se kako (proslo x godina). Znam samo da sam uspeo :)
[ Fenix @ 06.11.2009. 00:08 ] @
To je taj problem, ne ide mi sad svaku sekundu, dvije kad korisnik nešto promijeni ili upise pisati u fajl na disku pa refresh-ovati kontrolu, nije praktično, a taj drugi način (da iz programa direktno mijenjam sadržaj i formatiranje u kontroli) nisam otkrio, bio bih zahvalan ako bi neko pomogao ko zna kako ...

Ne bih bježao ni od toga da se latim nekog drugog programskog jezika da to uradim samo ako se u njemu te stvari mogu lako i elegantno rješavati (ima li preporuka koji, C# možda?) ...
[ Marko_L @ 06.11.2009. 02:19 ] @
Pa može i bez fajla, čak i nije neka preterana mudrost. Prvo otvoriš praznu stranicu da se inicijalizuje dokument web browsera, a onda pišeš u taj dokument bez pisanja u fajl
Code:
Option Explicit

Dim blnLoaded As Boolean

Private Sub Command1_Click()
blnLoaded = False
WebBrowser1.Navigate "about:blank"

While blnLoaded = False
    DoEvents
Wend

WebBrowser1.Document.open
WebBrowser1.Document.write "<HTML><BODY>Hello World</BODY></HTML>"
WebBrowser1.Document.Close
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
If Not URL = "" Then blnLoaded = True
End Sub

a možeš i direktno
Code:
WebBrowser1.Navigate "about:<HTML><BODY>Hello World</BODY></HTML>"

Ja kod sličnih stvari volim da koristim temp fajl zato što mi je tako lakše da napravim backup, undo i redo procedure i slično, a mogu u toku razvoja da otvorim taj temp fajl u nekom drugom browseru, recimo Firefoxu (WebBrowser koristi IE engine) i vidim kako tamo izgleda bez potrebe da se snima projekat. Pored toga, pisanjem u fajl, izbegavam da se u slučaju neke greške izgubi ceo HTML koji nije snimljen, nego uvek imam poslednju verziju u tom nekom fajlu. U svakom slučaju, može tako, a može i 'vako :)
[ Fenix @ 06.11.2009. 02:29 ] @
Nisam nikada radio ozbiljnije sa wb control-om pa ovo nisam mogao nikako da "napipam".
Nemam sad vremena (kasno je naveče) da ovo isprobam, ali izgleda da će da mi valja, tako da sam jako zahvalan na pomoći.
Još jednom, hvala puno!