Jump to content

Checkbox Problemi


OzgrGvnc

Recommended Posts

İyi çalışmalar.

1 - Belki biraz basit olacak ama yaptığım AIO da birden çok virüs programı var. Birinin checkboxının işaretlenmesi durumunda diğer virüs programlarının checkboxlarının pasif olmasını istiyorum, bunu yapmanın yolunu bulamadım :)

2 - İki adet progress koymak istiyorum. Birisi programların genel ilerleyişini, diğeri her programın o anki ilerleyişini gösterebilirmi ?

3 - Kurulum esnasında kurulumu durduracak bir buton koymam mümkünmü, Mümkünse o an devam eden setup bittiğinde durdurması mümkünmü acaba?

Daha önce basit olarak Erc Service CD adında bir checkbox çalışmam olmuştu ancak 2008 den beri elimi sürmeyince hamlaşmışım :)

Daha iyi birşeyler yapmaya uğraşıyorum. Yardımcı olursanız sevinirim.

Link to comment
Share on other sites

İyi çalışmalar.

1 - Belki biraz basit olacak ama yaptığım AIO da birden çok virüs programı var. Birinin checkboxının işaretlenmesi durumunda diğer virüs programlarının checkboxlarının pasif olmasını istiyorum, bunu yapmanın yolunu bulamadım smile.gif

2 - İki adet progress koymak istiyorum. Birisi programların genel ilerleyişini, diğeri her programın o anki ilerleyişini gösterebilirmi ?

3 - Kurulum esnasında kurulumu durduracak bir buton koymam mümkünmü, Mümkünse o an devam eden setup bittiğinde durdurması mümkünmü acaba?

Daha önce basit olarak Erc Service CD adında bir checkbox çalışmam olmuştu ancak 2008 den beri elimi sürmeyince hamlaşmışım smile.gif

Daha iyi birşeyler yapmaya uğraşıyorum. Yardımcı olursanız sevinirim.

- Checkbox lar için şunu kullanabilirsin;

Global Functions kodu:

nSayi = 0;

function secmeIptal()
     if nSayi == 0 then
     ilk = 1;
     son = 20;
     adim = 1;
         for count = ilk, son, adim do
         CheckBox.SetEnabled("CheckBox" .. count, false)
         end
     nSayi = 1;
     else
     ilk = 1;
     son = 20;
     adim = 1;
         for count = ilk, son, adim do
         CheckBox.SetEnabled("CheckBox" .. count, true)
         end
     nSayi = 0;
end    
end[/CODE]

Daha sonra her Checkbox'in On Click evresine şu kodları yaz:

[CODE]secmeIptal()
CheckBox.SetEnabled(this, true)[/CODE]

- program kurulumu için; anlık programın ilerleyişini göstermen mümkün değil diye biliyorum. Çünkü her program boyut ve kurulum süresi olarak değişkendir. Yani elinde sabit sayı olacakki progress'e başlangıcını ve sonunu belirleyebilesin. Ama seçilen programlar için ilerleyiş istersen BURADAKİ talhanın anlatımını kullanabilirsin. Tekrar anlatmaya gerek yok. HTTP.Download yada Zip.Extract gibi Callback function destekleyen bir komut olsa iptal buttonu koyulabilir ama File.Run için zannetmiyorum.

Not: Global Functions kodu 20 checkbox içindir. Projende checkbox sayısı kaç ise son = 20; değerini ona göre değiştir. Yani 50 tane varsa son = 50; olacak.

Link to comment
Share on other sites

KintaRo ilgin ve hızlı cevabın için çok teşekkürler.

Bir sorum daha olacak. Autoplay içindeki bir sayfaya Combobox koyup buradan seçilen içeriğe göre altta PDF dosyası açtırmak istersem neler yapmam gerekiyor.

Mesela üstte model seçilip altta onunla ilgili bilgilerin yada kullanım klavuzunun olduğu pdf dosyasını açtırmak istiyorum.

Link to comment
Share on other sites

Yalnız bunun için AMS 8 versiyonuna ihtiyacınız var. Çünkü AMS 7.5'de PDF desteği yok ve Pluginle yapmak gerekiyor. o yüzden AMS 8'de yaptım. Projeye bir combobox ve bir pdf nesnesi koyun.

Page On Show kodu:

nmbSel = ComboBox.GetSelected("ComboBox1")
PDF.LoadFile("PDF1", "AutoPlay\\Docs\\" .. nmbSel .. ".pdf")[/CODE]

