Delphide SWF kullanırken form açtırma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
Delphide SWF kullanırken form açtırma
Arkadaşlar şimdi elimde swf var bunu delphiye uyarladım... Delphi 7...
Fakat bu swf nin kendi içerisindeki kısımlarında link var...
Belki olmucak bir soru ama acaba bu link yerine mesela Delphi ye ait başka bir form açtırabilirmiyiz....
Fakat bu swf nin kendi içerisindeki kısımlarında link var...
Belki olmucak bir soru ama acaba bu link yerine mesela Delphi ye ait başka bir form açtırabilirmiyiz....
Merhaba ,
siz SWF leri Delphi içindemi kullanıyorsunuz yoksa dışarıdanmı?
Eğer içinde kullanıyorsanız SWF iniz içersinden bir takım mesajlar gönderp bunları delphide yakalayabilirsiniz. dolayısıyla istediğinizde yapabilirsiniz.
Delphi içinden SWF mesajları yakalamak ile ilgili forumda açıklamalar var.
siz SWF leri Delphi içindemi kullanıyorsunuz yoksa dışarıdanmı?
Eğer içinde kullanıyorsanız SWF iniz içersinden bir takım mesajlar gönderp bunları delphide yakalayabilirsiniz. dolayısıyla istediğinizde yapabilirsiniz.
Delphi içinden SWF mesajları yakalamak ile ilgili forumda açıklamalar var.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
merhaba ,
tam açıklayıcı olmadı , Siz Flash dosyasını Delphi içinde gösterim kullanıcı bu delphi içinde gösterilen Flash ın üzerinde etkileşimli işlemler yapınca örnein bir flash butonunua basınca başka bir delphi formunu açtırmak gibi mi işlem yapmak istiyorsunuz?
tam açıklayıcı olmadı , Siz Flash dosyasını Delphi içinde gösterim kullanıcı bu delphi içinde gösterilen Flash ın üzerinde etkileşimli işlemler yapınca örnein bir flash butonunua basınca başka bir delphi formunu açtırmak gibi mi işlem yapmak istiyorsunuz?
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
Evet...vkamadan yazdı:merhaba ,
tam açıklayıcı olmadı , Siz Flash dosyasını Delphi içinde gösterim kullanıcı bu delphi içinde gösterilen Flash ın üzerinde etkileşimli işlemler yapınca örnein bir flash butonunua basınca başka bir delphi formunu açtırmak gibi mi işlem yapmak istiyorsunuz?

Ama bunu dışarıdan alacağım bir değer ile kontrol edebilirim... Önemli olan ise o değeri flash içerisinden attırmak...
Mesela şu an free dağıtacağım Türkiye projesi elimde...
Özetlemek gerekirse http://www.flashdersleri.com/html_dosyalar/haritam.html bu adresteki harita.fla dosyasını indirdim...
Tabii birde Temp ime hemen sitedeki swf düştü...

Buradaki illere kliklendiğinde dışarıda swf nin bitişiğinde sehir.txt dosyasına il plaka kodunu atsa gerisini ben hallederim...


İpucu verim... http://www.flashdersleri.com/html_dosya ... malar.html bu adreste bazı txt örneklemeleri var...
Kolay gelsin...
Hocam görüyorum ki bugüne yetiştirmeye çalışıyorsunuz. Flash bilgim az, zaten kurulu da değil şu an. Yalnız biraz araştırma yaptım. Sizin olayınız sanırım ShockwaveFlash nesnesinin OnFSCommand olayında çözülecek. Bir örnek bulabilirsem gönderecem
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
Bu başlığı görünce hatırladım. Kusura bakmayın unutmuşum.
Şimdi aşşağıda ki kod bu işi yaptı.
fakat Delphi içerisinden bunun algılanması için flash tarafından kodlarda bir çalışma yapılmıştı. Bu sonuç internette pek yok, buradan faydalanabilirsiniz.
Tekrar hatırlatmak gerekir ise işin çoğu flash tarafında ...
Kolay gelsin...
Şimdi aşşağıda ki kod bu işi yaptı.
Kod: Tümünü seç
var
rStream: TResourceStream;
fStream: TFileStream;
fname: string;
begin
fname:=ExtractFilePath(Application.ExeName)+'\deneme.swf';
rStream := TResourceStream.Create(hInstance, 'deneme', RT_RCDATA);
try
fStream := TFileStream.Create(fname, fmCreate);
try
fStream.CopyFrom(rStream, 0);
finally
fStream.Free;
end;
finally
rStream.Free;
end;
ShockwaveFlash1.Stop;
ShockwaveFlash1.Movie:=fname;
ShockwaveFlash1.play;
end;
Tekrar hatırlatmak gerekir ise işin çoğu flash tarafında ...

Kolay gelsin...
- Alternatif olarak bunu OCX ile değil de TWebBrowser ile bu SWF dosyası navigate edilip, tıklanınca ulaşılmaya çalışılan linki engelleyerek erişilmek istenen linke göre fonksiyon işlese nasıl olurdu ? 
- Denedim ve oldu...
Şöyle ki, bir TWebBrowser ile olmuyor. iki tane oluşturup ikinciyi gizlemek gerekiyor. 1nci TWebBrowser'dan bir il üzerine tıklandığında açılacak sayfa 2nci TWebBrowser'a yönlendirilierek, ikincinin befaorenavigate'inden URL çekilmek sureti ile hangi il üzerine basıldıysa o ilin linki alınabiliyor...
- Balık zamanı

