![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как реализовать в ShellExecute следующий вариант >>> [D7, WinXP]
rtm © (2007-08-22 21:22:00)Всем привет, подскажите пожалуйста как вставить из
локальной таблицы с базой данных адрес на файл в строку,
вызывающей метод ShellExecute:
.....
procedure TForm1.Button1Click(Sender: TObject);
begin
shellexecute(handle, 'open', 'вот сюда (?)', nil, nil, SW_SHOW);
end;
.....
хочу создать архив заказов, чтобы юзер мог щелкнуть на строку
в БД, и нажав кнопку "Просмотреть" ему окрывался, сохраненный
ранее файл (допустим отчет в формате .txt).
Пытался реализовать Label.Caption с указанием пути и имени файла
но при следующей вставке в строку, типа такого
.....
shellexecute(handle, 'open', Label.Caption , nil, nil, SW_SHOW);
.....
компилятор конечно же меня обрадовал ошибкой, подскажите что
можно сделать.
С уважением, rtm.
Leonid Troyanovsky (2007-08-25 17:42:00) [1]
> rtm © (25.08.07 14:58) [18]
> и вообще ребят давайте уже вопрос закроем, проблема решена
Cложней, продуманней и сроки -
это, соб-сно, надо и доказать.
--
Regards, LVT.
rtm (2007-08-25 14:58:00) [2]и вообще ребят давайте уже вопрос закроем, проблема решена на том и пост надо закрыть, не будем препираться кто тут умнее и прав.
rtm (2007-08-25 14:57:00) [3]
> А думаешь, сейчас что то изменилось?
да уж поверь изменилось :)
Anatoly Podgoretsky (2007-08-24 15:25:00) [4]> @!!ex (24.08.2007 14:59:15) [15]
А думаешь, сейчас что то изменилось?
@!!ex (2007-08-24 14:59:00) [5]> [14] rtm © (24.08.07 14:20)
Так давно же сказали: Приведи тип string к PChar.
Вот это:
PChar(Label.Caption) - и есть то самое приведение.
Теперь ты знаешь, как приводить типы.
А если бы тупо получил код, который в [10] - то скопипастил бы его и в следюущий раз, когда нужно было скажем привести POinter к Cardinal, опять бы задавал этот вопрос на форуме.
rtm (2007-08-24 14:20:00) [6]да видишь в чем дело это не банальный копипаст, это чтобы понятнее форумчанам было, на самом деле там все сложнее и продумней и сроки поджимают, если ты знаешь решение то подскажи, а если нет то зачем выеживаться
@!!ex (2007-08-24 09:30:00) [7]> [9] rtm © (24.08.07 06:52)
Конечно не мне решать.
Только разница между программированием и копипастом, как между ********* и пулеметом.
rtm (2007-08-24 07:35:00) [8]alshtam
Спасибо большое ты оказался на 100 % прав, дельный совет, без всяких лишних комментариев, спасибо еще раз.
alshtam (2007-08-24 07:03:00) [9]вернее наверное Pansichar вместо Pchar, попробуй как пойдет
alshtam (2007-08-24 06:58:00) [10]shellexecute(handle, 'open',PChar(Label.Caption), nil, nil, SW_SHOW);
rtm (2007-08-24 06:52:00) [11]а заниматься мне программированием или нет это не Вам решать вообще, Москва не сразу строилась ИМХО
rtm (2007-08-24 06:51:00) [12]ну ладно ладно что ж так грубо, ведь форум для того и создан, но всеравно спасибо и на этом
@!!ex (2007-08-23 21:01:00) [13]> [6] rtm © (23.08.07 20:17)
Говорят тебе - сделай приведение типов!!!!
Винда понятия не имеет о существовании типа string.
Зато знает, что такое PChar.
Учитывая, что особенности архитектуры без проблем позволяют приводить string к PChar, этим надо пользоваться.
Но готового кода я все равно не скажу.. Ибо если после 5 постов разжевывания не сделаешь сам, не стоит вообще программрованием заниматься.
ИМХО
P.S.
маленькая подсказочка:
Приведение типов делаеться так
тип(переменная)
rtm (2007-08-23 20:17:00) [14]да нет ребят я не про перевод ошибки, я спросил как мне сделать так чтобы процедура ShellExecute открыла файл, адрес которой динамически меняется в компоненте Label.Caption, например, нажал я кнопку 1, Label.Caption имел бы значение C:\1.txt, нажал кнопку "Показать" и мне открылся бы этот файл, потом нажал я кнопку 2, Label.Caption имел бы значение С:\2.txt, нажал кнопку "Показать" и мне открылся ся бы этот файл и т.д.
Как это можно сделать?
Спасибо.
Leonid Troyanovsky (2007-08-23 14:31:00) [15]
> rtm © (23.08.07 14:10) [3]
> извиняюсь за недоходчивость но что-то я здесь взаимосвязи
> не вижу
В окошечке Compiler Messages можно выделить строку с ошибкой,
нажать Ctrl-С и вставить в текст своего послания (Paste):
[Error] UnitX.pas(17): Incompatible types: 'String' and 'PChar'
Если текст не понятен даже со словарем, то можно,
стоя на той самой строке, нажать F1 и прочитать поучительную статью: Incompatible types: '<element>' and '<element>'
--
Regards, LVT.
Германн (2007-08-23 14:19:00) [16]
> rtm © (23.08.07 14:10) [3]
>
> извиняюсь за недоходчивость но что-то я здесь взаимосвязи
> не вижу, получается Label.Caption мне надо указать как переменная
> PChar?
>
Точная формулировка:
переменную Label.Caption нужно передать как параметр приведя её тип к PChar.
rtm (2007-08-23 14:10:00) [17]извиняюсь за недоходчивость но что-то я здесь взаимосвязи не вижу, получается Label.Caption мне надо указать как переменная PChar?
Германн (2007-08-22 22:26:00) [18]
> Пытался реализовать Label.Caption с указанием пути и имени
> файла
> но при следующей вставке в строку, типа такого
> .....
> shellexecute(handle, 'open', Label.Caption , nil, nil, SW_SHOW);
>
> .....
>
> компилятор конечно же меня обрадовал ошибкой, подскажите
> что
> можно сделать.
>
Сколько же раз за один день объяснять одно и то же :)
http://delphimaster.ru/cgi-bin/forum.pl?id=1187783503&n=18
Leonid Troyanovsky (2007-08-22 21:41:00) [19]
> rtm © (22.08.07 21:22)
> компилятор конечно же меня обрадовал ошибкой, подскажите
> что можно сделать.
Прочитать ее текст?
--
Regards, LVT.