Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi

Автор: VitaliM
Дата сообщения: 16.03.2005 16:18
OdesitVadim
Спасибо, отвечать начали.
Я уже не одну собаку съел на этом oh.exe, все бестолку.
У меня с хелпом Win32 API чудеса тоже происходят: то откроется справка, а может и не открыться. Вот я и спрашиваю: ты лично пользуешся хелпами сторонних компонентов в Delphi 7 и как все работает? Я уже писал, что тотже комплект хелпов в делфи 6 работает на ура, а в 7 просто облом!

Добавлено
Господа программисты, подключайтесь! Даже если нет ответа, просто скажите, что у меня так а у меня эдак.
Автор: OdesitVadim
Дата сообщения: 16.03.2005 17:29
со сторонними
тут с родными проблемы: хелп interbase - ibx.hlp ищет, а на диске есть d7ibx.hlp сколько носом его не тыкал, не хочет, просит ещё раз при каждом обращении
Автор: FAngel
Дата сообщения: 17.03.2005 05:31
VitaliM
Не расстраивайся, помощь всегда у бормандов работала через одно место Обычно oh.exe все же помогает. Да и не столь критична эта ошибка, всегда можно хелп и ручками открыть.
Автор: vserd
Дата сообщения: 17.03.2005 16:38
OdesitVadim

Цитата:
тут с родными проблемы: хелп interbase - ibx.hlp ищет, а на диске есть d7ibx.hlp

сделай поиск по ibx.hlp внутри *.cnt. Где-то они видно не исправили директиву вхождения, или переименуй сам файл помощи.
Автор: hijaq
Дата сообщения: 18.03.2005 20:51
Подскажите пожалуйста в чём может быть проблема:
Открываю делфой файл к примеру file.dpr (файл проекта). Открывается file.pas. А формы нет. при нажатии alt+F12 (View as Form) ничего не происходит, а хотя должна появится форма проекта.
Автор: Z MeZe
Дата сообщения: 18.03.2005 21:39
hijaq
А лежит ли файл формы в директории?
Если да:
Минимальный файл проекта *.dpr должен выглядеть так:

program Project1;

uses
Forms;
Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

Принципиальной (я думаю, для твоего случая) является строка:

Unit1 in 'Unit1.pas' {Form1};

Для того, чтобы видеть форму она должна ассоциироваться с юнитом твоим.
Думаю, понятно.
Скорее всего у тебя так:

Unit1 in 'Unit1.pas';

Автор: OdesitVadim
Дата сообщения: 19.03.2005 13:46

Цитата:
нажатии alt+F12 (View as Form)

А ничего и не должно произойти. Это действие предназначено, если просматриваеш форму в текстовом режиме. Но так как у тебя открыт pas файл, то значит форму в текстовом режиме не просматриваеш. Нажми луше Shift-F12 - появиться окошко с доступными формами. Если там ничего нет, тогда будем думать.
Идея два. А при загрузке проекта Делфа не ругалась случайно (на отсутствие чего-либо)?
Автор: YurikGL
Дата сообщения: 19.03.2005 15:15
>hijaq

Может там не ни одной формы?
Автор: hijaq
Дата сообщения: 19.03.2005 21:36
Решил проблему координально... =) Создал новую форму, и связвл с pas. В чём собственно было дело, так и не понял.
Автор: hijaq
Дата сообщения: 20.03.2005 15:14
И ещё вопрос... Какая есть в делфе функция, которая отвечает за открытие файла? Т.е. нажал к примеру на кнопочку - открылся, допустим, help.html. Подобная функции ShellExecute в плюсатом си.
Автор: EZH
Дата сообщения: 20.03.2005 15:18
Это WinAPI функция, так что и в Delphi будет работать
Автор: Tropin
Дата сообщения: 21.03.2005 09:26
hijaq
Проблема с формой у меня тож была... не знаю почему, но я открывал dpr, а потом приходилось открывать отдельно и файлы pas

ShellExecute лежит в ShellAPI.pas
Автор: Larry Laffer
Дата сообщения: 28.03.2005 17:54
Подскажите, можно ли ограничить доступ к определенному файлу всем приложениям, кроме одного (внешнего)? Типа создаю TFileStream на чтение с параметром ShareExclusive, но определнному приложению доступ бы открывался?
Автор: OdesitVadim
Дата сообщения: 28.03.2005 18:35

Цитата:
кроме одного (внешнего)

это как
можно использовать систему привелегий, Если мы с ХР имеем дело. Создаём пользователя, разрешаем ему только обращаться к данному файлу. А стартуем прогу от его имени или програмно изменяем привелегии
Автор: ShIvADeSt
Дата сообщения: 29.03.2005 00:10
Larry Laffer
Хм, если ты знаешь какому приложению нужен доступ к файлу, то после создания (кстати а почему именно FileStream, а не CreateFile с нужными флагами?) потока и запуска нужного приложения передаешь ему хэндл и он по этому хэндлу че хочешь с файлом делает. И такой вопрос, а на кой черт шаре ексклюзив?
Автор: Larry Laffer
Дата сообщения: 29.03.2005 08:23
OdesitVadim
ShIvADeSt
Просто идейка возникла таким способом защищать от копирования лицензионные ключики, установленные в системе. Например для DrWeb'a. Просто создаем демона,к оторый запрещает доступ к файлу ключа всем приложениям, кроме самого паука...
Автор: OdesitVadim
Дата сообщения: 29.03.2005 09:06
Larry Laffer
В случае веба, ключиком пользуется несколько прог.
Цитата:
Просто создаем демона

