Hoşgeldin Misafir

Mdx.dll Picture window

By_Nimetullah

10 Şub 2023
1,718 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
uzun zamandır mdx.dll nin picture window üzerinden bize sunmuş olduğu bu özelliği paylaşmak istiyordum.
bugüne nasipmiş dersimize başlıyoruz.

Dersimiz Mdx.dll picture window
Dialog üzerinden çizim yapmayı anlatacağım.
kullanacağımız dll ler mdx.dll ve dialog.mdx

;Alias Degrade (DixrouE) nickli yabancı Codere aittir.
;Alias sayesinde dialog, button, radiobox, checkbox ve text arkaplanlarını çift renk olarak ayarlayabiliyoruz.
;aliasın 2 parametresi var -h (horizontol yatay) -v (vertical dikey)

Kod:
alias degrade {
  var %a $2,%c $5,%d $6,%i
  if ($1 = -h) var %z %c,%u %d + $8,%e $7
  else var %h $7,%e $8,%z %d,%u %c + %h
  tokenize 44 $rgb($3) $+ , $+ $rgb($4)
  var %j $1 - $4,%k $2 - $5,%l $3 - $6,%r $1,%g $2,%b $3,%j %j / %e,%k %k / %e,%l %l / %e,%y %e + %z
  while %z < %y {
    %i = drawline -r %a $rgb(%r,%g,%b) 10
    if (%h) %i %c %z %u %z
    else %i %z %d %z %u
    dec %r %j
    dec %g %k
    dec %b %l
    inc %z
  }
}

alias AFwintest { dialog -m AFwintest AFwintest }
dialog AFwintest {
  title "Mdx.Dll Picture Window test dialog"
  size -1 -1 130 100
  option dbu
  button "Win", 1, 0 0 150 100
}
on *:dialog:AFwintest:init:*:{
  dll dlls\mdx.dll SetMircVersion $version
  dll dlls\mdx.dll MarkDialog $dname
;mdx.dll mizi dlls klasörüne atıyoruz
;ilk önce dialogumuzu mdx.dll ye tanıtıyoruz
  window -ph @AFwintest
; -ph (picture hide) parameteresi kullanıp bir pencere açıyoruz
  dll dlls\mdx.dll SetControlMDX AFwintest 1 Window > dlls\dialog.mdx
  did -a AFwintest 1 grab $window(@AFwintest).hwnd @AFwintest
;Degrade aliasımızla dialog arkaplanını renklendiriyoruz.
  degrade -h @AFwintest $rgb(255, 255, 0) $rgb(255, 0, 0) 0 0 300 200
  drawtext -op @AFwintest 15 Tahoma 15 25 70 8,4Horizontal yatay renk dialog
}

alias AFwintest2 { dialog -m AFwintest2 AFwintest2 }
dialog AFwintest2 {
  title "Mdx.Dll Picture Window test2 dialog"
  size -1 -1 130 100
  option dbu
  button "Win", 1, 0 0 150 100
}

on *:dialog:AFwintest2:init:*:{
  dll dlls\mdx.dll SetMircVersion $version
  dll dlls\mdx.dll MarkDialog $dname
  window -ph @AFwintest2
  dll dlls\mdx.dll SetControlMDX AFwintest2 1 Window > dlls\dialog.mdx
  did -a AFwintest2 1 grab $window(@AFwintest2).hwnd @AFwintest2
  degrade -v @AFwintest2 $rgb(255, 255, 0) $rgb(0, 0, 127) 0 0 300 200
  drawtext -op @AFwintest2 1 Tahoma 15 29 70 8,2Vertical dikey renk dialog
}

şimdi ise mdx.dll ile farklı renklerde text örneklerini yazacağım.

