1

Konu: Kısa yol tuşları tanımlamak

merhaba değerli foxpro dostları.malumunuz programlarımızda sık kullanılan ekranlar vardır.Bunları fonksiyon tuşlarına bağlayarak,(örneğin Progrmamın herhangi bir yerinde F3 e basınca Müşteri kartı gelecek), Kısayol tanımlamak istiyorum.Bunu her formun KeyPress eventine mi yazmalıyız,yoksa daha pratik bir çözümü varmı ? Mutlaka vardır diye düşünüyorum.Dostların önerilerini bekliyorum big_smile

En büyük sermaye nakit,nakit sermaye vakittir...

2

Re: Kısa yol tuşları tanımlamak

ON KEY LABEL fonksiyonunu denedin mi ?

3

Re: Kısa yol tuşları tanımlamak

bu işin en temizi forma girince ana menüye bir popup eklemek ve kısayolları orda vermek.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

4

Re: Kısa yol tuşları tanımlamak

Form.Keyporeview = .T.
Form.Keypress

Bu form senin formlarinin base class'i olan baseform oldugundan tum formlarda degil bir tek formda:)

5

Re: Kısa yol tuşları tanımlamak

Çetin hocam projedeki  _base clasın içerisindeki _form a dediğiniz ayarları uyguladım ve keypress eventine kod yazdım.Ancak çalışmadı.Kaçırdığım bir nokta mı var acaba ?

En büyük sermaye nakit,nakit sermaye vakittir...

6

Re: Kısa yol tuşları tanımlamak

Metin üsdat pulldown menüye bir popup ekleyerek oradan link vermek güzel bir çözümde,Kişiler bunu klavye tuşlarında hazır istiyolar.Eski programlardan alışkanlık sanırım.Müşteri haklıdır diyerek,onların isteği doğrultusunda bir çözüm mümkünse,o daha makul olacaktır.Çoğu maus kullanmaktan hoşlanmıyor malesef wink

En büyük sermaye nakit,nakit sermaye vakittir...

7

Re: Kısa yol tuşları tanımlamak

KeyPreview = .T. degilse calismaz (ya da alt formlarda KeyPress kodunu override ettiysen)

8 Son düzenleyen, metin (07.10.2009 15:23:06)

Re: Kısa yol tuşları tanımlamak

neyzen yazdı:

Metin üsdat pulldown menüye bir popup ekleyerek oradan link vermek güzel bir çözümde,Kişiler bunu klavye tuşlarında hazır istiyolar.Eski programlardan alışkanlık sanırım.Müşteri haklıdır diyerek,onların isteği doğrultusunda bir çözüm mümkünse,o daha makul olacaktır.Çoğu maus kullanmaktan hoşlanmıyor malesef wink

iyi de menu barlarda ksayol tuşlarını da hazır veriyorsun zaten işte. nasıl word'de ctrl+s kaydet ise ve popup ta da görünüyorsa aynen öyle:

define bar 1 of mysave prompt "Kaydet" key ctrl+k,"Ctrl+K"

gibi...

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

9

Re: Kısa yol tuşları tanımlamak

Aaa,evet bu şekilde kullanmak mümkün smile .Metin üsdat bazen basit düşünemediğimden oluyor sanırım.Halbuki pulldown menüde bu tarz kısayollarda eklemişim tongue baktık olmadı öyle yaparız .

En büyük sermaye nakit,nakit sermaye vakittir...

10 Son düzenleyen, neyzen (07.10.2009 15:50:12)

Re: Kısa yol tuşları tanımlamak

cetinbasoz yazdı:

KeyPreview = .T. degilse calismaz (ya da alt formlarda KeyPress kodunu override ettiysen)

Çetin hocam,Alt formlarıda dikkate alarak,sıfırdan boş bir form oluşturdum. Oluşturduğum formun KeyPreview = .T.  yaptım. Class da aynı ayarları yaptım.Ve boş formu çalıştırdım .F1 e basınca yardım  tuşu çalışıyor.Benim Classa yazdığım kodlar çalışmıyor..Sonuç değişmedi big_smile acaba sıkıntı bendemi:rolleyes:

