Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Ayuda conectar form con IdHTTP (https://www.clubdelphi.com/foros/showthread.php?t=83379)

AndresSalazer 11-06-2013 13:32:06

Ayuda conectar form con IdHTTP
 
Hola a todos estoy haciendo un trabajo para la facultad y bueno hace poco empezamos con delphi estuve leyendo muchos cursos y tutoriales que hay por internet y nos han mandado a hacer un registro del micro procesador usando el componente WMI , para esto en una casilla de edit.texto obtenemos el " ID Unico del Procesador " hasta aquí vamos perfecto por que esto lo eh terminado.

Cita:

Me acabo de Bajar Indy y estoy haciendo proyectos tras proyectos sin lograr nada agradecería un poco de ayuda .. :/ gracias!

Pero ahora necesitamos crear a partir de este Único form un archivo en una web cualquiera por ejemplo h t t p :// w w w .clubdelphi.com//miarchivo.html/

El form debe contener una casilla Memo ( Donde se supone que se escribe el código ) o registre el código del ID del procesador puesto en HTML .

Y que mi form lea esta dirección si dentro del archivo URL ( h t t p :// w w w .clubdelphi.com//miarchivo.html/ ) -> esta escrito el ID del procesador que deje continuar la aplicación.

En el caso de que no este escrito que no la deje continuar y salga un " Mensaje de Error "

Me podrían ayudar con esta tarea ? Se los agradecería ..

Casimiro Notevi 11-06-2013 13:51:30

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

Neftali [Germán.Estévez] 11-06-2013 13:56:42

Hola.

Cita:

Empezado por AndresSalazer (Mensaje 462055)
nos han mandado a hacer un registro del micro procesador usando el componente WMI , para esto en una casilla de edit.texto obtenemos el " ID Unico del Procesador " hasta aquí vamos perfecto por que esto lo eh terminado.

¿Qué componente WMI utilizas?
Hasta aquí salvo la pregunta,más o menos entiendo lo que te han mandado y lo que has hecho.

Cita:

Empezado por AndresSalazer (Mensaje 462055)
Me acabo de Bajar Indy y estoy haciendo proyectos tras proyectos sin lograr nada agradecería un poco de ayuda .. :/ gracias!
Pero ahora necesitamos crear a partir de este Único form un archivo en una web cualquiera por ejemplo h t t p :// w w w .clubdelphi.com//miarchivo.html/
El form debe contener una casilla Memo ( Donde se supone que se escribe el código ) o registre el código del ID del procesador puesto en HTML .
Y que mi form lea esta dirección si dentro del archivo URL ( h t t p :// w w w .clubdelphi.com//miarchivo.html/ ) -> esta escrito el ID del procesador que deje continuar la aplicación.
En el caso de que no este escrito que no la deje continuar y salga un " Mensaje de Error "

Aquí ya me he perdido.
¿No estarás hablando de Intraweb, en lugar de las Indy?
¿Puedes explicar lo que necesitas porque no se entiende lo que necesitas?

Intenta dedicarle un poco de tiempo a explicar bien, lo que debes hacer.

Revisa la Guia de estilo. Bienvenido a los foros.

AndresSalazer 11-06-2013 14:08:51

Cita:

Empezado por Casimiro Notevi (Mensaje 462056)
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo[/url]?, gracias por tu colaboración :)

Hola gracias por la bienvenida en un rato la leo disculpa ! saludos ^\||/ Gracias por tu colaboración !! .

Cita:

Empezado por Neftali (Mensaje 462057)
Hola.



¿Qué componente WMI utilizas?
Hasta aquí salvo la pregunta,más o menos entiendo lo que te han mandado y lo que has hecho.



Aquí ya me he perdido.
¿No estarás hablando de Intraweb, en lugar de las Indy?
¿Puedes explicar lo que necesitas porque no se entiende lo que necesitas?

Intenta dedicarle un poco de tiempo a explicar bien, lo que debes hacer.

Revisa la Guia de estilo[/url]. Bienvenido a los foros.

Hola como estas , un componente que descargue de tu Web o Blog no se si serás el mismo Neftali pero allí habia uno que desarrollo unas herramientas de la puta madre .. el componente descargado es llamado : GLibWMI_1.8beta_all

Bueno en base a este componente y viendo un poco el source En un Form , hice un pequeño archivo que reconoce el procesador ID nada más que eso .. en el form escribo lo siguiente :

Hasta aquí ya va perfecto porque mediante un Edit . Text puedo obtener el ID del procesador de mi maquina o de cualquiera digamos y funciona muy bien de hecho solamente eso necesitaba obtener en esta ocasión y lo pude lograr investigando un poco y hechando manos..

Este es el codigo que identifica el ID del CPU (Procesador ID) con el componente correspondiente : GLibWMI

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  dd:TProcessorInfo;
  ddProps:TProcessorProperties;
  InKB, InMB, InGB: Double;
  str:string;
begin
dd := ProcessorInfo1;
ddProps := dd.ProcessorProperties;
edtProcessorID.Text := ddProps.ProcessorId;
end;

Código:

Ejemplo : oi40.tinypic.com/2mms5lf.jpg
Bueno y aquí viene lo siguiente logre hacer que mi Form lea desde un sitio foro " digamos donde almacenare las HWID que quiero que lea "

En este caso leyendo un poco más y adentrandome e investigando logre colocar en un MEMO , y usando el Componente de Indy (IdHTTP1)

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var HTTPCLIENT1: TIdHTTP;
begin
  try
   try
     HTTPCLIENT1 := TIdHTTP.Create(nil);
     Memo1.Clear;
     with HTTPCLIENT1 do
     begin
          HandleRedirects := True;
          Request.UserAgent   := 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31';
          Memo1.Text := Get('Mi pagina donde tengo los HWID cargados');
          Caption := ResponseText;
     end;
   except
     On e: Exception do
     begin
          Memo1.Lines.Add('Exception: '+e.Message);
     end;
   end;
  finally
     HTTPCLIENT1.Free;
  end;
end;

Código:

Ejemplo : oi43.tinypic.com/nzoom1.jpg
Como veran en la imagen lee las HWID cargadas pero necesito hacer otra cosa ahora :P

Pero ahora lo que necesito es que al hacer click en el boton , identifique si esta cargado el HWID en la página y si esta que me permita acceder a un Form2 , que puedo agregar o bien que al hacer click en el boton identifique si el HWID de la pagina es el de mi maquina y me permita continuar con la aplicación y en caso de que no este cargado en la página que automaticamente me suelte un error.

Agradecería respuestas estoy bastante apurado con esto !!! :D

Neftali [Germán.Estévez] 11-06-2013 14:26:29

Cita:

Empezado por AndresSalazer (Mensaje 462058)
Hola como estas , un componente que descargue de tu Web o Blog no se si serás el mismo Neftali pero allí habia uno que desarrollo unas herramientas de la puta madre .. el componente descargado es llamado : GLibWMI_1.8beta_all

La verdad es que sí tienen buena pinta... ;-)

Cita:

Empezado por AndresSalazer (Mensaje 462058)
...aquí viene lo siguiente logre hacer que mi Form lea desde un sitio foro " digamos donde almacenare las HWID que quiero que lea "

El problema, y es lo que intento explicarte, es que no dejas claro "lo que necesitas hacer".
Me estás explicando lo que haces (que no entiendo), pero no lo que necesitas hacer.

Cita:

Empezado por AndresSalazer (Mensaje 462058)
...lo que necesito es que al hacer click en el boton , identifique si esta cargado el HWID en la página y si esta que me permita acceder a un Form2 , que puedo agregar o bien que al hacer click en el boton identifique si el HWID de la pagina es el de mi maquina y me permita continuar con la aplicación y en caso de que no este cargado en la página que automaticamente me suelte un error.

De verdad, que leo la frase y no lo entiendo.
No entiendo qué tiene que ver el componente de las Indy es esto.
¿Por qué necesitas acceder a internet para saber temas de hardware?
¿Quieres que al acceder a una página web te de el identificador del equipo?
¿?¿?¿

Cita:

Empezado por AndresSalazer (Mensaje 462058)
Como veran en la imagen lee las HWID cargadas pero necesito hacer otra cosa ahora :P

¿Qué estás leyendo ahí? ¿Un fichero de texto?
¿Esas HWID de las que hablas de dónde salen? ¿Dónde están almacenadas?

AndresSalazer 11-06-2013 14:45:12

Cita:

Empezado por Neftali (Mensaje 462059)
La verdad es que sí tienen buena pinta... ;-)



El problema, y es lo que intento explicarte, es que no dejas claro "lo que necesitas hacer".
Me estás explicando lo que haces (que no entiendo), pero no lo que necesitas hacer.



De verdad, que leo la frase y no lo entiendo.
No entiendo qué tiene que ver el componente de las Indy es esto.
¿Por qué necesitas acceder a internet para saber temas de hardware?
¿Quieres que al acceder a una página web te de el identificador del equipo?
¿?¿?¿

¿Qué estás leyendo ahí? ¿Un fichero de texto?
¿Esas HWID de las que hablas de dónde salen? ¿Dónde están almacenadas?

Estoy leyendo una url externa al form creado , lo que hace que lea los HWIDs cargados en esa pagina , esas HWIds que salen son las otras computadoras del HOGAR con las que hice pruebas con una aplicación de un amigo que también hizo la misma aplicación pero en diferente lenguaje .

No exactamente me detallare paso por paso , antes que nada quiero agradecerte por tu colaboración y las respuestas !!!

Ejemplo : Yo tengo un archivo el cual al abrirlo resulta ser un form con un edit , text y un buton

Bien hasta aqui vamos genial ahora al momento yo de " Verificar si ese archivo / programa " Haciendo Click en el boton me diga si esta validado para mi PC el cual hace que lea el Link de la pagina que agregue por Indy IdHTTP y verifique si el serial cargado en esa web es el que tiene este programa en su Edit , Texto. ( EN el caso de que sea así que me permita continuar la operación ) ejemplo puedo agregar un form 2 y que al decir que esta verificado continue al form 2 , en el caso de que no este cargado que me de un mensaje de error ..

