Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Kullanıcı bilgilendirme ekranı yapımı hk.
#1
Hayırlı cumalar;
Program içerisinde bir çok yerde kullanmak üzere bilgilendirme penceresi yapmak istiyorum.
Örnek olarak 
veritabanından xxx adet kayıt siliniyor.
try /except /finally içerisine 
sql sorgusunu göndermeden önce bilgi penceresi procedure çağırarak gönderilen parametre ile tablo siliniyor bekleyin gibi mesaj mı vermeli
aynı örnek kayıtlar ekleniyor, güncelleniyor gibi de çoğaltılabilir.
finally bölümünde bilgi penceresi kapatılmalı
Bunun doğrusu nasıl olmalı.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#2
Merhaba, FIslem adında bir form oluşturun.
Alttaki gibi bir procedure oluşturun,
Silme vs işlemleri yaparken bu procedure gönderme işlemi yapın.  Sanıyorum istediğiniz bunun gibi birşey.
procedure Islem(mesaj: string);
   begin
     if Application.FindCOmponent('FIslem') = nil then
       Application.CreateForm(TFIslem, FIslem);
     try
       FIslem.Show;
       FIslem.LblMesaj.Caption := mesaj;
       FIslem.Refresh;
     except
       on Exception do
     end;
   end;
WWW
Cevapla
#3
(10-04-2020, Saat: 13:40)hasangoktas Adlı Kullanıcıdan Alıntı: Merhaba, FIslem adında bir form oluşturun.
Alttaki gibi bir procedure oluşturun,
Silme vs işlemleri yaparken bu procedure gönderme işlemi yapın.  Sanıyorum istediğiniz bunun gibi birşey.

procedure Islem(mesaj: string);
   begin
     if Application.FindCOmponent('FIslem') = nil then
       Application.CreateForm(TFIslem, FIslem);
     try
       FIslem.Show;
       FIslem.LblMesaj.Caption := mesaj;
       FIslem.Refresh;
     except
       on Exception do
     end;
   end;

Bilgilendirme ve emeğiniz için teşekkür ederim 
Bende panel ekledim içine label ekledim  visible ile yaptım.
normalde visible disable
kod bölümünde

if (data_form.siparis_sorgu.RecordCount>0) then
         begin
                 Pnl_bilgi.Visible := True;
                  repeat
                     lbl_bilgi_1.Caption:= kf_grupsiparis.Text +' grup siparişinden '+inttostr(data_form.siparis_sorgu.Recno)+' kayıt siliniyor';
                     lbl_bilgi_1.Update;
                     bayi_siparis_eksilt; //Bayi sipariş eksilt
                     data_form.siparis_sorgu.Delete;   //Sipariş dosyasından sil
                     data_form.siparis_sorgu.next;
                     sleep(500);
                   until not data_form.siparis_sorgu.Eof ; // silme işlemi tamam

         end;
 

Bu şekilde yapıldı bazen  numaraları atlıyor ama geçici olarak iş gördü sizin önerinizi denerim
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#4
@cinarbil , daha da basit çözülebilir.

Projeleriniz için temel bir Diyalog Formu üretebilirsiniz. Buna mesela TBilgiFormu diyelim.

Sleep veya panel kullanmak yerine duruma göre TBilgiFormu'na bir timer koyarak belli bir süre sonra kapanmasını sağlayabilirsiniz. Veya süreç sonunda siz bir Flag veya event ile TBilgiFormu'nun kendiliğinden kapanmasını da sağlayabilirsiniz.

YouTube Delphi Tips

"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" P.Safa
WWW
Cevapla
#5
(10-04-2020, Saat: 14:18)uparlayan Adlı Kullanıcıdan Alıntı: @cinarbil , daha da basit çözülebilir.

Projeleriniz için temel bir Diyalog Formu üretebilirsiniz. Buna mesela TBilgiFormu diyelim.

Sleep veya panel kullanmak yerine duruma göre TBilgiFormu'na bir timer koyarak belli bir süre sonra kapanmasını sağlayabilirsiniz. Veya süreç sonunda siz bir Flag veya event ile TBilgiFormu'nun kendiliğinden kapanmasını da sağlayabilirsiniz.

Teşekkür ederim önerilerinizi yapmaya çalışacağım
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#6
Başlangıç olması açısından şöyle bir örnek karaladım, belki bir ışık tutar;

Daha kısa olduğu için önce kullanımını örnekleyelim, devamında yapının kaynak kodlarını yazının devamında bulabilirsiniz;

...
...
implementation

{$R *.dfm}

uses
    Mesaj_
  ;

