Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Varios
Register FAQ Members List Calendar Guía de estilo Today's Posts

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 20/11/2010
José Luis Garcí's Avatar
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Join Date: May 2003
Location: Las Palmas de G.C.
Posts: 1,372
Poder: 25
José Luis Garcí Va camino a la fama
Nuevas funciones

Hola compañeros me gustaría compartir con ustedes estas nuevas funciones pr si les resultase de ayuda

Código Delphi [-]
//------------------------------------------------------------------------------
//**********************************************************[ FIRECHECK ]*******
// JLGT 19/11/2010  Se encarga de pasar de  firebird a checkbox
// ---------Ejemplo------------
//   FireCheck(Checkbox1,Dtasource1,'VENDIDO');
//------------------------------------------------------------------------------
 function FireCheck(CHK:TCheckBox;          //Checkbox a Rellenar
                   Ds:TDataSource;          //Dtasource para conocer  el campo
                   CAMPO:string):string;    //Campo al que esta asociado y devuelve el valor SI si es checked y NO si es False
begin
    if Ds.DataSet.FieldByName(CAMPO).Value='SI' then
    begin
      CHK.Checked:=True;
      Result:='SI';
    end else
    begin
      CHK.Checked:=False;
      Result:='NO';
    end;
end;




//------------------------------------------------------------------------------
//**********************************************************[ CHECKFIRE ]*******
// JLGT 19/11/2010  Se encarga de pasar checkbox a si o no para firebird
// ---------Ejemplo------------
//   CheckFire(Checkbox1,Dtasource1,'VENDIDO');
//------------------------------------------------------------------------------
 //Nueva JLGT 19/11/2010  Se encarga de pasar checkbox a si o no para firebird
function CheckFire(CHK:TCheckBox;          //Checkbox a comprobar
                   Ds:TDataSource;         //Dtasource para conocer  el campo
                   CAMPO:string):string;   //Campo al que esta asociado y devuelve el valor SI si es checked y NO si es False
begin
     if CHK.Checked=true then
     begin
         Ds.DataSet.FieldByName(CAMPO).Value:='SI';
         Result:='SI';
     end else
     begin
        Ds.DataSet.FieldByName(CAMPO).Value:='NO';
         Result:='NO';
     end;
end;



function MAxMin(Max,Min,Valor:integer): Integer;
//-----------------------------------------------------------------------------
//************************************************************[  MaxMin ]******
//  2010  JLGT  Controla que un valor integer este entre un máximo y un mínimo
//-----------------------------------------------------------------------------
//  Ejemplo MaxMin(100,50,80);  ///Da 80
//  Ejemplo MaxMin(100,50,180);  ///Da 100
//  Ejemplo MaxMin(100,50,35);  ///Da 50
//-----------------------------------------------------------------------------
var VMiRetorrno:integer;
    focusRectangle:tshape;
begin

  VMiRetorrno:=VALOR;
  if min>valor then VMiRetorrno:=Min;
  if maxthen  VMiRetorrno:=Max;
  Result:=VMiRetorrno;
end;



Function Redondear(Control: TWinControl;Round:integer;ColorLine,ColorFondo:Tcolor;WidthLine,Style,Border,space,STyleF:integer):b  oolean ;
//-----------------------------------------------------------------------------
//*********************************************************[ Redondear  ]******
// 2010 JLGT Un efecto con borde de un color y relleno de otro sobre un control
//-----------------------------------------------------------------------------
// Bueno basandome en el código de master23 y en el código de about
// página http://delphi.about.com/od/adptips20...srectangle.htm
// más unas modificaciones mias queda bastante cuioso
//-----------------------------------------------------------------------------
// Parametros-------------
// Control:       Control que queremos usar
// Round:         Redondeo que quermeos darle al borde
// ColorLine:     Color a asignar en el fondo
// ColorFondo:    Color a aplicar al borde
// WidthLine:     Grosor del borde
// Style:         Tipo de pluma a usar para relleno borde
// Border:        Tipo de border a crear
// space          Espacio a separar del control
// STyleF:        Tipo de pluma a usar para relleno fondo
//-----------------------------------------------------------------------------
//
//  Ejemplo   Redondear(Edit1,2,clGreen,clyellow,2,1,3,3,1);
//
//-----------------------------------------------------------------------------
var
  R: TRect;
  Rgn: HRGN;
  focusRectangle:tshape;  //unit  ExtCtrls
