Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-06-2008
Avatar de Gambito
Gambito Gambito is offline
Miembro
 
Registrado: jul 2006
Posts: 10
Poder: 0
Gambito Va por buen camino
WordPara Torpes y PascalScript

Hola buen día para tod@s.

Estoy aprendiendo a manejar el Word para torpes, y me satisface lo que se puede hacer con los marcadores, para reemplazar informacion en un documento de Word.

lo que yo quiero hacer es que mi aplicacion sea un poco mas dinamica, y que el cliente pueda modificar (adicionar, borrar, cambiar de posicion, entre otros) los marcadores en el documento de word, y que mi aplicacion tome en cuenta los cambios, sin necesidad de recompilar.

La solucion que se me ocurre para esto es utilizando los componentes de RemObject Pascal Script.

Pero no los conozco bien, los estoy probando y no encuentro la forma de hacerlo, alguien ya ha hecho algo parecido ??

o alguien se anima para que saquemos esta idea a feliz termino y por supuesto publicar el resultado en el foro, para los que lo puedan necesitar en el futuro )

de antemani mil gracias.

PD. Cualquier ayuda ó sugerencia es bienvenida.
Responder Con Cita
  #2  
Antiguo 05-06-2008
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Hola, usando el RemObject Pascal Script, he probramado scripts que interactuan con el Excel, Word, etc... y no tiene mas complicación que hacerlo igual (casi igual) que lo harias programando en Delphi.

Ahora te busco, a ver si encuentro algun ejemplo de lo que te he comentado.

De hecho, a estos componentes (RemObject Pascal Script) les he dado un uso intensivo en varias aplicaciones, y son realmente buenos, potentes y faciles de ampliar con funciones, clases, etc... propias.

Saludos.
Responder Con Cita
  #3  
Antiguo 05-06-2008
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Este ejemplo, me lo hice para probar 2 cosas:

1- Crear Forms y asignarle eventos
2- Enviar cosas al Word

En realidad, el código lo escribí usando el Delphi, cuando ya me funcionaba bien, lo transformé en un script.

El código parece muy largo, pero el 90% es la creación del form y sus componentes en tiempo de ejecución xD

Copiando y pegando este código, en uno de los programa de ejemplo del Pascal Script, debería funcionarte sin problemas.

(Los textos no están en castellano, sino en catalán xD, ya que eran una prueba personal).

Código Delphi [-]
Program WordProva;
var 
  frmExemple01: TForm;
  lblDescripcio: TLabel;
  lblInfo: TLabel;
  memWordText: TMemo;
  btnEnviar: TButton;
  btnClose: TButton;
  gpbOpcionsText: TGroupBox;
  lblTamanyCaption: TLabel;
  lblFont: TLabel;
  chbNegreta: TCheckBox;
  chbSubretllar: TCheckBox;
  chbCursiva: TCheckBox;
  cmbCentrat: TComboBox;
  edtTextSize: TEdit;
  cmbFont: TComboBox;

// Add Items to the cmbCentrat control
procedure AddItemsOfcmbCentrat;
begin
  with cmbCentrat.Items do
    begin
      Clear;
      Add('Posar el text a l''esquerra');
      Add('Centrar el text al mig');
      Add('Posar el text a la dreta');
    end;
end;

// OnChange event fot memWordText control
procedure memWordTextOnChange(Sender: TObject);
begin
  btnEnviar.Enabled:=memWordText.Text <> '';
end;

// OnClick event fot btnEnviar control
procedure btnEnviarOnClick(Sender: TObject);
var
  WordDoc: Variant;
begin
  WordDoc:=CreateOleObject('Word.Application');
  WordDoc.Documents.Add;
  WordDoc.Selection.Font.Name:=cmbFont.Text;
  WordDoc.Selection.Font.Size:=StrToInt(edtTextSize.Text);
  WordDoc.Selection.Font.Bold:=chbNegreta.Checked;
  WordDoc.Selection.Font.Italic:=chbCursiva.Checked;
  WordDoc.Selection.Font.UnderLine:=chbSubretllar.Checked;
  WordDoc.Selection.ParagraphFormat.Alignment:=cmbCentrat.ItemIndex;
  WordDoc.Selection.TypeText(memWordText.Text);
  WordDoc.Visible:=True;
