PDA

View Full Version : سوال: آیا می توان کد html را داخل ممو وارد کرد و برنامه فایل وب را در وب بروز دلفی نمایش دهد؟



1072300
سه شنبه 04 مهر 1391, 22:21 عصر
سلام دوستان
آیا می توان کد html را داخل ممو وارد کرد و برنامه این کد را به صورت فایل وب در داخل وب بروز دلفی نمایش دهد؟

Nazanin Banoo
سه شنبه 04 مهر 1391, 22:43 عصر
خب کد رو از داخل ممو با پسوند اچ تی ام ال سیو کن و توی وب بروزر لود کن

1072300
چهارشنبه 05 مهر 1391, 14:12 عصر
این ساده ترین کاره، اما شرط اولیه این است که فایل بدون سیو شدن لود شود.

Felony
چهارشنبه 05 مهر 1391, 15:23 عصر
procedure WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: string) ;
var
sl: TStringList;
ms: TMemoryStream;
begin
WebBrowser.Navigate('about:blank') ;
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;

if Assigned(WebBrowser.Document) then
begin
sl := TStringList.Create;
try
ms := TMemoryStream.Create;
try
sl.Text := HTMLCode;
sl.SaveToStream(ms) ;
ms.Seek(0, 0) ;
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms) ) ;
finally
ms.Free;
end;
finally
sl.Free;
end;
end;
end;

1072300
یک شنبه 09 مهر 1391, 21:02 عصر
برای این خط خطا می دهد:
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms) ) ;

و سوالی دیگر در باتوم چه کدی بنویسم که کد اچ تی ام ال را به صورت فایل وب در وب بروز نمایش دهد.
سپاس

hossein_h62
شنبه 22 مهر 1391, 09:28 صبح
کدی که باید در دکمه بنویسید :
WBLoadHTML(WebBrowser, Memo.Lines.Text);

Felony
شنبه 22 مهر 1391, 09:35 صبح
کتابخانه Activex رو به Uses اضافه کنید .

1072300
یک شنبه 23 مهر 1391, 20:50 عصر
سپاسگزارم
اگر بخوام به جای فرمت html فرمت جدید ماکروسافت mht یا mhtml را ساپورت کند چه تغییری در سورس باید اعمال کنم.

Felony
سه شنبه 02 آبان 1391, 05:19 صبح
کامپوننت WebBrowser در دلفی یک Wrapper از نسخه های قدیمی IE برای دلفی هست و خیلی وقته به روز رسانی نشده ، برای استفاده از قابلیت های جدید باید از کامپوننت هایی مثل EmbeddedWB استفاده کنید .

1072300
یک شنبه 21 آبان 1391, 22:13 عصر
procedure WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: string) ;
var
sl: TStringList;
ms: TMemoryStream;
begin
WebBrowser.Navigate('about:blank') ;
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;

if Assigned(WebBrowser.Document) then
begin
sl := TStringList.Create;
try
ms := TMemoryStream.Create;
try
sl.Text := HTMLCode;
sl.SaveToStream(ms) ;
ms.Seek(0, 0) ;
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms) ) ;
finally
ms.Free;
end;
finally
sl.Free;
end;
end;
end;

تنها مشکل این کد عدم پشتیبانی از عکس است به چه صورت می توان در این کد عکس ها را در داخل حافظه فراخوانی کرد و در داخل وب بروز دلفی نمایش داد؟

hossein_h62
سه شنبه 23 آبان 1391, 08:37 صبح
تنها مشکل این کد عدم پشتیبانی از عکس است به چه صورت می توان در این کد عکس ها را در داخل حافظه فراخوانی کرد و در داخل وب بروز دلفی نمایش داد؟
اینطور نیست، تمام آبجکت هایی که در HTML ایجاد کرده باشین با این کد نمایش داده میشه، احتمالا مسیر تصویرتون رو درست وارد نکردین.

1072300
چهارشنبه 24 آبان 1391, 22:31 عصر
عکس ها در کنار فایل exe برنامه است نمی دانم به چه صورت آدرس دهی کنم که با جابجایی برنامه ام باز عکس ها لود شود.

BORHAN TEC
چهارشنبه 24 آبان 1391, 22:40 عصر
سلام
الان امکان نوشتن کد رو ندارم ولی بهتره که اول فایل html رو در یک مسیر ذخیره کنید و بعد اون رو در کامپوننت TWebBrowser لود کنید. طبیعی است که اگر از آدرس دهی نسبی استفاده کنید فایل های دیگر(مثل عکس و ...) باید مسیرشان نسبت به محل ذخیره فایل html باشد تا برنامه شما به درستی کار کند.
موفق باشید...

1072300
جمعه 26 آبان 1391, 14:23 عصر
اما شرط این است که دخیره نشود.

hossein_h62
شنبه 27 آبان 1391, 13:05 عصر
کدی که در تگ <img> نوشتین رو بزارین .

1072300
دوشنبه 29 آبان 1391, 21:58 عصر
img src="create-mht-file-web-archive_files/d18eea9d28f3490b8dcbfa9e38f8336e.jpg"

hossein_h62
سه شنبه 30 آبان 1391, 07:43 صبح
img src="create-mht-file-web-archive_files/d18eea9d28f3490b8dcbfa9e38f8336e.jpg"
اگر فایل اجرایی دلفی تون در شاخه بالایی "create-mht-file-web-archive_files" باشه که مشکلی نیست و عکس رو نمایش میده ولی در غیر اینصورت باید مسیر عکس رو در تگ فوق بصورت کامل آدرسدهی کنید. مثلا :

<img src="C:\web\create-mht-file-web-archive_files\Image.jpg">

MohsenB
سه شنبه 30 آبان 1391, 21:33 عصر
با سلام

اگر صفحه ای که می خواهید نمایش دهید صفحه ی پیچیده ای نیست و یا می خواهید از تگ های ساده فرمت متن و عکس و اشیاء دیگر استفاده کنید پیشنهاد میکنم از کامپوننت THTMLLabel و سایر هم خانواده های آن از مجموعه TMS استفاده نمایید .


موفق باشید