Jump to content
GSForum - Segélyvonal

HTML alkalmazása Delphiben


Attila1981

Recommended Posts

Attila1981

Hello!

 

Van egy HTML-es oldalam amit készítettem, és ezt szeretném megoldani Delphiben úgy hogy gombnyomásra elinduljon a HTML-es oldal. Segítsetek!

Link to comment
Share on other sites

atzs

WinExec('explorer http://... ',0) parancs elvileg elindítja az IE-t és betölti a megadott lapot.

Link to comment
Share on other sites

arpsoft

Vagy beraksz egy webbrowser ActiveX elemet egy formra, és használod a navigate metódusát.

Link to comment
Share on other sites

Attila1981

Elöször is köszönöm a segítõ választ. Szeretném megkérdezni, hogy mi a megoldás a következõ példára. Egy Delphiben megírt programomban videóbejátszás is szerepel. Egy gomb megnyomására indul el. Az a problémám ha megállítom a videóbejátszást eltûnik a delphi videóbejátszó ablaka. Ilyenkor az összes megnyitott ablak mögé kerül. Azt szeretném megoldani, hogy ha megállítom a videóbejátszást, akkor ne tûnjön el.

Link to comment
Share on other sites

atzs

Esetleg állítsd be a FormStyle-t fsStayOnTop-ra. Akkor nem megy el hátra... :démonikacaj:

 

Ez persze csak akkor jó, ha idõnként nincs szükség arra, hogy ne takarjon el mindent.

 

Az is lehet megoldás, hogy a Form BringToFront metódusát meghívatod a video leállításakor. Ha a MediaPlayer komponenst használod, akkor az onPostClick eseményhez be tudod írni a kódot.

Link to comment
Share on other sites

Attila1981

Most viszont az Outlookkkal van gondom.

Azt szeretném megcsinálni hogy az email címemre kattintva bejöjjön az Outlook, és rögtön az email címem egy Új üzenet írásában.

Eddig ezzel próbálkoztam de ez csak megnyissa az outlookot.

 

uses ShellApi;

 

procedure ..........gombClick..;

begin

ShellExecute(handle,nil,' outlook.exe',nil,nil, SW_SHOWNORMAL);

end;

Link to comment
Share on other sites

arpsoft

Az 'outlook.exe' helyett:

'mailto enyem@email.cim'

Link to comment
Share on other sites

Attila1981

Köszönöm a válaszokat, segítettek.

 

A program amin dolgozom tartalmaz egy Névjegy ablakot.

Na most ez a Névjegyablak mindig elindul amikor elindítom a programomat, és a háttérbe lapul valahol. Ha viszont a programomban a névjegyet szeretném elõhozni akkor elõjön a Névjegyablak de nem aktív az egyetlen gomb rajta, Így be se tudom csukni a Névjegyablakot. Csak ugy tudom becsukni ha becsukom a formomat amirõl elindította.Ez mind azért van mert a háttérbe van valahol induláskor. Nem adtam meg neki hogy elindulkon.

Akkor mégis hol van beíródva, mert már átrágtam magam az egész programon és nemtalálom.

Link to comment
Share on other sites

arpsoft

Nyilván a gombod vagy menüpontod eseményében van leírva, hogy mutassa meg a névjegy ablakodat.

 

Az, hogy a gomb miért nem aktív, több dolog is befolyásolhatja:

- le van tiltva

- a hívó form modális és visszakerül rá valamilyen okból a fókusz

- nincs megírva az eseménykezelése a gombnak

- a gombnál nincs leporgramozva a form bezárása

Link to comment
Share on other sites

Attila1981

Nem segít.

Ha meghívom a fõablak USES-ába a Névjegy ablak formját, és a fõablak FormActive-be írva bezárom a Névjegyablakot akkor minden mûködik. Csak hogy ez a forráskód diplomamunka csatolmánya lesz tehát ezt így nem oldhatom meg.

Link to comment
Share on other sites

Attila1981

Van egy kis problémám megint, remélem az utolsó! Elkészült a delphis programom! Vann benne adatbázis és videólejátszás. A videóbejátszás a Delphi Media Playerjával van megoldva. Elkészítettem a programom telepítõjét. A probléma csak akkor kezõdött mikor olyan gépre telepítettem ahol nincsen Delphi. Olyan gépen ahol van Delphi ott simán fut. Az adatbázist már megoldottam, de a Delphi Media Playerjával nemjutok semmire ugyanis, nem megy. Mit kell még csatolnom a telepítés készítésekor, és hová? Próbáltam betenni a telepítésbe a MPlayer.dcu és a MPlayer.res fájlt is, de így sem ment. Van még valahol valami tartézékai a Playernak.

Ha nem lehet így megoldani, a Windows Media Playerral hogyan kell meghívni gombnyomásra a videóbejátszást. Kérlek segítsetek!!!!

Link to comment
Share on other sites

  • 1 month later...
DonTomika

Üdv!

 

A megfelelõ kodekek telepítve vannak a célgépen? Mert ha nem akkor azt csatolni kellene. :D

A Windows Media Playert meg úgy tudod használni, hogy Component menü Import ActiveX Control... Kiválasztod azt, hogy Windows Media Player, Install gomb, a megjelenõ ablakban OK. Ezután az ActiveX fülön érheted el a TWindowsMediaPlayer komponenst, ezzel lehet lejátszani. Használata szvsz értelemszerû.

Link to comment
Share on other sites

  • 4 months later...
wizard

Sziasztok!

 

Nekem is lenne 1 félig meddig netes kérdésem:

Vannak .rtf file-jaim, amik pár darab ábrát tartalmaznak. Van 1 Richeditem, amikbe ezeket beöltöm, de az a képet nem kezeli le. Gondolkoztam olyanon is, hogy akkor berakok 1 linket, és majd arra kattintva jelenik meg az ábra. Ez sem jött be.

 

Azt tudom, hogy az Image komponens kezel képet, de mivel ez egy elméleti anyagot tartalmazó része lesz a programnak (nem HELP!), jó lenne, ha összefüggõ egységet alkotna. Erre pedig a Richedit volt a legjobb eddig.

 

Ajánlották a http://www.torry.net oldalt, ahol egy rx nevû dolog segíthetne rajtam. Ennyit sikerült megtudnom róla: Delphi VCL Extensions (RX). Sajnos még nem vagyok olyan szinten a Delphiben, hogy ezzel bármit is tudjak kezdeni. Sem a VCL-lel, sem a DLL-lel nem foglalkoztam még eddig. Sõt így elsõre bonyolultnak is tünnek.

 

Tudtok valami megoldást a problémámra?

Link to comment
Share on other sites

DonTomika

Pedig a VCL-lel foglalkoznod kellett... Igazából ha Delphiben egy gombot, vagy egy Form-ot használsz, akkor már a VCL-t használod...

 

Az RX telepítése meg nem bonyolult. Letöltöd a fájlt, benne van a telepítõ. D1-tõl D5-ig automatikusan fel tudja tenni, ha jól emlékszem. Magasabb verziójú Delphiben már problémák vannak. (Bár, ha jól tudom, akkor 3-ast használsz, úgyhogy nem lesz baj.) Bár már régen telepítettem.

 

Telepítés után a komponenspalettán az Rx fülön lesz egy RichEdit-es komponens (a neve most nem jut eszembe), azt felrakod a formra, és úgy használod, mint egy sima RichEditet. Az RX Demói között van erre egy példaprogi is.

Link to comment
Share on other sites

mata2

Sziasztok.

 

Nos az én kérdésem szintúgy ehez a témához kapcsolódik. Most írok egy programot, ami egy HTML oldalt dolgoz fel. Magyarán a forráskódban egy táblázatból nyeri ki az adatokat. Ez a része már készen van, már csak az a darab hiányzik belõle, hogy letöltse az oldalt. Ebben szeretném a segítségeteket kérni, hogy hogyan lehet azt megoldani, hogy van egy netes oldal, aminek csak(!) a html oldalát kellene letölteni, és azt egy mappába belemásolni.