Un ejemplo rapido que voy a hacer : un amigo hizo algo similar pero en vB 2010 Express - a todos nos toco distinto tipo de lenguajes..

Quizás no explique muy bien o no sirva para explicar en estos casos muchas veces me trabo con el tema de dar explicaciones no es mi fuerte , pero dejare algo mas detallado lo cual servirá como mi apoyo de explicación es un diseño similar a mi trabajo que me hizo un amigo en vB2010 que también conecta con el foro gratuito que cree para que lea las HWIDs ,

Código:

Ejemplo de lo que quiero hacer video Youtube  :
youtube.com/watch?v=g0R7cXQ_4-8


AndresSalazer 11-06-2013 18:23:06

Bueno eh conseguido el codigo de mi amigo y lo que me dio es esto me dijo que lo tradujera pero no entiendo mucho las syntaxis de vB para pasarlo a Delphi alguna mano ?

Aclaro la etiqueta no es código DELPHi esta programado en vB esto y necesitaría pasarlo a Delphi para que me funcione lo que intento hacer u.U !!

Código Delphi [-]
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
        txthwid.Text = GetHWID()
        Me.AcceptButton = btnconnect
    End Sub

    Function GetHWID()
        Dim mc As New ManagementClass("win32_processor")
        Dim moc As ManagementObjectCollection = mc.GetInstances
        For Each mo As ManagementObject In moc
            If cpuInfo = "" Then
                cpuInfo = mo.Properties("processorID").Value.ToString
                Exit For
            End If
        Next
        Return cpuInfo
    End Function

    Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click
        Dim Request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("TU LINK")
        Dim Response As System.Net.HttpWebResponse = Request.GetResponse()
        Dim SR As System.IO.StreamReader = New System.IO.StreamReader(Response.GetResponseStream)
        Dim HWIDAdded As String = SR.ReadToEnd
        Dim ThisHWID As String = GetHWID()
        If HWIDAdded.Contains(ThisHWID) Then
            Form2.Show()
            Me.Hide()
        Else
            Interaction.MsgBox("Not Licensed Yet.. @Contact your support", MsgBoxStyle.Critical, "Obtain your License")
        End If
    End Sub

    Private Sub Form1_Load_2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        txtHWID.Text = GetHWID()
        Me.AcceptButton = btnconnect
    End Sub