procedure TAna.Button1Click(Sender: TObject);
begin
  TMesaj.Goster( Self                                            // Parent Form
               , 'Bu mesaj 15 saniye sonra kendini yok edecek.'  // Mesajın kendisi
               , 15                                              // Bekleme Süresi (Saniye cinsinden)
               , True                                            // Pencere başlığı gizlensin mi / gizlenmesin mi...
               );
end;

procedure TAna.Button2Click(Sender: TObject);
var
  I: Integer;
  aDiyalog: TMesaj;
begin
  // Mesaj diyalog formunu oluşturuyoruz
  aDiyalog:= TMesaj.Goster(Self,'Bu, aşağıdaki işlem bittiğinde yok olacak...', 0, TRUE);

  // aynı kanal içinde uzunca bir iş yapıyoruz...
  for I := 0 to 3000 do Memo.Lines.Add(I.ToString); // Elbette temsili bir iş bu...

  // İşimiz bitince mesaj diyalog formumuzu kendimiz kapatıyoruz...
  FreeAndNil(aDiyalog);
end;

Mesajların gösterileceği diyalog formu ise aşağıdaki gibi...

unit Mesaj_;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, dxGDIPlusClasses;

type
  TMesaj = class(TForm)
    OtomatikKapat: TTimer;
    pnGenel: TPanel;
    Logo: TImage;
    Panel1: TPanel;
    lbMesaj: TLabel;
    imClose: TImage;
    pnTercih: TPanel;
    lbSayac: TLabel;
    cxBirDahaGosterMe: TCheckBox;
    procedure OtomatikKapatTimer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure imCloseClick(Sender: TObject);
  private
    { Private declarations }
    FBasliksiz: Boolean;
    FBeklemeSuresi: Integer;
    FBeklemeSayac: Integer;
    procedure SetMesaj(const Value: string);
    procedure SetBasliksiz(const Value: Boolean);
    procedure SetBeklemeSuresi(const Value: Integer);
  public
    { Public declarations }
    class function Goster(aOwner: TComponent; aMesaj: string; aBeklemeSuresi: Integer = 10; aBasliksiz: Boolean = True): TMesaj;
  end;

implementation

{$R *.dfm}

uses
    System.Threading
  ;

{ TMesajGoster }

class function TMesaj.Goster(aOwner: TComponent; aMesaj: string; aBeklemeSuresi: Integer; aBasliksiz: Boolean): TMesaj;
begin
  Result := TMesaj.Create(aOwner);
  with  Result  do
  begin
    SetMesaj(aMesaj);
    SetBasliksiz(aBasliksiz);
    SetBeklemeSuresi(aBeklemeSuresi);
    Show;
    Application.ProcessMessages;
  end;
end;

procedure TMesaj.SetBasliksiz(const Value: Boolean);
begin
  FBasliksiz := Value;
  case FBasliksiz of
    True  : BorderStyle := bsNone;
    False : BorderStyle := bsDialog;
  end;
end;

procedure TMesaj.SetMesaj(const Value: string);
begin
  lbMesaj.Caption := Value;
end;

procedure TMesaj.SetBeklemeSuresi(const Value: Integer);
begin
  FBeklemeSuresi := Value;
  FBeklemeSayac  := FBeklemeSuresi;
  OtomatikKapat.Interval := 1000;
  OtomatikKapat.Enabled  := (Value > 0); // Sıfırdan büyük ise Timer'i etkinleştiriyoruz.
  lbSayac.Caption := FBeklemeSayac.ToString;
end;

procedure TMesaj.OtomatikKapatTimer(Sender: TObject);
begin
  FBeklemeSayac := FBeklemeSayac - 1;
  lbSayac.Caption := FBeklemeSayac.ToString;
  if (FBeklemeSayac <= 0) then Close;
end;

procedure TMesaj.imCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TMesaj.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

end.

DFM Dosyası şu şekilde;

object Mesaj: TMesaj
  Left = 0
  Top = 0
  BorderIcons = []
  BorderStyle = bsDialog
  Caption = 'Mesaj'
  ClientHeight = 153
  ClientWidth = 507
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  FormStyle = fsStayOnTop
  OldCreateOrder = False
  Position = poMainFormCenter
  OnClose = FormClose
  PixelsPerInch = 96
  TextHeight = 13
  object pnGenel: TPanel
    Left = 0
    Top = 0
    Width = 507
    Height = 153
    Align = alClient
    Padding.Left = 2
    Padding.Top = 2
    Padding.Right = 2
    Padding.Bottom = 2
    TabOrder = 0
    ExplicitTop = 4
    object Logo: TImage
      AlignWithMargins = True
      Left = 13
      Top = 13
      Width = 34
      Height = 34
      Margins.Left = 10
      Margins.Top = 10
      Margins.Right = 10
      Margins.Bottom = 10
      Align = alLeft
      AutoSize = True
      Center = True
      Constraints.MaxHeight = 34
      Constraints.MaxWidth = 34
      Constraints.MinHeight = 34
      Constraints.MinWidth = 34
      Picture.Data = {
        0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000020
        000000200806000000737A7AF40000001974455874536F667477617265004164
        6F626520496D616765526561647971C9653C0000001B744558745469746C6500
        5761726E696E673B4E6F74696669636174696F6E3BB6E779860000049E494441
        54785EED94794CD37718C6B7653AC45DC9FE59B66CF18F89324427E31045C298
        3B5C9685C503C7C47901634303988906141430A3188E5105B103741C010B4839
        46E528542BB08A481139047518CA515A282D679167DFF797C589A2CE49354B6C
        F2499E3CEFFBE57979DFB4CF0178AA3CFBFC7F91C539BD517BCC793F6377E961
        07D3279DFF82FCA8F3F1F63307D1F6FB3E30CD27EF49853F5FC27358511BEF3C
        61D05D8541D70AD2E451CDE8E9D1DE8B4D6BE29C9A6ECAE230AE9673749C8DC1
        1F7CA766BECF92B946FFEFCF45AD8CB822DC09C38002633D950437C415A10F58
        2DCAA85B1087D9DB55473B1A467A6A31D625C178AF8C60BA02C34A19586DA238
        D4DED12843446EB5303DCB7368BC2189C1586F3546FB5B202911119C1E65435C
        2FE3E15CE4CA56BEF7E297677CF592F0E5118A746F18FA9B31DA2D43B22001CB
        9C3610A4396F4C5909459A37586FEC8C6EA120C8D64E7A68B961B8A71EC31D45
        185156209E1F035BC7F51C094762396FF88608FA0E0958EF447EA0CD47333244
        88ABD99CB290658D6D67781853D561A82D13237F1623EFD409583BAC25489347
        35364401AE1685A1FC807D1B7FFBA2571E7BF5C58136E11793B6C1A0BB097D4B
        06230D43EDB9904BF360B5FC6B82347954E37A86D9301793B7431C64F3783F50
        423F2BEB9240DBF1A1CE3AB6DE22E81A5338F44D69E86C966289DD570469F2FE
        A9B7A4437F5D0CF6F656B6BFD5C7FFE914BBBE986752F4D3878AE6BC83185337
        41DB701C5A45E26D46BBE5B05AF625417A4A8D7A752D9968CEDD8FE2DDD6D762
        DDCD5F7DE4D5E7F92E0DAF3EB2915BFDE0E51468EB8E4C61E466253EFD7C0D41
        9ABCA9D41F83BE35073547DD21F2B38A7FA4536478595A17FA2E1D1F6815B375
        0AA1A90AC7C085280CD4C6DE467FF53442020308D277D6A897DE3042A1A91380
        FDADC92CEFC5ABFED5297C57BD6B72FAC7258A4B277762A4B31AAA727FA84A7D
        197EE89304402DDD078D2C14DA4B020CB517328AA0AD17904735EAE17AB93765
        FED09C0F47FD096F887C3EB811ED6AF6DA43579FE9B92854CA7361E1552C280C
        BDE21FEE415D1984868A9370FBD6036E6E1EA4C99BB69706E997C7401AE98253
        5E96890F3C45CA26F3A5D99E96E3AADA340CD6A7A0A7D0635A066AE3E1E3E589
        F7AD5613A4C9BB6FBFAAD41F7D3571C8F1B49C4CDD6CF1D9B4A7D8E5FCCEECCC
        2D1675F2444F76D30274177D8F2ED177D3A23E1F81D0BD3B306F813DC7C13D3B
        C8A3DAF4E46F814AB21717051E38B57551C76197F75EBF67F5A91B1786941F58
        CDC20BD157190C65AEDB7DE9CADF064D431612780104A7BB0AB63DF88D6833D4
        E70EA12CD819E9EEE682BB4FF16286BB797B47F92F186C4845DFD970287336A0
        53B8EEFE64BBA2B76C0F419ABC87D29DEF816BA2BDA02C9639EBCE016627BB9A
        955445AD43BFFC283435B150571D865AF63387A63A8AF307EA92A055FC86C1C6
        2CE89A73A16BCAC1E01521B49733A0AD3F89FE0BF1E0DECA78505504A3B73400
        3D625F74177841797A1394D96E90867D82A4F566C52CF3A53B0798B573C55B8E
        BFAE9DDF94FECD8249068CC4A460CDFC86EDB66FDADCBD01BAC75CC6DB8C850C
        0B23B1F0EF0CD3E9BE8E64CC66CC312226943125FCD907C053E52F6A6A3577F3
        F307D50000000049454E44AE426082}
      ExplicitLeft = 0
      ExplicitTop = 23
    end
    object Panel1: TPanel
      Left = 57
      Top = 3
      Width = 447
      Height = 147
      Align = alClient
      BevelOuter = bvLowered
      Padding.Left = 2
      Padding.Top = 2
      Padding.Right = 2
      Padding.Bottom = 2
      TabOrder = 0
      ExplicitLeft = 11
      ExplicitTop = 11
      ExplicitWidth = 449
      ExplicitHeight = 102
      object lbMesaj: TLabel
        Left = 3
        Top = 3
        Width = 423
        Height = 106
        Align = alClient
        Alignment = taCenter
        AutoSize = False
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -13
        Font.Name = 'Tahoma'
        Font.Style = [fsBold]
        ParentFont = False
        Layout = tlCenter
        WordWrap = True
        ExplicitTop = 1
        ExplicitWidth = 427
        ExplicitHeight = 110
      end
      object imClose: TImage
        Left = 426
        Top = 3
        Width = 18
        Height = 18
        Align = alRight
        Center = True
        Constraints.MaxHeight = 18
        Constraints.MaxWidth = 18
        Constraints.MinHeight = 17
        Constraints.MinWidth = 18
        Picture.Data = {
          0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000010
          0000001008060000001FF3FF610000001D744558745469746C6500436C6F7365
          3B457869743B426172733B526962626F6E3B4603B9E8000002AD49444154785E
          85934B4C546714C77FF732320C041DC2237644C368F109868D98A0290BDA60E2
          DE9526921856C3C2A08C2E1AA336A64DB48D81A8892D6E241A7CA20B15302618
          49DA4D47596818082F0151180698B973DFB7773EB1333BEE97FFCD3927DFF97D
          E77B1CE9E3AF17293FF3B30C48426B7D9939765A1290337AE1DC4B8F2CD73B0E
          802306C24CEB9BE7ACFA620686650FECFCE55283079025DBAE2F3D5CB79A94B5
          8E206692C5CF1606933DAF7F006451BA69986099A8C3C38C3C7846D791D3BCB9
          7413351A151AFCADD38D8589DE7F412A3A426A388AC801D92300A689E36A2A12
          25129923D8D1C9FC9387FCDDD587244BC4037BDC581B91AB97716C93F2AA6D98
          9A004802A0AF28382EF19F3BFD34F4F7515852C4E2AE20FFFED10140CDC9101B
          0ABD54B4FFCEAB1F7F62D3F90AB4643203589E9C469F9926B8BF8AF947DD94B5
          849072246A5A43E040913F9FBC75394C3DEE2658BB9BD4F07BE2E3B35915A83A
          FAA719766CCDE7C3403F43C86C6D6EC65FE8C391C0B660E8FA359203BD546EF7
          A34E4C60A49C2C8066602514B4D94F98F12596150DDB721043DC84CC4A3A168F
          A14FA75CA085A17D05885B30D280548AE8FB39947D8D048E3661D936DE5C99BC
          5C8FB0BF3BD684527B88D1D118B6AAE22E9A5D8186954C105B50680C87503D3E
          F2BDEE9E6FFD0940F9F113808FFA700BBD4FEEB2A94842D73D990A74DDC45C49
          B2A37A336FDB4E5122AB8C5F6FE7CBBDDB7C763571A39D328FCEBB702BDF6F2F
          C352750C4DCFBC0343750189243E3381131BE369DD018A4BD71328CE136730D7
          D3CDD3CEBFD8B2A518AF99C04C030CFEDF82EBE802602C2CE22DC8676F750063
          3981E2DE0C1694FAFD6C2C29419D8FA12515B06C4C43461080822B6595CF7D92
          7410475A3DF9ACA6B0859FDD50C2566C7BF0ECD258A3E846200FF066B5AAB446
          2B3B800628FF0122CC6063F45F96130000000049454E44AE426082}
        OnClick = imCloseClick
        ExplicitLeft = 380
        ExplicitTop = 1
        ExplicitHeight = 17
      end
      object pnTercih: TPanel
        Left = 3
        Top = 109
        Width = 441
        Height = 35
        Align = alBottom
        Padding.Left = 8
        Padding.Top = 8
        Padding.Right = 8
        Padding.Bottom = 8
        ParentBackground = False
        TabOrder = 0
        ExplicitLeft = 1
        ExplicitTop = 115
        ExplicitWidth = 449
        object lbSayac: TLabel
          Left = 424
          Top = 9
          Width = 8
          Height = 17
          Align = alRight
          Caption = '0'
          Font.Charset = DEFAULT_CHARSET
          Font.Color = clHighlight
          Font.Height = -13
          Font.Name = 'Tahoma'
          Font.Style = [fsBold]
          ParentFont = False
          ExplicitLeft = 428
          ExplicitHeight = 16
        end
        object cxBirDahaGosterMe: TCheckBox
          Left = 9
          Top = 9
          Width = 415
          Height = 17
          Align = alClient
          Caption = 
            'Bunu bana bir daha g'#246'sterme... ( Ev '#246'devi, bunu da siz yapmaya '#231 +
            'al'#305#351#305'n)'
          TabOrder = 0
          ExplicitWidth = 419
        end
      end
    end
  end
  object OtomatikKapat: TTimer
    Enabled = False
    OnTimer = OtomatikKapatTimer
    Left = 308
    Top = 42
  end