Kod:
alias AFwintext { dialog -m AFwintext AFwintext }
dialog AFwintext {
  title "Mdx.Dll Picture Window text"
  size -1 -1 110 90
  option dbu
  button "Win", 1, 0 0 140 90
}
on *:dialog:AFwintext:init:*:{
  dll dlls\mdx.dll SetMircVersion $version
  dll dlls\mdx.dll MarkDialog $dname
  window -ph @AFwintext
  dll dlls\mdx.dll SetControlMDX AFwintext 1 Window > dlls\dialog.mdx
  did -a AFwintext 1 grab $window(@AFwintext).hwnd @AFwintext
  drawrect -rf @AFwintext $rgb(236, 233, 216) 1 0 0 300 300
  degrade -v @AFwintext $rgb(2, 33, 70) $rgb(3, 88, 106) 0 0 220 16
  drawtext -or @AFwintext $rgb(255,255,255) Tahoma 12 16 2 Ornek1: Deneme text
  drawrect -rf @AFwintext $rgb(2, 33, 70) 1 0 30 220 20 10 10
  drawtext -orp @AFwintext $rgb(255,255,255) Tahoma 12 16 32 Ornek2: 4Deneme text
  drawrect -rf @AFwintext $rgb(2, 33, 70) 1 0 60 220 20 10 10
  drawtext -orp @AFwintext $rgb(255,255,255) Tahoma 12 16 62 Ornek3: 4Deneme 12Text 8renk
  drawrect -rf @AFwintext $rgb(2, 33, 70) 1 0 90 220 20 10 10
  drawtext -op @AFwintext $rgb(255,255,255) Tahoma 12 16 92 Ornek4: 4K8a12r7m12a 8r13e10n00k7l10e4r
  drawrect -rf @AFwintext $rgb(2, 33, 70) 1 0 120 220 20 10 10
  drawtext -op @AFwintext 0 Tahoma 12 16 122 00,2Ornek5: 08,04 G-S 12,08 F-B 00,01 B-J-K .
  drawrect -rf @AFwintext $rgb(2, 33, 70) 1 0 150 220 20 10 10
  drawtext -op @AFwintext 0 Tahoma 12 16 152 00,2Ornek6: 4,8-- G8,4a4,8l8,4a4,8t8,4a 4,8S8,4a4,8r8,4a4,8y --
}

Sıradki örneğimiz radiobox ve checkbox

Kod:
alias AFwincheck { dialog -m AFwincheck AFwincheck }
dialog AFwincheck {
  title "Mdx.Dll Check box Radio box"
  size -1 -1 136 63
  option dbu
  button "Win", 1, 0 0 136 63
}
#check1 on
#check1 end
#check2 on
#check2 end
#radiobox on
#radiobox end
menu @AFwincheck {
  sclick: {
    if ($inrect($mouse.x,$mouse.y,0,32,130,20) == $true) {
      if $group(#check1) == off {
        .enable #check1
        drawrect -rf @AFwincheck $rgb(255,255,255) 1 4 35 12 14
        drawtext -r @AFwincheck 1 webdings 19 1 30 a
      }
      else {
        .disable #check1
        drawrect -r @AFwincheck $rgb(0,0,0) 1 0 32 130 20
        drawrect -rf @AFwincheck $rgb(255,255,255) 1 4 35 12 14
      }
    }
    if ($inrect($mouse.x,$mouse.y,140,32,130,20) == $true) {
      if $group(#check2) == off {
        .enable #check2
        drawrect -rf @AFwincheck $rgb(255,255,255) 1 144 35 12 14
        drawrect -rfd @AFwincheck 1 1 146 38 8 8 2 2
      }
      else {
        .disable #check2
        drawrect -r @AFwincheck $rgb(0,0,0) 1 140 32 130 20
        drawrect -rf @AFwincheck $rgb(255,255,255) 1 144 35 12 14
      }
    }
    if ($inrect($mouse.x,$mouse.y,0,92,130,20) == $true) {
      if $group(#radiobox) == off {
        .enable #radiobox
        drawdot -r @AFwincheck $rgb(255,255,255) 7 12 103
        drawdot -r @AFwincheck 1 4 12 103
        drawdot -r @AFwincheck $rgb(255,255,255) 7 152 103
      }
    }
    if ($inrect($mouse.x,$mouse.y,140,92,130,20) == $true) {
      if $group(#radiobox) == on {
        .disable #radiobox
        drawdot -r @AFwincheck $rgb(255,255,255) 7 152 103
        drawdot -r @AFwincheck 1 4 152 103
        drawdot -r @AFwincheck $rgb(255,255,255) 7 12 103
      }
    }
  }
}