Casimiro Notevi 11-06-2013 18:30:35

¿En qué necesitas ayuda exactamente para pasarlo a delphi?, ¿qué parte no entiendes?

AndresSalazer 11-06-2013 18:36:05

Cita:

Empezado por Casimiro Notevi (Mensaje 462076)
¿En qué necesitas ayuda exactamente para pasarlo a delphi?, ¿qué parte no entiendes?

Es que generalmente me estoy inicializando en lo que es programación no terminamos el primer año y ya nos estan matando con diferentes lenguajes nos dan apuntes y ejercicios pero relativamente no aprendemos del todo un lenguaje como para poder continuar con otro anteriormente tuvimos que presentar monografías en C++ y ahora salen con esta payasada no se que hacer!

No entiendo , " No comprendo la sintaxis de vB " como para traducirla a pascal estuve leyendo y orientandome en codigos encontrados en la web referentes o ejemplos pero no logro distinguir al momento de pasarlos o comprender como se orientan cada uno.

Yo necesitaría traducir " digamos ese código para que mi " ( Programa funcione ) " o bien hacer lo anterior a ese post .. >_< ^\||/

Gracias por tu respuesta y/o colaboración son apreciadas !

Al González 11-06-2013 18:39:59

¿Cuál es el objetivo, Andrés? ¿Que tu programa verifique si en cierta página aparece cierto valor y, dependiendo de ello, que permita continuar o que se cierre? :confused:

Cita:

Empezado por AndresSalazer (Mensaje 462078)
Es que generalmente me estoy inicializando en lo que es programación no terminamos el primer año y ya nos estan matando con diferentes lenguajes nos dan apuntes y ejercicios pero relativamente no aprendemos del todo un lenguaje como para poder continuar con otro [...]

Sólo por curiosidad, ¿qué escuela es y qué carrera estudias?

Con un poco más de calma (y comas) se te comprendería mejor, en buen plan. :)

AndresSalazer 11-06-2013 18:43:51

Cita:

Empezado por Al González (Mensaje 462081)
¿Cuál es el objetivo, Andrés?

¿Que tu programa verifique si en cierta página aparece cierto valor y, dependiendo de ello, que permita continuar o que se cierre? :confused:

Sólo por curiosidad, ¿qué escuela es y qué carrera estudias?

Con un poco más de calma (y comas) se te comprendería mejor, en buen plan. :)

Estudio en la UNLAM , la carrera es : Ingeniería en Informática , es mi primer año ..

Exactamente , eso ._. :mad: No logro entender que es lo que hizo mi compañero en vB porque segun todas las posibles traducciones que encontre tuve que Moldearme a viejos componentes de Pascal para poder sacar el Procesador ID primero haciendolo funcionar en Delphi6 y Pasandolo a Delphi7 y ahora , Luego tuve que usar un componente de Indy10 Para pascal y hacer la conexión IdHTTP para que lea en un Memo el " URL " ahora lo que necesito es lo siguiente :

" Que al apretar el botón " Me diga si esta validado o no , ejemplo ya esta hecha la conexión al servidor IdHTTP ahora solo queda verificar que sea cierto si esta el HWID cargado tiene que continuar a otro form que lo puedo agregar arriba y si no esta el HWID en el servidor que directamente salga un error!!

Lo que quiero hacer es que , al momento de "Chaskear el boton" me diga si el hwid cargado en la página "esta" ejemplo ,

Si esta el HWID cargado en la página que continue abriendo un Form2 continua -> "Abre un Form" ,

Si no esta cargado el HWID en la página que salga un "MsgBox Error"

Neftali [Germán.Estévez] 11-06-2013 19:02:53

Revisa este link, a ver si es lo que necesitas...
No estoy seguro de que sea eso.

Un saludo.

AndresSalazer 11-06-2013 19:06:23

Cita:

Empezado por Neftali (Mensaje 462086)
Revisa este link, a ver si es lo que necesitas...
No estoy seguro de que sea eso.

Un saludo.

No veo ningún Link .. :o

Neftali [Germán.Estévez] 11-06-2013 19:44:50

Perdón... :o

Obtener el contenido HTML de una página aweb

AndresSalazer 11-06-2013 19:48:48

Cita:

Empezado por Neftali (Mensaje 462092)
Perdón... :o

Obtener el contenido HTML de una página aweb

Gracias lo voy a revisar a ver como puedo implementarlo aunque estaba leyendo que puedo usar Tags para identificar y validar!

AndresSalazer 12-06-2013 13:26:39

Cita:

Empezado por Neftali (Mensaje 462092)
Perdón... :o

Obtener el contenido HTML de una página aweb

Bueno no me sirvio eso es lo mismo que estaba haciendo yo con el MEMO , pero se agradece el aporte no eh podido terminar mi proyecto saludos gracias a todos y en Especial a : [Al Gonzales] que luego de preguntarme mi vida me borro de Skype sin darme una respuesta ^\||/

Gracias neftali por querer ayudarme , !

ecfisa 12-06-2013 16:07:25

Hola.

Si no te entiendo mal habías logrado cargar la lista de HWIDs al memo, por lo que prácticamente ya lo tenías solucionado. Solo te faltó revisar si el el HWID existía en la lista obtenida.

Para ejemplificar, uso la dirección de tu mensaje número #4 y algunas palabras de su contenido:
Código Delphi [-]
...
uses  IdHTTP;

(* función que devolvería ProcessorId *)
function  GetHWID: string;
begin
  Result := 'estoy bastante apurado con esto !!!';
end;


function TForm1.TryConnect(const aURL: string; TS: TStrings): Boolean;
begin
   Result := True;
   with TidHTTP.Create(nil) do
   try
    try
      HandleRedirects := True;
      TS.Text := Get(aURL);
      Caption := ResponseText
    except
      on E: Exception do
      begin
        MessageBox(Handle, PChar(E.Message),'Error',MB_ICONERROR+MB_OK);
        Result := False
      end
    end;
  finally
    Free
  end;
end;

procedure TForm1.btnVerificarClick(Sender: TObject);
const
  URL_MSG = 'http://www.clubdelphi.com/foros/showpost.php?p=462058&postcount=4';
var
  TS: TStrings;
begin
  TS := TStringList.Create;
  try
    if TryConnect(URL_MSG, TS) then
      if Pos(GetHWID, TS.Text) = 0 then
        raise Exception.Create('Error: HWID no identificado');
    ShowMessage('Form2 continua -> "Abre un Form"');
    ...
  finally
    TS.Free;
  end;
end;
Si cambias algo del texto que devuelve la función GetHWID no será encontrado y lanzará la excepción.

Saludos :)

AndresSalazer 12-06-2013 20:23:42

Cita:

Empezado por ecfisa (Mensaje 462137)
Hola.

Si no te entiendo mal habías logrado cargar la lista de HWIDs al memo, por lo que prácticamente ya lo tenías solucionado. Solo te faltó revisar si el el HWID existía en la lista obtenida.

Para ejemplificar, uso la dirección de tu mensaje número #4 y algunas palabras de su contenido:
Código Delphi [-]
...
uses  IdHTTP;

(* función que devolvería ProcessorId *)
function  GetHWID: string;
begin
  Result := 'estoy bastante apurado con esto !!!';
