Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-06-2012
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 100
Poder: 22
CrazySoft Va por buen camino
Perdon lo que quiero es que se evalue automaticamte la expresion que le de y me almacene solo el valor no la expresion, lo que hice hasta el momento es usar el componente CalcExpress, y un edit que lo inclui al DBGrid, mi problema esta en que no puedo salir de la celda con las teclas de cursor o una ves terminado de editar

lo que hice fue a un dbgrid

Código Delphi [-]
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
const IsChecked: array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
Begin
        if (Column.Field.FieldName = 'Expresion') then
            with Expresion do begin
                Left := Rect.Left + DBGrid1.Left + 1;
                Top := Rect.Top + DBGrid1.Top + 1;
                Width := Rect.Right - Rect.Left + 2;
                Width := Rect.Right - Rect.Left + 2;
                Height := Rect.Bottom - Rect.Top + 2;
                text := FloatToStr(ADOTable1Expresion.Value);
                Visible := True;
            end;
end;

procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin

    if (DBGrid1.SelectedField.FieldName = 'Expresion') then Expresion.Visible := False;
end;

procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
    if (key = Chr(9)) then Exit;

    if (DBGrid1.SelectedField.FieldName = 'Expresion')
        then
    begin
        Expresion.SetFocus;
        SendMessage(Expresion.Handle, WM_Char, word(Key), 0);
    end;

end;

procedure TForm1.ExpresionClick(Sender: TObject);
begin
    DBGrid1.DataSource.Edit;

end;
procedure TForm1.ExpresionKeyPress(Sender: TObject; var Key: Char);
var
    CalcExpress1: TCalcExpress;
    args: array[0..100] of extended;
begin
    if key = #13 then
    begin
        CalcExpress1 := TCalcExpress.Create(self);
        CalcExpress1.Formula := Expresion.text;

        if DBGrid1.DataSource.State in [dsEdit, dsInsert] then
            ADOTable1Expresion.Value := CalcExpress1.calc(args);

        Expresion.text := floattostr(CalcExpress1.calc(args));
        CalcExpress1.free;
    end;
end;


mas conctratmente aqui esta el ejemplo

http://crazy-soft.net/descargas/DBGridExpresion.rar

Gracias, o hay algun componente que me realice lo que estoy hacendo
Responder Con Cita
  #2  
Antiguo 10-06-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Sí, más o menos se entiende lo que estás haciendo, pero realmente, ¿qué es lo quieres hacer?, lo mismo hay otras opciones más cómodas para hacer lo que quieres.
Responder Con Cita
  #3  
Antiguo 10-06-2012
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 100
Poder: 22
CrazySoft Va por buen camino
poder realizar una simple operacion de suma, resta, multiplicacion o division en la grilla

o que otra opcion mas sencilla hay

gracias
Responder Con Cita
  #4  
Antiguo 10-06-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Si lo haces en el dbgrid estás accediendo directamente a los datos en la base de datos, seguramente la mejor opción (si quieres hacerlo en el dbgrid) sea usar los métodos gettext y settext del mismo, busca por esos términos. Básicamente es "interceptar" lo escrito y hacer el cálculo y que al dbgrid (al dataset, realmente) le lleguen los datos ya calculados.
Responder Con Cita
  #5  
Antiguo 10-06-2012
CrazySoft CrazySoft is offline
Miembro
 
Registrado: abr 2005
Posts: 100
Poder: 22
CrazySoft Va por buen camino
Gracias, pero hice la prueba y no me permite el ingreso de los operadores * y / para poder calcular
o hay un ejemplo bajo la manga
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Ayuda con error! expresion demasiado compleja en la expresion de consulta escorpionrojo43 SQL 8 16-07-2011 22:03:16
Expresion regular Ivan_25 .NET 2 13-04-2009 09:58:47
Expresion Regular D-MO Varios 3 30-06-2007 18:51:59
Expresión FormatNumeric davidgaldo Impresión 3 12-05-2005 18:00:25
expresion matematicas Irina Impresión 4 21-05-2003 00:49:51


La franja horaria es GMT +2. Ahora son las 16:12:59.


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