Process.Start Metodu ile Uygulama Yönetimi

31 Ara 2008 In: C#

Projelerimizde sistem uygulamalarına ulaşmamız gereken noktalar oluyor.

Bize bu gibi durumlarda C#'ta System.Diagnostics kütüphanesi yardımımıza yetişiyor.

Process.Start'a atadığımız değerler ile parametreler aktif olarak işleme alınıyor.

Komut istemcisi tarafında yaptırmak istediği işlemleri de uygun paramtereler atayarak çalıştırabiliyoruz.

Google'da bir arama yaptırmak istediğimiz basit bir program tasarlayım.

Tasarımımız şu şekilde olsun,


Bir textbox ve bir butondan oluşuyor.

Şimdi ise projemize using System.Diagnostics; olarak kütüphaneyi ekleyelim.

Google da arama işlemini gerçekleştirecek fonksiyonumuzu hazırlayalım.

        static void GoogleAra(string t)
        {
           
            Process.Start("http://google.com.tr/search?q=" + t);
           
        }
 

Ardından Butonumuzun Click eventine bu methodu çağıralım.

        private void button1_Click(object sender, EventArgs e)
        {
            GoogleAra(textBox1.Text);

        }

 Projemiz bu haliyle çalışır vaziyette olacak.

Şimdi biraz da klavye alışkanlığımızı kullanbilmek için enter'a basınca arama işlemini gerçekleştirsin,escape'e basınca da program kapasın şeklinde eklemeler yapalım.

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
            {
                GoogleAra(textBox1.Text);
            }

            if (e.KeyChar == 27)
            {
                this.Close();
            }
        }

 Textbox'ın KeyPress özelliğinden yararlanarak bu işlemi de tamamlamış olduk.

Projemizin kaynakları tamamı olarak aşağıdaki gibi olacaktır.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;

namespace WindowsFormsApplication9
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            GoogleAra (textBox1.Text);

        }

        static void GoogleAra(string t)
        {
           
            Process.Start("http://google.com.tr/search?q=" + t);
           
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
            {
                GoogleAra(textBox1.Text);
            }

            if (e.KeyChar == 27)
            {
                this.Close();
            }
        }

 

    }
}

 

 Kolay Gelsin.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Repeater ile Sayfalama

25 Ara 2008 In: ASP.NET

Çalışmalarımızda yeri geldiğinde sıkça sayfalama metodunu kullanıyoruz. Bir listedeki verileri belirli kriterlere göre listeledikten sonra sayfalayıp hem okunmasını hemde tasarımsal öğelerin yerli yerinde kullanılmasına büyük ölçüde katkı sağlıyor. Biz bunu asp.net kontrollerinden repeater ile nasıl yapıldığınız inceleyeceğiz.

kod tarafında yapı şu şekilde olacak.

 PagedDataSource pgitems = new PagedDataSource();
        DataView dv = new DataView(dt);
        pgitems.DataSource = dv;
        pgitems.AllowPaging = true;
        pgitems.PageSize = 5;
        pgitems.CurrentPageIndex = PageNumber;
        if (pgitems.PageCount > 1)
        {

            rptPages.Visible = true;
            ArrayList pages = new ArrayList();
            for (int i = 0; i < pgitems.PageCount; i++)
           
                pages.Add((i + 1).ToString());
           
            rptPages.DataSource = pages;
            rptPages.DataBind();
        }
        else
       
            rptPages.Visible = false;
            rptItems.DataSource = pgitems;
            rptItems.DataBind();
      
    }

    public int PageNumber
    {
        get
        {
            if (ViewState["PageNumber"] != null)
                return Convert.ToInt32(ViewState["PageNumber"]);
            else
                return 0;
        }
        set
        {
            ViewState["PageNumber"] = value;
        }
    }



    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        rptPages.ItemCommand +=
        new RepeaterCommandEventHandler(rptPages_ItemCommand);
    }

    void rptPages_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        PageNumber = Convert.ToInt32(e.CommandArgument) - 1;
        GetNews();
    }


