Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

Gönderen Konu: Butto'nun Kenarlarını Rekli Yapın  (Okunma sayısı 1877 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Subhan

  • Delphi XE2 Level 5
  • *****
  • İleti: 818
  • Rep: +1/-0
  • Cinsiyet: Bay
Butto'nun Kenarlarını Rekli Yapın
« : 07 Haziran 2008 20:44:57 »
Güle Güle kulanı  :::)

unit DenizSoft;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
rgn :hrgn;
begin
rgn := CreateRoundRectRgn(0,0,Button1.width,Button1.height,20,20);
SetWindowRgn(button1.handle,rgn,true);
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
canvas.pen.Width := 5;
canvas.pen.color := clblue;
with button1 do
  canvas.RoundRect(left,top,width+left,height+top,20,20);
end;

end.
En Güzel Azeri Programlama Sitesi.

Proqramlasdirma.Com

Çevrimdışı Opt2000

  • Global Moderatör
  • *****
  • İleti: 263
  • Rep: +9/-1
  • Cinsiyet: Bay
Ynt: Butto'nun Kenarlarını Rekli Yapın
« Yanıtla #1 : 07 Haziran 2008 23:03:06 »
Selam,

Kodda kişisel olarak çok önem verdiğim, ama maalesef programcıların pek dikkate almadığı bir sorun var. Aşağıdaki satırlar Win32 SDK Help'ten alıntıdır.

Alıntı
When you no longer need the HRGN object call the DeleteObject function to delete it.

Türkçesi,
Alıntı
HRGN nesnesine ihtiyacınız kalmadığı zaman DeleteObject fonksiyonu ile nesneyi siliniz.

Delphi programcıları olarak .NET veya Java programcıları gibi (ya da python, php gibi script diller) bellek konusunda kafamıza göre davranma hakkımız yok. Bizim bellek kaybı, bellek bozulması, yanlış bellek uzayına erişme gibi hataları sürekli kontrol etmemiz gerekiyor. Subhan'ın verdiği kod büyük ihtimalle Windows'da bellek kaybına yol açacaktır. Gerçi modern bir işletim sisteminden bu tür kaçakları yakalamasını isteyebilirsiniz, ama bu yine de sizin sorumluluğunuzdadır.

Artık kodun uygun bir yerine DeleteObject fonksiyonunu eklersiniz.

Kolay gelsin
Bahadır Alkaç

Çevrimdışı Subhan

  • Delphi XE2 Level 5
  • *****
  • İleti: 818
  • Rep: +1/-0
  • Cinsiyet: Bay
Ynt: Butto'nun Kenarlarını Rekli Yapın
« Yanıtla #2 : 08 Haziran 2008 09:54:44 »
Selam,

Kodda kişisel olarak çok önem verdiğim, ama maalesef programcıların pek dikkate almadığı bir sorun var. Aşağıdaki satırlar Win32 SDK Help'ten alıntıdır.

Alıntı
When you no longer need the HRGN object call the DeleteObject function to delete it.

Türkçesi,
Alıntı
HRGN nesnesine ihtiyacınız kalmadığı zaman DeleteObject fonksiyonu ile nesneyi siliniz.

Delphi programcıları olarak .NET veya Java programcıları gibi (ya da python, php gibi script diller) bellek konusunda kafamıza göre davranma hakkımız yok. Bizim bellek kaybı, bellek bozulması, yanlış bellek uzayına erişme gibi hataları sürekli kontrol etmemiz gerekiyor. Subhan'ın verdiği kod büyük ihtimalle Windows'da bellek kaybına yol açacaktır. Gerçi modern bir işletim sisteminden bu tür kaçakları yakalamasını isteyebilirsiniz, ama bu yine de sizin sorumluluğunuzdadır.

Artık kodun uygun bir yerine DeleteObject fonksiyonunu eklersiniz.

Kolay gelsin
Bahadır Alkaç


Opt2000 Ben kodu tam olarak belek de yer kaybına sebeb olucanı bilmiyordum

Senin dediyin kod hakında bilgim yok eyer sen biliyorsunsa kodu düzelte bilirmisin
kulanan arkadaşlara ayıb olmasın
En Güzel Azeri Programlama Sitesi.

Proqramlasdirma.Com