end;

// OnKeyPress event fot cmbFont control
procedure cmbFontOnKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
    if cmbFont.Items.IndexOf(LowerCase(cmbFont.Text)) <> 0 then
      cmbFont.Items.Add(cmbFont.Text);
end;

procedure DisplayForm;
begin

  // frmExemple01 Control (TfrmExemple01)
  frmExemple01:=TForm.Create(Self);
  With frmExemple01 do
    begin
      Name:='frmExemple01';
      Left:=0;
      Top:=0;
      Width:=534;
      Height:=313;
      ShowHint:=False;
      Hint:='';
      Enabled:=True;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=False;
      Align:=alNone;
      Caption:='Exemple 001 - Jugan''t amb el Word';
      Color:=clBtnFace;
      Position:=poScreenCenter;
      FormStyle:=fsNormal;
      BorderStyle:=bsDialog;
      WindowState:=wsNormal;
      BorderIcons:=[biSystemMenu,biMinimize,biMaximize];
    end;

  // lblDescripcio Control (TLabel)
  lblDescripcio:=TLabel.Create(frmExemple01);
  With lblDescripcio do
    begin
      Parent:=frmExemple01;
      Name:='lblDescripcio';
      Left:=8;
      Top:=8;
      Width:=175;
      Height:=13;
      ShowHint:=False;
      Hint:='';
      Enabled:=True;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      Alignment:=taLeftJustify;
      Layout:=tlTop;
      Caption:='Escriu aqui un text a enviar al Word:';
      AutoSize:=True;
      WordWrap:=False;
      Transparent:=True;
    end;

  // lblInfo Control (TLabel)
  lblInfo:=TLabel.Create(frmExemple01);
  With lblInfo do
    begin
      Parent:=frmExemple01;
      Name:='lblInfo';
      Left:=8;
      Top:=252;
      Width:=300;
      Height:=13;
      ShowHint:=False;
      Hint:='';
      Enabled:=False;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      Alignment:=taCenter;
      Layout:=tlTop;
      Caption:='Exemple creat amb la Classe "TFormGenerator" de xTech';
      AutoSize:=False;
      WordWrap:=False;
      Transparent:=True;
    end;

  // memWordText Control (TMemo)
  memWordText:=TMemo.Create(frmExemple01);
  With memWordText do
    begin
      Parent:=frmExemple01;
      Name:='memWordText';
      Left:=8;
      Top:=27;
      Width:=325;
      Height:=214;
      ShowHint:=False;
      Hint:='';
      Enabled:=True;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      HideSelection:=True;
      ReadOnly:=False;
      TabStop:=True;
      WantReturns:=True;
      WantTabs:=False;
      WordWrap:=True;
      TabOrder:=0;
      TabStop:=True;
      Text:='';
      Alignment:=taLeftJustify;
      ScrollBars:=ssVertical;
      OnChange:=@memWordTextOnChange;
    end;

  // btnEnviar Control (TButton)
  btnEnviar:=TButton.Create(frmExemple01);
  With btnEnviar do
    begin
      Parent:=frmExemple01;
      Name:='btnEnviar';
      Left:=314;
      Top:=247;
      Width:=100;
      Height:=25;
      ShowHint:=False;
      Hint:='';
      Enabled:=False;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      Caption:='Envia al Word';
      Default:=True;
      TabOrder:=1;
      TabStop:=True;
      Cancel:=False;
      ModalResult:=mrNone;
      OnClick:=@btnEnviarOnClick;
    end;

  // btnClose Control (TButton)
  btnClose:=TButton.Create(frmExemple01);
  With btnClose do
    begin
      Parent:=frmExemple01;
      Name:='btnClose';
      Left:=420;
      Top:=247;
      Width:=100;
      Height:=25;
      ShowHint:=False;
      Hint:='';
      Enabled:=True;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      Caption:='Tanca';
      Default:=False;
      TabOrder:=2;
      TabStop:=True;
      Cancel:=False;
      ModalResult:=mrCancel;
    end;

  // gpbOpcionsText Control (TGroupBox)
  gpbOpcionsText:=TGroupBox.Create(frmExemple01);
  With gpbOpcionsText do
    begin
      Parent:=frmExemple01;
      Name:='gpbOpcionsText';
      Left:=339;
      Top:=27;
      Width:=181;
      Height:=214;
      ShowHint:=False;
      Hint:='';
      Enabled:=True;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      Caption:='Opcions del Text ';
      TabOrder:=3;
      TabStop:=False;
    end;

  // lblTamanyCaption Control (TLabel)
  lblTamanyCaption:=TLabel.Create(gpbOpcionsText);
  With lblTamanyCaption do
    begin
      Parent:=gpbOpcionsText;
      Name:='lblTamanyCaption';
      Left:=16;
      Top:=131;
      Width:=98;
      Height:=13;
      ShowHint:=False;
      Hint:='';
      Enabled:=True;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      Alignment:=taLeftJustify;
      Layout:=tlTop;
      Caption:='Tamany de la lletra: ';
      AutoSize:=True;
      WordWrap:=False;
      Transparent:=True;
    end;

  // lblFont Control (TLabel)
  lblFont:=TLabel.Create(gpbOpcionsText);
  With lblFont do
    begin
      Parent:=gpbOpcionsText;
      Name:='lblFont';
      Left:=16;
      Top:=156;
      Width:=74;
      Height:=13;
      ShowHint:=False;
      Hint:='';
      Enabled:=True;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      Alignment:=taLeftJustify;
      Layout:=tlTop;
      Caption:='Font a Utilitzar:';
      AutoSize:=True;
      WordWrap:=False;
      Transparent:=True;
    end;

  // chbNegreta Control (TCheckBox)
  chbNegreta:=TCheckBox.Create(gpbOpcionsText);
  With chbNegreta do
    begin
      Parent:=gpbOpcionsText;
      Name:='chbNegreta';
      Left:=16;
      Top:=24;
      Width:=97;
      Height:=17;
      ShowHint:=False;
      Hint:='';
      Enabled:=True;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      Caption:='Usar negreta';
      Checked:=False;
      AllowGrayed:=False;
      TabOrder:=0;
      TabStop:=True;
      Alignment:=taRightJustify;
      State:=cbUnchecked;
    end;

  // chbSubretllar Control (TCheckBox)
  chbSubretllar:=TCheckBox.Create(gpbOpcionsText);
  With chbSubretllar do
    begin
      Parent:=gpbOpcionsText;
      Name:='chbSubretllar';
      Left:=16;
      Top:=47;
      Width:=113;
      Height:=17;
      ShowHint:=False;
      Hint:='';
      Enabled:=True;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      Caption:='Subretllar el text';
      Checked:=False;
      AllowGrayed:=False;
      TabOrder:=1;
      TabStop:=True;
      Alignment:=taRightJustify;
      State:=cbUnchecked;
    end;

  // chbCursiva Control (TCheckBox)
  chbCursiva:=TCheckBox.Create(gpbOpcionsText);
  With chbCursiva do
    begin
      Parent:=gpbOpcionsText;
      Name:='chbCursiva';
      Left:=16;
      Top:=70;
      Width:=113;
      Height:=17;
      ShowHint:=False;
      Hint:='';
      Enabled:=True;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      Caption:='Posar en cursiva';
      Checked:=False;
      AllowGrayed:=False;
      TabOrder:=2;
      TabStop:=True;
      Alignment:=taRightJustify;
      State:=cbUnchecked;
    end;

  // cmbCentrat Control (TComboBox)
  cmbCentrat:=TComboBox.Create(gpbOpcionsText);
  With cmbCentrat do
    begin
      Parent:=gpbOpcionsText;
      Name:='cmbCentrat';
      Left:=16;
      Top:=95;
      Width:=153;
      Height:=21;
      ShowHint:=False;
      Hint:='';
      Enabled:=True;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      AddItemsOfcmbCentrat;
      Text:='Posar el text a l''esquerra';
      ItemIndex:=0;
      TabOrder:=3;
      TabStop:=True;
      Style:=csDropDownList;
    end;

  // edtTextSize Control (TEdit)
  edtTextSize:=TEdit.Create(gpbOpcionsText);
  With edtTextSize do
    begin
      Parent:=gpbOpcionsText;
      Name:='edtTextSize';
      Left:=120;
      Top:=128;
      Width:=49;
      Height:=21;
      ShowHint:=False;
      Hint:='';
      Enabled:=True;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      Text:='12';
      AutoSelect:=True;
      AutoSize:=True;
      MaxLength:=0;
      PasswordChar:=#0;
      ReadOnly:=False;
      TabOrder:=4;
      TabStop:=True;
      CharCase:=ecNormal;
    end;

  // cmbFont Control (TComboBox)
  cmbFont:=TComboBox.Create(gpbOpcionsText);
  With cmbFont do
    begin
      Parent:=gpbOpcionsText;
      Name:='cmbFont';
      Left:=16;
      Top:=175;
      Width:=153;
      Height:=21;
      ShowHint:=False;
      Hint:='';
      Enabled:=True;
      Cursor:=crDefault;
      Tag:=0;
      Visible:=True;
      Align:=alNone;
      Text:='Times New Roman';
      ItemIndex:=-1;
      TabOrder:=5;
      TabStop:=True;
      Style:=csDropDown;
      OnKeyPress:=@cmbFontOnKeyPress;
    end;

  // display this new form
  frmExemple01.ShowModal;

  // Destroy controls
  cmbFont.Free;
  edtTextSize.Free;
  cmbCentrat.Free;
  chbCursiva.Free;
  chbSubretllar.Free;
  chbNegreta.Free;
  lblFont.Free;
  lblTamanyCaption.Free;
  gpbOpcionsText.Free;
  btnClose.Free;
  btnEnviar.Free;
  memWordText.Free;
  lblInfo.Free;
  lblDescripcio.Free;
  frmExemple01.Free;