tasarım tarafında da repeater kontrollerini ekleyip uygulamaya aşağıdaki şekilde biçim kazandırabilirsiniz.

  <asp:Repeater ID="rptItems" runat="server">
             
             
            
                <ItemTemplate>
                  <h1><%#DataBinder.Eval(Container.DataItem,"konu") %></h1>
                <p><img src="images/announcement1.jpg" class="float-left"><%#DataBinder.Eval(Container.DataItem,"kisadetay") %></p> 
              
              
           
                <br /> <br /> <br />
                    <p class="post-footer align-right">                   
                    <a href="detay.aspx?id=<%#DataBinder.Eval(Container.DataItem,"id") %>" class="readmore">Read more</a>
                    <span class="date"><%#DataBinder.Eval(Container.DataItem,"tarih") %></span>   
                </p>
               
              </ItemTemplate>
                </asp:Repeater>
                <center>
                 <asp:Repeater ID="rptPages" Runat="server">
      <HeaderTemplate>
      <table cellpadding="0" cellspacing="0" border="0" bgcolor="#E7E7E7">
      <tr bgcolor="#f2f2f2">
         <td colspan="4"><b>Pages:</b>&nbsp;</td>
         <td>
      </HeaderTemplate>
      <ItemTemplate>
         <asp:LinkButton ID="btnPage"
                         CommandName="Page"
                         CommandArgument="<%#
                         Container.DataItem %>"
                        
                         Runat="server"><%# Container.DataItem %>
                         </asp:LinkButton>&nbsp;
      </ItemTemplate>
      <FooterTemplate>
         </td>
      </tr>
      </table>
      </FooterTemplate>
      </asp:Repeater>

 

DB bağlantılarınızı yaptıktan sonra belirttiğim code behind tarafında uygulamayı çalışmanıza ekleyip gerekli SQL bağlantılarını kullanıp repeater kontrolü tarafındaki noktalarda column isimlerini kendinize göre değiştirerek sayfalama metodunu kullanabilirsiniz. Kolay gelsin ...

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

 

 

 

 

 

 

 

 

 

 

 

 

Yazılım Kulübü olarak yine bir etkinlik ile karşınızdayız. Bu kez teknik konuların yanı sıra herkesin ilgi alanına giren oyunların nasıl programlanabildiğini hep birlikte öğreneceğiz.

"Microsoft Oyun Programlama Günü" adlı seminerimizde oyun programlama tekniklerinden "Silverlight ile Oyun Programlama" ve "XNA ile Oyun Programlama" konularına değinelecektir.Seminerimize katılım ücretsizdir.

Katılımcılara Sertifika verilecektir.


Tarih: 24.12.2008
Yer: Mavi Salon
Saat: 12:00 - 15:00


Konuşmacılar :
Daron Yöndem (INETA Türkiye Başkanı, MVP)
Engin Yıldız (3D Akademi Genel Koordinatörü)

Kayıt olmak için aşağıdaki bağlantıyı kullanabilirsiniz.

http://www.emusoftwareclub.com/register/default.asp

Olcay KÜK

DAÜ Yazılım Kulübü Başkanı


Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

CETURK Java Teknolojileri

16 Ara 2008 In: Güncel


CETURK Java Teknolojileri Ankara Etkinliği (3 Ocak 2009 Cumartesi)

Bugüne kadar gerçekleştirdiği bir çok etkinlikle üyelerine ve bilişim sektörünün gelişmesine katkıda bulunan CETURK başkentimiz Ankara'da yapacağı büyük bir organizasyon ile karşımızda.

CETURK , 3 Ocak Cumartesi günü Çankaya Üniversitesi Mavi Salon'da "CETURK Java Teknolojileri Ankara Etkinliği" inde Java dünyasını bir araya getiriyor. Java dünyasındaki en son teknolojilerin ve gelişmelerin anlatılacağı etkinlikte Java dünyasının önemli isimleri , Çağatay Çivici, Kenan Sevindik, Melih Sakarya ve Ümit Vardar sunum yapacaklar.

Melih Sakarya JBoss Seam
Ümit Vardar JPA ve Hibernate
Kenan Sevindik Spring Framework'e Giriş
Çağatay Çivici JSF 2.0
PANEL Java Dünyası ve Türkiy

Ayrıntılı bilgi ve kayıt için tıklayınız.

 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Mootools Show/Hide Menü

12 Ara 2008 In: CSS, Javascript

 