begin
   focusRectangle := TShape.Create(Control) ;
   case border of
     1: focusRectangle.Shape := stRectangle;
     2: focusRectangle.Shape := stSquare;      //queda mal
     3: focusRectangle.Shape := stRoundRect;
     4: focusRectangle.Shape := stRoundSquare; //queda mal
     5: focusRectangle.Shape := stEllipse;     //queda mal
     6: focusRectangle.Shape := stCircle;      //queda mal
   end;
   focusRectangle.Visible := false;
   case Style of
     1: focusRectangle.Pen.Style := psSolid;
     2: focusRectangle.Pen.Style := psDash;
     3: focusRectangle.Pen.Style := psDot;
     4: focusRectangle.Pen.Style := psDashDot;
     5: focusRectangle.Pen.Style := psDashDotDot;
     6: focusRectangle.Pen.Style := psClear;
     7: focusRectangle.Pen.Style := psInsideFrame;
     8: focusRectangle.Pen.Style := psUserStyle;
     9: focusRectangle.Pen.Style := psAlternate;
   end;
   focusRectangle.Brush.Color:=ColorFondo;
   case STyleF of
     1:focusRectangle.Brush.Style := bsSolid;
     2:focusRectangle.Brush.Style := bsClear;
     3:focusRectangle.Brush.Style := bsHorizontal;
     4:focusRectangle.Brush.Style := bsVertical;
     5:focusRectangle.Brush.Style := bsFDiagonal;
     6:focusRectangle.Brush.Style := bsCross;
     7:focusRectangle.Brush.Style := bsDiagCross;
   end;
   FocusRectangle.Pen.Color := ColorLine;
   focusRectangle.Pen.Width := WidthLine;
  with Control do
  begin
    R := ClientRect;
    rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, Round, Round) ;
    Perform(EM_GETRECT, 0, lParam(@r)) ;
    InflateRect(r, - 4, - 4) ;
    Perform(EM_SETRECTNP, 0, lParam(@r)) ;
    SetWindowRgn(Handle, rgn, True) ;
    with focusRectangle do
    begin
      Parent := Control.Parent;
      Top := Control.Top - (space+WidthLine);
      Height := Control.Height + ((space*2)+WidthLine);
      Left := Control.Left - (space+WidthLine);
      Width := Control.Width + ((Space*2)+WidthLine);
      Visible := true;
    end;
    Invalidate;
  end;
end;

Function ActQuery(QRY:TIBQuery; TxtSql:string): Boolean;
//-----------------------------------------------------------------------------
//**********************************************************[ ActQuerry ]******
//  20/11/2010  JLGT  Para modificar la sentencia de un querry
//-----------------------------------------------------------------------------
//  Estudiando como poder hacer mi código mas corto se me ocurrio esta función
//  para usar un los IBQerry, para mi base de datos Firebird.
//  El tema es que cada vez que utilizo un querry y lo modifico tengo que
//  escribir unas 20 lineas y mediante este sistema, logro reducirlo a una sola
//  ya que es un, código repetitivo y soló varia el nombre del query y la
//  sentencia Sql, cree esta función
//-----------------------------------------------------------------------------
//  Base de datos a usar CLIENTES

//   if ActQuerry(IBQuerry1,'Select * form Clientex')=true then
//                   showmessage('Existe la base de datos')
//   else showmessage('No existe la base de datos');
//-----------------------------------------------------------------------------
var AntSql:string;
begin
    try
      try
        AntSql:=QRY.SQL.Text;
        QRY.Active:=false;
        QRY.SQL.Clear;
        QRY.SQL.Text:=TxtSql;
        QRY.Active:=true;
        Result:=true;
      except
        on E: Exception do
        begin
           ShowMessage('Se ha producido un error: ' + Chr(13) + Chr(13)
                     + 'Clase de error: ' + E.ClassName + Chr(13) + Chr(13)
                     + 'Mensaje del error: ' + E.Message+ Chr(13) + Chr(13)
                     +'  '+ Chr(13) + Chr(13)
                     +'Se volvera al estado anterior');
        Result:=false;
        end;
      end;
    finally
      if Result=false then
      begin
        QRY.Active:=false;
        QRY.SQL.Clear;
        QRY.SQL.Text:=AntSql;
        QRY.Active:=true;
      end;
    end;
end;
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Reply With Quote
  #2  
Old 20/11/2010
marcoszorrilla's Avatar
marcoszorrilla marcoszorrilla is offline
Capo
 
Join Date: May 2003
Location: Cantabria - España
Posts: 11,221
Poder: 10
marcoszorrilla Va por buen camino
Gracias por la aportación José Luis.

Un Saludo.
__________________
Guía de Estilo de los Foros
Quote:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Reply With Quote
  #3  
Old 20/11/2010
look's Avatar
look look is offline
Miembro
 
Join Date: Sep 2007
Location: The Shire
Posts: 656
Poder: 19
look Va camino a la fama
hola gracias por el aporte.
por cierto, en la funcion de redondear bordes, me daba error en las lineas:
Código Delphi [-]
     8: focusRectangle.Pen.Style := psUserStyle;
     9: focusRectangle.Pen.Style := psAlternate;
solo las borre y me funko bien, ¿sera por la version de delphi?....
__________________
all your base are belong to us
Reply With Quote
  #4  
Old 20/11/2010
José Luis Garcí's Avatar
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Join Date: May 2003
Location: Las Palmas de G.C.
Posts: 1,372
Poder: 25
José Luis Garcí Va camino a la fama
Gracias , no hay ni que darlas, Yo debo más a la comunidad de lo que puedo aportar, lo que ocurre es que alguna de estas funciones pueden reducir el código, o aportar claridad a ciertas dudas. Pero la información esta en el club y en la red, soló la he agrupado.

En cuanto a en que versión de delphi las he realizado es en Delphi 2010, no se si habrá problemas con otras versiones.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"

Last edited by José Luis Garcí : 20/11/2010 at 16:14.
Reply With Quote
  #5  
Old 20/11/2010
ecfisa's Avatar
ecfisa ecfisa is offline
Moderador
 
Join Date: Dec 2005
Location: Tres Arroyos, Argentina
Posts: 10,508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Muchas gracias José Luis.

Saludos.
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Nuevas funciones SQL? GustavoCruz SQL 1 26/01/2008 18:49
Como añadir nuevas funciones Ziara C++ Builder 4 08/12/2007 15:01
Uso de las nuevas etiquetas vB jachguate Internet 0 07/05/2004 17:42
Uso de las nuevas etiquetas vB jachguate SQL 0 07/05/2004 17:41
Nuevas funciones con FastReport colibri Impresión 0 09/06/2003 16:42


All times are GMT +2. The time now is 04:49.


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