En büyük sermaye nakit,nakit sermaye vakittir...

11

Re: Kısa yol tuşları tanımlamak

F1 reserved Key dir ondan calismamistir.

12

Re: Kısa yol tuşları tanımlamak

soykanozcelik yazdı:

F1 reserved Key dir ondan calismamistir.

soykan üsdat    _base class taki formun keypress eventinde F3 ten F9 a kadar bazı kısayal tanımlamaları yaptım,onlar hiç çalışmadı.Dediğin gibi F1 heryerde yardım manasına geldiğinden kafasına göre çalıştı herhalde smile Benim istediğim bu değildi ama

En büyük sermaye nakit,nakit sermaye vakittir...

13

Re: Kısa yol tuşları tanımlamak

asagidaki kodlar benim bir formumun keypress kodlari

umarim fikir verir

Visual Fox Pro
Lparameters nKeyCode, nShiftAltCtrl

If Thisform.addmode=.F. Or Thisform.editmode=.F.
    Do Case
        Case nKeyCode=18 &&pgup
            If This.addmode = .T. Or This.editmode = .T.
                Nodefault
                Return
            Else
                oToolbar.cmdonceki.Click    &&This.onceki()
            Endif
        Case nKeyCode=3 &&pgdn
            If This.addmode = .T. Or This.editmode = .T.
                Nodefault
                Return
            Else
                oToolbar.cmdsonraki.Click &&    This.sonraki()
            Endif
        Case nKeyCode=31 &&ctrl+pgup
            If This.addmode = .T. Or This.editmode = .T.
                Nodefault
                Return
            Else
                oToolbar.cmdilk.Click    &&This.ilk()
            Endif
        Case nKeyCode=30 &&ctrl+pgdn
            If This.addmode = .T. Or This.editmode = .T.
                Nodefault
                Return
            Else
                oToolbar.cmdson.Click &&    This.son()
            Endif
        Case nKeyCode=-1 &&f2
            If This.addmode = .T. Or This.editmode = .T.
                Nodefault
                Return
            Else
                If Type("_Screen.ActiveForm.ActiveControl")=="O"
                    Local loActiveControlx
                    m.loActiveControlx = _Screen.ActiveForm.ActiveControl
                    If m.loActiveControlx.BaseClass = "Grid"
                        Nodefault
                        Return
                    Else
                        If This.detailpg_disabled = .T.
                            This.pf.pgdetay.SetAll([Enabled],.T.)
                        Endif
                        oToolbar.cmdyeni.Click    &&This.yeni()
                    Endif
                Endif
            Endif
        Case nKeyCode=-3 &&f4
            If This.addmode = .T. Or This.editmode = .T.
                Nodefault
                Return
            Else
                oToolbar.cmdduzelt.Click    &&This.duzelt()
            Endif
        Case nKeyCode=-5  && f6
            If This.addmode = .T. Or This.editmode = .T.
                If This.pf.ActivePage = 1
                    Nodefault
                    Return
                Else
                    oToolbar.cmdsil.Click    &&This.sil()
                Endif
            Endif
        Case nKeyCode=-7&& f8
            If This.addmode = .T. Or This.editmode = .T.
                Nodefault
                Return
            Else
                If Type("_Screen.ActiveForm.ActiveControl")=="O"
                    Local loActiveControly
                    m.loActiveControly = _Screen.ActiveForm.ActiveControl
                    If m.loActiveControly.BaseClass = "Grid"
                        oToolbar.cmdbul.Click    &&This.bul()
                    Endif
                Endif
            Endif
        Case nKeyCode=-8 && f9
            If This.addmode = .T. Or This.editmode = .T.
                Nodefault
                Return
            Else
                oToolbar.cmdyazdir.Click    &&This.yazdir()
            Endif
        Case nKeyCode=-9 && f10
            If This.addmode = .T. Or This.editmode = .T.
                Nodefault
                Return
            Else
                oToolbar.cmdcik.Click    &&This.cik()
            Endif
        Case nKeyCode=27 &&esc
            If This.addmode = .T. Or This.editmode = .T.
                Nodefault
                Return
            Else
                If m.gcLightBox &&public variable for lightbox effect
                    *Thisform.Release()
                    #Define Messagebox LightBoxMsgBox
                    nQuestion = Messagebox("Çıkmak İstediğinize Emin misiniz?",4+32+256,_Screen.ActiveForm.Caption,0)
                    Do Case
                        Case nQuestion = 7
                            Return
                        Case nQuestion = 6
                            Thisform.Release()
                    Endcase
                Else
                    Thisform.Release()
                Endif
            Endif
        Case nKeyCode=134 And This.pf.ActivePage = 2  &&f12
            If This.addmode = .T. Or This.editmode = .T.
                Nodefault
                Return
            Else
                This.RightClick()
            Endif
    Endcase
Endif
 
If Thisform.addmode=.T. Or  Thisform.editmode=.T.
    Do Case
        Case nKeyCode=-2 &&f3
            oToolbar.cmdkaydet.Click    &&This.kaydet()
        Case nKeyCode=-4 && f5
            oToolbar.cmdvazgec.Click &&    This.vazgec()
    Endcase
Endif
 
 
 
If Thisform.addmode=.F. Or  Thisform.editmode=.F. &&grid satir kopyala
    If Thisform.pf.ActivePage = 2   &&detay
        If nKeyCode = 2 &&ctrl + Rarrow
            If This.YumModul && yumurta modulu aktifse
                Wait Window "Satır Kopyalama Bu Modülde Aktif Değil....." Nowait
                Nodefault
                Return
            Else
                Wait Window "Satır Kopyalanıyor....." Nowait
                Select(Thisform.dosya2)
                Select Alias()
                Scatter Name oAlias Memo
                oAlias.myguid=guid()
                oAlias.islemno=stokhb.islemno
                oAlias.pMyguid=stokhb.myguid
                Append Blank
                *            Insert Into (Thisform.dosya2) From Name oAlias
                Gather Name oAlias
                Tableupdate(2,.T.,Thisform.dosya2)
                Thisform.pf.pgdetay.editgrid1.SetFocus()
                Thisform.pf.pgdetay.editgrid1.Refresh
                Thisform.hesapla()
                Keyboard '{TAB}' && fake to remove wait window
            Endif
        Endif
    Endif
Endif
 
If Thisform.addmode=.F. Or  Thisform.editmode=.F. &&grid satir sil
    If Thisform.pf.ActivePage = 2   &&detay
        If nKeyCode = 141 &&ctrl + Uarrow
            This.satirsil()
            *!*                This.hesapla()
            *!*                This.dovhesapla()
        Endif
    Endif
Endif
 
If Thisform.addmode=.F. Or  Thisform.editmode=.F.
    If Thisform.pf.ActivePage = 2   And oToolbar.cmdKart.Visible=.T. &&detay
        If nKeyCode = 11 &&ctrl + k
            Local lnSelect
            lnSelect=Select(0)
            oToolbar.cmdKart.Click()
            Select (m.nSelect)
        Endif
    Endif
Endif
 
If m.nKeyCode = 145 And ; && nerde olursa olsun 1.ci kolona gider
    m.nShiftAltCtrl = 2 ;
        And ;
        this.ActiveControl = This.pf.pgdetay.editgrid1
 
    With This.pf.pgdetay.editgrid1 As Grid   &&.editgrid1
        *.AfterRowColChange(1)
        *!*        If Empty(orders.order_id)
        *!*          Replace order_id With Padl(Reccount('orders'),6,'0') In 'orders'
        *!*        Endif
        *.Refresh
 
        For ix = 1 To .ColumnCount
            If .Columns(m.ix).ColumnOrder = 1
                If This.YumModul
                    .colCkodu.stb_textboxgrd1.SetFocus()
                    *    .Columns(m.ix).text1.SetFocus() &&.Columns(m.ix).SetFocus()
                Else
                    .colSkodu.stb_textboxgrd1.SetFocus()
                Endif
            Endif
        Endfor
    Endwith
