Форум: "Начинающим";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];
ВнизВыравнивание колонок ListView по содержимому Найти похожие ветки
← →
Aleks (2009-10-30 12:05) [40]openDialog1.FileName=E:\TECDOC_CD\3_2009\pb\tof.exe Нужно просто запустить, открыть ничего в нем не удастся. В идеале надо открыть указанную в проге запчасть в каталоге,но я пробовал передать параметры bat-ником (tof.exe код запчасти),-безрезультатно :(
← →
Юрий Зотов © (2009-10-30 12:13) [41]О, боже... ну наконец-то.
WinExec(PChar(OpenDialog1.FileName), SW_NORMAL);
PS
Не нужен Вам никакой OpenDialog. Пропишите путь к tof.exe в файле настроек Вашей программы и читайте его оттуда. Незачем заставлять юзера каждый раз одни те же кнопки тыркать.
← →
Юрий Зотов © (2009-10-30 12:17) [42]Добавление: у Вас строка запуска не содержит пробелов, но если они есть, то при передаче WinExec эту строку надо взять в двойные кавычки.
← →
Aleks (2009-10-30 12:49) [43]> Юрий Зотов. OpenDialog единожды использую для выбора пути к файлу TecDoc в настройках программы, потом он записывается в реестр и читается при вызове комманды контекстного меню списка запчастей. Попробую WinExec(PChar(OpenDialog1.FileName), SW_NORMAL) и отпишусь.. Спасибо за поддержку!
← →
Aleks (2009-10-30 12:54) [44]Не работает WinExec(PChar(OpenDialog1.FileName), SW_NORMAL); Окно ошибки: Reading Errormessages failed. Errorcode= -2. Could not load Errormessages :( Predefined Message "ISB-00001" not found (да\нет\отмена). Так же как и с ShellExecute :(
← →
Юрий Зотов © (2009-10-30 13:22) [45]Фантастика какая-то. Попробуйте так:
// S - это строка запуска TecDoc (E:\TECDOC_CD\3_2009\pb\tof.exe)
if not SetCurrentDir(ExtractFileDir(Trunc(S))) then
raise Exception.Create("Невозможно установить стартовый каталог");
WinExec(PChar(""" + Trunc(S) + """), SW_NORMAL);
← →
Aleks (2009-10-30 13:30) [46]Попробую и отпишусь.. Спасибо Юрий!
← →
Aleks (2009-10-30 13:47) [47]Ошибка компиляции,несовместимость типов: Trunc(S). Trunc разве не с числами работает, отделяет дробную часть?
← →
Юрий Зотов © (2009-10-30 13:52) [48]Trim, а не Trunc, конечно.
Блин... чертова Java...
← →
Dennis I. Komarov © (2009-10-30 14:11) [49]
> Aleks (30.10.09 10:52) [32]
Отговорки...
> OpenDialog единожды использую для выбора пути к файлу TecDoc
> в настройках программы,
Для этого есть SelectDirectory
← →
Aleks (2009-10-30 15:17) [50]>Dennis I. Komarov. SelectDirectory как использовать? Можно код?
> Юрий Зотов. ПопробуюTrim..
← →
Dennis I. Komarov © (2009-10-30 15:21) [51]
> Aleks (30.10.09 15:17) [50]
опять 25...
F1 не проще нажать или это проверка терпения?
← →
Aleks (2009-10-30 15:21) [52]> Юрий Зотов. С тримом заработало! :) В чем секрет можете обьяснить? Буду оч.благодарен...
← →
Dennis I. Komarov © (2009-10-30 15:23) [53]подскажу лишь, что он не один...
> В чем секрет можете обьяснить?
в пробелах...
← →
Aleks (2009-10-30 15:25) [54]>Dennis I. Komarov. Ясно, сам разберусь..
> Юрий Зотов. Откуда взялись пробелы в начале и конце в OpenDialog.FileName?
← →
Aleks (2009-10-30 15:26) [55]>Dennis I. Komarov. Нравятся загадки? ;) Или просто отвечать не любите?
← →
Dennis I. Komarov © (2009-10-30 15:31) [56]
> Aleks (30.10.09 15:26) [55]
Хочу научить юзать справку, оно полезно будет
> Aleks (30.10.09 15:25) [54]
Оно и без трима должно прекрасно работать...
← →
Aleks (2009-10-30 15:33) [57]>Dennis I. Komarov. А вот не работало, стал бы я создавать тут тему и всем надоедать. Писал бы себе дальше прогу(еще процентов 25 предстоит)...
← →
Aleks (2009-10-30 15:35) [58]>Dennis I. Komarov. P.S. И сдается мне что Гугль полезнее справки..
← →
Dennis I. Komarov © (2009-10-30 15:42) [59]Ну так посмотри что делает трим, и, как следствие, откуда пробелы берутся.
> Aleks (30.10.09 15:35) [58]
Флаг в руки...
← →
Dennis I. Komarov © (2009-10-30 15:46) [60][16] тоже там нашел...
← →
Юрий Зотов © (2009-10-30 17:47) [61]> Aleks (30.10.09 15:21) [52]
Скорее всего, дело не в триме, я его просто на всякий случай вставил (кто его знает, что там с FileName у Вас присходит, вдруг к нему ерунда какая-нибудь дописывается?).
Меня смутило сообщение об ошибке - какое-то оно "несистемное" (да и код -2 функция WinExec выдать не может, если верить ее описанию). Поэтому я предположил, что WinExec срабатывает нормально и TecDoc успешно запускает, а ошибку выдает уже сам TecDoc и тут же завершается (а с виду получается, что он, вроде бы, и не запускался вовсе, хотя это не так).
Косвенным подтвержением такого предположения стал текст "ISB-00001 not found" в сообщении - я набрал ISB-001 в гугле и стало ясно, что к WinExec он уж точно никаким боком не относится, а вот к TecDoc - может быть (я просто не знаю этой программы, но не исключено).
Тогда возник следующий вопрос - почему при клике по ярлыку TecDoc запускается нормально, а при программном запуске кричит, что он чего-то там "not found"? В чем разница? Вы сказали, что никаких параметров запуска в ярлыке не прописано - значит, разница только в стартовом каталоге. При запуске ярлыком стартовый каталог - это собственный каталог TecDoc, а при запуске из программы стартовый каталог - это текущий каталог программы, если явно не указан никакой другой. И запросто может быть, что при запуске не из своего каталога TecDoc действительно не может чего-то там найти (неграмотно написан, кстати).
Проверка простая - перед запуском TecDoc сменить текущий калог и на собственный каталог TecDoc и посмотреть, что произойдет. И правда произошло - оно возьми, да и заработай.
А трим - это уже так, для страховки. Если никаких фокусов Вы с FileName не вытворяете, то трим можно убрать, должно и без него работать.
← →
Юрий Зотов © (2009-10-30 17:54) [62]> Aleks (30.10.09 15:35) [58]
> И сдается мне что Гугль полезнее справки..
Это САМАЯ грубая ошибка, какую только можно себе представить.
Гугль становится полезным после того, как справку знаешь уже чуть ли не наизусть. А при незнании справки гугль гораздо более вреден, чем полезен.
Знаете, сколько новичков на этом обжигалось? Только на одном этом форуме их были многие сотни (если не тысячи). Кстати, и Вы тоже (см. 22).
← →
Юрий Зотов © (2009-10-30 18:02) [63]Для двоичных программистов:
Я в курсе, что при запуске ярлыком стартовый каталог в этом же ярлыке и прописывается.
Но я также в курсе и того, что с вероятностью "много-много девяток" он прописан, как собственный каталог программы. Потому что по дефолту он именно такой, а меняют дефолт лишь очень редкие эстеты.
Эстеты - это, знаете ли, вообще редкость...
← →
Aleks (2009-10-30 18:09) [64]> Юрий Зотов. Спасибо за подробное описание,очень рад получить помощь от толкового специалиста. Впредь буду знать нюансы запуска внешних программ. А еще понравилась фраза: "Эстеты - это, знаете ли, вообще редкость..." :)
← →
Германн © (2009-10-30 18:41) [65]
> А еще понравилась фраза: "Эстеты - это, знаете ли, вообще
> редкость..."
Она понравится ещё больше, если прочитаешь бессмертное произведение Я.Гашека
:)
← →
Inovet © (2009-10-30 19:15) [66]> [45] Юрий Зотов © (30.10.09 13:22)
А WinExec для упрощения примера?
← →
Юрий Зотов © (2009-10-30 19:45) [67]> Inovet © (30.10.09 19:15) [66]
Угу. Оно, конечно, уже давно deprecated, зато самое простое.
И, впрочем, песня не о нем, а...
:o)
← →
Юрий Зотов © (2009-10-30 20:09) [68]А вообще, я лопух. Уже в [44] после слов "окно ошибки" надо было сразу сообразить, что WinExec никаких окон не выдает и, значит, ни при чем.
Хотя кто его знает, чем там этот WinExec был в коде обернут...
← →
recop © (2009-12-07 17:28) [69]Господа, а как можно выровнять колонку по содержимому в стиле vsList?
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];
Память: 0.59 MB
Время: 0.006 c