Jump to content

blackman12

Emekli
  • Posts

    5349
  • Joined

  • Last visited

Posts posted by blackman12

  1. İşin açığı bu fonksiyon varsayılan olarak kapalıdır. ancak 1 değeri kullanılarak aktif edilebilir yani çok fazla bir opsiyonu yok.

    Burada sorulmak istenen sanırım kapalı ya da açık olması neyi değiştirir.

    Bu fonksiyon aktif edildiğinde örneğin bir for döngüsünde $i değişkenini for esnasında tanımlayamazsınız, kodun başında bu tanımın verilmesi gerekmektedir.

    Yazım açısından genelde kapalı olması işi daha rahatlatsa da çalışma hızı olarak biraz daha iyileştiriyor programınızı.

    Öte yandan yanlışlık ile benzer değişkenlerin birbirine girmesini de engelliyor.

     

  2. İki metod arasında fark yok yahu :) aynı şeyi yazıp göndermişsin adama.

    Birincisi normal bir kurulum dosyasında bu yöntemin işe yaraması gerekir. Ama özelleştirilmiş bir kurulumda her zaman özelleştirilmiş kurulumu hazırlayan kişinin tecrübesi kadar çalışma oranı vardır.

    örneğin, %systemdir% yerine C:\Windows\blabla diye belirttiyse bu yöntemler işe yaramayacaktır.

  3. girilendeger = Input.GetText("Input1");
    ogren = INIFile.GetValue("AutoPlay\\Docs\\settings.ini", "Preferences", girilendeger);
    orjinalegetir = String.Lower(ogren);
    aynimi = String.Compare(ogren, orjinalegetir);
    if ogren == "1" && aynimi == "0" then
    Dialog.Message("Doğru","Doğru");
    else
    Dialog.Message("Yanlış","Yanlış");
    end

    anladığım kadarıyla girilen değer değişken olabilir ayara göre fakat yine de sen ini dosyana bir standart koymalısın. örneğin ben tüm ayar isimlerinin küçük harfle olacağına dair bir kural koydum kafamdan.

    Sonra girilen değeri aldım ve harflerini küçültüp yeni bir değere atadım, sonra girilen değerle dönüştürülen değer arasında fark var mı kontrol ettim. eğer yoksa adam gerçekten "deneme" girmiş demektir. varsa "Deneme" gibi birşey girmiştir.

    Kodları site içerisinde yazdım ve ams kodlamasına bakmayalı yıllar oldu syntax de hata olabilir o kısımları sen düzeltirsin ben sadece mantığı anlatmaya çalıştım.

     

    Kolay gelsin.

    • Like 1
  4. _Sayac(0,10)
    
    Func _Sayac($CountDown = 0,$Sayi = 15)
    	Local $Son = $Sayi, $Yon = "Yönü Değiştir: Yukarı", $Varsayilan = $Sayi
    	if not $CountDown Then $Yon = "Yönü Değiştir: Aşağı"
    	if not $CountDown Then $Son = 0
    	Local $TIMER_1[6] = [TimerInit(), 0, 0, $Son,True,$Varsayilan]
    
    	Local $Form1 = GUICreate("Sayaç Örneği by BlueLife", 300, 170, -1, -1, 0x00080000)
    	Local $ChangeCounter = GUICtrlCreateButton($Yon,5,20,200,25,0x0001)
    	Local $Input = GUICtrlCreateInput("",215,18,60,Default,0x2000)
    	GUICtrlSetLimit(-1,2)
    	Local $Button1 = GUICtrlCreateButton($TIMER_1[3] & " Saniye", 5, 110, 285, 25, 0x0001)
    
    	GUISetState(@SW_SHOW,$Form1)
    	While 1
    		$nMsg = GUIGetMsg() ;Guiden gelen mesajları algılamak için gerekli komut
    		Switch $nMsg
    			Case -3
    				ExitLoop ;Döngüden çıkma komutu
    			Case $Button1
    				if $TIMER_1[4] Then
    					$TIMER_1[4] = False
    					GUICtrlSetData($Button1,"Durduruldu - ["&$TIMER_1[3]&"]")
    				Else
    					$TIMER_1[4] = True
    				EndIf
    			Case $ChangeCounter
    				if $Yon = "Yönü Değiştir: Yukarı" Then
    					$Yon = "Yönü Değiştir: Aşağı"
    					$CountDown = 0
    					if Number(GUICtrlRead($Input)) > 0 Then
    						$Sayi = Number(GUICtrlRead($Input))
    					Else
    						$Sayi = $TIMER_1[5]
    					EndIf
    				Else
    					$Yon = "Yönü Değiştir: Yukarı"
    					$CountDown = 1
    					$Sayi = 0
    				EndIf
    				GUICtrlSetData($ChangeCounter,$Yon)
    		EndSwitch
    		if $TIMER_1[4] Then
    			If $CountDown And $TIMER_1[3] <= 0 Then ExitLoop ;Süre bitmişse döngüden çıkış yapıyoruz
    			if not $CountDown And $TIMER_1[3] >= $Sayi Then ExitLoop
    			$TIMER_1[1] = Round(TimerDiff($TIMER_1[0]) / 1000)
    			If $TIMER_1[1] <> $TIMER_1[2] Then
    				$TIMER_1[2] = $TIMER_1[1]
    				if $CountDown Then $TIMER_1[3] -= 1;Bir azaltıyoruz
    				if not $CountDown Then $TIMER_1[3] += 1;Bir azaltıyoruz
    				GUICtrlSetData($Button1, $TIMER_1[3] & " Saniye") ;Bu komut ile butondaki yazıyı değiştiriyoruz
    			EndIf
    		EndIf
    	WEnd
    	GUIDelete($Form1)
    EndFunc

    Yıllar önce AutoIT'te yazdığım bir sayaç kodu basit bir değişiklikle istediğini yapabilirsin.

     

    _Sayac(0,10) => Buradan süreyi belirleyebilirsin _Sayac(0,60*20) dersen mesela 20 dakika olur.

    Bu satırın hemen altına da  Beep(500, 1000) gibi bir kod eklerseniz ses elde edersiniz.

  5. Yaşlılıktan :)

     

    			$katilimcisayisi = Number(_GUICtrlListView_GetItemCount($list))
    			$secilecekkisisayisi = Number(GUICtrlRead($input2))
    			if $secilecekkisisayisi > $katilimcisayisi Then
    				MsgBox(0,"Hata","Seçilecek kişi sayısı katılımcıdan fazla olmamalı.")
    			Else
    				Local $secilenler[$secilecekkisisayisi+1]
    				$secilenler[0] = ""
    				Local $secilenlerisim[$secilecekkisisayisi]
    				for $i = 1 to $secilecekkisisayisi
    					Do
    						$simdisecilen = Random(1,$katilimcisayisi,1)
    					Until _ArraySearch($secilenler,$simdisecilen) = -1
    					$secilenler[$i] = $simdisecilen
    					$secilenlerisim[$i-1] = _GUICtrlListView_GetItemText($list,$simdisecilen-1,1)
    				Next
    				GUICtrlSetData($List2,_ArrayToString($secilenlerisim))
    			endif

    Case $Button2 yi bu kod ile değiştir.

    • Like 1
×
×
  • Create New...