Merhabalar, Delphi xe5 e yeni geçtim. Öncesinde XE kullanıyordum. XE de yapmış olduğum bir projeyi XE5 e uyarlayacağım android webbrowser ile fakat aşağıdaki hatayı alıyorum. MSHTML_TLB ile ilgili bir sorunum var. Winapi.Windows.dcu dosyasını bir türlü ayarlayamadım ve import component ile yaptığım microsoft http object library ile çözülmesi gerektiği yazıyor ama olmadı bir türlü.
"Android webbrowser" dediğinize göre siz mobil uygulama geliştireceksiniz?
Eğer öyleyse Firemonkey kullanmalısınız. Yani uygulama tipi tamamen değişecek. Multi-Device Applications seçerek yeni bir uygulama başlatmalı ve buradan devam etmelisiniz. Böyle olunca da FMX.WebBrowser.TWebBrowser'ı kullanmanız gerekir.
Burada zaten hatanın sebebi yazıyor. Kütüphane ile ilgili bir durum. (unit scope "Winapi" indicates Win32, Win64 only)
Eklediğiniz kütüphaneler sadece Windows işletim sisteminde (win32 ve win64) olarak çalışır. Android için bunların karşılığını bulmalısınız veya WebBrowser olarak android xe5 sürümünde ne kullanılıyor bunu bulun.
(19-11-2018, Saat: 13:15)SimaWB Adlı Kullanıcıdan Alıntı: "Android webbrowser" dediğinize göre siz mobil uygulama geliştireceksiniz?
Eğer öyleyse Firemonkey kullanmalısınız. Yani uygulama tipi tamamen değişecek. Multi-Device Applications seçerek yeni bir uygulama başlatmalı ve buradan devam etmelisiniz. Böyle olunca da FMX.WebBrowser.TWebBrowser'ı kullanmanız gerekir.
Merhaba,
Uygulamayı oluştururken FireMonkey Mobile Application - Delphi olarak seçiyorum component de WebBrowser olarak geliyor karşıma ve ekliyorum.
Bunun için uses'a MSHTML_TLB ekliyorum fakat MSHTML_TLB.pas dosyasında aşağıdaki satırdaki uses'ların bir kısmı için File Not Found diyor. Örneğin : Winapi.Windows.dcu not found gibi
Burada zaten hatanın sebebi yazıyor. Kütüphane ile ilgili bir durum. (unit scope "Winapi" indicates Win32, Win64 only)
Eklediğiniz kütüphaneler sadece Windows işletim sisteminde (win32 ve win64) olarak çalışır. Android için bunların karşılığını bulmalısınız veya WebBrowser olarak android xe5 sürümünde ne kullanılıyor bunu bulun.
Bir bulabilsem Delphi Android ilk defa deniyorum da
FireMonkey framework'ü XE2 itibariyle Delphi bünyesine katılmıştır. XE ile geliştirdiğiniz Android'de hangi framework'ü kullanıyordunuz? XE5'in çok kritik eksikleri bulunuyor. Eğer henüz yeni başladıysanız 10.1 Berlin veya 10.2 Tokyo ile devam etmelisiniz. Eğer 10.X+ lisansınız bulunmuyorsa XE8'e güncelleme satın alarak devam edebilirsiniz. XE serilerinde en stabil olanı 8. sürümdür.
Not: Community Edition ile 10.2 Tokyo sürümünü ücretsiz olarak edinebilirsiniz. Detaylı bilgi için embarcadero.com sitesini ziyaret edin.
(19-11-2018, Saat: 14:20)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: Merhaba,
FireMonkey framework'ü XE2 itibariyle Delphi bünyesine katılmıştır. XE ile geliştirdiğiniz Android'de hangi framework'ü kullanıyordunuz? XE5'in çok kritik eksikleri bulunuyor. Eğer henüz yeni başladıysanız 10.1 Berlin veya 10.2 Tokyo ile devam etmelisiniz. Eğer 10.X+ lisansınız bulunmuyorsa XE8'e güncelleme satın alarak devam edebilirsiniz. XE serilerinde en stabil olanı 8. sürümdür.
Not: Community Edition ile 10.2 Tokyo sürümünü ücretsiz olarak edinebilirsiniz. Detaylı bilgi için embarcadero.com sitesini ziyaret edin.
Dediğiniz gibi Community Edition 10.2 TOKYO indirdim kurdum ama yine aynı durum
IHTTPDocument2 in çalışması için Import Component'ten Microsoft HTTP Object Library'i kurmam gerekiyor bildiğim kadarıyla ve kurduğumda MSHTTP_TLB Hata veriyor Yine
[DCC Fatal Error] Unit1.pas(7): F2613 Unit 'MSHTML_TLB' not found.
(19-11-2018, Saat: 18:05)smyrna231802 Adlı Kullanıcıdan Alıntı: Dediğiniz gibi Community Edition 10.2 TOKYO indirdim kurdum ama yine aynı durum
IHTTPDocument2 in çalışması için Import Component'ten Microsoft HTTP Object Library'i kurmam gerekiyor bildiğim kadarıyla ve kurduğumda MSHTTP_TLB Hata veriyor Yine
[DCC Fatal Error] Unit1.pas(7): F2613 Unit 'MSHTML_TLB' not found.
Hatanın kaynağını sanırım yakaladım. Kurduğunuz kütüphaneyi hiç kullanmadım ama Microsoft HTTP Object Library isminden anladığım kadarıyla Microsoft Windows işletim sistemine has bir kütüphane.
Bildiğiniz üzere FMX (FireMonkey) ile VCL (Visual Component Library) farklı arayüz yapıları. Bu yüzden VCL tabanında geliştirilen harici kütüphaneleri doğrudan FMX tabanında kullanamazsınız. Çünkü FMX mimarisinin temelinde PlatformAssistant denilen ve cross-platform'a çıkmak için kodlarınızı binary haline getirdikten sonra hedef platforma göre özelleştiren bir yapı mevcut.
Özetle; Android için HTTP'de böyle bir kütüphaneye ihtiyaç duyanların neler yaptığına bir bakmak lazım. Bu kütüphanede tam olarak ihtiyacınız nedir?
(19-11-2018, Saat: 18:15)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı:
(19-11-2018, Saat: 18:05)smyrna231802 Adlı Kullanıcıdan Alıntı: Dediğiniz gibi Community Edition 10.2 TOKYO indirdim kurdum ama yine aynı durum
IHTTPDocument2 in çalışması için Import Component'ten Microsoft HTTP Object Library'i kurmam gerekiyor bildiğim kadarıyla ve kurduğumda MSHTTP_TLB Hata veriyor Yine
[DCC Fatal Error] Unit1.pas(7): F2613 Unit 'MSHTML_TLB' not found.
Hatanın kaynağını sanırım yakaladım. Kurduğunuz kütüphaneyi hiç kullanmadım ama Microsoft HTTP Object Library isminden anladığım kadarıyla Microsoft Windows işletim sistemine has bir kütüphane.
Bildiğiniz üzere FMX (FireMonkey) ile VCL (Visual Component Library) farklı arayüz yapıları. Bu yüzden VCL tabanında geliştirilen harici kütüphaneleri doğrudan FMX tabanında kullanamazsınız. Çünkü FMX mimarisinin temelinde PlatformAssistant denilen ve cross-platform'a çıkmak için kodlarınızı binary haline getirdikten sonra hedef platforma göre özelleştiren bir yapı mevcut.
Özetle; Android için HTTP'de böyle bir kütüphaneye ihtiyaç duyanların neler yaptığına bir bakmak lazım. Bu kütüphanede tam olarak ihtiyacınız nedir?
Aşağıdaki kodu windows uygulamada kullanabiliyorum fakat benim android uygulamada kullanmam gerekiyor.
Bu google da bir arama yapıyor ve çıkan sonuçta girdiği web sitesi adresi varsa ona tıklıyor. Bir müşterim istedi bu uygulamayı artık ne için kullanacaksa. Fakat IHttpDocument benzeri olayları android için kullanamıyorum.
Function Sorgula(WebBrowser1: TWebBrowser;
strAramaAnahtari, strKarsilastirma: String): Boolean;
Const
AraFormat =
'https://www.google.com.tr/search?as_q=%s&hl=tr&num=20&btnG=Google''da Ara&as_epq=&as_oq=&as_eq=&lr=&cr=&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=&as_rights=&safe=images';
Var // MSHTML
htmlDoc: IHTMLDocument2;
TumLinkler: IHTMLElementCollection;
BirLink: IHTMLElement;
url: String;
i: Integer;
begin
WebBrowser1.Navigate(Format(AraFormat, [strAramaAnahtari]));
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
begin
Sleep(1);
Forms.Application.ProcessMessages;
end;
htmlDoc := WebBrowser1.Document as IHTMLDocument2;
TumLinkler := htmlDoc.Links;
Result := False;
i := 0;
while (i < TumLinkler.Length - 1) AND (NOT Result) do
begin
BirLink := TumLinkler.Item(i, '') as IHTMLElement;
url := BirLink.toString;
if Pos(strKarsilastirma, url) = 1 then
begin
Result := True;
BirLink.click;
end;
Application.ProcessMessages;
inc(i);
end;
end;
(19-11-2018, Saat: 18:34)smyrna231802 Adlı Kullanıcıdan Alıntı: Aşağıdaki kodu windows uygulamada kullanabiliyorum fakat benim android uygulamada kullanmam gerekiyor.
Kullanamazsınız!
Yukarıda da belirtildiği gibi bunlar Windows'a özgü komutlar/kütüphanler/teknolojiler.
FMX'de durum biraz daha farklı.
Android tarafında en son webbrowserin 5 tane eventi vardı vcl kadar gelişmiş değil malesef
Bu eventlerden birine sayfa yükleyince giriyordu ve birinde de sayfa yuklenmeden giriyordu orada url de google ve search anahtar kelimelerini bulursanız arama yapmış demektir , yüklendiğinde içinde arayın
Olmazsa IdHttp ye o url yi geçirin ordan dökümünü alın orda arayın
Ugrasmayim derseniz bir buton koyun kelime var mı diye direk bulunduğu sayfada arasın
Şuan webbrowser içinde node lar olarak dolaşılıyor muydu hatırlamıyorum , dolaşılıyorsa işiniz daha kolay