Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-02-2012
efirvida efirvida is offline
Miembro
 
Registrado: jun 2010
Posts: 12
Poder: 0
efirvida Va por buen camino
hola estoy tratando de utilizar tu codigo y me da unos cuantos errores el primero es que FSelection no esta definido no se si hice bien, pero lo defini como un TSelection,en las variables glovales, pero lo que no me compila es BGetSelectionClick que tampoco esta declarado, bueno despues de declarar el Fselection y borrar el procedimiento de BGetSelectionClick, me compilo bien solo que no me coje los datos para el listbox.
?que me falta por hacer??
Responder Con Cita
  #2  
Antiguo 08-02-2012
efirvida efirvida is offline
Miembro
 
Registrado: jun 2010
Posts: 12
Poder: 0
efirvida Va por buen camino
Cita:
Empezado por efirvida Ver Mensaje
hola estoy tratando de utilizar tu codigo y me da unos cuantos errores el primero es que FSelection no esta definido no se si hice bien, pero lo defini como un TSelection,en las variables glovales, pero lo que no me compila es BGetSelectionClick que tampoco esta declarado, bueno despues de declarar el Fselection y borrar el procedimiento de BGetSelectionClick, me compilo bien solo que no me coje los datos para el listbox.
?que me falta por hacer??
repondiendome a mi mismo, que bruto soy jejeje, defini BGetSelectionClick y ya lo otro si tuve que hacer un oequeño cambio para que funcionara -->

Código Delphi [-]
procedure TTForm1.Chart1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  FSelection.HandleMouse(X, Y, evMouseUp, Shift);
  BGetSelectionClick(sender);
end;

ahora mi pregunta es la siguiente si en vez de quere capturar lo svalores lo que quiero es hacerle zoom a esa area que es lo que tendria que hacer???
Responder Con Cita
  #3  
Antiguo 09-02-2012
rounin rounin is offline
Miembro
 
Registrado: sep 2005
Posts: 43
Poder: 0
rounin Va por buen camino
Una manera de hacer esto es herramienta "Zoom" y herramienta "Seleccion" y
dos botones (TSpeedButton o TToolButton) por seleccionar las.

Otra manera es hacer Zoom cuando "Ctrl" o "Alt" botones estan presionado.

He hecho la ejemplo de primera manera.

Código Delphi [-]
unit main;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls,
  XYSel, Buttons;
type
  TForm1 = class(TForm)
    Chart1: TChart;
    Series1: TLineSeries;
    ListBox1: TListBox;
    BGetSelection: TButton;
    BSelectTool: TSpeedButton;
    BZoomTool: TSpeedButton;
    procedure FormCreate(Sender: TObject);
    procedure BGetSelectionClick(Sender: TObject);
    procedure Chart1AfterDraw(Sender: TObject);
    procedure Chart1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure Chart1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    procedure Chart1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure BToolClick(Sender: TObject);
  private
    FSelection: TSelection;
    FMouseHandled: Boolean;
    FZoomMode: Boolean;
  public
    procedure SetZoomMode(ZoomOn: Boolean);
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
  BZoomTool.GroupIndex := 1;
  BSelectTool.GroupIndex := 1;
  BSelectTool.AllowAllUp := False;
  BSelectTool.Down := True; 
  BZoomTool.OnClick := BToolClick;
  BSelectTool.OnClick := BToolClick;
  for i := 0 to 30 do
    Series1.AddXY(i, Random(i));
  SetZoomMode(False);
  Chart1.OnAfterDraw := Chart1AfterDraw;
  Chart1.OnMouseDown := Chart1MouseDown;
  Chart1.OnMouseMove := Chart1MouseMove;
  Chart1.OnMouseUp   := Chart1MouseUp;
  BGetSelection.OnClick := BGetSelectionClick;
  FSelection := TSelection.CreateEx(Self, Chart1, Series1);
end;
procedure TForm1.SetZoomMode(ZoomOn: Boolean);
begin
  FZoomMode := ZoomOn;
  if ZoomOn then
  begin
    Chart1.AllowPanning := pmBoth;
    Chart1.AllowZoom := True;
  end
  else
  begin
    Chart1.AllowPanning := pmNone;
    Chart1.AllowZoom := False;
  end;
end;
procedure TForm1.Chart1AfterDraw(Sender: TObject);
begin
  FSelection.Draw(Chart1);
end;
procedure TForm1.Chart1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  FMouseHandled := FZoomMode;
  FSelection.HandleMouse(X, Y, evMouseDown, Shift, FMouseHandled);
end;
procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  FMouseHandled := FZoomMode;
  FSelection.HandleMouse(X, Y, evMouseMove, Shift, FMouseHandled);
end;
procedure TForm1.Chart1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  FMouseHandled := FZoomMode;
  FSelection.HandleMouse(X, Y, evMouseUp, Shift, FMouseHandled);
end;
procedure TForm1.BGetSelectionClick(Sender: TObject);
var i, idx: Integer;
begin
  ListBox1.Items.Clear;
  for i := 0 to FSelection.Count-1 do
  begin
    idx := FSelection.Indexes[i];
    ListBox1.Items.Add(
      Format('%f  %f', [FSelection.Series.XValue[idx], FSelection.Series.YValue[idx]])
    );
  end;
end;
procedure TForm1.BToolClick(Sender: TObject);
begin
  SetZoomMode(Sender = BZoomTool);
end;
end.
Responder Con Cita
  #4  
Antiguo 14-03-2012
efirvida efirvida is offline
Miembro
 
Registrado: jun 2010
Posts: 12
Poder: 0
efirvida Va por buen camino
muchisimas gracias esto me servira de mucho, solo permitame hacerle unas observaciones que me dieron error, cuando se utiliza
Código Delphi [-]
FSelection.HandleMouse(X, Y, evMouseDown, Shift, FMouseHandled);

paraque funcionara tuve que dejarlo como

Código Delphi [-]
FSelection.HandleMouse(X, Y, evMouseDown, Shift);
que es asi como esta declarado en XYSel.pas

solo eso muchisimas gracias por todo nuevamente, y disculpenme por no haber respondido antes.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Chart Caro OOP 3 13-06-2008 04:50:37
utilizacion del chart ely15 Gráficos 5 04-04-2008 03:47:49
como mostrar una pagina(html) parte por parte? gabrielflowers PHP 10 02-04-2008 00:37:21
Problema con un chart egbaquela Gráficos 3 18-08-2007 01:47:12
Imprecion con Chart FX agonzalez Gráficos 3 07-04-2004 16:43:52


La franja horaria es GMT +2. Ahora son las 15:18:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi