Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-08-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Gaston.

Por favor explica un poco más de que modo y donde querés que se copie.

Saludos.
Responder Con Cita
  #2  
Antiguo 28-08-2010
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 19
gaston260 Va por buen camino
Hola ecfisa , tengo este codigo y estoy usando un memo en vez de un Label


unit Unit1;
interface
uses

Windows, SysUtils, Forms, ExtCtrls, Classes;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
FCaption: string;
public
end;

var Form1: TForm1;

implementation

{$R *.dfm}

procedure
TForm1.FormCreate(Sender: TObject);
begin Caption:= 'prueba1234';
FCaption:= Caption;
Timer1.Interval := 1000 div 5;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var txt: string;begin txt:= Self.Caption;
Caption:= Copy(txt, length(txt), 1) + Copy(txt, 1, length(txt) -1);
// ó, Caption:= Copy(txt, 2, length(txt)-1) + Copy(txt,1,1);
// si FCaption = Caption , implica que el último o primer caracter llegaron a su lugar

if FCaption = Caption
then

Windows.MessageBeep(MB_ICONEXCLAMATION);end;end.

pero lo que necesito es poder copiar renglon por renglon para que un programa externo lo pueda leer pero tiene que ser solo renglon por renglon ; Amigo estoy usando el mismo codigo de acá http://www.clubdelphi.com/foros/showthread.php?t=69548

y el codigo completo que encontre es este http://delphi.about.com/library/weekly/aa071100a.htm

saludos !

Última edición por gaston260 fecha: 28-08-2010 a las 13:52:05.
Responder Con Cita
  #3  
Antiguo 28-08-2010
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 19
gaston260 Va por buen camino
y contestando donde quiero que se copie eso no interesa por que el programa que es llamado lee el texto al ser copiado y eso es lo que quiero como fin a este programa !
Responder Con Cita
  #4  
Antiguo 28-08-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Gaston.

Vas a necesitar una aplicación que envie el string y otra que lo reciba. Una solución es usar el record TCopyDataStruct (unit Windows) para pasar el dato usando el mensaje WM_COPYDATA.

En el ejecutable receptor puse un TPanel que recibe el valor en su propiedad Caption.
(Tál como en el post anterior, reduje código para simplificar)

Ejecutable Emisor:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, SysUtils, Forms, ExtCtrls, Classes, Messages;

type
  TFrmSender = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    procedure SendString(StrToSend: string);
  public
  end;
var
  FrmSender: TFrmSender;

implementation {$R *.dfm}

procedure TFrmSender.SendString(StrToSend: string);
var
  CopyDStruct: TCopyDataStruct;
  ReceptHnd : THandle;
begin
  with CopyDStruct do
  begin
    dwData := 0;
    cbData := 1 + Length(StrToSend);
    lpData := PChar(StrToSend);
  end;
  {¡OJO ACA! En la línea siguiente, las cadenas enviadas a FindWindow,  
   deben ser iguales al nombre del Form Receptor }
  ReceptHnd := FindWindow(PChar('TFrmRecept'),PChar('FrmRecept')) ;
  if ReceptHnd <> 0 then
    SendMessage(ReceptHnd,WM_COPYDATA,Integer(Handle),Integer(@CopyDStruct));
end;

procedure TFrmSender.FormCreate(Sender: TObject);
begin
  Caption:= 'PRUEBA DE DESPLAZAMIENTO DE TEXTO ';
  Timer1.Interval := 1000 div 5;
end;

procedure TFrmSender.Timer1Timer(Sender: TObject);
var
  txt: string;
begin
  txt:= Self.Caption;
  Caption:= Copy(txt, length(txt), 1) + Copy(txt, 1, length(txt) -1);
  SendString(Caption);
end;
end.

Ejecutable Receptor:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TFrmRecept = class(TForm)
    Panel1: TPanel;
    procedure FormCreate(Sender: TObject);
  private
   procedure WMCopyData(var Msg : TWMCopyData) ; message WM_COPYDATA;
  public
    { Public declarations }
  end;

var
  FrmRecept: TFrmRecept;

implementation {$R *.dfm}

procedure TFrmRecept.WMCopyData(var Msg: TWMCopyData);
begin
  Panel1.Caption:= Pchar(Msg.CopyDataStruct.lpData)
end;

procedure TFrmRecept.FormCreate(Sender: TObject);
begin
  Panel1.Caption:= '';
