Fórum Declarar MessageBox como variável global #544380
01/02/2016
0
Gostaria de saber se há um jeito de declarar uma variável global cujo o valor seja uma messagebox.
Gabriel
Curtir tópico
+ 0Post mais votado
01/02/2016
procedure fechar();
begin
if( Application.Messagebox('Deseja Sair?', 'Sair', MB_YesNo+MB_IconQuestion) = id_yes) then
begin
Application.terminate;
end
end;
Leandro Gonçalves
Gostei + 2
Mais Posts
01/02/2016
Raimundo Pereira
Gostei + 0
01/02/2016
Gabriel
Application.Messagebox('Deseja Sair?', 'Sair', MB_YesNo+MB_IconQuestion); // esta seria a variável
if( Application.Messagebox('Deseja Sair?', 'Sair', MB_YesNo+MB_IconQuestion) = id_yes) then
begin
Application.terminate;
end
Gostaria que a messagebox fosse uma variável, para que eu não precise em toda tela ficar digitando esse código no botão sair.
Gostei + 0
01/02/2016
Gabriel
Gostei + 0
01/02/2016
Leandro Gonçalves
Gostei + 1
01/02/2016
Gabriel
Tento declarar essa procedure como pública, mas dá erro quando tento chamar ela em algum botão, o código que eu fiz é:
uses
Windows, Messages, Classes, SysUtils, FileUtil, Forms, Controls, Graphics,
Dialogs, StdCtrls, ExtCtrls, DB, u_dmprincipal, dateutils, variants;
type
{ TfrmLogin }
TfrmLogin = class(TForm)
btnAcessar: TButton;
btnSair: TButton;
edtSenha: TEdit;
edtLogin: TEdit;
lblLogin: TLabel;
lblSenha: TLabel;
Panel1: TPanel;
procedure btnAcessarClick(Sender: TObject);
procedure btnSairClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
//Declaro aqui a procedure como publica
end;
var
frmLogin: TfrmLogin;
vSair : integer;
implementation
{$R *.lfm}
{ TfrmLogin }
procedure TfrmLogin.btnSairClick(Sender: TObject);
begin
fechar; // Aqui quero chamar a procedure
end;
procedure fechar();
begin
if( Application.Messagebox('Deseja Sair?', 'Sair', MB_YesNo+MB_IconQuestion) = idyes) then
begin
Application.terminate;
end;
end; já tentei declarar essa procedure como publica com alguns metodos que vi em minhas pesquisas, mas nenhum deu certo, sempre aparece a mensagem "identifier not foun fechar'
Gostei + 0
01/02/2016
Leandro Gonçalves
unit Unit2;
interface
uses Winapi.Windows, Winapi.Messages, System.Classes, Vcl.Controls, Vcl.Forms,
Vcl.AppEvnts;
type
TAplicacao = Class
private
public
class function Fechar():String;
End;
implementation
{ TCliente }
{ TAplicacao }
class function TAplicacao.Fechar: String;
begin
if (Application.Messagebox('Deseja Sair?', 'Sair', MB_YesNo+MB_IconQuestion) = idyes) then
Begin
Application.Terminate;
End;
end;
end.
unit Unit3;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm3 = class(TForm)
BtnSair: TButton;
procedure BtnSairClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
uses Unit2;
procedure TForm3.BtnSairClick(Sender: TObject);
begin
TAplicacao.Fechar;
end;
end.
Gostei + 1
01/02/2016
Leandro Gonçalves
E toda tela que vc criar, é só coloca-la na Uses e chamar o método com o nome da classe.
Gostei + 1
01/02/2016
Gabriel
unit u_procedures;
{$mode objfpc}{$H+}
interface
uses
Windows, Messages, Classes, SysUtils, FileUtil, Forms, Controls, Graphics,
Dialogs, StdCtrls, ExtCtrls, DB, u_dmprincipal, dateutils, variants;
implementation
procedure fechar();
begin
if( Application.Messagebox('Deseja Sair?', 'Sair', MB_YesNo+MB_IconQuestion) = idyes) then
begin
Application.terminate;
end;
end;
end.
quando chamo a procedure no botão fechar, aparece a mesma mensagem
Declarei a unit no uses
Gostei + 0
01/02/2016
Leandro Gonçalves
Gostei + 1
01/02/2016
Natanael Ferreira
Teste assim sua unit de procedures:
[Quote]unit u_procedures;
{$mode objfpc}{$H+}
interface
uses
Windows, Messages, Classes, SysUtils, FileUtil, Forms, Controls, Graphics,
Dialogs, StdCtrls, ExtCtrls, DB, u_dmprincipal, dateutils, variants;
procedure fechar(); // Adicionei esta linha
implementation
procedure fechar();
begin
if (Application.Messagebox('Deseja Sair?', 'Sair', MB_YesNo + MB_IconQuestion) = idyes) then
begin
Application.terminate;
end;
end;
end.[/Quote]
Gostei + 1
01/02/2016
Gabriel
Muito obrigado pela ajuda e paciência pessoal!
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)