IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   mIRC Scripting Sorunları (https://www.ircforumlari.net/mirc-scripting-sorunlari/)
-   -   Çözüldü Ekranda gorunen line sayısı (https://www.ircforumlari.net/mirc-scripting-sorunlari/1015898-ekranda-gorunen-line-sayisi.html)

manikdepresif 30 Temmuz 2023 12:44

Ekranda gorunen line sayısı
 
mirc ekraninda gorunen satir(line) sayisini nasil hesaplayabilirim ?

Toprak 01 Ağustos 2023 16:30

Cevap: Ekranda gorunen line sayısı
 
Alıntı:

manikdepresif Nickli Üyeden Alıntı (Mesaj 1042819633)
mirc ekraninda gorunen satir(line) sayisini nasil hesaplayabilirim ?


Biraz daha açar mısın, istediğin tam olarak nedir.

manikdepresif 01 Ağustos 2023 21:16

Cevap: Ekranda gorunen line sayısı
 
aciyorum.
-
/window -l @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re ile actigimiz bir liste penceresinde arama yapmak icin bir kelimeyi aramak icin,
normal pencerelerde kullanilan CTRL + F ya da /findtext -n kelime calismadigini farkettim.
bunun icin bir tane arama dialogu yapip listbox penceresinde arama yapmaya karar verdim.
-
CTRL + F inceledigimde, YUKARI/ASAGI butonlari nereden baslayacakti ? Hangi satiri baz alacakti diye soru geldi aklima.
-
Bu sorunun cevabini o an pencerede gorunen en son aktif line olarak belirledim.
-
-
Ne demek oluyor bu en son aktif line ?
-
Scrollbar kaydirma cubugu olan bir ekran dusun, scrollbar cubugunu her kaydirdiginda, ekran degisiyor ve dogal olarak da ekranda gorunen en son line da degisiyor.
-
Bunu bulmaya denedim, birkac yere sordum kendim falan dusundum sonuc alamadim, dusunemediklerini soylediler sadece.
-
Bari dedim en son aktif line bulamiyorsam, ekrana sigacak line sayisini bulayim..
-
3 gun ugrastim onu da bulamadim.
-
Denedigim yontemlerden biri ekran $window(@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re).dh / $window(@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re).fontsize , fakat tutmuyor.
-

Vision 02 Ağustos 2023 12:18

Cevap: Ekranda gorunen line sayısı
 
.window -l .parametresinde pencere kullanmıyorum fakat arama yapmak için kullandığım bir dialog var, işine yara belki.


Kod:

;- Aktif pencerede kelime aramanıza yardımcı olur.
;- /arabul komutuyla açılır.

alias arabul { /dialog -m SearchInActive SearchInActive }

; Add the selected ( $1 ) item to the front of the list if it isn't
; already in there then, if we have reached 7 items in the list delete
; the 7th to keep the list to only 6 items

Alias -l UpdateSearchList {
  var %localitem = $1
  var %NewTexts = %SearchTexts
  if (%SearchTexts == $null) { %NewTexts = %localitem }
  else {
    if ($istok(%NewTexts,%localitem,44)) { %NewTexts = %SearchTexts }
    else { %NewTexts = $instok(%NewTexts,%localitem, 1, 44) }
  }
  if ($gettok(%NewTexts,0,44) == 7) { %NewTexts = $deltok(%NewTexts,-1,44) }
  Return %NewTexts
}

; -------------------------------------------------

dialog SearchInActive {
  title "Find Text"
  size -1 -1 168 62
  option dbu
  text "Find Text:", 10, 12 15 28 10
  combo 20, 42 14 80 10, drop, edit
  button "Up" 30, 128 14 38 12
  button "Down" 40, 128 30 38 12
  button "Cancel" 50, 128 46 38 12, cancel
}

; Up button clicked
on *:dialog:SearchInActive:sclick:30: {
  var %SearchItem = $did($dname, 20, 0).text
  %SearchTexts = $UpdateSearchList(%SearchItem)
  /findtext %SearchItem
}

; Down button clicked
on *:dialog:SearchInActive:sclick:40: {
  var %SearchItem = $did($dname, 20, 0).text
  %SearchTexts = $UpdateSearchList(%SearchItem)
  /findtext -n %SearchItem
}

; SearchInActive Dialogue initialisation
on *:dialog:SearchInActive:init:0:{
  didtok $dname 20 44 %SearchTexts
  ; did -c $dname 20 1
}


manikdepresif 02 Ağustos 2023 13:21

Cevap: Ekranda gorunen line sayısı
 
bana kod lazim degil, fakat dedigin gibi bir baskasinin isine yarayabilir tesekkuırler, verdigin kod hazir kodlar icersine konulabilir.
-
Verdigin kod ihtiyaci karsilamadi.
-
Ben ihtiyacimin uzerinde dusunmeye devam edecegim. En iyisi zamana birakmak.
-
Pencere ekraninda en son line bulmada kullandigim 2. ve 3. yontem.
-
2.
buffer(tampon) kullanmak fakat bufferi kullanmayi bilmiyorum sanirim. window -j30 @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re
-
ekrana sigacak 30 kapasiteli bir buffer yapip, o ekrana yazdirip, 1. line setleyip, her seferinde o line'i kontrol etmek ve o line yok ise sonuca ulasmak gibi.
-
3.
Pencerede scrollbar kaydirma cubugunun olustugu zamanı yakalamak.scrollbar cubugu olustugu zaman ekranda taşma oluyor. fakat scrollbar cubugunun o pencerede olusup olusmadigini anlamak icin bir identifier ya da window parametre yok sanirim .

Toprak 02 Ağustos 2023 13:32

Cevap: Ekranda gorunen line sayısı
 
Alıntı:

manikdepresif Nickli Üyeden Alıntı (Mesaj 1042820345)
bana kod lazim degil, fakat dedigin gibi bir baskasinin isine yarayabilir tesekkuırler, verdigin kod hazir kodlar icersine konulabilir.
-
Verdigin kod ihtiyaci karsilamadi.
-
Ben ihtiyacimin uzerinde dusunmeye devam edecegim. En iyisi zamana birakmak.
-
Pencere ekraninda en son line bulmada kullandigim 2. ve 3. yontem.
-
2.
buffer(tampon) kullanmak fakat bufferi kullanmayi bilmiyorum sanirim. window -j30 @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re
-
ekrana sigacak 30 kapasiteli bir buffer yapip, o ekrana yazdirip, 1. line setleyip, her seferinde o line'i kontrol etmek ve o line yok ise sonuca ulasmak gibi.
-
3.
Pencerede scrollbar kaydirma cubugunun olustugu zamanı yakalamak.scrollbar cubugu olustugu zaman ekranda taşma oluyor. fakat scrollbar cubugunun o pencerede olusup olusmadigini anlamak icin bir identifier ya da window parametre yok sanirim .


İstediğin pencere de en son satırı bulmak ise $line yi kullanabilirsin.

Kod:

//echo -a $line(@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re,0) ;- Toplam pencerede ki satır sayısını verir.
//echo -a $line(@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re,$line(@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re,0)) ;/ En son satırı verir.


manikdepresif 02 Ağustos 2023 14:28

Cevap: Ekranda gorunen line sayısı
 
//echo -a $line(@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re,$line(@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re,0)) ;/ En son satırı verir.
-----------
evet en son line'i veriyor ,fakat görünmeyen en son line'i
-
bana en son görünen line lazim

Toprak 02 Ağustos 2023 14:31

Cevap: Ekranda gorunen line sayısı
 
Alıntı:

manikdepresif Nickli Üyeden Alıntı (Mesaj 1042820356)
//echo -a $line(@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re,$line(@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re,0)) ;/ En son satırı verir.
-----------
evet en son line'i veriyor ,fakat görünmeyen en son line'i
-
bana en son görünen line lazim


Pencerenin SS'ini alıp işaretler misin, tam nereyi almak istiyorsun.

manikdepresif 02 Ağustos 2023 16:58

Cevap: Ekranda gorunen line sayısı
 
27 ---------

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Toprak 02 Ağustos 2023 17:05

Cevap: Ekranda gorunen line sayısı
 
Alıntı:

manikdepresif Nickli Üyeden Alıntı (Mesaj 1042820385)
27 ---------

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


Scrollu alta alıp tekrar SS atar mısın 27 tam nerede kalıyor.

manikdepresif 02 Ağustos 2023 17:12

Cevap: Ekranda gorunen line sayısı
 
---------------------------------------------------

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Toprak 02 Ağustos 2023 17:16

Cevap: Ekranda gorunen line sayısı
 
Alıntı:

manikdepresif Nickli Üyeden Alıntı (Mesaj 1042820390)
---------------------------------------------------

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


Eğer hep aynı satırı almak istiyor isen, $line ile toplam satırı al ve -27 yaparsan aynı satırı alırsın.
Yani; 54 satır var sen hep 27. satırı almak istiyorsun.

Kod:

//echo -a $line(@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re,$calc($line(@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re,0) - 27))

manikdepresif 02 Ağustos 2023 18:07

Cevap: Ekranda gorunen line sayısı
 
satirlar degisken sabit degil, degisken olan tek sey en son aktif line.
-
ekrana sigacak line sayisini hesapladim.
-

Kod:

//echo -s $calc($window($active).dh / $height($line($active,$line($active,0)),$window($active).font,$window($active).fontsize))
fakat bu da ondalikli falan cikiyor.Onun icin de bir identifier yapmak lazim.
13.5 veya kucukse 13
13.5 veya kucukse 14 olsun gibi.
ona sonra bakacam.
-

Toprak 02 Ağustos 2023 18:15

Cevap: Ekranda gorunen line sayısı
 
Alıntı:

manikdepresif Nickli Üyeden Alıntı (Mesaj 1042820395)
satirlar degisken sabit degil, degisken olan tek sey en son aktif line.
-
ekrana sigacak line sayisini hesapladim.
-

Kod:

//echo -s $calc($window($active).dh / $height($line($active,$line($active,0)),$window($active).font,$window($active).fontsize))
fakat bu da ondalikli falan cikiyor.Onun icin de bir identifier yapmak lazim.
13.5 veya kucukse 13
13.5 veya kucukse 14 olsun gibi.
ona sonra bakacam.
-

Şöyle söyleyim; o satır aynı ama oradaki mesaj farklı değil mi?

Benim verdiğim öyle; o satır da mesaj farketmeksizin ne yazarsa onu verir.

manikdepresif 02 Ağustos 2023 20:27

Cevap: Ekranda gorunen line sayısı
 
Kod:

/f3 {
  if !$window(@d) { window -l20 @d | aline -l @d 1 | echo @d 1 | return }
  echo @d $calc($line(@d,0) + 1)
  iline -l @d 1 $line(@d,0,0)
}

bu sekilde f3 ile yeni satir ekliyorum.yani degisiyor.

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 18:29 -->-> Daha önceki mesaj 18:28 --

Eger ekrana sigacak line sayisini hesapladiysam, bunu toplan line sayisina bolersem kac adet sayfa oldugu ortaya cikar.

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 20:27 -->-> Daha önceki mesaj 18:29 --

Elimde en son aktif line bulabilmek icin 5 tane degisken var, (identifier her seferinde degisiyorsa ben onu degisken olarak tanimliyorum)
1- Line, 1.line ->
Kod:

$line($active,1)
2- Line, son line ->
Kod:

$line($active,$line($active,0))
3- Ekran line kapasitesi:
Kod:

$calc($window($active).dh /
Kod:

$height($line($active,$line($active,0)),$window($active).font,$window($active).fontsize))
4- Toplam Line sayisini, ekran kapasitesine boldugumde ortaya cikan sayfa sayisi:
Kod:

$calc($calc($window($active).dh / $height($line($active,$line($active,0)),$window($active).font,$window($active).fontsize)) / $line($active,0))
-
-
Simdi ya elimdekilerle bir hesap yapicam, son aktif line icin ya da,
yeni bir degisken uretip , hesaplamak icin fayda saglamasini bekleyecem.
-
bu pencere font buyuklugunu degistirince ekrandaki line sayisinda azalma ya da artma oluyor. nedense oraya yogunlasiyorum.

manikdepresif 04 Ağustos 2023 13:42

Cevap: Ekranda gorunen line sayısı
 
Daha once $window pencereleri icin kullanilan komutlardan
/sline, /aline, /iline, /dline, /rline sadece listbox icin kullanildiini dusunuyordum, megerse nornal window'da da kullaniliyormus.

Kod:

/sline @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re 1
komutu penceredeki 1. line'i seciyor.
son line'i secmek icin ise
Kod:

/sline @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re 30000
burada 30001 kullanmamin nedeni buffer kapasitesi benim mircte max buffer sayisi 30000, onu da deneyerek buldum.
Belki bir diger mirc'de farkli olabilir bilmiyorum bu bir soru niteliginde,
nasil buldum alt + o ayarlardan "diger" sekmesinde tampon/buffer edit kutusuna farkli rakamlar yazdim ve 30000 e sabitledi, 30000'den fazla rakam yazdim kabul etmedim. hmm o zaman kapasite 30000 diye dusundum.
-
Kod:

/sline @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re 30000
komutunda /sline @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re 30000 scrollbar asagiya kayiyor o line'a gitmeye calisiyor gidemedigi icin de, en altta son line' da kaliyor, ayni sekilde -l parametreli listbox pencereleri icinde gecerli.
30000 line olmamasina ragmen hata vermemesi de cok ilginc, demek ki kactane line oldugu her zaman setli degil ya da bilmiyor /sline.
-
"/sline @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re no" komutu sadece custom window pencerelerinde calisiyor.
"/sline #kanalpenceresi no" calismiyor.
O zaman son aktif gorunen line'in selected line (secili satir) oldugu ortaya cikiyor.
-
[/findtext -n kelime] bu komut her pencerede gecerli, /findtext -n kelime komutu "son aktif line" dan sonra asagiya kaydirma yapip bulma sagliyor. Sadece /findtext kelime ise, en son aktif line'dan yukari dogru arama yapiyor.
-
Sadece /findtext -n kullanarak bilinmeyen bir kelime bulmaya calistigimda yetersiz parametre hatasiyla karsilasiyorum.
Yani bi kurnazlik yapip surekli bastirirsam
Kod:

//findtext -n $chr(32)
yapip tek tek en alta kadar indirip scrollbar'i araya da inc %i ile %i degiskenini arttirip, en son lineden cikarmayi dusunsem bile yapamiyorum.
-
Cunku $chr(32) bulmuyor yetersiz/eksik parametre hatasi veriyor., findtext aradigi text'i otomatik *text* olarak ariyor. wildcardli bicimde.
-

manikdepresif 07 Ağustos 2023 00:17

Cevap: Ekranda gorunen line sayısı
 
Kod:

on ^1:hotlink:*:*:return
on 1:hotlink:*:*:echo -s $hotlinepos

Tiklayinca o satiri veriyor satir numarasini.
mouse hareket ettirme gibi bi durum verilen kordinatlarla x,y olsa kodla ? oraya goturup mouse'i ve alacam o numarayi ordan.
vazgeciyorum simdilik...

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 00:17 -->-> Daha önceki mesaj 23:33 --

Kod:

alias ekranlinesayisi {
  var %x = $iif($window($$1),$1)
  var %p = $height($line(%x,$$line(%x,0)),$window(%x).font,$window(%x).fontsize)
  return $int($calc($window(%x).dh / %p))
}

kullanim:
//echo : $ekranlinesayisi(#mirchelp)
//echo : $ekranlinesayisi(status window)
//echo : $ekranlinesayisi(@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]re)


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 03:06.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk