Ir para conteúdo
Fórum Script Brasil
  • 0

ajuda para transformar o codigo de um procedure local em global


Visitante

Pergunta

olá todos, preciso da ajuda dos amigos

estou com programa a algum tempo e estou dando enxugada no código porque ficou muito grande pra eu fazer mantutenção e tenho muita coisa pra colocar nele ainda, estou usando Tpagecontrol e já tem várias paginas, e em cada pagina preciso repetir esse mesmo pedaço código várias vezes para cada item  na página, só muda mesmo o nome dos labels e dos edits e dos item cada pagina, pra quase todos os itens do programa, gostaria ser for possivel, chamar ele como procedure ou função (global), pra escrever esse código uma vez só e chamar ele de qualquer página do TPageControl quando for preciso, obrigado a quem poder dar uma ajuda

 

 

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;
     letras : array[1..26] of char = ('A','B','C','D','E','F','G','H','I',
                                   'J','K','L','M','N','O','P','Q','R',
                                   'S','T','U','V','W','X','Y','Z');
implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var i,j, num, numx : integer; s,s1  : string;
begin
   i := 0;
   j := 0;
   numx := 0;

   s := trim(UpperCase(Edit1.Text));
   s := StringReplace(s, ' ', EmptyStr, [rfReplaceAll]);
   for i := 1 to length(s) do
      begin
      for j := 1 to 26 do
         begin
            if s = letras[j] then
               begin
                  if j <= 9 then
                     num := j;
                  if (j > 9) and (j <= 18) then
                     num := j - 9;
                  if j > 18 then
                     num := j - 18;
               end;
         end;

         numx := numx + num;

      end;

      // VALOR DA SOMA
      Label1.Caption := (inttostr(numx));

      if (numx = 11) or (numx = 22) then
         showmessage('Achei um numero mestre na SOMA => ' + inttostr(numx));

      if numx > 9 then  /// PRIMEIRA REDUÇÃO
         begin
            s1 := inttostr(numx);
            numx := strtoint(s1[1]);
            numx := numx + strtoint(s1[2]);
         end;

      if (numx = 11) or (numx = 22) then
         showmessage('Achei um numero mestre na REDUÇÃO => ' + inttostr(numx));

      if numx > 9 then  /// SEGUNDA REDUÇÃO
         begin
            s1 := inttostr(numx);
            numx := strtoint(s1[1]);
            numx := numx + strtoint(s1[2]);
         end;

      // VALOR DA REDUÇÃO
      Label2.Caption := (inttostr(numx));
end;

end.

 

 

 

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...