end;


function TForm1.TryConnect(const aURL: string; TS: TStrings): Boolean;
begin
   Result := True;
   with TidHTTP.Create(nil) do
   try
    try
      HandleRedirects := True;
      TS.Text := Get(aURL);
      Caption := ResponseText
    except
      on E: Exception do
      begin
        MessageBox(Handle, PChar(E.Message),'Error',MB_ICONERROR+MB_OK);
        Result := False
      end
    end;
  finally
    Free
  end;
end;

procedure TForm1.btnVerificarClick(Sender: TObject);
const
  URL_MSG = 'el url del post4 no me permite poner links';
var
  TS: TStrings;
begin
  TS := TStringList.Create;
  try
    if TryConnect(URL_MSG, TS) then
      if Pos(GetHWID, TS.Text) = 0 then
        raise Exception.Create('Error: HWID no identificado');
    ShowMessage('Form2 continua -> "Abre un Form"');
    ...
  finally
    TS.Free;
  end;
end;
Si cambias algo del texto que devuelve la función GetHWID no será encontrado y lanzará la excepción.

Saludos :)

Hola muchas gracias por tomarte tu tiempo y poder explicar y/o entender que era lo que trataba de explicar y lo cual no encontraba soluciones de manera no , satisfactoria ayer era la entrega de Proyectos y no pude terminar el mío me tuve que integrar con un grupo que hicieron otro proyecto ..

Bueno en este caso revisando un poco el código que posteastes al momento de implementarlo y situar nuevamente en lo que es el code , me lanza algunos errores eh intentado cambiar de lugar algunas cosas y modificarlas pero aún así no logro terminar de declarar algunas funciones para que pueda compilar sin errores saludos y gracias por tu cooperación !

AndresSalazer 12-06-2013 20:54:34

no podia editar el de arriba ._. !!!!!!!
 
Cita:

Empezado por ecfisa (Mensaje 462137)
Hola.

Si no te entiendo mal habías logrado cargar la lista de HWIDs al memo, por lo que prácticamente ya lo tenías solucionado. Solo te faltó revisar si el el HWID existía en la lista obtenida.

Para ejemplificar, uso la dirección de tu mensaje número #4 y algunas palabras de su contenido:
Código Delphi [-]
...
uses  IdHTTP;

(* función que devolvería ProcessorId *)
function  GetHWID: string;
begin
  Result := 'estoy bastante apurado con esto !!!';
end;


function TForm1.TryConnect(const aURL: string; TS: TStrings): Boolean;
begin
   Result := True;
   with TidHTTP.Create(nil) do
   try
    try
      HandleRedirects := True;
      TS.Text := Get(aURL);
      Caption := ResponseText
    except
      on E: Exception do
      begin
        MessageBox(Handle, PChar(E.Message),'Error',MB_ICONERROR+MB_OK);
        Result := False
      end
    end;
  finally
    Free
  end;
end;

procedure TForm1.btnVerificarClick(Sender: TObject);
const
  URL_MSG = 'el url del post4 no me permite poner links';
var
  TS: TStrings;
begin
  TS := TStringList.Create;
  try
    if TryConnect(URL_MSG, TS) then
      if Pos(GetHWID, TS.Text) = 0 then
        raise Exception.Create('Error: HWID no identificado');
    ShowMessage('Form2 continua -> "Abre un Form"');
    ...
  finally
    TS.Free;
  end;
end;
Si cambias algo del texto que devuelve la función GetHWID no será encontrado y lanzará la excepción.

Saludos :)

Hola muchas gracias por tomarte tu tiempo y poder explicar y/o entender que era lo que trataba de explicar y lo cual no encontraba soluciones de manera no , satisfactoria ayer era la entrega de Proyectos y no pude terminar el mío me tuve que integrar con un grupo que hicieron otro proyecto ..

