Текущий архив: 2007.09.16;
Скачать: CL | DM;
ВнизКак реализовать в ShellExecute следующий вариант >>> Найти похожие ветки
← →
rtm © (2007-08-22 21:22) [0]Всем привет, подскажите пожалуйста как вставить из
локальной таблицы с базой данных адрес на файл в строку,
вызывающей метод 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-22 21:41) [1]
> rtm © (22.08.07 21:22)
> компилятор конечно же меня обрадовал ошибкой, подскажите
> что можно сделать.
Прочитать ее текст?
--
Regards, LVT.
← →
Германн © (2007-08-22 22:26) [2]
> Пытался реализовать Label.Caption с указанием пути и имени
> файла
> но при следующей вставке в строку, типа такого
> .....
> shellexecute(handle, "open", Label.Caption , nil, nil, SW_SHOW);
>
> .....
>
> компилятор конечно же меня обрадовал ошибкой, подскажите
> что
> можно сделать.
>
Сколько же раз за один день объяснять одно и то же :)
http://delphimaster.net/view/2-1187783503/
← →
rtm © (2007-08-23 14:10) [3]извиняюсь за недоходчивость но что-то я здесь взаимосвязи не вижу, получается Label.Caption мне надо указать как переменная PChar?
← →
Германн © (2007-08-23 14:19) [4]
> rtm © (23.08.07 14:10) [3]
>
> извиняюсь за недоходчивость но что-то я здесь взаимосвязи
> не вижу, получается Label.Caption мне надо указать как переменная
> PChar?
>
Точная формулировка:
переменную Label.Caption нужно передать как параметр приведя её тип к PChar.
← →
Leonid Troyanovsky © (2007-08-23 14:31) [5]
> 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.
← →
rtm © (2007-08-23 20:17) [6]да нет ребят я не про перевод ошибки, я спросил как мне сделать так чтобы процедура ShellExecute открыла файл, адрес которой динамически меняется в компоненте Label.Caption, например, нажал я кнопку 1, Label.Caption имел бы значение C:\1.txt, нажал кнопку "Показать" и мне открылся бы этот файл, потом нажал я кнопку 2, Label.Caption имел бы значение С:\2.txt, нажал кнопку "Показать" и мне открылся ся бы этот файл и т.д.
Как это можно сделать?
Спасибо.
← →
@!!ex © (2007-08-23 21:01) [7]> [6] rtm © (23.08.07 20:17)
Говорят тебе - сделай приведение типов!!!!
Винда понятия не имеет о существовании типа string.
Зато знает, что такое PChar.
Учитывая, что особенности архитектуры без проблем позволяют приводить string к PChar, этим надо пользоваться.
Но готового кода я все равно не скажу.. Ибо если после 5 постов разжевывания не сделаешь сам, не стоит вообще программрованием заниматься.
ИМХО
P.S.
маленькая подсказочка:
Приведение типов делаеться так
тип(переменная)
← →
rtm © (2007-08-24 06:51) [8]ну ладно ладно что ж так грубо, ведь форум для того и создан, но всеравно спасибо и на этом
← →
rtm © (2007-08-24 06:52) [9]а заниматься мне программированием или нет это не Вам решать вообще, Москва не сразу строилась ИМХО
← →
alshtam © (2007-08-24 06:58) [10]shellexecute(handle, "open",PChar(Label.Caption), nil, nil, SW_SHOW);
← →
alshtam © (2007-08-24 07:03) [11]вернее наверное Pansichar вместо Pchar, попробуй как пойдет
← →
rtm © (2007-08-24 07:35) [12]alshtam
Спасибо большое ты оказался на 100 % прав, дельный совет, без всяких лишних комментариев, спасибо еще раз.
← →
@!!ex © (2007-08-24 09:30) [13]> [9] rtm © (24.08.07 06:52)
Конечно не мне решать.
Только разница между программированием и копипастом, как между ********* и пулеметом.
← →
rtm © (2007-08-24 14:20) [14]да видишь в чем дело это не банальный копипаст, это чтобы понятнее форумчанам было, на самом деле там все сложнее и продумней и сроки поджимают, если ты знаешь решение то подскажи, а если нет то зачем выеживаться
← →
@!!ex © (2007-08-24 14:59) [15]> [14] rtm © (24.08.07 14:20)
Так давно же сказали: Приведи тип string к PChar.
Вот это:
PChar(Label.Caption) - и есть то самое приведение.
Теперь ты знаешь, как приводить типы.
А если бы тупо получил код, который в [10] - то скопипастил бы его и в следюущий раз, когда нужно было скажем привести POinter к Cardinal, опять бы задавал этот вопрос на форуме.
← →
Anatoly Podgoretsky © (2007-08-24 15:25) [16]> @!!ex (24.08.2007 14:59:15) [15]
А думаешь, сейчас что то изменилось?
← →
rtm © (2007-08-25 14:57) [17]
> А думаешь, сейчас что то изменилось?
да уж поверь изменилось :)
← →
rtm © (2007-08-25 14:58) [18]и вообще ребят давайте уже вопрос закроем, проблема решена на том и пост надо закрыть, не будем препираться кто тут умнее и прав.
← →
Leonid Troyanovsky © (2007-08-25 17:42) [19]
> rtm © (25.08.07 14:58) [18]
> и вообще ребят давайте уже вопрос закроем, проблема решена
Cложней, продуманней и сроки -
это, соб-сно, надо и доказать.
--
Regards, LVT.
Страницы: 1 вся ветка
Текущий архив: 2007.09.16;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.045 c