Delphide SWF kullanırken form açtırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Delphide SWF kullanırken form açtırma

Mesaj gönderen ender_arslanturk »

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....
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

form açtıramazsın ama exe çalıştırabilirsin.
aslında uğraşırsan ondan ona, ondan ona (cemyılmaz gora geldi aklıma :D bahçı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 :D


saygılar...
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

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.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Teşekkürler...

Aslında benimde aklıma gelen bunlar idi... Evet doğru... Dışarıya gönderilen bir bilgi ile bunu Delphi ile takip edip değer kontrolünde formlar açılabilir... :D Pekii nasıl... :D Ben bunun üzerine uğraşmaya devam edim... Bu konuda sizde katkıda bulunabilirseniz memnun olurum...
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

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?
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

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?
Evet... :D

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ü... :D

Buradaki illere kliklendiğinde dışarıda swf nin bitişiğinde sehir.txt dosyasına il plaka kodunu atsa gerisini ben hallederim... :D diye düşünüyorum... :) Bu ara flash bilen var ise yardımını isterim....

İpucu verim... http://www.flashdersleri.com/html_dosya ... malar.html bu adreste bazı txt örneklemeleri var...

Kolay gelsin...
Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 01:14

Mesaj gönderen mucar »

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?"
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Bu başlığı görünce hatırladım. Kusura bakmayın unutmuşum.

Ş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;
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 ... :shock:

Kolay gelsin...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- 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 ? :idea:

- Denedim ve oldu... :o Şö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ı :lol:
Resim
Resim ....Resim
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

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.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

@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.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- 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. :lol: Çünkü önce SWF'den denemeni tercih ederim...

http://divxturk.divxtr.org/files/gecici/har.zip
Resim
Resim ....Resim
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

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. :wink:

Teşekkür ederim yardımınızdan dolayı... :D
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam...

Çözüldüğüne sevindim...

Ben de bahsettiğim metodu açayım... :lol:
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;
Resim
Resim ....Resim
mcihad
Üye
Mesajlar: 283
Kayıt: 18 Tem 2003 03:28
Konum: Sivas

Mesaj gönderen mcihad »

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ıma :D bahçı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 :D


saygılar...
Yanlış söyledin microchip kardeş
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");
}
delphide Shockwave flash activeX nesnesini ekledikten sonra bu nesnenin onfscommand diye bir eventi olması lazımdır ordanda

Kod: Tümünü seç

if (command="flas_icinden_gonderilen_komut") then
begin
  form.show;
end;
şeklinde yapabilirsin. bu makinda flash ve delphi olmadığı için yanlışlıklar olabilir ama isterseniz örnek bir programcık yazıp gönderebilirim arkadaşlar
Cevapla