Kayıtlar

$REGION

Resim
The IDE supports since Delphi 2005 code folding of marked regions. {$REGION 'Hidden Code'} Beep; Beep; Beep; {$ENDREGION} folds down to just Hidden Code in the IDE editor window. Source:  http://www.tindex.net/Language/$REGION.html Kodlarınızda aşağıdaki gibi REGION tanımlarınızı yaptığınızdaki o kodu açtığınızda ikince resimdeki gibi yaptığınız tanımlar gözükecek istediğin iz kodu açıp inceleyebilirsiniz bu şekilde daha temiz bir görüntü elde etmiş olacaksınız. İkinci resimdeki görüntü geçen gün gönderdiğim More Coding in Delphi kitabında bahsedilen Spring framework’ünün sourcelarından alınmıştır.

Delphi - cxLookupCombobox'a buton ekleme

Resim
Aşağıdaki kodla MRUEdit gibi cxLookupCombobox’a button ekleyip, butonlara da kendi yazdığınız ya da herhangi bir OnButtonClick event’ini bağlayabilirsiniz. Event’de AbuttonIndex kontrolü yapmazsanız LookupCombobox’ın standart butonu içinde –Liste açıkken tıklarsanız- yazacağınız kod çalışıyor. –Başka bir amaç için ihtiyacaç olabilir- type TcxCustomEditPropertiesAccess = class(TcxCustomEditProperties); ... TcxCustomEditPropertiesAccess(cmb_Park_Group.Properties).OnButtonClick := myPropertiesButtonClick; //event bağla with TcxCustomEditPropertiesAccess(cmb_Park_Group.Properties).Buttons.Add do begin Kind := bkEllipsis; LeftAlignment := True;  //Butonları sol tarafa alır end; procedure TForm1.myPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin if AButtonIndex = 1 then begin ShowMessage('TEST'); end;

Delphi - Event Override via Interceptor Class

Aşağıdaki şekilde mevcut bir type'ın bir özelliğini (event) override edebilirsiniz. Örnekte TButton'ın click event'ının procedure'ü override ediliyor. Bu işlemi ya etkilenmesini istediğini formda yapmanız gerekiyor ya da başka bir form/unit'de yaptıysanız override işlemini yaptığınız bileşenin uses'ını ilgili bileşene ait olan uses'dan sonra yazmalısınız (bu örnek için bu kodu Global_Unit diye bir dosyada yaptıysanız uses'da Global_Unit'i en sonda ya da en azından Vcl.StdCtrls -bileşenin uses dosyası- ndan sonra eklemelisiniz. Most importantly, add the "button_interceptor" unit in the uses list as the last unit listed , or at least after the "stdctrls" unit! type   TButton = class(Vcl.StdCtrls.TButton)   public  procedure Click; override;  end; Kaynak: http://delphi.about.com/od/delphitips2009/qt/interceptor.htm

Temel Oracle Fonksiyonları

Oracle'da en çok kullanacağınız temel oracle fonksiyonlarını aşağıda açıkl ama ve örnekleri ile bulabilrsiniz. Umarım işinize yarar; PLSQL Numeric Functions ROUND(N , x) : Return the number N rounded to x decimal places. If x <0 it rounds N to x places to the left. Example: ROUND(1234.468,2)  returns 1234.5      ROUND(1234.468,-2)  returns 1200 Example: TRUNC(123.456,2) returns 123.45                 TRUNC(123.456,-2) returns 100 Example:  SIGN(-234) returns -1       SIGN(452) returns 1 Example: ABS(-541) returns 541. Example: MOD(10,4) returns 2. MOD(5,2) returns 1 Example: CEIL(123.456) returns 124. CEIL(-123.456) returns -123 Example: FLOOR (123.456) returns 123. FLOOR (-123.456) returns -124 TRUNC(N , x): Return the number with the ...

Türkçe Upper

Oracle'ın büyük harfe çevir (upper), küçük harfe çevir (lower), ilk harfleri büyük yap (initcap) fonksiyonları bildiğiniz ya da deneyip görebileceğiniz gibi İngilizce kurallarına göre çalışmaktadır. Örneğin elinizde "ismail" ismi, "bilir" soyadı olsun. Bu değerleri ismi initcap, soyadı ise upper ile çevirirseniz aşağıdaki sonuçla karşılaşırsınız: select initcap('ismail') || ' ' || upper('bilir') "Ad Soyad"from dual; Ad Soyad   ------------ Ismail BILIR 1 row selected. Elde ettiğimiz çıktı "Ismail BILIR" oldu. Bizim istediğimiz çıktı ise "İsmail BİLİR" olacaktı. Bu durumda oracle'ın nls_ ile başlayan functionları devreye giriyor: select nls_lower('İSİM: ', 'NLS_SORT = XTURKISH') || nls_initcap('ismail', 'NLS_SORT = XTURKISH') || ' ' || nls_upper('bilir', 'NLS_SORT = XTURKISH') "Ad Soyad"from dual; Ad Soyad         --------...

Generating random numbers and strings in Oracle

Do you know how to auto generate random numbers or strings in Oracle? Generating random numbers is required when there is a need to create a lot of data for testing purposes, or when we simply need to use a number to temporarily tag a process. It may also be necessary to generate random password strings of a fixed size--a very common requirement for websites that create and maintain logins for users. Whatever the need, the fact is that Oracle provides us with a random number generator. This option is faster than writing your own random generation logic in PL/SQL as Oracle's internal processing logic is used. In addition, it can also be used to generate both character and alphanumeric strings. DBMS_RANDOM package The DBMS_RANDOM package will generate random data in character, numeric or alphanumeric formats. The size and the range from which to pickup the random values can also be specified. This package is created by the script dbmsrand.sql available in the <OR...

Oracle'da sleep komutu

Bir programda örneğin bir işi bir kaç defa belli bir süre aralığıyla tekrar denemek isteyebilirsiniz. Örneğin mail gönderme işleminiz başarısız olursa toplamda 3 defa 10 sn. aralıkla bu işi tekrar yapmayı deneyebilirsiniz, geçici network problemleri ya da anlık problem bu süre zarfında düzelirse işleminiz başarılı bir şekilde gerçekleşmiş olur. Çoğu dilde bu işi yapan ve süreyi genelde milisaniye cinsinden belirtebildiğimiz sleep komutu vardır. Oracle'ın PL/SQL dilinde bunun karşılığı dbms_lock.sleep procedure'üdür ve süre saniye cinsinden verilir. Örnek kullanım aşağıdaki gibidir. declare    l_date_1    timestamp;    l_date_2    timestamp;  begin    l_date_1 := systimestamp;    dbms_lock.sleep(1); //1 sn. uyu. (1 ms. değil dikkatli olun!)    l_date_2 := systimestamp;    dbms_output.put_line( to_char(l_date_2 - l_date_1, 'ss') );     ...