Ver la Versión Completa : ¿como pasar de String dentro de un PChar?
Moises22
23-09-2005, 14:31:26
Hola a todos, soy novatillo en Delphi y mi pregunta es la siguiente:
Tengo lo siguiente:
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.
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.
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
Mira que no haga lo quieres lo que esperas es una cosa pero el codigo esta bien pero lo que quieres hacer es esto.
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, (http://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
Esto funciona perfecto no veo cual es el problema.
Aqui tienes un codigo ejemplo
Solo pruebalo
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.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.