end;
end.

Luego ejecuta Project1.exe y Project2.exe para ver el resultado.

Por favor utilizá las etiquetas [code] o [delphi], gracias.


Saludos.

Última edición por ecfisa fecha: 28-08-2010 a las 19:23:49.
Responder Con Cita
  #5  
Antiguo 31-08-2010
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 19
gaston260 Va por buen camino
Esta muy interesante como está desarrollado el programa pero lo que estoy buscando es poder copiar con el lblmarquee , mira te voy a explicar mejor lo que tengo y que busco , tengo un lblmarquee y un memo , con el memo le paso todo lo que hay escrito al lblmarquee , este hace desplazar las letras , supongamos que tengo esto en un memo

1 macá tengo un texto <-- 1º renglon o linea

2 acá tengo otro texto <-- 2º renglon o linea

3 y este texto por ultimo <-- 3º renglon o linea

esto que esta en el memo se va a pasar al lblmarquee y lo que estoy necesitando es poder hacer ctrl+c (como en el teclado) por cada linea que esta escrita en el memo y de ahi con soldelsCot supongamos poder hacer que valla diciendo lo que se va copiando ! disculpa si no me ago entender bien pero es mi gran defecto !

saludos !
Responder Con Cita
  #6  
Antiguo 31-08-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Gastón.

No hay problema, como dijiste 'programa externo' pensé en dos ejecutables.

Mirá yo haría así :
Agregaría una variable privada más (FLinea) que me sirva para indizar la línea actual del memo y
aprovecharía la evaluación de condición anterior para incrementar la misma.

Código Delphi [-]
unit Unit1;

interface

uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Label1: TLabel;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    FCaption: string;
    FLinea: Integer;
  public
  end;

var
  Form1: TForm1;

implementation{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Lines.LoadFromFile('C:\PRUEBA.TXT'); // cargar cualquier archivo .txt
  FLinea:= 0;
  FCaption:= Memo1.Lines[FLinea];
  Caption:= FCaption;
  Timer1.Interval := 1000 div 5;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  txt: string;
begin
  txt:= Caption;
  Caption:= Copy(txt, Length(txt), 1) + Copy(txt, 1, Length(txt) -1);
  if FCaption = Caption then
  begin
    Inc(FLinea);
    Caption:= Memo1.Lines[FLinea];
    FCaption:= Caption;
  end;
end;

En cuanto la decteccíon de Ctrl+C para copiar y otra convinación para pegar lo podés capturar en el evento OnKeyDown del Memo o el Form. ( lamento andar con poco tiempo ahora para implementartelo, pero si luego hago un rato intento..)

Espero haberte entendido.

Saludos.

Última edición por ecfisa fecha: 31-08-2010 a las 02:11:17.
Responder Con Cita
  #7  
Antiguo 31-08-2010
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 19
gaston260 Va por buen camino
Smile

Genio !! lo voy a probar !!
Responder Con Cita
  #8  
Antiguo 31-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 28
Caral Va por buen camino
Hola
Interesante concepto amigo.
Pregunto: Para que sirve
Código Delphi [-]
var
  Form1: TForm1;
  FCaption: string;
  FLinea: Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
   Memo1.Lines.LoadFromFile('C:\Prueba.TXT'); // cargar cualquier archivo .txt
   FCaption:= Memo1.Lines[FLinea];
   Caption:= FCaption;
   Timer1.Interval := 1000;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Caption:= Copy(Caption, Length(Caption), 1) + Copy(Caption, 1, Length(Caption) -1);
  if FCaption = Caption then
  begin
  Inc(FLinea);
  Caption:= Memo1.Lines[FLinea];
  FCaption:= Caption;
  end;
end;
Por cierto me sobran variables.....
Saludos
__________________
Siempre Novato
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
como usar el componente lblmarquee ? gaston260 OOP 2 26-08-2010 00:06:58
como usar el componente lblmarquee gaston260 API de Windows 0 25-08-2010 02:21:43
Ir al ultimo renglon en un StringGrid palets Varios 2 18-02-2009 22:11:59
Renglon seleccionado en DBGRID advancexz Gráficos 1 28-06-2008 00:53:45
Como hacer un CD protegido para que no se pueda copiar federiconqn21 Varios 11 24-04-2007 05:52:07


La franja horaria es GMT +2. Ahora son las 05:00:02.


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