![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выравнивание колонок ListView по содержимому [D7, XP]
Aleks © (2009-10-26 15:31:00)Как выравнять колонки ListView по содержимому? Нашел такой код:
ListView1.SetFocus;
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(VK_ADD, 0, 0, 0);
keybd_event(VK_ADD, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
Отлично работает,но не учитывает текст в шапке списка :(
и после автовыравнивания приходится еще и ручно раздвигать колонки чтобы прочитать обрезаный текст в шапке.
Юрий Зотов (2009-10-29 18:37:00) [41]> Aleks (29.10.09 18:26) [28]
Для того, чтобы ShellExecute открыла файл X.EXT в программе P, нужно, чтобы для файлов с расширением EXT в системе была зарегистрирована команда OPEN, а в ней указана программа P. Без этого ничего не получится.
В Проводнике сделайте двойной клик левой кнопкой по Вашему файлу. Если при этом TecDoc не запустится, то и ShellExecute ничего не сможет сделать, пока расширение EXT не будет зарегистрировано в системе (правый клик по файлу -> "Открыть с помощью" -> "Выбрать программу").
Aleks (2009-10-29 18:26:00) [42]Вот и мне непонятно почему не запускается,хотел разобратся с Вашей помощью.. Вроде параметры никакие не передаются,судя по ярлыку,а вот ведь незадача.. :(
Aleks (2009-10-29 18:24:00) [43]P.S. Понравилась фраза про больницу,смешно.. :)
Юрий Зотов (2009-10-29 18:23:00) [44]> Aleks (29.10.09 18:00) [23]
> Любую прогу можно запустить кроме TecDoc
А сам факт того, что ShellExecute запускает любую прогу, кроме TecDoc - сам этот факт разве ни о чем не говорит?
Aleks (2009-10-29 18:23:00) [45]Я не механиком у нас работаю,а менеджер-бухгалтер,и с компами давно на "ТЫ" (еще с Басика начинал,потом перешел на Паскаль). Счас пытаюсь Дельфи освоить собственными силами.. А масло можете приехать поменять,сделаю скидку за помощь на форуме. Будем рады Вас видеть! :)
Dennis I. Komarov (2009-10-29 18:12:00) [46]Aleks (29.10.09 18:00) [23]
А после на сервис все хором поедим к тебе масло скажем менять. Ну ведь правда, ничего сложного в этом нет? Ну не может доярка управлять страной, так нафига же тебе писать себе программу? В больницу на операцию будите ложиться, а хирург вам: "Да, ща скажут на форуме как тут чего..."
Aleks (2009-10-29 18:00:00) [47]Я уже все способы перепробовал и ShellExecute и WinExec,ниче не работает :( Любую прогу можно запустить кроме TecDoc,даже параметры никакие при запуске не передаются(смотрел свойства ярлыка на раб.столе). Неужели так трудно привести код в пару строк для запуска внешней проги и обьяснить как работает? Пишу сам себе софт для работы на автосервисе, так как в инете все платное(дорогое) для таких нужд как у нас.
Юрий Зотов (2009-10-29 17:15:00) [48]> Aleks (29.10.09 16:02) [16]
А знаете, почему "использовать чужой код бездумно, не понимая, как он работает - очень вредно"? Вот почему.
В Сети ОЧЕНЬ много примеров кода, которые содержат погрешности, прямые ошибки, утечки памяти и прочие недочеты. Либо пример был писан еще под Win16 - и там был правильным, а под Win32 оказался неверным. Либо пример правильный, но написан не для тех условий, для которых его пытаются использовать без соответствующих доработок - и поэтому он снова превращается в неправильный.
Поэтому любой найденный в Сети код ОБЯЗАТЕЛЬНО нужно досконально проанализировать и понять, как он работает - причем со справкой в руках. Нужно по справке изучить каждую использованную функцию, каждый ее параметр, прочитать замечания по ней - вот это и есть учеба. И только после такого изучения станет ясно, подходит ли данный пример, не содержит ли он ошибок и требует ли он доработки. И вопросы после этого Вы будете задавать уже совсем другие - не "как взлететь на Луну?", а "какой материал лучше использовать для болта номер 7 в ракете номер 4?".
Приведенная Вами ссылка - яркий тому пример. Вы даже представить не можете сколько там погрешностей и прямых ошибок. Море. Они буквально в каждой из 5 приведенных там функций (хотя 5 не нужно, все легко сводится к двум). Лень комментировать, да и комментировать пришлось бы слишком много - просто поверьте на слово, что грязи там действительно много. И, даже не пытаясь разобраться, Вы методом "copy+paste" тащите всю эту грязь в свою программу.
И получается: программа так и не заработала, знаний у Вас так и не прибавилось - пользы, значит, никакой. Зато в программе появилась грязь - значит, вред один только.
А зачем?
Dennis I. Komarov (2009-10-29 16:50:00) [49]
> Aleks (29.10.09 16:33) [18]
> Издержки незнания :( Научить некому, вот и спрашиваю на
> форуме. Но видимо и тут не найду помощь.. :(
Как же тебя научить, ты учиться не хочешь?
Юрий Зотов (2009-10-29 16:40:00) [50]> Aleks (29.10.09 16:33) [18]
Вы нигде не найдете ни уважения, ни помощи, пока САМИ не начнете РАБОТАТЬ.
Но как только Вы это начнете - Вы найдете помощь и уважение везде. И здесь тоже.
Юрий Зотов (2009-10-29 16:36:00) [51]> Aleks (29.10.09 16:02) [16]
Разобрать чужой код "по винтикам", используя для этого справочные материалы - очень полезно. И MSDN я упоминал именно для этого.
Использовать чужой код бездумно, не понимая, как он работает - очень вредно.
Если Вы не смогли самостоятельно использовать пример с ListView и не смогли ответить на вопросы по поводу открытия файла - значит, в обоих случаях Вы пошли вторым путем. А это уже тенденция.
Что ж, Ваше право. Но без меня.
Жаль.
Aleks (2009-10-29 16:33:00) [52]Издержки незнания :( Научить некому, вот и спрашиваю на форуме. Но видимо и тут не найду помощь.. :(
Dennis I. Komarov (2009-10-29 16:20:00) [53]Издержки халявы...
Aleks (2009-10-29 16:02:00) [54]Код взял тут: http://www.delphisources.ru/pages/faq/base/run_app.htmlтак как сам не знал как запустить файл из Дельфи :(
Юрий Зотов (2009-10-29 15:47:00) [55]> Aleks (29.10.09 15:18) [13]
1. Почему массив не packed (хотя он все равно будет packed, но почему не объявлен правильно)?
2. Зачем копировать строку вместо приведения типа (хотя это не ошибка, но это лишняя память и лишние операции)?
3. Почему Application.Handle (хотя это не ошибка, но почему именно так)?
4. Почему передается массив, а не его адрес (а вот это уже ошибка - и, кстати, если бы не было вопроса 2, то не было бы и этой ошибки)?
5. Это расширение имени файла в системе точно зарегистрировано?
Dennis I. Komarov (2009-10-29 15:24:00) [56]Плох ученик, который учится не хочет, а ищет халаву. Одной ветки мало?
Aleks (2009-10-29 15:18:00) [57]Нужно из проги запустить TecDoc ( http://pslan.com/details.php?id=78220). Указываю путь к нему и запускаю таким методом:
var
c: array[0..800] of Char;
path:String;
begin
path:=openDialog1.FileName;
StrPCopy(c, path);
ShellExecute(Application.Handle, 'open', c, nil, nil, SW_NORMAL);
end;
В результате несколько окон с ошибками и нулевой результат, с WinEXEC аналогично. Блокнот или плеер вызывает легко,а вот ТекДок никак :( Че делать?
Aleks (2009-10-29 15:15:00) [58]У хорошего учителя знающие ученики.. :) (Со временем;) )
Юрий Зотов (2009-10-29 14:55:00) [59]Что заработало - это хорошо. А что на такую простую вещь было потрачено 3 дня вместо 3-х минут - это никуда не годится. Аж две грубые ошибки... ну как же так? Причем первая (uses) было совершенно очевидной, да и вторая (handle) тоже.
Aleks (2009-10-29 13:58:00) [60]Заработало! :) Спасибо Большое Юрий!