Socorro sera que ninguem desse foro Pode Me Ajudar...

Delphi

02/03/2003

Amigos so quero colocar os meus registros em colunas num RichEdit
mas não estou conseguindo.. abaixo esta o codigo que uso.. para vizualizar os registros num RichEdit
O Codigo esta assim.. ele esta ficando assim
--------------------------------------------------------------------------------
Codigo....Nome..............................................Data -
000001... Deibe Junior Viana...01/01/2002----> esta desalinhado a -
--------------------------------------------------------------------------------
coluna..
como faço para ficar um debaixo do outro..
O Codigo que estou usando é esse...

quero que fica assim
--------------------------------------------------------------------------------
Codigo....Nome............................................Data -
000001... Deibe Junior Viana.........................01/01/2002> aqui esta certo
--------------------------------------------------------------------------------


var
Data : String ;
QuebraPagina,x,Codigo,Pagina : Integer ;
begin
QuebraPagina:=0;
Codigo:=0 ;
Data:=DateToStr(Date) ;
Pagina:=1 ;
Linhas.Lines.Add(´============================================================================´);
Linhas.Lines.Add(´Farmácia MedFarma - Relatóirio de Clientes Pagina :´+InttoStr(Pagina)) ;
Linhas.Lines.Add(´CODIGO NOME CLIENTE Data:´+Data) ;
Linhas.Lines.Add(´============================================================================´);
for x:=0 to Q.RecordCount -1 do
begin
QuebraPagina:=QuebraPagina+1 ;
if QuebraPagina=21 then
begin
Pagina:=Pagina+1 ;
Linhas.Lines.Add(´============================================================================´);
Linhas.Lines.Add(´´);
Linhas.Lines.Add(´============================================================================´);
Linhas.Lines.Add(´Farmácia MedFarma - Relatóirio de Clientes Pagina :´+InttoStr(Pagina)) ;
Linhas.Lines.Add(´CODIGO NOME CLIENTE Data:´+Data) ;
Linhas.Lines.Add(´============================================================================´);
Quebrapagina:=0 ;
end;
Codigo:=Codigo+1 ;
Linhas.Lines.Add(FormatFloat(´000000´,Q.FieldByName(´Codigo´).AsInteger)+´ ´+Q.FieldByName(´Nome´).AsString +´ ´+Q.FieldByName(´Data´).AsString);
Q.Next;
end ;
Linhas.Lines.Add(´´) ;
Linhas.Lines.Add(´´) ;
Linhas.Lines.Add(´Total Pagina(s) :´+IntToStr(Pagina)) ;
Linhas.Lines.Add(´Total Linha(s) :´+IntToStr(linhas.Lines.Count)) ;


Anonymous

Anonymous

Curtidas 0

Respostas

Cdaraujo

Cdaraujo

02/03/2003

Caro Amigo,
Veja o que vc tem que fazer para sair alinhado!

RichEdit1.Font.Name := ´Courier New´;

Atenciosamente,

Daniel Araújo
ICQ:111769805
www.cdinformatica.hpg.com.br


GOSTEI 0
Anonymous

Anonymous

02/03/2003

Caro amigo estou tentando conversar com vc no icp.. mas não responde meu nick é babu ...
amigo o me falou ja fiz e continua do mesmo geito acho que tem que criar uma variavel tipo intera para colocar em coluna não acha.. verefique o codigo fonte ... e vc pode me ajudar.....
tem que ficar assim.. Estou colocando os pontinhos.. para não desalinhar quando atualizar o registro na pagina... somente para isso

Codigo...Nome.....................................Data
000001..Deibe Junior Viana...................14/01/2002

Me ajude por favor só falta isso...


GOSTEI 0
Cdaraujo

Cdaraujo

02/03/2003

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Contnrs, Spin, ExtCtrls;

type
TReSet = class
Cod, Nome, DataReg: String[50];
end;
TForm1 = class(TForm)
RichEdit1: TRichEdit;
Panel1: TPanel;
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
SpinEdit1: TSpinEdit;
Label2: TLabel;
DateTimePicker1: TDateTimePicker;
Label3: TLabel;
ListBox1: TListBox;
Button2: TButton;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
LstValue: TObjectList;

end;

var
Form1: TForm1;

implementation

{$R *.dfm}
function InsertChar(Sub, ConstValue: String; Size: Integer): String;
var I, CountStr:Integer;
begin
Result := ´´;
for I := 1 to Size do
begin
if Length(ConstValue) >= I then
Result := Result + ConstValue[I]
else
Result := Result + Sub;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
LstValue.Add(TReSet.Create);
with TReSet(LstValue[LstValue.Count -1]) do
begin
Cod := FormatFloat(´000000000´,SpinEdit1.Value);
Nome := Edit1.Text;
DataReg := FormatDateTime(´DD/MM/YYYY´,DateTimePicker1.DateTime);
ListBox1.Items.Add(InsertChar(´´ , Cod, 10) +
InsertChar(´ ´, Nome , 50) +
InsertChar(´´, DataReg, 10) );
end;

end;


procedure TForm1.Button2Click(Sender: TObject);
var Data:String;
I:Integer;
begin
Data := FormatDateTime(´DD/MM/YYYY´, Date);
RichEdit1.Lines.Clear ;
with RichEdit1 do
begin
Lines.Add(´============================================================================´);
Lines.Add(´Farmácia MedFarma - Relatóirio de Clientes Pagina :´+InttoStr(1)) ;
Lines.Add(´CODIGO NOME CLIENTE Data:´+Data) ;
Lines.Add(´============================================================================´);
for I:= 0 to LstValue.Count -1 do
begin
with TReSet(LstValue[I]) do
begin
Lines.Add(InsertChar(´´ , Cod, 10) +
InsertChar(´ ´, Nome , 57) +
InsertChar(´´, DataReg, 10) );
end;
end;
Lines.Add(´´) ;
Lines.Add(´´) ;
Lines.Add(´Total Pagina(s) :´+IntToStr(1)) ;
Lines.Add(´Total Linha(s) :´+IntToStr(Lines.Count)) ;
end;

end;


procedure TForm1.FormCreate(Sender: TObject);
begin
LstValue := TObjectList.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
LstValue.Free;
end;

end.


GOSTEI 0
Anonymous

Anonymous

02/03/2003

Caro Babu,

As duas respostas se complementam:
1. Você não pode usar fontes proporcionais que causam o espaçamento variável. Portanto, use fontes monoespaçadas como: Courier, Corier New, Terminal, etc ;
2. Diferente do CA Clipper o Delphi elimina os espaços vazios a direita das colunas de tabelas do tipo caractere e conforme mostrado pelo colega, você deve utilizar uma função de preenchimento.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

02/03/2003

Caro Babu,

As duas respostas se complementam:
1. Você não pode usar fontes proporcionais que causam o espaçamento variável. Portanto, use fontes monoespaçadas como: Courier, Corier New, Terminal, etc ;
2. Diferente do CA Clipper o Delphi elimina os espaços vazios a direita das colunas de tabelas do tipo caractere e conforme mostrado pelo colega, você deve utilizar uma função de preenchimento.


GOSTEI 0
POSTAR