Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Estou Tentando Criar Um Gráfico No Delphi!


Livio Neiva
 Share

Question

Procedimentos a serem executados:

Crie uma tela nova no sistema, altere as propriedades Name = FrmGrafico e Caption = Gráfico de Clientes por Cidade.

Insira um objeto Chart (Additional) à tela. Altere as propriedades Name = chtGrafico, Align = alClient e dê um duplo-clique sobre o mesmo.

Escolha o tipo de gráfico a ser utilizado: Bar (Barras). Para isto, clique nas guias Chart, Series e nos botões Add (Desmarque a opção 3D) e OK.

Clique no botão Titles e altere o título da série para Cidades.

Selecione a guia Titles e digite o título do gráfico: Clientes por Cidade, na caixa de texto e selecione o Alignment = Center .

Clique no botão Close.

Faça referência à unit da tela DM. File -> Use Unit (UDM)

Insira um objeto ADOQuery à tela e altere as propriedades:

Name: QCliCid

Connection: Dm.Conexao

SQL: Select Count(*) as Qtde, CliCid From Clientes Group By CliCid

Dê duplo-clique na query QCliCid e tecle [Ctrl] + [F] para inserir os campos.

Copie o botão Btn_Imprimir da tela FrmCadCliente para a tela FrmGrafico.

Insira um componente PrintDialog da guia Dialogs na tela FrmGráfico.

procedure TFrmGrafico.FormShow(Sender: TObject);

begin

CliCid.Clear;

chtGrafico.Title.Text.Clear; --> ERRO ( [Error] UGrafico.pas(41): Undeclared identifier: 'Title' )

chtGrafico.Title.Text.Add('Gráfico Clientes por Cidade');

QCliCid.Open;

While (Not QCliCid Eof) do

Begin

CliCid.AddY(QCliCidQtde.Value,QCliCidCliCid.AsString, ClSkyBlue);

QCliCid.Next;

end;

end;

Digite os comandos a seguir no evento OnClick do botão Imprimir:

procedure TFrmGrafico.SpeedButton2Click(Sender: TObject);

begin

if PrintDialog1.Execute then

begin

chtGrafico.BackColor := clWhite;

chtGrafico.Print;

end;

end;

END.

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Testei a linha de codigo que voce mostrou o erro .... não tem erro, a não ser que voce não tenha adicionado ao form o component TChart:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls, TeeProcs, TeEngine, Chart;

type
  TForm1 = class(TForm)
    chtGrafico: TChart;
    BitBtn1: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   chtGrafico.Title.Text.Clear;
   chtGrafico.Title.Text.Add('Gráfico Clientes por Cidade');

end;

end.

Link to comment
Share on other sites

  • 0
Testei a linha de codigo que voce mostrou o erro .... não tem erro, a não ser que voce não tenha adicionado ao form o component TChart:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls, TeeProcs, TeEngine, Chart;

type
  TForm1 = class(TForm)
    chtGrafico: TChart;
    BitBtn1: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   chtGrafico.Title.Text.Clear;
   chtGrafico.Title.Text.Add('Gráfico Clientes por Cidade');

end;

end.

Meu grande amigo Jhonas!!!

eu troquei o nome chtgrafico (componenteTshape) pelo Chart1 (componente Tchart)

E o sistema compilou correatamente!!!

Problema resolvido

Agradeço muito sua atenção

Lívio Neiva

Link to comment
Share on other sites

  • 0

Olá gente, eu sou iniciante em delphi e gostaria que vocês me explicassem melhor a parte de fazer referencia com a DM. com o ADOQuery...

Obrigado!

Link to comment
Share on other sites

  • 0
Olá gente, eu sou iniciante em delphi e gostaria que vocês me explicassem melhor a parte de fazer referencia com a DM. com o ADOQuery...

Alan, este DM, seria referente a DataModule?

Não estou vendo relação com o tópico em que você postou, assim, após sua resposta estarei separando seu post do tópico (criando um tópico para esta sua dúvida), e então você deve procurar no índice do forum por um tópico de sua autoria.

Abraços

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...