Это о винде или о Линухе?
Автор: Larry Laffer
Дата сообщения: 29.03.2005 10:17
О винде. Я имею ввиду обычный сервис, который висит в памяти.
Автор: OdesitVadim
Дата сообщения: 29.03.2005 10:32
В данном случае нужно писать драйверок ядра. Но тут камней подводных - уйма. Тебя там просто никто не контролирует - шаг не правильно - смерть=синий экран. Писал когдато под дос подобную мутку( с перехватом прерываний), но корректно не работала(на асме была). А если защитить от кражи ключей, то тут можно очень просто. Как человек воровать ключик будет? Через проводник естественно. Не будет же он прогу ваять, которая скопирует ключ или с консоли копировать (о ДОС, скажет простой смерный , ). Поэтому достаточно запретить для проводника. Делается это просто. Для делфи в папке \Borland\Delphi7\Demos\ActiveX\ShellExt\ есть файлик copyhook.dpr - пример того, как перехватить копирование, удаление, переименование, перемещение - там даже пути к файликам передаются. Анализируеш, если файл твой - культурно отказываеш.
Прога получается как "плагин" - поэтому в диспечере задач не висит, и так просто не выпалишь. Но отладка этого блага - геморой(проверено).
Автор: ShIvADeSt
Дата сообщения: 30.03.2005 00:20
OdesitVadim

Цитата:
А если защитить от кражи ключей, то тут можно очень просто. Как человек воровать ключик будет? Через проводник естественно.

Не верно, обычный юзер даже не найдет где ключ лежит, для него все что глубже чем корень диска, уже слишком глубоко, а тот кто захочет будет явно не полупроводником копировать.Larry Laffer Для тебя подойдет способ, который уже не однократно описывался в ПП. Это переопреление вызовов стандартных функций, то есть вешаешь хук (посмотри я не давно давал линк на страницу с подробным описанием) на функцию CopyFile(Ex) и отслеживаешь какие файлы куда пытаются скопировать. Если это твой ключик, то пускаешь на заглушку иначе разрешаешь. Два НО, первое админ всегда сможет закрыть твою прогу, которая лдочит это дело, второе из под ДОС все равно утащат.
Автор: FAngel
Дата сообщения: 30.03.2005 05:44
Larry Laffer
Чтобы ключи не таскали, люди придумали привязку к железу Кому надо, все равно сопрут особенно если права админа имеются, если же нет то проще поиграть с пермишинами NTFS. В случае паука отключаешь юзерам доступ на чтение, паук все равно будет запускатся с правами системы и ключик прочитает. Любой глобальный хук, тем более на копирование или создание файла - лишний тормоз для системы, да и Делфи не лучшая штука для написания таких вещей.
Автор: Larry Laffer
Дата сообщения: 30.03.2005 15:10
Блин... Проще приводы все отрубить..
Автор: STEEL
Дата сообщения: 30.03.2005 21:52
Прислали мне формачку с расширением dcr, я так полагаю, что это delphi component resource. Каким образом её вставить в проект?
Автор: FAngel
Дата сообщения: 31.03.2005 04:18
STEEL
Попросить, что бы прислали pas с таким же именем
Автор: ShIvADeSt
Дата сообщения: 31.03.2005 04:29
STEEL
pas вряд ли пришлют, проси хотя бы dcu под твою версию дельфи, иначе можешь удалить данный файл.
Автор: HelL_Doctor
Дата сообщения: 31.03.2005 17:09
У кого-нибудь есть исходник записи на диск, если есть подкиньте пожалуйста.
Автор: OdesitVadim
Дата сообщения: 31.03.2005 18:25
HelL_Doctor
http://www.devarchive.com/f1722.html есть портированые на Делфи Nero-API
http://www.torry.net/pages.php?id=249 компоненты по записи дисков. Есть фрии+исходники. Открываеш, читаеш.
Автор: Larry Laffer
Дата сообщения: 03.04.2005 12:56
Вопрос: у меня есть stay on top форма. На панели задач не отображается (ShowWindow(Application.Handle, SW_HIDE);). Как мне убрать линк на форму по Alt+Tab?
Автор: ShIvADeSt
Дата сообщения: 04.04.2005 01:06

Цитата:
Как мне убрать линк на форму по Alt+Tab?

напиши в событии OnCreate главной формы
WnHnd := GetWindowLong(Application.Handle, GWL_EXSTYLE);
WnHnd := WnHnd or WS_EX_TOOLWINDOW;
SetWindowLong(Application.Handle, GWL_EXSTYLE, WnHnd);
Автор: YFred
Дата сообщения: 04.04.2005 15:21
Люди
Подскажите как писать распределенный проект на Delphi, в смысле, двоем одну программу. или подскажите где прочитать как это делается.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Вероятность одинакового CRC32


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.