2012-06-06 1 views
2

Я хочу использовать ShellExecute, чтобы пользователь мог отправить электронное письмо из своей электронной почты по умолчанию; напримерсимвол пробела в корпусе оболочки ShellExecute по электронной почте

const 
    CRLF = '%0D%0A'; 
var 
    Body: string; 
begin 
    Body := 'Information from my program'+CRLF+ 
     'that is put in the body of the email'; 
    ShellExecute(Application.Handle, 'open', PChar('?Subject=My Subject&Body=' + 
     Body),nil, nil, SW_SHOWNORMAL); 

Я хочу отформатировать тело с колонками информации. Как я могу помещать пробел? Кажется, что% 20 будет работать в одном пространстве - иногда, но это не работает в начале строки или нескольких соседних пространств. Это «» не работает либо :(

+0

Проверен% 09 (вкладка)? –

ответ

2

Используйте двойные кавычки (Chr(34)) внутри строки:

Body := #34 + 'Information from my program' + CRLF + 
     'that is put in the body of the email' + #34; 
ShellExecute(Application.Handle, 'open', 
    PChar('?Subject=My Subject&Body=' + Body), nil, nil, SW_SHOWNORMAL); 

Чтобы выровнять столбцы, вы можете попробовать с помощью символов табуляции вместо (Chr(9)) - как я уже говорил в моих комментариях, я не могу получить ShellExecute работать с mailto на Windows 7 с Thunderbird:

Body := #34 + 'Information from my program' + CRLF + 
     'that is put in the body of the email' + CRLF + 
     'Col1'#9'Col2'#9'Col3' + #34; 

(Встраивание с использованием Stuff # 9 'Больше материала' является сокращением для 'Stuff' + #9 + 'More Stuff', BTW.

+0

Это также поставит цитаты, не знаю, если это нежелательно, хотя .. (doublequote is% 22) –

+0

@Sertac, я не могу проверить. 'mailto' не будет работать для меня на Win7, используя Thunderbird. 'ShellExecute' возвращает' 42', что должно указывать на его работу, но TB не открывает новое сообщение электронной почты. –

+0

Что я хочу сделать, это выстроить несколько столбцов: вкладки, похоже, не работают последовательно, поэтому я думал о пустых местах. Например: «col1 col2 col3» – bobonwhidbey

Смежные вопросы