E ai galera blz?
----------------------
Vamos ao código do botão 1, que é o botão 'Novo'.
if salvo = false then
begin
// pergunta se deseja salvar
if MessageDlg('Deseja Salvar o arquivo?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
SalvarArquivo; // chama a procedure para salvar
end
else // se já está salvo
begin
Editor.Lines.Clear; // apaga as linhas do Editor
salvo := false;
end;
end;
----------------------
Código do botão 1, botão 'Abrir'.
Antes, adicione um OpenDialog que se encontra na paleta Dialogs.
if salvo = false then
begin
// pergunta se deseja salvar
if MessageDlg('Deseja Salvar o arquivo antes de abrir outro?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
SalvarArquivo; // chama a procedure para salvar
end;
OpenDialog1.Execute(); // chama o dialog
if OpenDialog1.FileName <> '' then
begin
Editor.Lines.LoadFromFile(OpenDialog1.FileName); // carrega o arquivo selecionado
local := OpenDialog1.FileName; // guarda local
end;
end;
----------------------
Código do botão 3. Salvar.
SalvarArquivo; // chama a procedure para salvar
end;
----------------------
Código do botão 4. Executar.
arquivo: string;
begin
arquivo := local + '.exe';
WinExec(PAnsiChar(arquivo), SW_NORMAL) // executa o arquivo compilado
end;
--------------------
Código do botão 5. Compilar.
Chegamos na hora mais esperada!
Como falei no começo do post, vamos utilizar o próprio compilador do Delphi, localizado normalmente em C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin\dcc32.exe
É ele que vamos chamar para compilar o arquivo. Adicione um TMemo localizado na paleta Additional e marque a propriedade visible para false.
Mãos a obra!!!
procedure TForm1.ToolButton5Click(Sender: TObject);
var
localCompilador, comando: string;
begin
SalvarArquivo; // é necessario salvar antes
// altere o local do compilador se necessário
localCompilador := '"C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin\dcc32.exe"';
comando := localCompilador + ' "' + local + '.pas"'; // linha de comando do compilador
Memo1.Lines.Add(comando);
Memo1.Lines.Add('PAUSE'); // comando do DOS para pausar a execução do batch
Memo1.Lines.SaveToFile('compilar.bat'); // salva o arquivo com a linha de comando
WinExec('compilar.bat', SW_NORMAL); // executa a linha de comando.
end;
Repare a linha em que salvamos o arquivo compilar.bat.
Gravamos nesse arquivo a linha de comando necessária para compilar o arquivo salvo.
Caso o programa já esteja salvo, é esse linha que ele irá gerar:
"C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin" "c:\arquivo.pas"
Após salvar o arquivo, executamos ele, e ele compila o arquivo.
Lembrando que estamos usando o compilar da Embarcadero®, então temos que incluir todos os parâmetros que o compilador precisa, por exemplo, para criar uma aplicação em nosso editor e compilarmos, temos que adicionar a diretiva {$APPTYPE CONSOLE}. exemplo:
program teste;
{$APPTYPE CONSOLE}
begin
end.
Bom galera, é isso aí, um bom projeto para se estudar.
Você pode pegar o código fonte deste projeto aqui
Abraços e até a próxima.
Hoje vou mostrar um tutorial muito legal, uma dica bem interessante para estudar.
Os procedimentos são bem simples e vou mostrar tudo o que vamos utilizar, vamos lá!
Funções do nosso editor:
-Sintaxe Pascal
-Abrir e Salvar arquivos .pas
-Compilar
Para compilar vamos usar o próprio compilador do Delphi. O DCC32.
Funções do nosso editor:
-Sintaxe Pascal
-Abrir e Salvar arquivos .pas
-Compilar
Para compilar vamos usar o próprio compilador do Delphi. O DCC32.
- FastScript
Componente necessário para utilizarmos a sintaxe do Pascal dentro de nossa aplicação.
Obs. O Delphi XE2 Update 4 já possui esse componente instalado.
O componente FastScript possui componentes muito legais que possuem a execução de um código e sintaxe para várias linguagens, mas só usaremos um desses componentes, o TfsSyntaxMemo.
Vamos montar nosso form.
Instale o FastScript de acordo com sua versão do Delphi, ou se estiver usando o Delphi XE2 adicione-o ao seu form o componente TfsSyntaxMemo.
Mude as propriedades dele para:
Align: alClient
Name: Editor
SyntaxType: stPascal
Feito isso, vamos adicionar uma TToolbar que fica na paleta Win32:
Agora vamos adicionar os botões na Toolbar. Clique com o botão direito e clique Add New Button.
Adicione um ImageList, dê um duplo clique nele e adicione as imagens dos nossos botões.
Nosso design está pronto!
Agora, vamos declarar uma variável pública para verificar se o arquivo já está salvo ou não, e uma para armazenar o local onde o arquivo está salvo.
public
salvo: boolean;
local: string;
end;
E vamos criar uma procedure para salvar os arquivos.
Antes de mais nada, adicione um SaveDialog que está na paleta Dialogs.
if local = '' then // se nao tiver salvo
begin
SaveDialog1.Execute(); // executa o Dialog
if SaveDialog1.FileName <> '' then
begin
Editor.Lines.SaveToFile(SaveDialog1.FileName + '.pas'); // salva onde foi selecionado
local := SaveDialog1.FileName; // guarda o local onde foi salvo
salvo := true; // já está salvo
end;
end
else // se ja tiver salvo
begin
Editor.Lines.SaveToFile(local + '.pas'); // salva em cima
salvo := true; // já está salvo
end;
end;
Vamos montar nosso form.
Instale o FastScript de acordo com sua versão do Delphi, ou se estiver usando o Delphi XE2 adicione-o ao seu form o componente TfsSyntaxMemo.
Mude as propriedades dele para:
Align: alClient
Name: Editor
SyntaxType: stPascal
Feito isso, vamos adicionar uma TToolbar que fica na paleta Win32:
Agora vamos adicionar os botões na Toolbar. Clique com o botão direito e clique Add New Button.
Adicione um ImageList, dê um duplo clique nele e adicione as imagens dos nossos botões.
Eu utilizei os ícones Gentlefae Free Toolbar Icons, você pode baixá-los em http://www.gentleface.com/free_toolbar_icons.html
Basta associarmos a propriedade Images da Toolbar com ImageLis1 que acabamos de adicionar e ligar as propriedades ImageIndex de cada botão com a respectiva imagem.
Agora, vamos declarar uma variável pública para verificar se o arquivo já está salvo ou não, e uma para armazenar o local onde o arquivo está salvo.
public
salvo: boolean;
local: string;
end;
E vamos criar uma procedure para salvar os arquivos.
Antes de mais nada, adicione um SaveDialog que está na paleta Dialogs.
procedure TForm1.SalvarArquivo;
beginif local = '' then // se nao tiver salvo
begin
SaveDialog1.Execute(); // executa o Dialog
if SaveDialog1.FileName <> '' then
begin
Editor.Lines.SaveToFile(SaveDialog1.FileName + '.pas'); // salva onde foi selecionado
local := SaveDialog1.FileName; // guarda o local onde foi salvo
salvo := true; // já está salvo
end;
end
else // se ja tiver salvo
begin
Editor.Lines.SaveToFile(local + '.pas'); // salva em cima
salvo := true; // já está salvo
end;
end;
----------------------
Vamos ao código do botão 1, que é o botão 'Novo'.
procedure TForm1.ToolButton1Click(Sender: TObject);
beginif salvo = false then
begin
// pergunta se deseja salvar
if MessageDlg('Deseja Salvar o arquivo?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
SalvarArquivo; // chama a procedure para salvar
end
else // se já está salvo
begin
Editor.Lines.Clear; // apaga as linhas do Editor
salvo := false;
end;
end;
----------------------
Código do botão 1, botão 'Abrir'.
Antes, adicione um OpenDialog que se encontra na paleta Dialogs.
procedure TForm1.ToolButton2Click(Sender: TObject);
beginif salvo = false then
begin
// pergunta se deseja salvar
if MessageDlg('Deseja Salvar o arquivo antes de abrir outro?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
SalvarArquivo; // chama a procedure para salvar
end;
OpenDialog1.Execute(); // chama o dialog
if OpenDialog1.FileName <> '' then
begin
Editor.Lines.LoadFromFile(OpenDialog1.FileName); // carrega o arquivo selecionado
local := OpenDialog1.FileName; // guarda local
end;
end;
----------------------
Código do botão 3. Salvar.
procedure TForm1.ToolButton3Click(Sender: TObject);
beginSalvarArquivo; // chama a procedure para salvar
end;
----------------------
Código do botão 4. Executar.
procedure TForm1.ToolButton4Click(Sender: TObject);
vararquivo: string;
begin
arquivo := local + '.exe';
WinExec(PAnsiChar(arquivo), SW_NORMAL) // executa o arquivo compilado
end;
--------------------
Código do botão 5. Compilar.
Chegamos na hora mais esperada!
Como falei no começo do post, vamos utilizar o próprio compilador do Delphi, localizado normalmente em C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin\dcc32.exe
É ele que vamos chamar para compilar o arquivo. Adicione um TMemo localizado na paleta Additional e marque a propriedade visible para false.
Mãos a obra!!!
procedure TForm1.ToolButton5Click(Sender: TObject);
var
localCompilador, comando: string;
begin
SalvarArquivo; // é necessario salvar antes
// altere o local do compilador se necessário
localCompilador := '"C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin\dcc32.exe"';
comando := localCompilador + ' "' + local + '.pas"'; // linha de comando do compilador
Memo1.Lines.Add(comando);
Memo1.Lines.Add('PAUSE'); // comando do DOS para pausar a execução do batch
Memo1.Lines.SaveToFile('compilar.bat'); // salva o arquivo com a linha de comando
WinExec('compilar.bat', SW_NORMAL); // executa a linha de comando.
end;
Repare a linha em que salvamos o arquivo compilar.bat.
Gravamos nesse arquivo a linha de comando necessária para compilar o arquivo salvo.
Caso o programa já esteja salvo, é esse linha que ele irá gerar:
"C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin" "c:\arquivo.pas"
Após salvar o arquivo, executamos ele, e ele compila o arquivo.
Lembrando que estamos usando o compilar da Embarcadero®, então temos que incluir todos os parâmetros que o compilador precisa, por exemplo, para criar uma aplicação em nosso editor e compilarmos, temos que adicionar a diretiva {$APPTYPE CONSOLE}. exemplo:
program teste;
{$APPTYPE CONSOLE}
begin
end.
Bom galera, é isso aí, um bom projeto para se estudar.
Você pode pegar o código fonte deste projeto aqui
Abraços e até a próxima.
Muito bom cara.
ResponderExcluirMUITO BOM MESMO,QDO COMEÇAR ESTA MATÉRIA JÁ ESTOU POR DENTRO DE DELPHI
ResponderExcluirCARA... EXISTE O LAZARUS E O FREE PASCAL!!! AMBOS SÃO VERDADEIRAS XEROX A CORES DO DELPHI E TOTALMENTE OPEN SOURCE!!! É SÓ CONFERIR E BAIXAR!!!
ResponderExcluir