Combobox On Select kodu:

[CODE]nmbSel = ComboBox.GetSelected("ComboBox1")
PDF.LoadFile("PDF1", "AutoPlay\\Docs\\" .. nmbSel .. ".pdf")[/CODE]

PDF ler docs klasorunde olsun ve isimleri 1.pdf, 2.pdf, 3.pdf vs vs şeklinde gitsin.

Combobox'un 1. sıradaki yazan seçilince 1.pdf yi açar, 2. sıradaki yazan seçilince 2.pdf yi açar. O şekilde devam eder. Sen sadece Combobox'a metinleri ekleyeceksin ve docs klasorune pdf dosyalarını atacaksın. Bu kısa kod geri kalanı hallediyor ;)

Örnek Proje (AMS 8.0.1.0):

[CODE]http://rapidshare.com/files/396595564/pdf_combo.rar[/CODE]

Link to comment
Share on other sites

- Checkbox lar için şunu kullanabilirsin;

Global Functions kodu:

nSayi = 0;

function secmeIptal()
     if nSayi == 0 then
     ilk = 1;
     son = 20;
     adim = 1;
         for count = ilk, son, adim do
         CheckBox.SetEnabled("CheckBox" .. count, false)
         end
     nSayi = 1;
     else
     ilk = 1;
     son = 20;
     adim = 1;
         for count = ilk, son, adim do
         CheckBox.SetEnabled("CheckBox" .. count, true)
         end
     nSayi = 0;
end    
end[/CODE]

Daha sonra her Checkbox'in On Click evresine şu kodları yaz:

[CODE]secmeIptal()
CheckBox.SetEnabled(this, true)[/CODE]

Tekrar merhaba KintaRo

Anlattığın çözümü uyguladım. Çalışıyor ancak sanırım bir problemim var :)

Benim yaptığım AIO nun ana ekranında 120 Checkbox var. On click evresine kodu eklediğim checkboxlardan birini tıkladığımda tüm checkboxlar değilde belirlediğim birkaç checkboxın pasif olmasını istiyorum.

Alfabetik sıraya göre dizdiğim değişik kategorilerdeki programlardan örneğin Avast antivirüs işaretlenince Nod32 - KAV - Norton gibi gibi diğer virüs programlarının pasif olmasını istiyorum.

Aynı durum Ofis yazılımları içinde olacak mesela. Office 2003 işaretlenince OpenOffice ve Office 2007 devre dışı olacak.

Sanırım Global Functions'da checkboxları tek tek tanımlamak gerekecek. Ancak çıkamadım işin içinden.

Bunun gibi aynı amaca hizmet eden birçok programın aynı anda bilinçsizce kurulmasını önüne geçmeye çalışıyorum.

* Birde PDF olayında sorun yaşamadım ama HTML dosyası eklemeye kalksam ne gibi değişiklik yapmam gerekiyor acaba.

PDF düzeni html kadar güzel olmuyor.

Yardımlarını bekliyorum...

Link to comment
Share on other sites

sadece bazi checkboxlarin pasif olmasini istiyorsan su sekilde yapmalisin:

Global Functions kodu:

nSayi = 0;[/CODE]

Checkbox On Click kodu:

[CODE]if nSayi == 0 then
-- pasif olmasini istedigin checkboxları buraya yaz ---
CheckBox.SetEnabled("CheckBox2", false)
CheckBox.SetEnabled("CheckBox4", false)
-------------------------------------------------------------
nSayi = 1;
else
-- yukarıya yazdigin checkboxlarin sonunu true yaparak buraya yaz  ---
CheckBox.SetEnabled("CheckBox2", true)
CheckBox.SetEnabled("CheckBox4", true)
-- -------------------------------------------------------------------------------
nSayi = 0;
end[/CODE]

PDF yeni html kullanacaksan ayni sekilde 1.html 2.html seklinde dosyaları Docs klasorune koy ve pdf nesnesi yerine sayfaya bir Web nesnesi ekle. Daha sonra Combobox ve Page On Show kodlarını şu kodlarla değiştir:

[CODE]nmbSel = ComboBox.GetSelected("ComboBox1")
Web.LoadURL("Web1", "AutoPlay\\Docs\\" .. nmbSel .. ".html")[/CODE]

Link to comment
Share on other sites

