Fórum Problemas com Impressão Direta e outros #210428
29/01/2004
0
Galera do Fórum.
Estou com 2 dúvidas cruéis que mesmo lendo o Help do Delphi, ainda encontro problemas.
1. Problema
Tenho que imprimir na impressora (mini impressora) os seguintes dados na mesma linha.
Nome do Produto Peso Valor Produto Valor Total a Pagar
Exemplo:
Batata 1.250 0,89 R$ 2,14
Naum estou conseguindo fazer direito pelo Writeln mandando direto para a impressora.
Tenho dúvidas no comando exemplo;
WriteLn(Impressora,Format(´¬10s´,[´teste´]));
O comando Format, não entendi muito bem.
Se alguem pode explicar melhor o comando WriteLn, como imprimir no meu exemplo acima.
Tipo dos campos usado.
Produtochar(23)
Pesonumeric(08,2)
Valornumeric(08,2)
Totaldecimal(10,2)
Naum sei usar muito bem o comando Format ( que no help do delphi tem FormatString, mas naum entendi muito bem ). Se puderem me passar algumas dicas de como usar.
Estou usando Firebird.
2. Usando Dll,
Solicitei ajuda aos amigos do forum, mas mesmo assim naum deu certo
O código da Dll é o seguinte.
library Objetiva;
uses
ShareMem, SysUtils, Windows;
function ZeroEsquerda(const I: integer; const Casas: byte): string; stdcall; overload;
var
Ch: Char;
begin
Result := IntToStr(I);
if Length(Result) > Casas then
begin
Ch := ´*´;
Result := ´´;
end
else
Ch := ´0´;
while Length(Result) < Casas do
Result := Ch + Result;
end;
exports
ZeroEsquerda(const I: integer; const Casas: byte);
end.
Codigo da minha aplicação que usa a Dll.
-----------------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ShareMem;
type
TForm1 = class(TForm)
Edit1: TEdit;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function ZeroEsquerda(const I: integer; const Casas: byte): string; stdcall; external ´Objetiva.DLL´;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
edit1.text := ZeroEsquerda(strtoint(edit1.text),13);
end;
end.
A funcao executa normalmente mas quando fecho a aplicação dá o seguinte erro.
´Invalid Pointer Operation´
No código onde esta o erro? O Porque deste erro?
Usei as dicas dos colegas, mas mesmo assim naum deu certo naum.
Por favor, se puderem me ajudar, agradeço.
Valnei
Estou com 2 dúvidas cruéis que mesmo lendo o Help do Delphi, ainda encontro problemas.
1. Problema
Tenho que imprimir na impressora (mini impressora) os seguintes dados na mesma linha.
Nome do Produto Peso Valor Produto Valor Total a Pagar
Exemplo:
Batata 1.250 0,89 R$ 2,14
Naum estou conseguindo fazer direito pelo Writeln mandando direto para a impressora.
Tenho dúvidas no comando exemplo;
WriteLn(Impressora,Format(´¬10s´,[´teste´]));
O comando Format, não entendi muito bem.
Se alguem pode explicar melhor o comando WriteLn, como imprimir no meu exemplo acima.
Tipo dos campos usado.
Produtochar(23)
Pesonumeric(08,2)
Valornumeric(08,2)
Totaldecimal(10,2)
Naum sei usar muito bem o comando Format ( que no help do delphi tem FormatString, mas naum entendi muito bem ). Se puderem me passar algumas dicas de como usar.
Estou usando Firebird.
2. Usando Dll,
Solicitei ajuda aos amigos do forum, mas mesmo assim naum deu certo
O código da Dll é o seguinte.
library Objetiva;
uses
ShareMem, SysUtils, Windows;
function ZeroEsquerda(const I: integer; const Casas: byte): string; stdcall; overload;
var
Ch: Char;
begin
Result := IntToStr(I);
if Length(Result) > Casas then
begin
Ch := ´*´;
Result := ´´;
end
else
Ch := ´0´;
while Length(Result) < Casas do
Result := Ch + Result;
end;
exports
ZeroEsquerda(const I: integer; const Casas: byte);
end.
Codigo da minha aplicação que usa a Dll.
-----------------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ShareMem;
type
TForm1 = class(TForm)
Edit1: TEdit;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function ZeroEsquerda(const I: integer; const Casas: byte): string; stdcall; external ´Objetiva.DLL´;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
edit1.text := ZeroEsquerda(strtoint(edit1.text),13);
end;
end.
A funcao executa normalmente mas quando fecho a aplicação dá o seguinte erro.
´Invalid Pointer Operation´
No código onde esta o erro? O Porque deste erro?
Usei as dicas dos colegas, mas mesmo assim naum deu certo naum.
Por favor, se puderem me ajudar, agradeço.
Valnei
Objetivacreator
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)