Alt+F4 tuş kombinasyonuyla programın kapanmaması için Formun KeyPreview özelliğini True yapın, daha sonra formun OnKeyDown olayına aşağıdaki kodu yazın. if ((ssAlt in Shift) and (Key = VK_F4)) then Key := 0; Bir string'in başındaki ve sonundaki boşlukları atmak için Trim(string) TrimLeft (string) //stringin sadece başındaki boşlukları atmak için TrimRight (string) //stringin sadece sonundaki boşlukları atmak için Listbox'a, Memo'ya ve Combobox'a bir seferde birden çok eleman eklemek Listbox1.items.SetText('Ali'#13'Veli'#13'kırkdokuzelli'); Memo1.Lines.SetText('Ali'#13'Veli'#13'kırkdokuzelli'); Combobox1.items.SetText('Ali'#13'Veli'#13'kırkdokuzelli'); II. Yol : Mustafa Kılınç tarafından gönderilmiştir. procedure TForm1.Button1Click(Sender: TObject); Memo içinde imlecin hangi satır ve kolonda olduğunu bulma var ListBox veya ComboBox'ta seçili bir veya birden fazla öğeyi seçilmemiş hale getirme ListBox1.ItemIndex := -1; Combobox1.ItemIndex := -1; Bir menü öğesini kullanılamaz hale getirmek MainMenu1.Items[0].Items[1].Enabled:= False; //ilk menünün, ikinci elemanı Bir edit'e sadece istediğiniz karakterlerin girilmesini sağlayabilirsiniz. Bunun için Edit'in OnKeyPress olayına aşağıdaki kodu yazın. if not (key in ['0'..'9',#8]) then NOT: Kullanıcı Edit'e rakamların dışında karakter giremez, ancak Paste ile Edit'e bir metni kopyalayabilir. Bunuda Edit'in OnExit olayında kontrol edip, girilen değerin istediğiniz şekilde olup olmadığını kontrol edebilirsiniz. Bir Popup menüyü kod ile gösterme PopupMenu1.Popup(Form1.Left+60, Form1.Top+140); Sistem tarihini ve saatini değiştirmek Sistemin tarihini ve saatini değiştirmek için SetLocalTime fonksiyonunu kullanabilirsiniz. var t:TSystemTime; begin t.wYear:=1998; t.wMonth:=5; t.wDay:=23; t.wHour:=12; t.wMinute:=34; SetLocalTime(t); end; Sayıları virgüllerle yazmak Bu iş için FormatFloat fonksiyonunu kullanabilirsiniz. Sayı windows'unuz ayarına göre 12.345.678 veya 12,345,678 şeklinde gösterilir. procedure TForm1.Button1Click(Sender: TObject); Edit'e girilen metnin ilk harfini büyük harf yapma Bunun için Edit'in OnKeyPress olayına aşağıdaki kodu ekleyin. with Sender as TEdit do if (SelStart = 0) or (Text[SelStart] = ' ') then if Key in ['a'..'z'] then Key := UpCase(Key); Fareyi meşgul şekilde göstermek Bir işlem yaparken makinenin meşgul olduğunu göstermek için fareyi kum saati şeklinde gösterip sonra eski haline getirmek için aşağıdaki gibi bir kod kullanabilirsiniz. try Screen.Cursor := crHourGlass; {buraya kodunuzu yazın...} finally Screen.Cursor := crDefault; end; procedure TForm1.FormCreate(Sender: TObject); begin SpeedButton1.Hint:= 'Çok satırlı ipucunu ' + chr(13) + 'mutlaka denemelisiniz ' +chr(13) + 'çok güzel'; end; Form'un arka kısmına bir resmi döşemek Bitmap: TBitmap; procedure TForm1.FormCreate(Sender: TObject); begin Bitmap := TBitmap.Create; Bitmap.LoadFromFile('C:\WINDOWS\cars.BMP'); end; procedure TForm1.FormPaint(Sender: TObject); var X, Y, W, H: LongInt; begin with Bitmap do begin W := Width; H := Height; end; Y := 0; while Y < Height do begin X := 0; while X < Width do begin Canvas.Draw(X, Y, Bitmap); Inc(X, W); end; Inc(Y, H); end; end; Hareketli İmleç(animated cursor)leri kullanma procedure TForm1.Button1Click(Sender:TObject); var h : THandle; begin h := LoadImage(0, 'C:\Magic.ani', IMAGE_CURSOR, 0, 0, LR_DEFAULTSIZE or LR_LOADFROMFILE); if h = 0 then ShowMessage('Cursor not loaded') else begin Screen.Cursors[1] := h; Form1.Cursor := 1; end; end; Sürücünün kapasitesini ve sürücüdeki boş yer miktarını bulmak DiskFree(0) //o anki sürücüdeki boş yer miktarını
byte cinsinden döndürür. Bir form üzerindeki tüm bileşenleri read only(salt okunur) yapma uses kısmına typinfo unitini ekleyin. procedure TForm1.SetReadOnly( Value : boolean ) ; procedure TForm1.Button1Click(Sender: TObject); Değişik şekilde bir edit elde etmek için formun OnCreate olayına aşağıdaki kodu yazın. SetWindowRgn( Edit1.handle, Bir klasörün boyutunu öğrenmek Bir klasördeki dosyaların kaç byte yer kapladığını öğrenmek için function TForm1.GetDirectorySize(const ADirectory:
string): Integer; procedure TForm1.Button1Click(Sender: TObject); Bir dosyanın özelliklerini gösterme procedure TForm1.Button1Click(Sender: TObject); Programım hangi klasörde çalışıyor procedure TForm1.Button1Click(Sender: TObject); II.Yol : Mustafa Kılınç tarafından gönderilmiştir. procedure TForm1.Button1Click(Sender: TObject); Bir dosyayı geri dönüşüm kutusuna (recyle bin) atmak uses kısmına shellapi unitini ekleyin. procedure TForm1.Button1Click(Sender: TObject); procedure TForm1.Button1Click(Sender: TObject); Bmp dosyasını JPEG'e dönüştürme uses kısmına jpeg unitini ekleyin. procedure TForm1.Button1Click(Sender: TObject); 24.499999 gibi bir sayıyı 24.5'e aşağıdaki kodla yuvarlayabilirsiniz. procedure TForm1.Button1Click(Sender: TObject); {Bu kod Mustafa Kılınç tarafından gönderilmiştir} Bir dosya yolunun (path) sonundaki \ karakterini silme Bunun için
Bunun için
İçinde bulunduğumuz ayın son gününü nasıl bulurum function LastDayCurrMon: TDate; Escape tuşuna bastığımda form kapansın Formun KeyPreview özelliğini True yapın. Daha sonra OnKeyPress olayına aşağıdaki kodu yazın. procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); Internetten dosya indirme (download) uses kısmına ShellApi ve UrlMon unitlerini ekleyin. function DownLoadInternetFile(Source, Dest :
String): Boolean; Environment Variable'ları bulma Environment variable bilgisayardan bilgisayara değişen bazı klasör ve değişkenlere verilen isim. Mesela Belgelerim klasörü gibi. Bu klasörü bir bilgisayarda c:\Belgelerim iken diğerinde c:\Mustafa\Belgelerim olabilir. Bunların tam listesini komut satırından SET komutunu vererek öğrenebilirsiniz. Bu değişkenlerden bazıları : Windows klasörü, Bilgisayar ismi, Domain ismi, Kullanıcı ismi, işlemci bilgileri... ShowMessage(GetEnvironmentVariable('Temp')); Satır ekledikçe RichEdit aşağı doğru kaysın RichEdit1.Lines.Add('New text'); Integer'dan binary string'e çevirme
Kullanılan fare'nin ortasında döndürme tekerleği var mı? Bunu öğrenmek için mouse global nesnesini kullanabilirsiniz. if Mouse.WheelPresent then Delphi'nin çalışıp, çalışmadığını test etme Bu daha çok shareware tarzı componentlerde çok kullanılıyor. Delphi açıkken component çalışıyor, ancak kapanınca exe dosyadan çalışmıyor. Kullanıcı componenti rahatça deniyor, ama dağıtamıyor. Aşağıdaki kodla Delphi'nin çalışıp, çalışmadığını anlayabilirsiniz : if FindWindow('TAppBuilder', Nil) <> 0
then Radio Grup'taki bir öğeyi kullanılamaz yapma TRadioButton(RadioGroup1.Controls[1]). Enabled := False; Programınızı Windows açılışında otomatik olarak çalışacak şekilde ayarlama uses kısmına Registry unitini ekleyin. procedure TForm1.Button1Click(Sender: TObject); Listbox'a aralıklı (tab) öğeler ekleyin Listbox'ın TabWidth özelliğini 100 olarak girin. Bu aradaki boşluğu belirtir. Daha Sonra eklemek istediğiniz öğeler arasına ^I (Tab karakteri) koyarak öğeleri ekleyin. Listbox1.Items.Add ('Bir'^I'İki'^I'Üç'); HTML Help (.chm) yardım dosyasını Delphi ile kullanma Delphi içerisinde herhangi bir HTML Help bileşeni gelmiyor ancak, EHS isimli bedava bileşen sayesinde HTML Help (.chm) dosyalarını Delphi ile kullanabilirsiniz. Bileşeni sitesinden indirebilirsiniz : www.ec-software.com StringGrid'in her zaman ilk hücresi seçili oluyor, bunu istemiyorum Aşağıdaki kodu projenize eklerseniz, stringGrid üzerinde seçili alan gözükmeyecektir.
procedure TForm1.FormCreate(Sender: TObject); Çalışma anında (runtime) StringGrid oluşturamıyorum TWinControl sınıfından bileşenleri runtime oluştururken, mutlaka parent vermelisiniz. Hata büyük ihtimal bundan kaynaklanıyor. Örnek kod :
procedure TForm1.Button1Click(Sender: TObject); Edit'te yazarken binlik ayıracının gözükmesini istiyorum Bu iş için bedava olan şu iki bileşeni kullanabilirsiniz : birincisi Rx Library/JVCL içindeki bir bileşen ( www.delphi-jedi.org ), ikincisi TAdvEdit ( www.tmssoftware.com ). Bu iş için Rx Library / JVCL içindeki TRxGifAnimator isimli bileşeni kullanabilirsiniz. Bu paket bedava dağıtılmaktadır, www.delphi-jedi.org Formun başlık çubuğunu (title bar) gizleme Formun OnCreate olayına aşağıdaki kodu yazın : procedure TForm1.FormCreate(Sender: TObject); Başka bir uygulamaya karakter gönderme aşağıdaki örnek notepad uygulamasına A karakterini gönderir. procedure TForm1.Button1Click(Sender: TObject); Formları başlık çubuğundan tutmadan taşımak için veya form üzerindeki herhangi bir nesneyi taşımak için, OnMouseDown olayına aşağıdaki kodu yazın. procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; F1, F2, F3 gibi Fonksiyon Kısayol Tuşlarını Kullanmak Formun KeyPreview özelliğini True yapın ve OnKeyDown olayına aşağıdaki kodu yazın : if Key = VK_F2 then image1.picture.bitmap := nil; Bir Formu Runtime'da Oluşturup, Yok Etmek Project menüsünden Options komutunu verin ve formu Avaible Forms kısmına taşıyın. Daha sonra aşağıdaki kodla formu gerektiği zaman oluşturup kullanabilir ve işi bitince yok edebilirsiniz. Böylece form boş yere hafızada yer işgal etmemiş olur. try WebBrowser'da Bir Kelimeyi Bulma Aşağıdaki fonksiyon istediğiniz kelimeyi webbrowser'da bulup aydınlatır. {....} Internet Bağlantısını Kontrol Etmek Bunun için bir kaç yöntem var : 3. Aşağıdaki Kod : procedure TForm1.Button1Click(Sender: TObject); Form Başlık Çubuğundan(title bar) Taşınamasın Formun OnCreate olayına aşağıdaki kodu yazın : procedure TForm1.FormCreate(Sender: TObject); Bedava olarak dağıtılan TurboPower ShellShock içindeki Shortcut bileşeni ile kolayca kısayol oluşturabilirsiniz. Bu hata oluşturulmayan/olmayan bir nesneye ulaşmaya çalıştığınzda meydana gelir. Mesela henüz oluşturulmamış bir formu göstermek istediğinizde. Genelde karşılaşılan durumlardan biri de DataModule kullananların, datamodule henüz oluşturulmadan burdaki nesneleri kullanmak istemeleridir. Eğer datamodule kullanıyorsanız, Project menüsünden Options komutunu verin. Forms sekmesinde, Auto-create forms kısmında datamodule'ü ilk sıraya taşıyın. procedure TForm1.ConvertJpgToBitmap(Jpeg: TJpegImage); RandomRange fonksiyonunu kullanabilirsiniz.
Bu fonksiyon, verdiğiniz
aralıkta rastgele(random) sayı üretir. Math unitini uses kısmına ekleyin. CopyFile fonksiyonu ile dosya kopyalayabilirsiniz. Sondaki parametre False ise aynı isimde dosya varsa üzerine yazar, True ise yazmaz. CopyFile('c:\1.txt', 'c:\Mustafa\1.txt', False); Çalışan Programların Listesini Alma function EnumWindowsProc(Wnd: HWND; List: TStrings): Boolean; stdcall; procedure TForm1.Button1Click(Sender: TObject); Bazı işlemleri yaparken fareyi bir konuma taşıyıp, otomatik tıklama yapmasını isteyebilirsiniz. Bu durumda SetCursorPos ile kursörü istediğiniz konuma taşıyıp, aşağıdaki kodu yazın : mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); Harddisk'in Fabrika Seri Numarasını Bulma Ide Diskler için : ide_sn.zip (4 KB), SCSI Diskler için : scsi_sn.zip (4 KB). NOT : Windows 9x'te SMARTVSD.VXD isimli dosyayı "windows\system" klasöründen "windows\system\iosubsys" klasörüne kopyalayıp restart etmek gerekiyor. TImage'deki Resmi Başka Bir TImage'a Atamak ArkaPlan.Picture.Bitmap.Assign(image1.picture.bitmap); //image1'deki resim ArkaPlan'a atanır. StringGrid'te Enter Tuşuna Basınca Yan Hücreye Geçsin StringGrid'in OnKeyDown olayına aşağıdaki kodu yazın :
if (key = vk_return) and
(StringGrid1.Col < StringGrid1.ColCount-1) then |
|||||||||||||||||||||||||||||||