Bueno en este caso revisando un poco el código que posteastes al momento de implementarlo y situar nuevamente en lo que es el code , me lanza algunos errores eh intentado cambiar de lugar algunas cosas y modificarlas pero aún así no logro terminar de declarar algunas funciones para que pueda compilar sin errores saludos y gracias por tu cooperación !

Tras estar un rato mirandolo recibo un par de errores que me tienen loco si estan declaradas las strings porque me da estos errores ?

Cita:

[Error] Unit1.pas(40): Undeclared identifier: 'TryConnect'
[Error] Unit1.pas(40): '=' expected but ';' found
[Error] Unit1.pas(40): '=' expected but ')' found
[Error] Unit1.pas(41): Missing operator or semicolon
[Error] Unit1.pas(42): Undeclared identifier: 'Result'
[Error] Unit1.pas(48): Undeclared identifier: 'Caption'
[Error] Unit1.pas(52): Undeclared identifier: 'Handle'
[Error] Unit1.pas(108): Undeclared identifier: 'TryConnect'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, CWMIBase, CProcessorInfo, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;

type
   TGetValueFunction = Function: String of object;
   TForm1 = class(TForm)
    ProcessorInfo1: TProcessorInfo;
    edtProcessorID: TEdit;
    Label1: TLabel;
    Memo1: TMemo;
    IdHTTP1: TIdHTTP;
    Button1: TButton;
    btnVerificar: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure btnVerificarClick(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation

function  GetHWID: string;
begin
  Result := 'Probando a ver que pasará ..';
end;
function TForm1.TryConnect(const aURL: string; TS: TStrings): Boolean;
begin
   Result := True;
   with TidHTTP.Create(nil) do
   try
    try
      HandleRedirects := True;
      TS.Text := Get(aURL);
      Caption := ResponseText
    except
      on E: Exception do
      begin
        MessageBox(Handle, PChar(E.Message),'Error',MB_ICONERROR+MB_OK);
        Result := False
      end
    end;
  finally
    Free
  end;
end;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  dd:TProcessorInfo;
  ddProps:TProcessorProperties;
  InKB, InMB, InGB:Double;
  str:string;
begin
dd := ProcessorInfo1;
ddProps := dd.ProcessorProperties;
edtProcessorID.Text := ddProps.ProcessorId;
end;


procedure TForm1.Button1Click(Sender: TObject);
var HTTPCLIENT1: TIdHTTP;
begin
try
try
HTTPCLIENT1 := TIdHTTP.Create(nil);
Memo1.Clear;
with HTTPCLIENT1 do
begin
HandleRedirects := True;
Request.UserAgent   := 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31';
Memo1.Text := Get('http://hdwid.foroargentina.net/h1-hdwid');
end;
except
On e: Exception do
begin
Memo1.Lines.Add('Exception: '+e.Message);
end;
end;
finally
HTTPCLIENT1.Free;
end;
end;

procedure TForm1.btnVerificarClick(Sender: TObject);
const
  URL_MSG = 'http://hdwid.foroargentina.net/h1-hdwid';
var
  TS: TStrings;
begin
  TS := TStringList.Create;
  try
    if TryConnect(URL_MSG, TS) then
      if Pos(GetHWID, TS.Text) = 0 then
        raise Exception.Create('Error: HWID no identificado');
    ShowMessage('Form2 continua -> "Abre un Form"');
  finally
    TS.Free;
  end;
end;

end.
:mad:

ecfisa 13-06-2013 00:13:29

Cita:

Empezado por AndresSalazer (Mensaje 462149)
Tras estar un rato mirandolo recibo un par de errores que me tienen loco si estan declaradas las strings porque me da estos errores ?
..

Hola Andres.

En principio te faltó declarar el método TryConnect. Por lo que veo, en tu código sólo está definido, los demás avisos se desprenden del mismo orígen.

Te adjunto los fuentes del ejemplo tál como está en mi mensaje anterior y funcionando, para que lo puedas revisar con tranquilidad.

Cualquier inconveniente no dudes en comunicarlo.

Saludos. :)


La franja horaria es GMT +2. Ahora son las 12:30:10.

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