Ver Mensaje Individual
  #141  
Antiguo 21-07-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Reputación: 23
José Luis Garcí Va camino a la fama
Vamos a hora por el botón "Escribir nota" con el siguiente código

Código Delphi [-]
procedure TFXPAF.SBEscribirNotaClick(Sender: TObject);
//------------------------------------------------------------------------------
//******************************************************************[ Nota ]****
//------------------------------------------------------------------------------
var VarSText:string;
begin
   VarSText:=DBIBMemo2.Lines.Text;
   DBIBMemo2.Lines.Text:=InputMemo('Nota','Escriba su nota',VarSText);
end;

y como no estoy seguro de si puse esta function aquí os la pongo

Código Delphi [-]
//------------------------------------------------------------------------------
//*************************************************************[ ImputMemo ]****
//  Parte de la idea original de   Felipe Monteiro  del 25/05/2006
// bajada de http://www.planetadelphi.com.br/dica...tbox-com-combo)
//------------------------------------------------------------------------------
// J.L.G.T. 06/08/2012 Basando me en el código de Felipe Monteiro , lo adapte a
// mis necesidades, creando un imput para entradas en memo
//------------------------------------------------------------------------------
//  [Acaption]       String     Texto en la barra del caption
//  [Aprompt]        String     Texto aclaratorio para elmensaje o petición
//  [Text]           String     Texto del MEmo
//------------------------------------------------------------------------------
//---EJEMPLO--------------------------------------------------------------------
//  procedure TForm1.Button1Click(Sender: TObject);
//  begin
//     DBMEMO1.lines.text:=InputMemo('Comentario con fecha','Comentario');
//  end;
//------------------------------------------------------------------------------
function InputMemo(const ACaption, APrompt: string; Text:String =''): string;
  function GetCharSize(Canvas: TCanvas): TPoint;
  var
    I: Integer;
    Buffer: array[0..51] of Char;
  begin
    for I := 0 to 25 do Buffer[i] := Chr(I + Ord('A'));
    for I := 0 to 25 do Buffer[I + 26] := Chr(I + Ord('a'));
    GetTextExtentPoint(Canvas.Handle, Buffer, 52, TSize(Result));
    Result.X := Result.X div 52;
  end;

var
  Form: TForm;
  Prompt: TLabel;
  MEM: TMemo;
  DialogUnits: TPoint;
  ButtonTop, ButtonWidth, ButtonHeight: Integer;
  R: TRect;
begin
  Result := '';
  Form   := TForm.Create(Application);
  with Form do
    try
      Canvas.Font     := Font;
      DialogUnits     := GetCharSize(Canvas);
      BorderStyle     := bsDialog;
      FormStyle        :=fsStayOnTop;
      Caption         := ACaption;
      ClientWidth     := MulDiv(396, DialogUnits.X, 4);
      Position        := poScreenCenter;
      Prompt          := TLabel.Create(Form);
      with Prompt do
      begin
        Parent   := Form;
        Caption  := APrompt;
        Left     := MulDiv(8, DialogUnits.X, 4);
        Top      := MulDiv(8, DialogUnits.Y, 8);
        Constraints.MaxWidth := MulDiv(180, DialogUnits.X, 4);
        WordWrap := True;
      end;
      MEM := TMemo.Create(Form);
      with MEM do
      begin
        Parent         := Form;
        Left          := Prompt.Left;
        Top           := Prompt.top+Prompt.Height+5;
        Height        := 150;
        Width         := MulDiv(380, DialogUnits.X, 4);
        Lines.Text    := Text;
      end;
      ButtonTop    := MEM.top+MEM.Height+10;;
      ButtonWidth  := MulDiv(50, DialogUnits.X, 4);
      ButtonHeight := MulDiv(14, DialogUnits.Y, 8);
      with TButton.Create(Form) do
      begin
        Parent      := Form;
        Caption     := 'OK';
        ModalResult := mrOk;
        default     := True;
        SetBounds(MulDiv(Prompt.Left-2, DialogUnits.X, 4), ButtonTop, ButtonWidth,
          ButtonHeight);
      end;
      with TButton.Create(Form) do
      begin
        Parent      := Form;
        Caption     := 'Cancelar';
        ModalResult := mrCancel;
        Cancel      := True;
        SetBounds(MulDiv(340, DialogUnits.X, 4), ButtonTop,ButtonWidth, ButtonHeight);
        Form.ClientHeight := 220;
      end;
      MEM.Lines.Clear;
      MEM.Lines.Add(Text);
      if ShowModal = mrOk then Result:=MEM.Lines.Text
                          else Result:=Text;   //Devuelve el original
    finally
      Form.Free;
    end;
end;

Ahora pasamos al desglose de la factura, explicare la función de algunos botones, el resto son iguales a los de siempre
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita