CSS ile Yuvarlak Köşeler

31 May 2008 In: CSS

 

 

CSS ile yuvarlak köşeli grafikler oluşturabilirsiniz.Tabi ki CSS tek başına bu iş için yeterli olmuyor.Bu işlemi bir JS dosyası ile bütünleşik olarak uygulamaya sunabiliyoruz.

Sayfanıza direk eklemeniz yerine kose.js gibi kaydedip ayrı olarak include etmeninizi tavsiye ederim.

function NiftyCheck() {
  if(!document.getElementById || !document.createElement) {
    return false;
  }
  var b = navigator.userAgent.toLowerCase();
  if (b.indexOf("msie 5") > 0 && b.indexOf("opera") == -1) {
    return false;
  }
  return true;
}

function Rounded(className, sizex, sizey, sizex_b, sizey_b) {
    var bk;
    if (!NiftyCheck()) return;
    if (typeof(sizex_b) == 'undefined')
        sizex_b = sizex;
    if (typeof(sizey_b) == 'undefined')
        sizey_b = sizey;
    var v = getElements(className);
    var l = v.length;
    for (var i = 0; i < l; i++) {
        color = get_current_style(v[i],"background-color","transparent");
        bk = get_current_style(v[i].parentNode,"background-color","transparent");
        AddRounded(v[i], bk, color, sizex, sizey, true);
        AddRounded(v[i], bk, color, sizex_b, sizey_b, false);
    }
}

Math.sqr = function (x) {
  return x*x;
};

function Blend(a, b, alpha) {

  var ca = Array(
    parseInt('0x' + a.substring(1, 3)),
    parseInt('0x' + a.substring(3, 5)),
    parseInt('0x' + a.substring(5, 7))
  );
  var cb = Array(
    parseInt('0x' + b.substring(1, 3)),
    parseInt('0x' + b.substring(3, 5)),
    parseInt('0x' + b.substring(5, 7))
  );
  return '#' + ('0'+Math.round(ca[0] + (cb[0] - ca[0])*alpha).toString(16)).slice(-2).toString(16)
             + ('0'+Math.round(ca[1] + (cb[1] - ca[1])*alpha).toString(16)).slice(-2).toString(16)
             + ('0'+Math.round(ca[2] + (cb[2] - ca[2])*alpha).toString(16)).slice(-2).toString(16);

  return '#' + ('0'+Math.round(ca[0] + (cb[0] - ca[0])*alpha).toString(16)).slice(-2).toString(16)
             + ('0'+Math.round(ca[1] + (cb[1] - ca[1])*alpha).toString(16)).slice(-2).toString(16)
             + ('0'+Math.round(ca[2] + (cb[2] - ca[2])*alpha).toString(16)).slice(-2).toString(16);
}

function AddRounded(el, bk, color, sizex, sizey, top) {
  if (!sizex && !sizey)
    return;
  var i, j;
  var d = document.createElement("div");
  d.style.backgroundColor = bk;
  var lastarc = 0;
  for (i = 1; i <= sizey; i++) {
    var coverage, arc2, arc3;
    // Find intersection of arc with bottom of pixel row
    arc = Math.sqrt(1.0 - Math.sqr(1.0 - i / sizey)) * sizex;
    // Calculate how many pixels are bg, fg and blended.
    var n_bg = sizex - Math.ceil(arc);
    var n_fg = Math.floor(lastarc);
    var n_aa = sizex - n_bg - n_fg;
    // Create pixel row wrapper
    var x = document.createElement("div");
    var y = d;
    x.style.margin = "0px " + n_bg + "px";
    x.style.height='1px';
    x.style.overflow='hidden';
    // Make a wrapper per anti-aliased pixel (at least one)
    for (j = 1; j <= n_aa; j++) {
      // Calculate coverage per pixel
      // (approximates circle by a line within the pixel)
      if (j == 1) {
        if (j == n_aa) {
          // Single pixel
          coverage = ((arc + lastarc) * .5) - n_fg;
        }
        else {
          // First in a run
          arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
          coverage = (arc2 - (sizey - i)) * (arc - n_fg - n_aa + 1) * .5;
          // Coverage is incorrect. Why?
          coverage = 0;
        }
      }
      else if (j == n_aa) {
        // Last in a run
        arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
        coverage = 1.0 - (1.0 - (arc2 - (sizey - i))) * (1.0 - (lastarc - n_fg)) * .5;
      }
      else {
        // Middle of a run
        arc3 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j) / sizex)) * sizey;
        arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
        coverage = ((arc2 + arc3) * .5) - (sizey - i);
      }
     
      x.style.backgroundColor = Blend(bk, color, coverage);
      if (top)
          y.appendChild(x);
      else
          y.insertBefore(x, y.firstChild);
      y = x;
      var x = document.createElement("div");
        x.style.height='1px';
        x.style.overflow='hidden';
      x.style.margin = "0px 1px";
    }
    x.style.backgroundColor = color;
    if (top)
        y.appendChild(x);
    else
        y.insertBefore(x, y.firstChild);
    lastarc = arc;
  }
  if (top)
      el.insertBefore(d, el.firstChild);
  else
      el.appendChild(d);
}

function getElements(className) {
    var elements = [];
    var el = document.getElementsByTagName('DIV'); 
    var regexp=new RegExp("\\b"+className+"\\b");
    for (var i = 0; i < el.length; i++)
    {
        if (regexp.test(el[i].className))
            elements.push(el[i]);
    }
    return elements;
}

function get_current_style(element,property,not_accepted)
{
  var ee,i,val,apr;
  try
  {
    var cs=document.defaultView.getComputedStyle(element,'');
    val=cs.getPropertyValue(property);
  }
  catch(ee)
  {
    if(element.currentStyle)
      {
        apr=property.split("-");
        for(i=1;i<apr.length;i++) apr[i]=apr[i].toUpperCase();
        apr=apr.join("");
        val=element.currentStyle.getAttribute(apr);
   }
  }
  if((val.indexOf("rgba") > -1 || val==not_accepted) && element.parentNode)
  {
     if(element.parentNode != document)
         val=get_current_style(element.parentNode,property,not_accepted);
     else
         val = '#FFFFFF';
  }
  if (val.indexOf("rgb") > -1 && val.indexOf("rgba") == -1)
      val = rgb2hex(val);
  if (val.length == 4)
      val = '#'+val.substring(1,1)+val.substring(1,1)+val.substring(2,1)+val.substring(2,1)+val.substring(3,1)+val.substring(3,1);
  return val;
}

function rgb2hex(value)
{
    var x = 255;
    var hex = '';
    var i;
    var regexp=/([0-9]+)[, ]+([0-9]+)[, ]+([0-9]+)/;
    var array=regexp.exec(value);
    for(i=1;i<4;i++) hex += ('0'+parseInt(array[i]).toString(16)).slice(-2);
    return '#'+hex;
}

 

 Sayfanıza aşağıdaki js kodunu kendinize göre düzenleyip uygun kriterler ile ekleyebilirsiniz.
 

<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
<script src="kose.js" type="text/javascript"></script>
<div id="icerik" align="left">
    <div id="koseler" class="rounded">
      <p>&nbsp;</p>
      <p style="padding:7px">CSS ile Yuvarlak Kose Olusturmak</p>
      <p>&nbsp;</p>
            <script type="text/javascript">
Rounded('rounded', 17, 17); 
</script>

Rounded metodundan köşelerin yuvarlak olma görünümünü pixel bazında değiştirebilirsiniz.

Sayfamızda kullanmamız için gereken CSS kodu da aşağıda yer alıyıor. 

* {
    margin: 0;
    padding: 0;
}

body {
    font: normal 13px "Trebuchet MS", Arial, Helvetica, sans-serif;
    color: #2C2G3B;
    margin-bottom: 3px;
   
   
}


#sayfa {
    width: 815px;
    margin: 0 auto;
    border-left: 1px solid #fff;
    border-right: 1px solid #fff;
    background-color: #FFFC7a;
}

#icerik {
    float: center;
    width: 603px;
    padding-left: 3px;
}

#koseler{
    width:468px;
    font-size:15px;
    font-family:Verdana, Arial, Helvetica, sans-serif;
    float: center;
    background-color: #ff5a00;
    color: #fff;
   
}

 

 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Ücretsiz Solaris DVD'si

30 May 2008 In: Genel, Güncel

 

 

 

 

Solaris,geçmiş yıllarda yaptığı dağıtım ve tanıtım uygulamalarına bu yılda yer verdi.Tüm dünyaya ücretsiz olarak adrese teslim solaris dvdleri gönderiyorlar.Bende geçtiğimiz günlerde talep etmiştim dün elime ulaştı.Bu süre yaklaşık 20 gün sürdür.Ücretsiz solaris dvdlerini almak istiyorsanız aşağıdaki bağlantıyı kullanıp talep edebilirsiniz.

 

https://www2.sun.de/dct/forms/reg_us_2307_228_0.jsp 

 

Adres bilgilerinizi doğru yazmaya özen gösterin çünkü dvdler adresinize gelecek ve herhangi bir kargo ücreti gibi birşeyde ödemiyorsunuz. 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Ücretsiz Java & Solaris Sertifikası

29 May 2008 In: Genel, Güncel
http://www.techshout.com/images/sun-ms-logo.jpg
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Öğrencilere yönelik düzenlemiş java ve solaris sertifikası ücretsiz olarak veriliyor.Yapılması gerekenler siteye kayıt olup,belirtilen ödevleri hazırlayıp göndermek.Başarılı olduğunuz takdirde sertifikanız pdf formatında adresinize gönderilecektir.

Sertifikasyon kayıt adresi

Java sertifikası almak için :

Java sertifikası

Solaris sertifikası almak için :

Solaris sertifikası
 
 
Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Orca Ajax Forum

28 May 2008 In: Genel, AJAX

 "http://www.boonex.com/img/orca-main.jpg" grafik dosyası hatalı olduğu için gösterilemiyor.

 

Ajax son yıllardaki yükselen karma yazılım dillerinden biri olarak bir çok projede yerini alıyor.Bilindiği üzere forum uygulamaları da genelde asp,php,asp.net gibi temel yazılım dilleriyle yazılır ve dağıtılıyor.Tabi bunlara ek olarak perl,coldfusion gibi dillerle yazılan birçok uygulama da mevcuttur.

Orca adından ajax ürünü olan bu forum ile farklılık yaratabilirsiniz.Henüz bir invision power board ya da vbulletin kadar yaygın ve modul bakımından onlar kadar gelişmiş olmasa da geliştirilmeye açık bir yapıya sahip.Farklı lezzetler arayanlar için orca forumu tavsiye ederim.

 Demo adresi için bu bağlantıyı kullanabilirsiniz.

Bu bağlantından yararlanarak da download işlemini gerçekleştirebilirsiniz. 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Çalışma Süresi (C#)

28 May 2008 In: C#

 

 

 

 

 

 

 

 

 

 

Bilgisayarınızın ne kadar süredir çalıştığı kontrol etmeye yarayan C# ile hazırladığım kodu sizlerle paylaşıyorum.Sistem saat erişimi ve denetimine örnek vermesi amacıyla yararlı olacağını düşünüyorum.

Yeni C# projesi açtıktan sonra form tasarım kısmına bir buton ekleyin.Form kod yapısına aşağıdaki kodları ekleyin.

   public string getUptime()
        {
            String strResult = String.Empty;
            strResult += Convert.ToString(Environment.TickCount / 86400000) + " gün, ";
            strResult += Convert.ToString(Environment.TickCount / 3600000 % 24) + " saat, ";
            strResult += Convert.ToString(Environment.TickCount / 120000 % 60) + " dakika, ";
            strResult += Convert.ToString(Environment.TickCount / 1000 % 60) + " saniye.";
            return strResult;
           
        }

 

Button click eventini aşağıdaki yapı gibi hazırlayın.

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(getUptime());
        }

Projenizi çalıştırdığınızda aşağıdaki gibi çalışma süresini görebilirsiniz.

 




 

 


Projenin dosyalarını aşağıdaki bağlantıyı kullanıp indirebilirsiniz.

 


zaman kontrol.rar (32,31 kb) 

 

 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Blog'dan

Biraz yazılım,biraz güvenlik,biraz da hayattan karalamalar ...


İletişim: ok@olcaykuk.com