end

YouTube Delphi Tips

"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" P.Safa
WWW
Cevapla
#7
Bu linkteki gibi TTaskDialog'da kullanabilirsiniz. Çok başarılı bir component bana kalırsa. Ben TTaskDialog'u, başka bir thread içinden çalıştırıyorum; dolayısı ile ana thread'deki işler arka planda akarken dialog penceresi de ekranda olabiliyor.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#8
[quote pid='36207' dateline='1586539576']
Bu linkteki gibi TTaskDialog'da kullanabilirsiniz. Çok başarılı bir component bana kalırsa. Ben TTaskDialog'u, başka bir thread içinden çalıştırıyorum; dolayısı ile ana thread'deki işler arka planda akarken dialog penceresi de ekranda olabiliyor.
[/quote]

Allah razı olsun. Deneyecegim inşaallah

(10-04-2020, Saat: 17:32)uparlayan Adlı Kullanıcıdan Alıntı: Başlangıç olması açısından şöyle bir örnek karaladım, belki bir ışık tutar;

Daha kısa olduğu için önce kullanımını örnekleyelim, devamında yapının kaynak kodlarını yazının devamında bulabilirsiniz;

...
...
implementation

{$R *.dfm}

uses
    Mesaj_
  ;

procedure TAna.Button1Click(Sender: TObject);
begin
  TMesaj.Goster( Self                                            // Parent Form
               , 'Bu mesaj 15 saniye sonra kendini yok edecek.'  // Mesajın kendisi
               , 15                                              // Bekleme Süresi (Saniye cinsinden)
               , True                                            // Pencere başlığı gizlensin mi / gizlenmesin mi...
               );
