Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Kullanıcı bilgilendirme ekranı yapımı hk.
#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
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla


Bu Konudaki Yorumlar
Kullanıcı bilgilendirme ekranı yapımı hk. - Yazar: cinarbil - 03-04-2020, Saat: 11:17
Kullanıcı bilgilendirme ekranı yapımı hk. - Yazar: uparlayan - 10-04-2020, Saat: 17:32

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Kullanıcı Giriş Onay Anahtarı OZCANK 2 744 19-08-2024, Saat: 13:06
Son Yorum: OZCANK
  radio grup ile cevap anahtari yapimi. sadikacar60 2 946 31-01-2024, Saat: 13:22
Son Yorum: sadikacar60
  Uzaktan Sohbet Programı Yapımı Halil Han BADEM 12 9.854 17-08-2023, Saat: 15:25
Son Yorum: Halil Han BADEM
  Webden kullanıcı bilgilerini çekme Husv 2 1.310 25-01-2023, Saat: 18:43
Son Yorum: Husv
  domaindeki bir klasöre kullanıcı adı ve şifre ile erişme shooterman 9 2.781 23-01-2023, Saat: 12:17
Son Yorum: shooterman



Konuyu Okuyanlar: 1 Ziyaretçi