Endif

14

Re: Kısa yol tuşları tanımlamak

Merhaba,
Bu kadar ustanın arasında ukalalık olmazsa eğer konuyla ilgili sayılabilecek bir deneyimimi paylaşmak istiyorum.
F1 tuşunu ben de Yardım için atamıştım. Ancak F1'e basınca VFP IDE ortamında VFP'nin kendi Help'i geliyor. Ancak programı derleyip EXE yapınca benim yarım ekranlarım çalışıyor. Bu arada CONFIG.FPW'de SCREEN = OFF satırı var.

15

Re: Kısa yol tuşları tanımlamak

Soykan üsdat ,yazdığın kodlar için teşekkür ederim.Yazdığın kodlar gördüğüm kadarı ile,herhangi bir kodun keypress eventi.O şekilde çözüm zaten mümkün.Benim sorunum her forma o şekilde kod yazmadan bu işi çözebilmek.Çetin hocamın dediği mantıkla, Formun clasına bu kodları yazdığımızda her yerden çalışsa mükemmel olacak.Gerçi üsdadımız tarif etti ama,ben beceremedim herhalde roll

En büyük sermaye nakit,nakit sermaye vakittir...

16

Re: Kısa yol tuşları tanımlamak

Evet bir formun Keypress.Event i , ve bir kismida o forma özel 70% standart , Cetin hocanin dedigi gibi standart tuslari (ileri,geri,son,ilk vs) formun keypress.event ina yazar ve o formu class olarak kaydedersen ondan sonra kullanacagin formlari o class tan yaratirsan onlar standart olarak gelmis olacak

Visual Fox Pro
CREATE FORM [FormName | ?] [AS cClassName FROM cClassLibraryName | ?]

 
   [NOWAIT] [SAVE] [DEFAULT] [[WINDOW WindowName1] [IN [WINDOW]
 
            WindowName2 | IN SCREEN]]

17

Re: Kısa yol tuşları tanımlamak

Neyzen,
Oncelikle Kandilzadenin dedigi gibi her tusu IDE ortaminda test edemezsin. Bazilari o sirada VFP'ye ayrilmis ozel tuslar (F1, F2, F10 gibi). Exe'de calisirlar. Ancak ben IDE'de testini yapamadigin tuslari kullanmandan yana degilim.
Metin'in dedigi menu oldukca akillica bir cozum aslinda. Menu'de kisa yol tulsari tanimlayabiliyorsun ve VFP'de ilginctir bir menunun islevini yapmasi icin gorulmesi gerekmiyor:) Define ... kisimlari olup o anki gecerli menu olsa oluyor. Faydalarindan birisi de normalde Keypress ile yakalayamadigin 'Alt' kombinasyonlari menu ile olur (bir de label uckagidi ile).

"On key label" gecmiste kaldi, hala calisiyor calismasina ama tavsiye edilmeyen bir yontem (cunku Keypress gibi eventler normal akis icinde degerledirilirken 'On' serisi komutlar "ne isin varsa birak bana bak" gibisinden - gostermesi cok zor ama basina dert acabilir gibi geliyor).

Bunlari soyledikten sonra baseform ile ornek:

Visual Fox Pro
Public oForm1, oForm2

oForm1 = Createobject('FunctionSample1')
oForm2 = Createobject('FunctionSample2')
 
oForm1.Caption = "Bunda hic override yok"
oForm2.Caption = "F3 override - digerleri base"
 
oForm2.Left = 200
oForm2.Top  = 200
 
oForm1.Show()
oForm2.Show()
 