end;

procedure TAna.Button2Click(Sender: TObject);
var
  I: Integer;
  aDiyalog: TMesaj;
begin
  // Mesaj diyalog formunu oluşturuyoruz
  aDiyalog:= TMesaj.Goster(Self,'Bu, aşağıdaki işlem bittiğinde yok olacak...', 0, TRUE);

  // aynı kanal içinde uzunca bir iş yapıyoruz...
  for I := 0 to 3000 do Memo.Lines.Add(I.ToString); // Elbette temsili bir iş bu...

  // İşimiz bitince mesaj diyalog formumuzu kendimiz kapatıyoruz...
  FreeAndNil(aDiyalog);
end;

Mesajların gösterileceği diyalog formu ise aşağıdaki gibi...

unit Mesaj_;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, dxGDIPlusClasses;

type
  TMesaj = class(TForm)
    OtomatikKapat: TTimer;
    pnGenel: TPanel;
    Logo: TImage;
    Panel1: TPanel;
    lbMesaj: TLabel;
    imClose: TImage;
    pnTercih: TPanel;
    lbSayac: TLabel;
    cxBirDahaGosterMe: TCheckBox;
    procedure OtomatikKapatTimer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure imCloseClick(Sender: TObject);
  private
    { Private declarations }
    FBasliksiz: Boolean;
    FBeklemeSuresi: Integer;
    FBeklemeSayac: Integer;
    procedure SetMesaj(const Value: string);
    procedure SetBasliksiz(const Value: Boolean);
    procedure SetBeklemeSuresi(const Value: Integer);
  public
    { Public declarations }
    class function Goster(aOwner: TComponent; aMesaj: string; aBeklemeSuresi: Integer = 10; aBasliksiz: Boolean = True): TMesaj;
  end;

implementation

{$R *.dfm}

uses
    System.Threading
  ;

{ TMesajGoster }

class function TMesaj.Goster(aOwner: TComponent; aMesaj: string; aBeklemeSuresi: Integer; aBasliksiz: Boolean): TMesaj;
begin
  Result := TMesaj.Create(aOwner);
  with  Result  do
  begin
    SetMesaj(aMesaj);
    SetBasliksiz(aBasliksiz);
    SetBeklemeSuresi(aBeklemeSuresi);
    Show;
    Application.ProcessMessages;
  end;
end;

procedure TMesaj.SetBasliksiz(const Value: Boolean);
begin
  FBasliksiz := Value;
  case FBasliksiz of
    True  : BorderStyle := bsNone;
    False : BorderStyle := bsDialog;
  end;
end;

procedure TMesaj.SetMesaj(const Value: string);
begin
  lbMesaj.Caption := Value;
end;

procedure TMesaj.SetBeklemeSuresi(const Value: Integer);
begin
  FBeklemeSuresi := Value;
  FBeklemeSayac  := FBeklemeSuresi;
  OtomatikKapat.Interval := 1000;
  OtomatikKapat.Enabled  := (Value > 0); // Sıfırdan büyük ise Timer'i etkinleştiriyoruz.
  lbSayac.Caption := FBeklemeSayac.ToString;
end;

procedure TMesaj.OtomatikKapatTimer(Sender: TObject);
begin
  FBeklemeSayac := FBeklemeSayac - 1;
  lbSayac.Caption := FBeklemeSayac.ToString;
  if (FBeklemeSayac <= 0) then Close;
end;

procedure TMesaj.imCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TMesaj.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

end.

DFM Dosyası şu şekilde;