on *:dialog:AFwincheck:init:*:{
  dll dlls\mdx.dll SetMircVersion $version
  dll dlls\mdx.dll MarkDialog $dname
  window -ph @AFwincheck
  dll dlls\mdx.dll SetControlMDX AFwincheck 1 Window > dlls\dialog.mdx
  did -a AFwincheck 1 grab $window(@AFwincheck).hwnd @AFwincheck
  drawrect -rf @AFwincheck $rgb(236, 233, 216) 1 0 0 300 300
  degrade -v @AFwincheck $rgb(236, 233, 216) $rgb(2, 33, 70) 0 0 320 20
  drawtext -or @AFwincheck $rgb(255,255,255) Tahoma 14 5 2 Mdx.DLL Picture window check box
  drawrect -rf @AFwincheck $rgb(2, 33, 70) $rgb(2, 33, 70) 0 32 130 20
  drawrect -r @AFwincheck $rgb(0,0,0) 1 0 32 130 20
  drawrect -rf @AFwincheck $rgb(255,255,255) 1 4 35 12 14
  if $group(#check1) == on { drawtext -r @AFwincheck 1 webdings 19 1 30 a }
  drawtext -ro @AFwincheck $rgb(255,255,255) Tahoma 11 28 35 Ornek checkbox
  drawrect -rf @AFwincheck $rgb(2, 33, 70) $rgb(2, 33, 70) 140 32 130 20
  drawrect -r @AFwincheck $rgb(0,0,0) 1 140 32 130 20
  drawrect -rf @AFwincheck $rgb(255,255,255) 1 144 35 12 14
  if $group(#check2) == on { drawrect -rfd @AFwincheck 1 1 146 38 8 8 2 2 }
  drawtext -ro @AFwincheck $rgb(255,255,255) Tahoma 11 163 35 Ornek checkbox
  drawrect -rf @AFwincheck $rgb(2, 33, 70) 1 0 62 280 20
  drawtext -or @AFwincheck $rgb(255,255,255) Tahoma 14 5 62 Mdx.DLL Picture window radio box
  drawrect -rf @AFwincheck $rgb(2, 33, 70) $rgb(2, 33, 70) 0 92 130 20
  drawrect -r @AFwincheck $rgb(0,0,0) 1 0 92 130 20
  drawtext -ro @AFwincheck $rgb(255,255,255) Tahoma 11 28 95 Ornek radiobox
  drawdot -r @AFwincheck $rgb(255,255,255) 7 12 103
  if $group(#radiobox) == on { drawdot -r @AFwincheck 1 4 12 103 }
  drawrect -rf @AFwincheck $rgb(2, 33, 70) $rgb(2, 33, 70) 140 92 130 20
  drawrect -r @AFwincheck $rgb(0,0,0) 1 140 92 130 20
  drawtext -ro @AFwincheck $rgb(255,255,255) Tahoma 11 165 95 Ornek radiobox
  drawdot -r @AFwincheck $rgb(255,255,255) 7 152 103
  if $group(#radiobox) == off { drawdot -r @AFwincheck 1 4 152 103 }
}

Ve son olarak Button örnekleri ile dersimizi sonladıracağım.
örnek olması amacı ile sadece bir buttona tıklama örneğini hazırladım geriye kalanı bakarakta kendiniz yapabilirsiniz.

Kod:
alias AFwinbtt { dialog -m AFwinbtt AFwinbtt }
dialog AFwinbtt {
  title "Mdx.Dll Picture Window Button"
  size -1 -1 152 100
  option dbu
  button "Win", 1, 0 0 160 100
}
on *:dialog:AFwinbtt:init:*:{
  dll dlls\mdx.dll SetMircVersion $version
  dll dlls\mdx.dll MarkDialog $dname
  window -ph @AFwinbtt
  dll dlls\mdx.dll SetControlMDX AFwinbtt 1 Window > dlls\dialog.mdx
  did -a AFwinbtt 1 grab $window(@AFwinbtt).hwnd @AFwinbtt
  drawrect -rf @AFwinbtt $rgb(236, 233, 216) 1 0 0 320 300
  degrade -v @AFwinbtt $rgb(2, 33, 70) $rgb(236, 233, 216) 0 0 320 200
  degrade -v @AFwinbtt $rgb(2, 33, 70) $rgb(236, 233, 216) 0 0 320 20
  drawtext -or @AFwinbtt $rgb(2, 33, 70) Tahoma 15 21 4 Mdx.DLL Picture window button
  degrade -v @AFwinbtt $rgb(2, 33, 70) $rgb(39,87,127) 12 43 80 31
  drawrect -dr @AFwinbtt $rgb(39,87,127) 1 12 42 81 35 10 10
  drawrect -dr @AFwinbtt $rgb(2, 33, 70) 1 12 40 81 35 10 10
  drawtext -ro @AFwinbtt $rgb(255,255,255) Tahoma 12 27 50 Deneme
  degrade -v @AFwinbtt $rgb(250,0,0) $rgb(255,255,0) 112 43 80 31
  drawrect -dr @AFwinbtt $rgb(250,0,0) 1 112 42 81 35 10 10
  drawrect -dr @AFwinbtt $rgb(255,255,0) 1 112 40 81 35 10 10
  drawtext -rp @AFwinbtt $rgb(255,255,255) Tahoma 12 118 52 8,4G4,8a8,4L4,8a8,4t4,8a8,4S4,8a8,4r4,8a8,4y4,4.
  degrade -h @AFwinbtt $rgb(0,0,127) $rgb(255,255,0) 212 43 80 31
  drawrect -dr @AFwinbtt $rgb(0,0,127) 1 212 43 80 34 10 10
  drawrect -dr @AFwinbtt $rgb(255,255,0) 1 212 42 81 36 10 10
  drawtext -op @AFwinbtt $rgb(255,255,255) Tahoma 12 218 52 2,8Fener8,2Bahce
  drawrect -fr @AFwinbtt $rgb(0,0,0) 1 12 90 40 20
  drawrect -fr @AFwinbtt $rgb(255,255,255) 1 52 90 40 20
  drawrect -fr @AFwinbtt $rgb(255,255,255) 1 12 110 40 20
  drawrect -fr @AFwinbtt $rgb(0,0,0) 1 52 110 40 20
  drawrect -rd @AFwinbtt $rgb(255,255,255) 2 12 90 80 40 10 10
  drawrect -rd @AFwinbtt $rgb(0,0,0) 2 11 89 82 42 10 10
  drawtext -orp @AFwinbtt $rgb(255,255,255) Tahoma 12 26 102 0,1Besiktas
  drawrect -frd @AFwinbtt $rgb(3, 88, 106) 1 106 90 90 42 10 10
  drawrect -rd @AFwinbtt $rgb(182, 216, 217) 1 106 90 90 42 10 10
  drawpic -tocsmg2 @AFwinbtt 1 138 92 22 22 50 $mircexe
  drawtext -or @AFwinbtt $rgb(182, 216, 217) Tahoma 12 124 110 Deneme
  drawrect -frd @AFwinbtt $rgb(2, 33, 70) 1 208 90 90 42 10 10
  drawrect -rd @AFwinbtt $rgb(0,0,0) 2 208 90 90 42 10 10
  drawpic -tocsmg2 @AFwinbtt 1 212 100 22 22 50 $mircexe
  drawtext -or @AFwinbtt $rgb(255,255,255) Tahoma 12 238 104 Deneme
  drawrect -rf @AFWinbtt $rgb(240,240,240) 1 12 144 80 40
  drawrect -d @AFWinbtt 14 3 12 144 80 40 16
  drawtext -o @AFwinbtt 14 Tahoma 12 27 156 Deneme
  drawrect -rf @AFWinbtt $rgb(137, 180, 162) 1 106 144 88 40
  drawrect -r @AFWinbtt $rgb(3, 88, 106) 2 106 144 88 40
  drawpic -cstm @AFwinbtt 1 138 146 22 22 $mircdirafran\img\ayar.ico
  drawtext -or @AFwinbtt $rgb(2, 33, 70) Tahoma 12 125 166 Deneme
  degrade -v @AFWinbtt $rgb(106, 97, 72) $rgb(200, 183, 150) 212 150 78 30
  drawrect -rd @AFWinbtt $rgb(106, 97, 72) 3 208 144 88 40 5 5
  drawpic -tcsmg2 @AFwinbtt 1 214 154 20 20 $mircexe
  drawtext -or @AFwinbtt $rgb(255,255,255) Tahoma 12 237 156 Deneme
}

menu @AFwinbtt {
  sclick: {
    if ($inrect($mouse.x,$mouse.y,8,38,90,40) == $true) {
      degrade -v @AFwinbtt $rgb(2, 33, 70) $rgb(255,255,255) 12 43 80 31
      drawrect -dr @AFwinbtt $rgb(39,87,127) 1 12 42 81 35 10 10
      drawrect -dr @AFwinbtt $rgb(2, 33, 70) 1 12 40 81 35 10 10
      drawtext -ro @AFwinbtt $rgb(255,255,255) Tahoma 12 27 50 Deneme
    }
  }
  uclick: {
    if ($inrect($mouse.x,$mouse.y,8,38,90,40) == $true) {
      degrade -v @AFwinbtt $rgb(2, 33, 70) $rgb(39,87,127) 12 43 80 31
      drawrect -dr @AFwinbtt $rgb(39,87,127) 1 12 42 81 35 10 10
      drawrect -dr @AFwinbtt $rgb(2, 33, 70) 1 12 40 81 35 10 10
      drawtext -ro @AFwinbtt $rgb(255,255,255) Tahoma 12 27 50 Deneme
    }
  }
}