end;

begin
  DisplayForm;
end.
Responder Con Cita
  #4  
Antiguo 05-06-2008
Avatar de Gambito
Gambito Gambito is offline
Miembro
 
Registrado: jul 2006
Posts: 10
Poder: 0
Gambito Va por buen camino
Gracias xEsk por tu interes.

Ami tambien me gustan los Componentes de RemObjects, de echo en mi aplicacion tambien los uso bastente.

El ejemplo que envias es bastante bueno, la creacion de componentes dinamicamente no lo he trabajado hasta ahora.

Por ahora estoy haciendo pruebas con el Pascal Script y el WordParaTorpes, espero tener un ejemplo listo para subirlo el dia de hoy.
Responder Con Cita
  #5  
Antiguo 06-06-2008
Avatar de Gambito
Gambito Gambito is offline
Miembro
 
Registrado: jul 2006
Posts: 10
Poder: 0
Gambito Va por buen camino
Smile

Buen dia.

A cumpli con lo prometido.

aca les dejo la primer prueba que he realizado utilizando el Word Para Torpes y los componentes de RemObjects Pascal Script, a esta prueba le inclui lo enviado por xEsk, pero no te disguste.

Ojala alguien se anime a probarlo y nos cuente como su experiencia.

mientras tanto voy a realizar otras pruebas de como occede a una Base Datos desde Pascal script y enviar la informacion al Word mediante el componente Word Para Torpes. ( Sera mejor abrir otro hilo, o se puede continuar con este ? que me dicen ?)
Responder Con Cita
  #6  
Antiguo 06-06-2008
Avatar de Gambito
Gambito Gambito is offline
Miembro
 
Registrado: jul 2006
Posts: 10
Poder: 0
Gambito Va por buen camino
En el ftp Delphi32-> ejemplos-> PascalScript_WordParaTorpes.zip

pueden encontrar la prueba que realice
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
word para torpes armando Servers 15 12-01-2009 13:59:38
Word para torpes y D2006 maxvera Servers 0 18-08-2007 12:08:06


La franja horaria es GMT +2. Ahora son las 09:56:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi