Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   No decteta contenido de un Tmemo delphi (https://www.clubdelphi.com/foros/showthread.php?t=86049)

force1758 11-06-2014 15:51:09

No decteta contenido de un Tmemo delphi
 
Hola mi amigos del foro de nuevo ando por aca en busca de su ayuda haber si me dan una manito esperando resolver este problema , el siguiente codigo me da error al comprobar el contenido de un edit con el de un tmemo mi programa cuenta con un identificador de idhardware que que comunica desde una servidor y lo pasa aun tmemo el cual busco ese serial que esta alli y lo comparo con el edit que esta oculto y si es igual al que esta en el tmemo pasa a un mensaje 'correcto' el problema ensi, es que habese cuando hago la comprobacion casi siempre me sale el error como sino estubiera buscando nada en el tmemo de todas forma le paso un pedazo de mi codigo que utilizo y me digan en donde estoy fallando xD
Código Delphi [-]



procedure activarcomprobacion;
begin
form1.memo1.Clear;
form1.IdHTTP1.Request.CacheControl := 'no-cache';
form1.Memo1.Lines.Text:=form1.IdHTTP1.Get('http:url/Array.txt');
end;

procedure TForm1.FormShow(Sender: TObject);
begin
activarcomprobacion;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
loll:string;
begin
if form1.Button1.Caption=('Button1') then begin
ftext:=LowerCase(Memo1.Lines.text);
loll:=LowerCase(Edit1.Text);
nrf:=pos(LowerCase(loll),ftext);

if nrf>0 then begin
Memo1.setfocus;
Memo1.SelStart:=nrf-1;
Memo1.SelLength:=length(Edit1.text);
Memo1.setfocus;

form1.Label1.Caption:=('OK');
end
else
form1.Label1.Caption:=('error');
end;

end;

Espero su respuesta Gracias

Casimiro Noteví 11-06-2014 16:02:20

¿Por qué haces esto?
Código Delphi [-]
if form1.Button1.Caption=('Button1') then begin
¿Qué es esto?
ftext
loll

force1758 11-06-2014 16:21:53

Cita:

Empezado por Casimiro Notevi (Mensaje 477654)
¿Por qué haces esto?
Código Delphi [-]
if form1.Button1.Caption=('Button1') then begin
¿Qué es esto?
ftext
loll

gracias Casimiro por responder ,bueno para hacer comprobaciones por si es por el objeto aunque esas varibles 'ftext' ,'loll' son omisas ante el error de comprobacion, si las colocara directa igual me lanza el mismo error como sino estubiera buscando nada o acaso estoy omitiendo algo??? disculpa mi ignoracia.

Casimiro Noteví 11-06-2014 16:24:46

¿Y cuál es el error?

force1758 11-06-2014 16:45:02

Cita:

Empezado por Casimiro Notevi (Mensaje 477657)
¿Y cuál es el error?


bueno amigo es que cuando ejecuto el programa a tratar de buscar y comparar el contenido del edit con el tmemo siempre me sale else no me lo comprueba verdadero

Casimiro Noteví 11-06-2014 17:17:30

Vuelvo a preguntar ¿qué es ftext y loll?
¿Qué textos introduces en el memo y en el edit1?


force1758 11-06-2014 17:37:53

Cita:

Empezado por Casimiro Notevi (Mensaje 477661)
Vuelvo a preguntar ¿qué es ftext y loll?
¿Qué textos introduces en el memo y en el edit1?



son variables que le coloque a cada objeto
Código Delphi [-]
var

ftext,loll:string;

ftext:=LowerCase(Memo1.text);
loll:=LowerCase(Edit2.Text);

eshardwareid.gethardwareid; // aqui obtengo la idhardware de la maquina 
  form1.Edit1.text:=eshardwareid.CPUID;


//el tipo de serial que me genera es asi 00000F64-01020800-0000E59D-BFEBFBFF
// ese serial ya esta guardado en un archivo txt en mi servidor ftp
//el cual al mostrar el formulario   el tmemo abre 

form1.Memo1.Lines.Text:=form1.IdHTTP1.Get('http:url/Array.txt');

// y alli faltaria comprobarlo pero siempre me sale como sino lo consiguera en el tmemo 
// y eso que la formula de buscarlo esta bien eso es lo que no me explico por que siempre me sale la comprobacion en false

ecfisa 11-06-2014 17:46:18

Hola force1758.

Me cuestiono lo mismo que Casimiro: ¿ Cuales son los valores que estas evaluando ?

El código de tu mensaje no genera ningún error. Y por otro lado, aparentemente funciona como se espera de acuerdo a los valores de Edit1 y Memo1.

Para ejemplo tomemos este caso:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Text:= 'F64-01020800-0000E59D-BFEBFBFF';
  Memo1.Text:= 'blabla00000F64-01020800-0000E59D-BFEBFBFFblabla';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  loll, ftext:string;
  nrf: Integer;
begin
  if Button1.Caption=('Button1') then  // ¿ Con que fin ?
  begin
    ftext:= LowerCase(Memo1.Lines.text);
    loll:= LowerCase(Edit1.Text);
    nrf:= pos(LowerCase(loll),ftext);
    if nrf > 0 then
    begin
      Memo1.setfocus;
      Memo1.SelStart:=nrf-1;
      Memo1.SelLength:=length(Edit1.text);
      Memo1.setfocus;
      Label1.Caption:=('OK');
    end
    else
      Label1.Caption:=('error');
  end;
end;
En Label1 podras ver 'Ok' y en el Memo seleccionada la cadena 'F64-01020800-0000E59D-BFEBFBFF'...

Saludos :)

force1758 11-06-2014 18:04:36

Cita:

Empezado por ecfisa (Mensaje 477665)
Hola force1758.

Me cuestiono lo mismo que Casimiro: ¿ Cuales son los valores que estas evaluando ?

El código de tu mensaje no genera ningún error. Y por otro lado, aparentemente funciona como se espera de acuerdo a los valores de Edit1 y Memo1.

Para ejemplo tomemos este caso:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Text:= 'F64-01020800-0000E59D-BFEBFBFF';
  Memo1.Clear;
  Memo1.Text:= 'blabla00000F64-01020800-0000E59D-BFEBFBFFblabla';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  loll, ftext:string;
  nrf: Integer;
begin
  if Button1.Caption=('Button1') then  
  begin
    ftext:= LowerCase(Memo1.Lines.text);
    loll:= LowerCase(Edit1.Text);
    nrf:= pos(LowerCase(loll),ftext);
    if nrf > 0 then
    begin
      Memo1.setfocus;
      Memo1.SelStart:=nrf-1;
      Memo1.SelLength:=length(Edit1.text);
      Memo1.setfocus;
      Label1.Caption:=('OK');
    end
    else
      Label1.Caption:=('error');
  end;
end;
En Label1 podras ver 'Ok' y en el Memo seleccionada la cadena 'F64-01020800-0000E59D-BFEBFBFF'...

Saludos :)

si te entiendo pero el problema es cuando cierro la aplicacion y vuelvo a tratar de conectarme con el servidor para obtener el serial para compararlo con el edit me explico mejor de esta manera mostrare el codigo completo haber si se puede mejorar o ayudar a reparar el error

Código Delphi [-]

procedure idmaquina; // esta procedimiento me devuelve el serial de la maquina y la coloca en un edit
begin
eshardwareid.gethardwareid;
form1.Edit1.text:=eshardwareid.CPUID;
end;

procedure conectartxt; //aqui paso lo que esta en mi servidor a un tmemo
begin
form1.memo1.Clear;
form1.IdHTTP1.Request.CacheControl := 'no-cache'; //supuestamente borro la cahe del inhttp
form1.Memo1.Text:=form1.IdHTTP1.Get('http://url/Array.txt');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
idmaquina;
conectartxt; 
end;

procedure TForm1.Button1Click(Sender: TObject);// y aqui deberia buscar y seleccionar la cadena en el 
var                                                               //memo y mandar el label en OK pero solo sucede 
  loll, ftext:string;                                            //una vez cierro la aplicacion y la vuelvo abrir y me     
  nrf: Integer;                                                /// sale el label error como sino encontrara nada en el
begin                                                           //memo
  if Button1.Caption=('Button1') then  // ¿ Con que fin ?
  begin
    ftext:= LowerCase(Memo1.Lines.text);
    loll:= LowerCase(Edit1.Text);
    nrf:= pos(LowerCase(loll),ftext);
    if nrf > 0 then
    begin
      Memo1.setfocus;
      Memo1.SelStart:=nrf-1;
      Memo1.SelLength:=length(Edit1.text);
      Memo1.setfocus;
      Label1.Caption:=('OK');
    end
    else
      Label1.Caption:=('error');
  end;
end;


espero haber sido un poco mas claro gracias por sus respuestas


La franja horaria es GMT +2. Ahora son las 11:10:56.

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