Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿como pasar de String dentro de un PChar? (https://www.clubdelphi.com/foros/showthread.php?t=25471)

Moises22 23-09-2005 14:31:26

¿como pasar de String dentro de un PChar?
 
Hola a todos, soy novatillo en Delphi y mi pregunta es la siguiente:

Tengo lo siguiente:

Código Delphi [-]
 
var
   cadena:String;
   url:String;
 begin
   cadena:=Edit1.Text;
   url:='http://paginasinconcretar?ID='+cadena;
   ShellExecute(Self.Handle, PCHar('open'), PChar('explorer.exe'),
   PChar(url), nil, SW_SHOWNORMAL);
 end;
Lo que no me deja hacer es lo que esta en rojo, como puedo pasarle la variable al PChar()¿?????

marcoszorrilla 23-09-2005 14:48:03

Prueba a pasarlo antes a una variable.
Código Delphi [-]
 MiVar:Pchar;
 Begin
 MiVar:=Pchar(Url);
 ShellExecute(Self.Handle, PCHar('open'), PChar('explorer.exe'),
    PChar(MiVar), nil, SW_SHOWNORMAL);

Un Saludo.

Moises22 26-09-2005 09:34:59

Lo he probado como dices, pero sigue sin funcionar, que puedo hacerr?????

marcoszorrilla 26-09-2005 15:05:11

Primero no dices que error te da.

Incluye ShellApi en el Uses de tu form.
Código Delphi [-]
  procedure TForm1.Button2Click(Sender: TObject);
  var
   MiVar:Pchar;
   url:String;
   Begin
   url:='http://www.clubdelphi.com';
   MiVar:=Pchar(Url);
   ShellExecute(Self.Handle, PCHar('open'), PChar('explorer.exe'),
      PChar(MiVar), nil, SW_SHOWNORMAL);
  end;

Lo acabo de probar y funciona sin ningún problema.

Un Saludo.

rastafarey 26-09-2005 15:40:04

Resp
 
Mira que no haga lo quieres lo que esperas es una cosa pero el codigo esta bien pero lo que quieres hacer es esto.

Código Delphi [-]
Var
  url: string
Begin  
  //url := 'lo que sea';
  ShellExecute(Handle,nil,PChar(url),'','',SW_SHOWNORMAL)
end;

Asi haces lo que de verda esperas ya que si no especificas la aplicacion esta llamara aplicacion por defecto no solo para paginas sino para cualquier archivo.

Moises22 27-09-2005 09:47:37

Tienen razon funcionaba perfectamente, el problema que me sigue dando es que mi cadena es del tipo www.loquesea.com?ID=8, es en el caracter = donde me da el problemas. ¿Cual es la forma de introducirlo como cadena??

Mi probema es con el caracter =, se que en Java se resuelve poniendolo asi \= pero en Delphi al ser novato no lo se.¿Alguien me podria ayudar?

rastafarey 27-09-2005 15:43:47

Resp
 
Esto funciona perfecto no veo cual es el problema.

Aqui tienes un codigo ejemplo

Solo pruebalo

Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    Edit1: TEdit;
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

Uses ShellApi;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  Edit1.Text := 'http://www.clubdelphi.com/foros/forumdisplay.php?f=19';
  ShellExecute(Handle,nil,PChar(Edit1.Text),'','',SW_SHOWNORMAL)
end;

end.


La franja horaria es GMT +2. Ahora son las 02:06:37.

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