Ez lett volna az egyik kérdésem. A másik az, hogy a végén hogyan tudok úgy meghívni egy címet, hogy az nem az IE-ben és nem máshol nyíljon meg, hanem a delphi formon belül intézze el a dolgot, és ha ez 100%-osan betöltõdött, akkor autómatikusan hívja meg a listában a következõ elemet.

 

Elõre is köszönöm a segítségeteket: Attila

Link to comment
Share on other sites

wizard

DonTomika!

 

Köszi a segítséget!

 

De sikerült megoldani egy egyszerûbb módszerrel is: OleContainer-be töltöm az rtf-et. Csak egy gáz van. Nincs az OleContainer-nek ScrollBars tulajdonsága. Mert pl. Richeditnél elég volt ezt ssVertical-ra állítani.

 

Próbálkoztam azzal, hogy húztam az OleContainer-re egy ScrollBart, és ezután az Onscroll-ra próbáltam valami eseményt írni, de nem jött össze. Ennek a komponensnek még lines tulajdonsága sincs.

 

Hogy lehet görgetni?

Link to comment
Share on other sites

DonTomika

@mata2:

Letöltés:

Kell egy Uses urlmon; az elejére, aztán:

UrlDownloadToFile(nil, 'http://www.pcworld.hu', 'C:\nemtommi.htm', 0, nil);

A megnyitás pedig:

Az Internet fülön van egy WebBrowser komponens, azt rakd rá a formodra, majd ha meg akarsz valamit nyitni, akkor:

WebBrowser1.Navigate('http://www.pcworld.hu');

Az OnDocumentComplete eventben pedig le tudod kezelni, ha az oldal betöltődött. Persze nem árt, ha van IE a gépen... :)

 

@wizard:

Nézegettem ezt az OleContainert. Sikerült betölteni egy teszt rtf-et de nem igazán az lett, mint amit vártam... Biztos, hogy ez erre való? Például, ha jobb gombbal kattintassz rajta, majd Szerkesztés, akkor a kedves a szép kis Delphi programból csinál Wordöt... Szerintem ez arra jó, mint például egy Word dokumentumban a képek beillesztése. Ha jól tudom, a Wordpad ezt is használja arra...

Mondjuk a görgetéses probléma úgy kiküszöbölhető, hogy az egész OleContainert belerakod egy ScrollBoxba, aztán

OleContainer1.SizeMode:=smAutoSize;

Csak az OleContainer igazítása alNone legyen...

Viszont Lines propertyt szerintem nem nagyon fogsz találni benne. :(

Link to comment
Share on other sites

wizard

DonTomika!

 

Köszi a tippet!

 

Így lett megoldva: Van 1 gomb, egy Opendialog és egy ScrollBox, amibe beleraktam az OleContainert.

 

Mûködõ kód:

 

procedure TForm1.FormActivate(Sender: TObject);

begin

Olecontainer1.sizemode:=smAutoSize;

end;

 

 

procedure TForm1.Button1Click(Sender: TObject);

var filenev:string;

begin

try

if OpenDialog1.Execute then

OleContainer1.CreateObjectFromFile(OpenDialog1.FileName, false);

except

showmessage ('Valahol hiba van!')

end;

end;

 

end.

 

 

Egy dolgot viszont nem értek.

 

Ha kiszedem ezt a részt:

if OpenDialog1.Execute then

OleContainer1.CreateObjectFromFile(OpenDialog1.FileName, false);

 

és ezt rakom a helyére:

OleContainer1.CreateObjectFromFile('1.rtf',false);

 

Akkor miért száll el a progi?

 

Hibaüzenet: Project POLEscroll.exe raised exception class EOleSysError with message 'OLE error 80030002'. Process stopped. Use Step or Run to continue.

 

PS: Sorry mindenkitõl, hogy egy kissé elkanyarodtunk a netes témától!

 

 

 

Link to comment
Share on other sites

wizard

Megvan a megoldás!

 

Csak ennyi volt a baj:

 

filenev:='1.rtf';

OleContainer1.CreateObjectFromFile(GetCurrentDir+'\'+filenev,false);

 

Meg kellett mondani neki, hogy az alapértelmezett könyvtárban van a file.

Számomra ez egyértelmû volt. ;)

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...