Define Class FunctionSample1 As baseform
  Height=400
  Width=800
  Add Object grdCustomer As Grid With ;
    Left=5,Top=5,Height=390,Width=500,;
    Anchor=1+2+4+128,RecordSource='crsCustomer'
 
  Add Object lblCustomerID As Label With ;
    left=510, Top= 5, Width=100,Alignment=1,Anchor=2+8,Caption='Customer ID'
  Add Object lblCompany As Label With ;
    left=510, Top=35, Width=100,Alignment=1,Anchor=2+8,Caption='Company'
  Add Object lblContact As Label With ;
    left=510, Top=65, Width=100,Alignment=1,Anchor=2+8,Caption='Contact'
 
  Add Object txtCustomerID As TextBox With ;
    left=615, Top= 5, Width=100,Anchor=2+8,ControlSource='crsCustomer.Cust_ID'
  Add Object txtCompany As TextBox With ;
    left=615, Top=35, Width=100,Anchor=2+8,ControlSource='crsCustomer.Company'
  Add Object txtContact As TextBox With ;
    left=615, Top=65, Width=100,Anchor=2+8,ControlSource='crsCustomer.Contact'
 
  Procedure Load
    Select * From (_samples+'Data\Customer') Into Cursor crsCustomer Readwrite
    Use In 'Customer'
  Endproc
 
  Procedure grdCustomer.AfterRowColChange
    Lparameters nColIndex
    Thisform.Refresh()
  Endproc
Enddefine
 
Define Class FunctionSample2 As baseform
  Height=400
  Width=800
  Add Object grdCustomer As Grid With ;
    Left=5,Top=5,Height=390,Width=790,;
    Anchor=1+2+4+8,RecordSource='crsCustomer'
 
  Procedure Load
    Select * From (_samples+'Data\Customer') Into Cursor crsCustomer Readwrite
    Use In 'Customer'
  Endproc
 
  * Overriding
  Procedure OnFunctionKey(tnKeyNumber, tnShiftCtrl, tlHandled)
    Local llShift,llCtrl
    llShift = Bittest(m.tnShiftCtrl,0)
    llCtrl  = Bittest(m.tnShiftCtrl,1)
 
    tlHandled = .T. && Key is handled here
    Do Case
      Case m.tnKeyNumber = 3 And m.tnShiftCtrl = 0 && F2
        This.Caption = Textmerge('Function key F<<m.tnKeyNumber>> pressed. Handling override F3')
      Otherwise
        * digerlerini baseclass halletsin
        DoDefault(m.tnKeyNumber, m.tnShiftCtrl, @m.tlHandled)
        * ya da diger tuslarla isin yok
        * tlHandled = .F.
    Endcase
  Endproc
Enddefine
 