Popülerliği artan mootools kütüphanesi kullanılarak hazırlanmış bir çok menü çalışmasını tasarımlarımda yer veriyorum.

Gerek kullanım kolaylılığı gerekse işlevselliği bakımından oldukça işimize yarayan uygulamalar barındırıyor.

Yine mootools kütüphanesi kullanılarak hazırlanmış bir menü örneğini sizlerle paylaşıyorum.

İçeriğinde hem mootools kullanılarak hem de show/hide effect verilmiş iki ayrı menü örneği var.

Demo için gözatabilirsiniz.

CSS kodlarımız şu şekilde :

<style type="text/css">
body{font-family:Arial, Helvetica, sans-serif; font-size:13px;}
/* -------------------------------------------------------- */
/* BUTTON                                                    */
.button{
    background:url(img/button.png)  -32px right no-repeat;
    color:#FFFFFF;
    clear:both;
    display:block;
    float:left;
    font-size:13px;
    font-weight:bold;
    height:31px;
    line-height:31px;
    width:auto;
    margin-right:30px;
}
    a.button {
        text-decoration:none;
    }
    .button span {
        background:url(img/button.png) left top no-repeat;
        display:block;
        height:31px;
        line-height:31px;
        padding-left:10px;
        padding-right:8px;
        margin-right:20px;
    }
/* -------------------------------------------------------- */
/* MENU                                                        */
.v-menu{
    border:solid 1px #7F9FBF;
    width:200px;
    clear:both;
}
    ul.v-menu, .v-menu li{
        padding:0;
        margin:0;
        list-style:none;
    }
    ul.v-menu{
        clear:both;
        margin-top:6px;
        padding:6px 10px;
    }
        .v-menu li a{
            color:#555555;
            font-weight:bold;
            display:block;
            border-top:solid 1px #DEDEDE;
            padding:4px;
            text-decoration:none;
        }
        .v-menu li a:hover{
            color:#999999;
        }

</style>

 Şimdi ise sayfanıza yerleştirmeniz gereken javascript kodlarını veriyorum.

 <script type="text/javascript">
function showElement(layer){
    var myLayer = document.getElementById(layer);
    if(myLayer.style.display=="none"){
        myLayer.style.display="block";
        myLayer.backgroundPosition="top";
    } else {
        myLayer.style.display="none";
    }
}
</script>

 <script type="text/javascript">
        window.addEvent('domready', function(){
            //-vertical
            
            var mySlide = new Fx.Slide('v-menu2');
            mySlide.hide();
            $('toggle').addEvent('click', function(e){
                e = new Event(e);
                mySlide.toggle();
                e.stop();
            });

        });
    </script>

CSS ve Javascript kodlarını sayfanıza yerleştirdikten sonra menünün html kodlarını vermeye sıra geldi.

 <table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="50%" height="45"><h2>Simple Show/Hide Effect</h2></td>
<td width="50%"><h2>Mootools Toggle</h2></td>
</tr>
<tr>
<td width="50%" valign="top">
<a href="#" class="button" onclick="javascript:showElement('v-menu')"><span>Click Here</span></a>
<ul id="v-menu" class="v-menu" style="display:none;">
<li><a href="p1.html">Technology</a></li>
<li><a href="p2.html">Design</a></li>
<li><a href="p3.html">Css Gallery</a></li>
<li><a href="p4.html">Entertainment</a></li>
<li><a href="p5.html">Programming</a></li>
</ul></td>

<td width="50%" valign="top">
<a href="#" id="toggle" class="button"><span>Click Here</span></a>
<div style="clear:both">
<ul id="v-menu2" class="v-menu">
<li><a href="p1.html">Technology</a></li>
<li><a href="p2.html">Design</a></li>
<li><a href="p3.html">Css Gallery</a></li>
<li><a href="p4.html">Entertainment</a></li>
<li><a href="p5.html">Programming</a></li>
</ul>
</div></td>
</tr>
</table>

 Tüm bu işlemlerin sonunda <script type="text/javascript" src="mootools.svn.js"></script> ile mootools kütüphanesini sayfası import ediyoruz.

 

moomenu.rar (47,28 kb)

Demo için

 

Kolay Gelsin ...

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

Merak ettiklerini haydi sor :)