Hemoroid; yalnız yeni aklıma gelen bir nokta var. Eğer Checkbox seçili iken pasif hale getirirsen, o checkboxı kontrol ettiğinde halen seçili olarak görünecektir. o yüzden bir Checkboxı;

CheckBox.SetEnabled("CheckBox1", false)[/CODE]

ile pasif hale getirince hemen ardından;

[CODE]CheckBox.SetChecked("CheckBox1", false)[/CODE]

komutu ilede seçimini kaldırmalısın. Yani Checkbox'ı aktif/pasif yapman seçili olup olmamasını etkilemiyor.

Link to comment
Share on other sites

Hemoroid; yalnız yeni aklıma gelen bir nokta var. Eğer Checkbox seçili iken pasif hale getirirsen, o checkboxı kontrol ettiğinde halen seçili olarak görünecektir. o yüzden bir Checkboxı;

CheckBox.SetEnabled("CheckBox1", false)[/CODE]

ile pasif hale getirince hemen ardından;

[CODE]CheckBox.SetChecked("CheckBox1", false)[/CODE]

komutu ilede seçimini kaldırmalısın. Yani Checkbox'ı aktif/pasif yapman seçili olup olmamasını etkilemiyor.

Tamda o konuyu dile getirecekken mesajını gördum :good:

Ama o gruba yönelik tüm çheckboxlara aynı işlemi uyguladığım için birisini işaretleyince diğerlerini işaretleme şansı olomayacak ;)

Teşekkürler.

Link to comment
Share on other sites

Merhaba KintaRo

CheckBoxlara açıklama ekliyordum ve farkettim ki birinden diğerine geçerken açıklama metni görünüp hemen kayboluyor.

Sanırım sebebi bir önceki checkboxın boş metin içeren On Lave komutunun devreye girmesi.

On Enter komutunu ms cinsinden bir miktar geciktirmek çözüm olabilir diye düşündüm. Bunun için uygun bir çözüm varmı acaba ?

Biraz aşırı kapsamlı içeriği olan bir AIO peşindeyim :) Teşekkürlerimi sunmayı unutmayacağım :)

Link to comment
Share on other sites

Şöyle bir senaryo yapabiliriz;

Global Function Kodu:

nSayi = 0; -- sabit sayımız

-- paragraf açıklaması fonksiyonu
function aciklama()
nSayi = nSayi+1 -- sabit sayıyı saniyede 1 arttır
Paragraph.SetText("Paragraph1", sMetin) -- paragraf metnini ayarla
     if nSayi == 2 then -- paragrafın mousu checkboxın üzerinden çekince kaç saniye daha ekranda kalacağını ayarlar
     Paragraph.SetText("Paragraph1", "") -- paragrafı boşalt
     nSayi = 0; -- sabit sayıyı sıfırla
     Page.StopTimer() -- zamanlayıcı durdur
     end
end[/CODE]

Checkbox On Enter kodu:

[CODE]Paragraph.SetText("Paragraph1", "Paragraf açıklaması") -- görünecek açıklama[/CODE]

Checkbox On Leave kodu:

[CODE]sMetin = "Paragraf açıklaması" -- görünecek açıklamayı burayada girin
Page.StartTimer(1000)-- zamanlayıcıyı çalıştır[/CODE]

Page On Timer Kodu:

[CODE]aciklama()[/CODE]

Bu şekilde mouse'u checkboxın üzerinden çekince 2 saniye daha açıklama görünür kalır. Yalnız tüm checkboxlarda bu kod varsa diğer checkboxın üstüne mouse geldiğinde onun açıklaması görünür. mouse'u checkbox olmayan bir alana getirdiğinizde oda 2 saniye daha görünür kalır.

Link to comment
Share on other sites

KintaRo

Bu denli detaylı bir açıklama yerine al şunu sonuna yaz falan diyeceksin sanmıştım :)

Ellerine sağlık. Denedim ve tıkır tıkır çalışıyor.

Düzeltme.

Şimdi farkettim mouse checkboxın üzerindeyken bile yazı 2 sn sonra kayboluyor.

Açıklamayaı okumak için yeterli süre değil ama ben geçici çözüm olarak 2 sn süresini uzattım.

Düzeltme 2

Oda fayda etmedi :)

Link to comment
Share on other sites

Halloldu hallolmasına ama şimdi bir hatadan bahsedeyim hep beraber bana küfredin :D

3 adet CD Burning yazılımı ayrı olarak

6 adet Antivirüs yazılımı ayrı olarak