Define Class baseform As Form
  DataSession = 2
  KeyPreview=.T.
 
  Procedure KeyPress
    Lparameters nKeyCode,nAltShiftCtrl
 
    Local llFunctionPressed, llShift, llCtrl, llShiftCtrl
    llShift     = (m.nAltShiftCtrl = 1)
    llCtrl      = (m.nAltShiftCtrl = 2) Or (m.nAltShiftCtrl = 3)
 
    llFunctionPressed = (Between(m.nKeyCode, -8, -1) Or ;
      (Between(m.nKeyCode, 85, 92) And m.llShift) Or ;
      (Between(m.nKeyCode, 95, 102) And m.llCtrl))
 
    If m.llFunctionPressed
      Local llHandled
      This.HandleFunctionKey(m.nKeyCode,m.nAltShiftCtrl, @m.llHandled)
      If m.llHandled && Tusun normaldeki islevini engelle
        Nodefault
      Endif
    Endif
  Endproc
 
  Procedure HandleFunctionKey(tnKeyCode,tnAltShiftCtrl, tlHandled)
    Local lnKeyNumber
    Do Case
      Case Between(m.tnKeyCode, -8, -1)
        lnKeyNumber = Abs(m.tnKeyCode)+1
      Case Between(m.tnKeyCode, 85, 92)
        lnKeyNumber = m.tnKeyCode-85+2
      Case Between(m.tnKeyCode, 95, 102)
        lnKeyNumber = m.tnKeyCode-95+2
    Endcase
    This.OnFunctionKey(m.lnKeyNumber, m.tnAltShiftCtrl, @m.tlHandled)
  Endproc
 
  * Baz uygulama. Subclass formlarda override edilebilir
  Procedure OnFunctionKey(tnKeyNumber, tnShiftCtrl, tlHandled)
    Local llShift,llCtrl
    llShift = Bittest(m.tnShiftCtrl,0)
    llCtrl  = Bittest(m.tnShiftCtrl,1)
 
    tlHandled = .T. && Key is handled here
    Do Case
      Case m.tnKeyNumber = 3 And m.tnShiftCtrl = 0 && F3
        This.Caption = Textmerge('Function key F<<m.tnKeyNumber>> pressed. Handling F3')
      Case m.tnKeyNumber = 3 And !m.llCtrl And m.llShift && Shift+F3
        This.Caption = Textmerge('Function key F<<m.tnKeyNumber>> pressed. Handling ShftF3')
      Case m.tnKeyNumber = 3 And m.llCtrl And m.llShift && Shift+Ctrl+F3
        This.Caption = Textmerge('Function key F<<m.tnKeyNumber>> pressed. Handling ShftCtrlF3')
      Case m.tnKeyNumber = 4 And m.tnShiftCtrl = 0 && F4
        This.Caption = Textmerge('Function key F<<m.tnKeyNumber>> pressed. Handling F4')
      Case m.tnKeyNumber = 5 And m.tnShiftCtrl = 0 && F5
        This.Caption = Textmerge('Function key F<<m.tnKeyNumber>> pressed. Handling F5')
      Case m.tnKeyNumber = 5 And m.llCtrl And !m.llShift && Ctrl+F5
        This.Caption = Textmerge('Function key F<<m.tnKeyNumber>> pressed. Handling CtrlF5')
      Otherwise && digerlerini pas gectik
        tlHandled = .F.
    Endcase
  Endproc
 
Enddefine

18

Re: Kısa yol tuşları tanımlamak

kandilzade yazdı:

Merhaba,
Bu kadar ustanın arasında ukalalık olmazsa eğer konuyla ilgili sayılabilecek bir deneyimimi paylaşmak istiyorum.

Ne demek. Fikirlerini aciklamandan daha dogal birsey yok. Ustune ustluk sen o ana kadar soylenmeyen bir noktaya deginmissin. Fikirlerini soyleyeceksin tabii. En iyi ogrenme/ogretme yollarindan birisi bu bence. Eger yanlis birsey soylersen baskalari duzeltecek ve hem sen kendini test etmis olacaksin hemde hatan varsa dogrusunu ogrenmis olacaksin.

Beni tilt eden diger forumlarda bilmeden yazan, ama bunu da "sallama" yontemiyle yapanlar, yazim tarzlarindan dogruluguna kendileri de inaniyor gibi geliyor.

19

Re: Kısa yol tuşları tanımlamak

Bu arada bu kadar rahat eğitim amaçlı 10 saniyede çalıştırılıp test edilebilecek örnek kod parçası (hatta çetin bey zorlasa ufak bir uygulama bile olabilir) verilebilen bir yazılım geliştirme ortamı hakkında bilgisi olan var mı ? Ayrıca foxpro kadar temiz ve göze hitap eden bir söz dizimi olacak. Bu bir tartışma başlatmak için değil sadece çetin beyin en son gönderdiği kod parçasını prg içine kopyalayıp çalıştırdığımda hissettiklerimi ifade etmek için yazdım.

altun

20

Re: Kısa yol tuşları tanımlamak

cetinbasoz yazdı:


"On key label" gecmiste kaldi, hala calisiyor calismasina ama tavsiye edilmeyen bir yontem (cunku Keypress gibi eventler normal akis icinde degerledirilirken 'On' serisi komutlar "ne isin varsa birak bana bak" gibisinden - gostermesi cok zor ama basina dert acabilir gibi geliyor).


ben her projenin başında
ON KEY LABEL Shift-F8 DO saçmasapan
gibi bir komut koyuyorum. Tabi PROCEDURE saçmasapan yok.