object Mesaj: TMesaj
  Left = 0
  Top = 0
  BorderIcons = []
  BorderStyle = bsDialog
  Caption = 'Mesaj'
  ClientHeight = 153
  ClientWidth = 507
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  FormStyle = fsStayOnTop
  OldCreateOrder = False
  Position = poMainFormCenter
  OnClose = FormClose
  PixelsPerInch = 96
  TextHeight = 13
  object pnGenel: TPanel
    Left = 0
    Top = 0
    Width = 507
    Height = 153
    Align = alClient
    Padding.Left = 2
    Padding.Top = 2
    Padding.Right = 2
    Padding.Bottom = 2
    TabOrder = 0
    ExplicitTop = 4
    object Logo: TImage
      AlignWithMargins = True
      Left = 13
      Top = 13
      Width = 34
      Height = 34
      Margins.Left = 10
      Margins.Top = 10
      Margins.Right = 10
      Margins.Bottom = 10
      Align = alLeft
      AutoSize = True
      Center = True
      Constraints.MaxHeight = 34
      Constraints.MaxWidth = 34
      Constraints.MinHeight = 34
      Constraints.MinWidth = 34
      Picture.Data = {
        0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000020
        000000200806000000737A7AF40000001974455874536F667477617265004164
        6F626520496D616765526561647971C9653C0000001B744558745469746C6500
        5761726E696E673B4E6F74696669636174696F6E3BB6E779860000049E494441
        54785EED94794CD37718C6B7653AC45DC9FE59B66CF18F89324427E31045C298
        3B5C9685C503C7C47901634303988906141430A3188E5105B103741C010B4839
        46E528542BB08A481139047518CA515A282D679167DFF797C589A2CE49354B6C
        F2499E3CEFFBE57979DFB4CF0178AA3CFBFC7F91C539BD517BCC793F6377E961
        07D3279DFF82FCA8F3F1F63307D1F6FB3E30CD27EF49853F5FC27358511BEF3C
        61D05D8541D70AD2E451CDE8E9D1DE8B4D6BE29C9A6ECAE230AE9673749C8DC1
        1F7CA766BECF92B946FFEFCF45AD8CB822DC09C38002633D950437C415A10F58
        2DCAA85B1087D9DB55473B1A467A6A31D625C178AF8C60BA02C34A19586DA238
        D4DED12843446EB5303DCB7368BC2189C1586F3546FB5B202911119C1E65435C
        2FE3E15CE4CA56BEF7E297677CF592F0E5118A746F18FA9B31DA2D43B22001CB
        9C3610A4396F4C5909459A37586FEC8C6EA120C8D64E7A68B961B8A71EC31D45
        185156209E1F035BC7F51C094762396FF88608FA0E0958EF447EA0CD47333244
        88ABD99CB290658D6D67781853D561A82D13237F1623EFD409583BAC25489347
        35364401AE1685A1FC807D1B7FFBA2571E7BF5C58136E11793B6C1A0BB097D4B
        06230D43EDB9904BF360B5FC6B82347954E37A86D9301793B7431C64F3783F50
        423F2BEB9240DBF1A1CE3AB6DE22E81A5338F44D69E86C966289DD570469F2FE
        A9B7A4437F5D0CF6F656B6BFD5C7FFE914BBBE986752F4D3878AE6BC83185337
        41DB701C5A45E26D46BBE5B05AF625417A4A8D7A752D9968CEDD8FE2DDD6D762
        DDCD5F7DE4D5E7F92E0DAF3EB2915BFDE0E51468EB8E4C61E466253EFD7C0D41
        9ABCA9D41F83BE35073547DD21F2B38A7FA4536478595A17FA2E1D1F6815B375
        0AA1A90AC7C085280CD4C6DE467FF53442020308D277D6A897DE3042A1A91380
        FDADC92CEFC5ABFED5297C57BD6B72FAC7258A4B277762A4B31AAA727FA84A7D
        197EE89304402DDD078D2C14DA4B020CB517328AA0AD17904735EAE17AB93765
        FED09C0F47FD096F887C3EB811ED6AF6DA43579FE9B92854CA7361E1552C280C
        BDE21FEE415D1984868A9370FBD6036E6E1EA4C99BB69706E997C7401AE98253
        5E96890F3C45CA26F3A5D99E96E3AADA340CD6A7A0A7D0635A066AE3E1E3E589
        F7AD5613A4C9BB6FBFAAD41F7D3571C8F1B49C4CDD6CF1D9B4A7D8E5FCCEECCC
        2D1675F2444F76D30274177D8F2ED177D3A23E1F81D0BD3B306F813DC7C13D3B
        C8A3DAF4E46F814AB21717051E38B57551C76197F75EBF67F5A91B1786941F58
        CDC20BD157190C65AEDB7DE9CADF064D431612780104A7BB0AB63DF88D6833D4
        E70EA12CD819E9EEE682BB4FF16286BB797B47F92F186C4845DFD970287336A0
        53B8EEFE64BBA2B76C0F419ABC87D29DEF816BA2BDA02C9639EBCE016627BB9A
        955445AD43BFFC283435B150571D865AF63387A63A8AF307EA92A055FC86C1C6
        2CE89A73A16BCAC1E01521B49733A0AD3F89FE0BF1E0DECA78505504A3B73400
        3D625F74177841797A1394D96E90867D82A4F566C52CF3A53B0798B573C55B8E
        BFAE9DDF94FECD8249068CC4A460CDFC86EDB66FDADCBD01BAC75CC6DB8C850C
        0B23B1F0EF0CD3E9BE8E64CC66CC312226943125FCD907C053E52F6A6A3577F3
        F307D50000000049454E44AE426082}
      ExplicitLeft = 0
      ExplicitTop = 23
    end
    object Panel1: TPanel
      Left = 57
      Top = 3
      Width = 447
      Height = 147
      Align = alClient
      BevelOuter = bvLowered
      Padding.Left = 2
      Padding.Top = 2
      Padding.Right = 2
      Padding.Bottom = 2
      TabOrder = 0
      ExplicitLeft = 11
      ExplicitTop = 11
      ExplicitWidth = 449
      ExplicitHeight = 102
      object lbMesaj: TLabel
        Left = 3
        Top = 3
        Width = 423
        Height = 106
        Align = alClient
        Alignment = taCenter
        AutoSize = False
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -13
        Font.Name = 'Tahoma'
        Font.Style = [fsBold]
        ParentFont = False
        Layout = tlCenter
        WordWrap = True
        ExplicitTop = 1
        ExplicitWidth = 427
        ExplicitHeight = 110
      end
      object imClose: TImage
        Left = 426
        Top = 3
        Width = 18
        Height = 18
        Align = alRight
        Center = True
        Constraints.MaxHeight = 18
        Constraints.MaxWidth = 18
        Constraints.MinHeight = 17
        Constraints.MinWidth = 18
        Picture.Data = {
          0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000010
          0000001008060000001FF3FF610000001D744558745469746C6500436C6F7365
          3B457869743B426172733B526962626F6E3B4603B9E8000002AD49444154785E
          85934B4C546714C77FF732320C041DC2237644C368F109868D98A0290BDA60E2
          DE9526921856C3C2A08C2E1AA336A64DB48D81A8892D6E241A7CA20B15302618
          49DA4D47596818082F0151180698B973DFB7773EB1333BEE97FFCD3927DFF97D
          E77B1CE9E3AF17293FF3B30C48426B7D9939765A1290337AE1DC4B8F2CD73B0E
          802306C24CEB9BE7ACFA620686650FECFCE55283079025DBAE2F3D5CB79A94B5
          8E206692C5CF1606933DAF7F006451BA69986099A8C3C38C3C7846D791D3BCB9
          7413351A151AFCADD38D8589DE7F412A3A426A388AC801D92300A689E36A2A12
          25129923D8D1C9FC9387FCDDD587244BC4037BDC581B91AB97716C93F2AA6D98
          9A004802A0AF28382EF19F3BFD34F4F7515852C4E2AE20FFFED10140CDC9101B
          0ABD54B4FFCEAB1F7F62D3F90AB4643203589E9C469F9926B8BF8AF947DD94B5
          849072246A5A43E040913F9FBC75394C3DEE2658BB9BD4F07BE2E3B35915A83A
          FAA719766CCDE7C3403F43C86C6D6EC65FE8C391C0B660E8FA359203BD546EF7
          A34E4C60A49C2C8066602514B4D94F98F12596150DDB721043DC84CC4A3A168F
          A14FA75CA085A17D05885B30D280548AE8FB39947D8D048E3661D936DE5C99BC
          5C8FB0BF3BD684527B88D1D118B6AAE22E9A5D8186954C105B50680C87503D3E
          F2BDEE9E6FFD0940F9F113808FFA700BBD4FEEB2A94842D73D990A74DDC45C49
          B2A37A336FDB4E5122AB8C5F6FE7CBBDDB7C763571A39D328FCEBB702BDF6F2F
          C352750C4DCFBC0343750189243E3381131BE369DD018A4BD71328CE136730D7
          D3CDD3CEBFD8B2A518AF99C04C030CFEDF82EBE802602C2CE22DC8676F750063
          3981E2DE0C1694FAFD6C2C29419D8FA12515B06C4C43461080822B6595CF7D92
          7410475A3DF9ACA6B0859FDD50C2566C7BF0ECD258A3E846200FF066B5AAB446
          2B3B800628FF0122CC6063F45F96130000000049454E44AE426082}
        OnClick = imCloseClick
        ExplicitLeft = 380
        ExplicitTop = 1
        ExplicitHeight = 17
      end
      object pnTercih: TPanel
        Left = 3
        Top = 109
        Width = 441
        Height = 35
        Align = alBottom
        Padding.Left = 8
        Padding.Top = 8
        Padding.Right = 8
        Padding.Bottom = 8
        ParentBackground = False
        TabOrder = 0
        ExplicitLeft = 1
        ExplicitTop = 115
        ExplicitWidth = 449
        object lbSayac: TLabel
          Left = 424
          Top = 9
          Width = 8
          Height = 17
          Align = alRight
          Caption = '0'
          Font.Charset = DEFAULT_CHARSET
          Font.Color = clHighlight
          Font.Height = -13
          Font.Name = 'Tahoma'
          Font.Style = [fsBold]
          ParentFont = False
          ExplicitLeft = 428
          ExplicitHeight = 16
        end
        object cxBirDahaGosterMe: TCheckBox
          Left = 9
          Top = 9
          Width = 415
          Height = 17
          Align = alClient
          Caption = 
            'Bunu bana bir daha g'#246'sterme... ( Ev '#246'devi, bunu da siz yapmaya '#231 +
            'al'#305#351#305'n)'
          TabOrder = 0
          ExplicitWidth = 419
        end
      end
    end
  end
  object OtomatikKapat: TTimer
    Enabled = False
    OnTimer = OtomatikKapatTimer
    Left = 308
    Top = 42
  end
end

Allah razı olsun
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#9



YouTube Delphi Tips

"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" P.Safa
WWW
Cevapla
#10
(14-06-2020, Saat: 15:29)uparlayan Adlı Kullanıcıdan Alıntı:

Örneklendirme ve bilgilendirme için çok teşekkürler uğur hocam gayet açıklayıcı ve bilgilendirici olmuş. elinize sağlık.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  delphide kilitli kullanıcı kurtarma şifre değiştirme Ekvador 1 297 03-09-2020, Saat: 14:44
Son Yorum: pro_imaj
  Müşteri ekranı Aktolgali 5 1.178 13-04-2020, Saat: 17:41
Son Yorum: Fesih ARSLAN
  İşlem yaparken kullanıcıyı bilgilendirme Hk. pro_imaj 6 1.466 09-03-2020, Saat: 21:46
Son Yorum: pro_imaj
  Syntax Highlighter text editör yapımı vedat33 5 1.686 04-10-2019, Saat: 09:59
Son Yorum: SimaWB
  Delphi Örnek Login Ekranı mehmetalpgozbasi 9 3.716 18-09-2019, Saat: 12:55
Son Yorum: wiseman



Konuyu Okuyanlar: 1 Ziyaretçi