3 adet Ofis yazılımını ayrı olarak gruplandırdım

Mesela sadece bir gruba dahil programlardan seçersem sorun yok.

Ama Bir antivirüs işaretleyip tüm antivirüsleri pasif yaptığımda bu sefer office yada cd yazım programlarının seçimi sanki tersine dönüyor.

İşaretlemek için ilk tıklamam etki etmiyor, ikinci tıklamayı yapıp seçimi kaldırınca pasif yapıyor. Sonra işaretleyince aktif, işareti kaldırınca gene pasif :)

Fazlamı yüklendim programa acaba :)

Açıklamak gerekirse 1 numaradaki programı ilk tıkladığımda 2 numaradakileri pasif yapmıyor. İkinci tıklamada yapıyor.

Biraz kalabalık ve kapsamlı birşey yapıyorum. Çok soru sorduysam kusura bakma. Güzel birşey olsun istiyorum da :)

Link to comment
Share on other sites

Estagfurullah, istediğiniz kadar soru sorabilirsiniz, yeterki bazı arkadaşlar gibi (sözüm meclisten dışarı) projeyi başkasına yaptırmaya çalışmayın :)

Şimdi programın saçmalaması normal :-) Çünkü hem checkboxlar için hemde paragraf açıklaması için nSayi değerini kullandık ve bunlar çakışıyor zannımca. Şu şekilde yapalım; Paragraf için kullandığın değerler olduğu gibi kalsin. checkbox için kullandığımız şöyle olacak:

Global Functions kodu:

n1 = 0; 
n2 = 0;
n3 = 0;
n4 = 0;
-- projede kaç grup varsa her biri için yukarıya bir nX değeri atayalım[/CODE]

Checkbox On Click kodu:

[CODE] -- bu kısım 1. grup için olacak. 2. grup için n1 kısımlarını n2 şeklinde, 3. grup için n1 kısımlarını n3 şeklinde değiştirip öyle öyle gideceksin.
if n1 == 0 then
-- pasif olmasini istedigin checkboxları buraya yaz ---
CheckBox.SetEnabled("CheckBox2", false)
CheckBox.SetEnabled("CheckBox4", false)
-------------------------------------------------------------
n1 = 1;
else
-- yukarıya yazdigin checkboxlarin sonunu true yaparak buraya yaz  ---
CheckBox.SetEnabled("CheckBox2", true)
CheckBox.SetEnabled("CheckBox4", true)
-- -------------------------------------------------------------------------------
n1 = 0;
end[/CODE]

Link to comment
Share on other sites

Çok sağol hemen deniyorum.

Aslında ihtiyaç için yaptığım 2 AIO daha vardı. ERC Service CD diye geçiyordu hatta 2. AIO.

İlk defa bukadar kapsamlısıyla uğraşıyorum. Bitince hakkında bölümüne tüm alıntı yaptığım arkadaşların adları olacak.

Bende grafikerim ve emek hırsızlığından çok çektim zamanında. Amaç paylaşıp ortalığı şenlendirmek ;)

Hafta başında AIO bölümünde paylaşırım. Gerçi kim indirecek 4.6 GB AIO :)

Link to comment
Share on other sites

Evet her zamanki dertler işte. Ayrıca hakkında bölümü kendi bileceğin iş ben şahsen karşılık beklemeden yardım ediyorum. orası size kalmış :) boyut olayına gelince, indirmesine bir çok kişi indirri ama işte içindeki programların güncelliğini yitirince ne olacağı konusu var...

Edit: Böyle durumlar için güncelleme sistemi gerekiyor ama buda maliyetli ve zahmetli bir iş. OtoKur v3.2 otomatik güncelleme sistemli hali hazır fakat sunucu masrafları yüzünden yayınlayamıyorum. 5000'e yakın OtoKur kullanıcısı her gün güncelleme indirecek ve bunun için sınırsız hosting gerekiyor. E bu işten bmaddi bir kazancım olmadığı için şu an için alamıyorum. Bu yüzden beklemedeyim.

Link to comment
Share on other sites

Aslında sınırsız hosting metelixiz de gayet uygun(du) 99 liraydı domainle birlikte sanırım kampanya bitti ama max 150 falandır yıllık.

Bende henüz alamadım ama ay sonuna yetişirse kişisel sitemi açmayı düşünüyorum. Alınca haberleşelim update server gibi bir bölüm oluşturalım. Faydalı olur hem.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...