Hola novato_erick.
Cita:
Empezado por novato_erick
...
Sinceramente lo que he notado que hacen es en el mismo todo lo hacen desde el mismo programa la configuración de idioma es Español Panamá y respondiendo la tercera interrogante de como y cuando lo guardo utilizando el componente DBExpress de Delphi con tdbxTransaction.
|
No sé cuál de los componentes de la biblioteca DBExpress estás usando, pero el
TSimpleDataSet posee el evento
OnBeforePost que podrías aprovechar para eliminar los caracteres
CR y
LF antes del guardado.
Algo parecido a esto:
Código Delphi
[-]
procedure TForm.SimpleDataSet1BeforePost(DataSet: TDataSet);
var
i : Integer;
sds: TSimpleDataSet;
begin
sds := SimpleDataSet1;
sds.Edit;
for i := 0 to sds.FieldCount-1 do
if sds.Fields[i] is TStringField then
begin
sds.Fields[i].AsString := StringReplace(sds.Fields[i].AsString,#$A,'',[rfReplaceAll]);
sds.Fields[i].AsString := StringReplace(sds.Fields[i].AsString,#$D,'',[rfReplaceAll]);
end;
end;
Otra opción es capturar el evento
WM_DRAWCLIPBOARD que se dispara cuando el contenido del clipboard es modificado:
Código Delphi
[-]
type
TForm1 = class(TForm)
...
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure ClipBoardChanged(var Message: TMessage); message WM_DRAWCLIPBOARD;
public
end;
...
implementation
uses Clipbrd;
var
hClipbrd: HWND;
procedure TForm1.FormCreate(Sender: TObject);
begin
hClipbrd := GetClipboardViewer;
SetClipboardViewer(Handle);
end;
procedure TForm1.ClipBoardChanged(var Message: TMessage);
begin
if Clipboard.HasFormat(CF_TEXT) then begin
Clipboard.AsText := StringReplace(Clipboard.AsText, #$A, '', [rfReplaceAll]);
Clipboard.AsText := StringReplace(Clipboard.AsText, #$D, '', [rfReplaceAll]);
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
SetClipboardViewer(hClipbrd);
end;
Saludos