Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Pchar y String (https://www.clubdelphi.com/foros/showthread.php?t=13417)

superhopi 18-08-2004 12:14:31

Pchar y String
 
Hola chicos mi pregunta es la siguiente:

En mi pequeña aplicacion, hay una opcion para mandar mails utilizando el outlook :

ShellExecute(Handle, 'open', dat , nil , nil, SW_SHOW);

donde dat contiene la direccion, el asunto y el body.

El problema es que, logicamente, el destinatario y el cuerpo del correo varia, y no se como adjudicarle a dat un texto de un dbedit, ya que dat es de tipo pchar y texto es string.

De todas formas, se que hay muchas maneras de mandar correos, y esta es la mas simple y vulgar... si alguien me sugiriera algo mejor se lo agradeceria,ya que aprender algo nuevo nunca esta de mas, aunque, en principio, con esto me sobraría, ya que es una aplicacion de uso personal.

jplj 18-08-2004 13:17:10

Para transformar los tipos:

Código Delphi [-]
PChar(Dbedit1.text)

superhopi 18-08-2004 16:32:46

Gracias, pero mira ahora el problema...
 
Gracias por todo :) ya he solucionado el problemilla...
Ahora me viene el siguiente:

dato(donde dato es un string):='mailto:'+correu.text'?subject=';
dato:=dato+edit3.Text'&body=';
dato:=dato+'De: ' + edit1.Text + #13 + 'A/A:' + #13 + edit2.Text +
#13 + 'El Pedido es el siguiente: ' ;
//passe les dades a pchar
dat:=pchar(dato);
ShellExecute(Handle, 'open', dat , nil , nil, SW_SHOW);

¿Cual es el problema? Que en el cuerpo del correo sale todo sin saltos de linea, todo seguido, y pensaba que el #13 pasaria de linea pero no lo hace,,, ¿alguien me ayuda en esta pijotá? Siempre me pasa lo mismo, son pequeñas tonterias donde me paro...

roman 18-08-2004 16:36:58

No estoy seguro pero quizá debas usar #13#10 y no sólo #13.

Por otra parte yo te recomendaría usar otro tipo de técnicas para el envío de correo. La que utilizas es buena para correos muy sencillitos pero no para algo más complejo, además de que requiere que se gtenga instalado el Outlook. Puedes usar las componentes Indy (encontrarás varias referencias en los foros) que te permiten fácilmente mandar mensajes.

// Saludos

superhopi 18-08-2004 21:43:53

No me sirve, pero gracias de todas formas...
 
Hola de nuevo:

No me sirve #13#10, pero gracias de todas formas.

Lo que miraré es a ver como puedo hacerlo con los componentes Indy. La verdad que no tengo ni idea de como funcionan, pero buscaré información acerca de ellos y ojearé el libro de la cara oculta de delphi.
Lo único que me sabe mal es que ya lo tengo hecho y solo me falla que no me pasa de línea, pero bueno, supongo que así aprenderé un poco más.

Un saludo.

roman 18-08-2004 22:14:07

Sí se puede tal como lo haces ahora con ShellExecute.

En lugar de #13#10 como te había dicho usa %0D%0A.

// Saludos

superhopi 18-08-2004 23:59:45

ayhhh no
 
Jo roman... no, no me funciona "ilegal caracter in input file % (25)"

Que rabia... :(

roman 19-08-2004 01:19:42

Debes ponerlos entre las comillas, por ejemplo:

Código Delphi [-]
Mensaje := 'Línea 1%0D%0ALínea2';

// Saludos

superhopi 19-08-2004 09:54:06

Muchas graciasº
 
De lujo, ahora sí. :p
Muchas gracias, y perdona si he sido un pesado :D

De todas formas le voy a hechar un ojillo a los componentes indy, que ya me he bajado algun documento para aprender algo, y a ver si consigo hacerlo tb con esto.

Gracias de nuevo, saludos, Cristian. :D


La franja horaria es GMT +2. Ahora son las 01:58:48.

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