Deneme sırasında program loopa girerse veya örneğin SQL yanlışlıkla acaip büyük bir data çağırırsa basarak programı ERROR tuzağı ile durdurmak (kırmak) için. Tabi design sırasında ON ERROR geçerli.
Biraz ilkel bir metod ama çok işime yarıyor - Belki arkadaşlara faydam olur diye yazdım.

VFP9 SP2

21

Re: Kısa yol tuşları tanımlamak

cetinbasoz yazdı:

...
Metin'in dedigi menu oldukca akillica bir cozum aslinda. Menu'de kisa yol tulsari tanimlayabiliyorsun ve VFP'de ilginctir bir menunun islevini yapmasi icin gorulmesi gerekmiyor:) Define ... kisimlari olup o anki gecerli menu olsa oluyor. Faydalarindan birisi de normalde Keypress ile yakalayamadigin 'Alt' kombinasyonlari menu ile olur (bir de label uckagidi ile).

"On key label" gecmiste kaldi, hala calisiyor calismasina ama tavsiye edilmeyen bir yontem (cunku Keypress gibi eventler normal akis icinde degerledirilirken 'On' serisi komutlar "ne isin varsa birak bana bak" gibisinden - gostermesi cok zor ama basina dert acabilir gibi geliyor).
...

ben menüyü avantajları dışında windows standardı olduğu için de tercih ediyorum. tamam keypress içine üç beş satır kod yazmak menüden daha kolay ama bence altta F3: liste  f4: müşteri bul f5: ..... yazan bir form bana çok ilkel geliyor. eski dos zamanları gibi. bir word, excel öyle mi? ha ben bunu diyorum ama bir çok çok satan programda ve hatta yabancı programlarda da böyle çirkin formlar gördüm ben. zaten onları gördükten sonra yabancı programları da gözümde fazla büyütmüyorum. ne çirkin ekranlar yapıyorlar adamlar şaşarsınız.

benim herkese tavsiyem menu+toolbar. toolbar kullanmak yerine formun içine gömülü butonlar daha kolay geliyor arkadaşlara ancak toolbar gotfocus ve setfocus eventlarını tetiklemiyor ve böylece yanlış bir değer girmişken bile vazgeç butonuna basabiliyor kullanıcınız.
şimdi de ribbon kontrol geldi. malesef onun için ya etec in .net bağlantı tool'u, ya başka bir 3. parti ribbon kontrol ya da windows 7 (windows 7 de standartmış, bir çinli microsoft'taki windows 7 seminerinde anlatmıştı) gerekli. bir de codeplex vfpx'te bir ribbon kontrol beta class vardı ama malesef felaket bir durumda ve bir yıldır dokunulmamış. o sitede de bir hevesle girişilmiş ve sonra bırakılmış proje dolu malesef. bu da tabii moral bozuyor. ben de aldım bir c# kitabı artık.

soykan'a not: yazı biraz uzun sürse, biraz gönder için beklesek güvenlik gerekçesiyle göndermeyi reddediyor site. hiçbir forumda yok bu. bence can sıkıcı gereksiz bir güvenlik önlemi. zaten geri basıp tekrar cevap tuşuna basınca şifre filan istemiyor. yani güvenliğe hiçbir katkısı yok.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

22 Son düzenleyen, neyzen (09.10.2009 08:28:51)

Re: Kısa yol tuşları tanımlamak

Çetin hocam,bu fevkalade örnek için çok çok teşekkür ederim,Metin Üsdadın da bahsettiği Programı(Çirkin arayüzlü program) biliyorum.:D Bir tanede bizde var ondan.(Her yeri F2,F3.. fonksiyon tuşları ile dolu..) Kullanıcılar Dos modundaki versiyonuna alıştıklarından,Windows versiyonunda da aynı gelenek bozulmamış.Kullanıcılara sorsan mükemmel.Bana sorsan Ekran tasarımı rezalet.Metin üsdadın görüşüne tamamen katılıyorum.O yüzden bir defa daha değerlendirmeye karar verdim şu fonksiyon tuşu meselesini big_smile big_smile big_smile

En büyük sermaye nakit,nakit sermaye vakittir...