Para ver os telefones, vamos usar o GridVer. Para isso, vou criar uma procedure nova para ele, veja o código:
procedure TfPrincipal.verdados(a:integer);
var gridlarg,gridcol,registros,id,c:integer;
begin
// atribuindo os valores para acertar o grid:
gridlarg:= gridver.Width;
gridver.DefaultColWidth:= trunc(gridlarg/2) - 5;
//contando o numero de regisros do mysql:
sql.SQL.Text:= 'select * from telefones';
sql.Open;
registros:= sql.RecordCount;
//inserindo as linhas necessarias no gridver:
gridver.RowCount:= registros + 1;
//inserindo os valores no gridver
gridver.Cells[0,0]:= 'Nomes:';
gridver.Cells[1,0]:= 'Telefones:';
id:= 0;
c:= 1;
sql.SQL.Text:= 'select * from telefones';
sql.Open;
while (id <= registros) do
begin
gridver.Cells[0,c]:= sql.Fields.Fields[1].AsString;
gridver.Cells[1,c]:= sql.Fields.Fields[2].AsString;
id:= id + 1;
c:= c + 1;
dbnav.BtnClick(nbNext);
end;
end;
Declare a nova procedure na área type do código. Observe o meu como está:
type
TfPrincipal = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
butFechar: TButton;
conn: TSQLConnection;
sql: TSQLQuery;
source: TDataSource;
dbnav: TDBNavigator;
GridVer: TStringGrid;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
butIns: TButton;
edtNome: TMaskEdit;
edtTel: TMaskEdit;
procedure butFecharClick(Sender: TObject);
procedure butInsClick(Sender: TObject);
procedure verdados(a:integer);
Agora que já temos nossa procedure de visualização, vamos coloca-la no evento onShow do fPrincipal. Para isso vá ao OI e clique duas vezes no evento onShow. Veja a figura abaixo:
E no fonte, insira o verdados(1). Veja abaixo:
procedure TfPrincipal.FormShow(Sender: TObject);
begin
verdados(1);
end;
No evento butInsClick, coloque também o verdados(1) no final, pois assim a cada novo telefone inserido o grid será atualizado. Coloque-o dentro deste IF:
if (erro=0) then
begin
//criando a string MySQL:
sql.SQL.Text:= 'INSERT INTO telefones(agenda_id,agenda_nome,agenda_tel) VALUES(0,'+quotedstr(nome)+','+quotedstr(tel)+')';
//executando a string:
sql.ExecSQL(True);
// limpando os edits:
edtNome.Text:= '';
edtTel.Text:= '';
// informando o sucesso da operação:
showmessage('Cadastrado com sucesso!');
verdados(1); //<--- AQUI
end;