- Denedim ve oldu...

- Balık zamanı

Merhaba ,
@husonet in konuyla ilgili çok açıklayıcı bir mesajınını geçtiği topic
viewtopic.php?t=4638&highlight=flash
kolay gelsin.
@husonet in konuyla ilgili çok açıklayıcı bir mesajınını geçtiği topic
viewtopic.php?t=4638&highlight=flash
kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
@mrmcop bu WebBrowser ile internet sayfasını mı açtırıyor. Benim kastım imzamdaki programda delphi formu açtırabilmekti. Fakat bu iş için flash dan delphiye gönderip yapılıyor. Ondan sonra fscommand ile komutu yakalayıp sorgulama ile de formları açtırıyorum. Mesela http://www.enderarslanturk.com.tr/progr ... evam&id=48 bu linkte bir açıklamam var .
vkamadan, evet orada da anlatım var. Fakat swf kullanırken swfden de bilginin gelmesi önemli.
vkamadan, evet orada da anlatım var. Fakat swf kullanırken swfden de bilginin gelmesi önemli.
- Eğer Flash SWF dosyasını kendin üretiyorsan @vkamadan'ın önerisi olumlu geldi.
- Eğer aksi ise bahsettiğim metodda; TWebBrowser ile SWF dosyasının kendisini navigate ediyorsun. Sonucu da başka bir TWebBrowser'a yönlendirip, açmak istediği sayfaya ulaşmasını engelliyorsun. Engellediğin sayfayı, ikinci TWebBrowser'in URL parametresinden alıp değerlendiricen. Hepsi bu kadar.
- İncelemen için bir örnek hazırlayıp derledim. EXE halini veriyorum.
Çünkü önce SWF'den denemeni tercih ederim...
http://divxturk.divxtr.org/files/gecici/har.zip
- Eğer aksi ise bahsettiğim metodda; TWebBrowser ile SWF dosyasının kendisini navigate ediyorsun. Sonucu da başka bir TWebBrowser'a yönlendirip, açmak istediği sayfaya ulaşmasını engelliyorsun. Engellediğin sayfayı, ikinci TWebBrowser'in URL parametresinden alıp değerlendiricen. Hepsi bu kadar.
- İncelemen için bir örnek hazırlayıp derledim. EXE halini veriyorum.

http://divxturk.divxtr.org/files/gecici/har.zip
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
http://www.inndir.com/inndir.php?id=31658 hocam bu linki tıklayıp programı indirebilirseniz içerisindeki haritadan sanırım durum anlaşılacak.
Aslında bu başlığı ilerletmeye gerek yok sonuçta bu olay yapılmış tamamlanmıştır.
Yani ben tekrar toplucak olursam exenin içine gömülen harita.swf uzantılı dosya da flash tarafından delphiye referans kodu gönderilmekte...
Ve delphi tarafından bu kodların ne olduğuna göre misal veriyorum adana ise fscommand olayında buna göre kontrol edip gerekli formu açtırıyorum. Yukarıdaki linkte ki program herşeyi açıklıyor.
Teşekkür ederim yardımınızdan dolayı...
Aslında bu başlığı ilerletmeye gerek yok sonuçta bu olay yapılmış tamamlanmıştır.
Yani ben tekrar toplucak olursam exenin içine gömülen harita.swf uzantılı dosya da flash tarafından delphiye referans kodu gönderilmekte...
Ve delphi tarafından bu kodların ne olduğuna göre misal veriyorum adana ise fscommand olayında buna göre kontrol edip gerekli formu açtırıyorum. Yukarıdaki linkte ki program herşeyi açıklıyor.

Teşekkür ederim yardımınızdan dolayı...

Selam...
Çözüldüğüne sevindim...
Ben de bahsettiğim metodu açayım...
http://divxturk.divxtr.org/files/gecici/harita.zip linkindeki de aşağıdaki şekilde çalışıyor...
Çözüldüğüne sevindim...
Ben de bahsettiğim metodu açayım...

http://divxturk.divxtr.org/files/gecici/harita.zip linkindeki de aşağıdaki şekilde çalışıyor...
Kod: Tümünü seç
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate(ExtractFilePath(ParamStr(0))+'harita.swf');
WebBrowser2.Navigate(ExtractFilePath(ParamStr(0))+'harita.swf');
end;
Kod: Tümünü seç
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
ppDisp := WebBrowser2.OleObject;
end;
Kod: Tümünü seç
procedure TForm1.WebBrowser2BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
Memo1.Lines.Add(URL);
end;
Yanlış söyledin microchip kardeşMicroChip yazdı:form açtıramazsın ama exe çalıştırabilirsin.
aslında uğraşırsan ondan ona, ondan ona (cemyılmaz gora geldi aklımabahçıvan şöför) parametre ile olabilir.
atıyorum dış exe yi çalıştırdın onun gönderdiği sinyale göre program da formu create etti
saygılar...
flash biliyorsanız anlatayım. Flash içinde bir nerneyi Button veya MovieClip onarak tanımayın daha sonra kod penceresinde
Kod: Tümünü seç
on(click) {
fscommand("komut","parametre");
}
Kod: Tümünü seç
if (command="flas_icinden_gonderilen_komut") then
begin
form.show;
end;