Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 437
от 08.04.2006, 07:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 299, Экспертов: 65
В номере:Вопросов: 11, Ответов: 17


Вопрос № 39180: Подскажите, пожалуйста, как можно зарегестрировать свой тип файла. И как можно добавить пункт "МойПункт" в контекстное меню этого типа файла. Спасибо. ...
Вопрос № 39181: Здравствуте. Скажите, пожалуйста, какой метод шифрования самый нажёджный. Желательно, с его кодом. Заранее спасибо....
Вопрос № 39191: Как запустить внешнюю программу?...
Вопрос № 39200: Здраствуйте. Как узнать существует ли директория? Спасибо:)...
Вопрос № 39207: Здравствуйте эксперты, у меня такой нелегкий вопросик, не думаю что мне ответят, но все же может найдется кто-нибудь. Итак вопрос: мне нужно брать текст с текущей позиции курсора влево пока не будет пробела (или начала строки если слово первое) с...
Вопрос № 39208: Здраствуйте уважаемые експерты! У меня следующий вопрос по технологии DCOM : Как определить собственый метод в RemoteDataModule (IAppServer) так чтоб он был доступен из клиента ? Я определял метод в Type Library но толку нет. Зарание...
Вопрос № 39210: В папке где находится программа (Delphi 7) иногда появляются файлы типа _qsql0001.dbf. Что это и как с этим бороться. Спасибо. (Программы пишу я сам.Новичок)...
Вопрос № 39228: Добрый вечер . Уменя вопрос ! Где можно найти название всех панелей или окон Windows например "Shell_TrayWnd" - это окно панели задачь ! Вот есть какойнибуть справочник с их именами ? Я пробовай написать преложение которое в...
Вопрос № 39231: Здраствуйте! В одной программе мне необходимо отобразить матрицу графически, я для этого динамически создаю Panel, на нее ячейки(Panel и на нее Image). При отрисовки матрицы основную матрицу скрываю, при окончании создания ячеек отображаю. При та...
Вопрос № 39232: Здраствуйте ув. эксперты! Мне необходмо добавить повех формы и всех компонентов прозрачный рисунок, как это реализовать? Спасибо....
Вопрос № 39238: Здрасте! У меня люди пара вопроса: 1) куда пихать ресулт при роботе с делфийским асмом? 2) этот самый асм умеет игратса с Extended? 3) как быстро обьяснить что в Extended сидит Integer (вытянуть цел. часть и передать другому вару как можн...

Вопрос № 39.180
Подскажите, пожалуйста, как можно зарегестрировать свой тип файла.
И как можно добавить пункт "МойПункт" в контекстное меню этого типа файла.
Спасибо.
Отправлен: 02.04.2006, 09:06
Вопрос задал: NVBud (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Николай Б.
Здравствуйте, NVBud!

Немного порывшись в реестре, Вы сразу нашли бы нужные Вам ключи!
Когда нужно что-то в реестре: запускайте программу Sysinternals Regmon и смотрите, что меняет другая программа, а потом, по её примеру пишите для своей.
Код в приложении:

Приложение:

Ответ отправил: Николай Б. (статус: 3-ий класс)
Ответ отправлен: 02.04.2006, 09:15
Оценка за ответ: 5
Комментарий оценки:
Я с реестром не дружу :(


Вопрос № 39.181
Здравствуте.
Скажите, пожалуйста, какой метод шифрования самый нажёджный. Желательно, с его кодом.
Заранее спасибо.
Отправлен: 02.04.2006, 09:07
Вопрос задал: NVBud (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Николай Б.
Здравствуйте, NVBud!
Пример моего алгоритма в приложении.
Все методы, приведённые в Интернет, по-моему, даже нельзя рассматривать, если надо защитить очень ценную информацию. Самым надёжным можно считать тот метод, который В&# 1099; сами придумаете и напишите, а потом никому не покажите.
Хочу обратить Ваше внимание на следующеее:
I. нет такогометода (даже своего), который никто не взломает (что бы Вы не думали, что можно так зашифровать; может понадобится много времени, но если необходимо, то ВЗЛОМО& #1070;Т!)
II. В России можно пользоваться 40-битным ключом для шифрования. Если захотите использовать больший ключ, придётся согласовывать со всякими органами (точно не помню как ;ими).

PS В Интернете много исходников, которые зашифруют одну букву,а потом даже её не могут расшифровать! Будьте внимательны при их использовании.

Удачи!

Приложение:

Ответ отправил: Николай Б. (статус: 3-ий класс)
Ответ отправлен: 02.04.2006, 09:26
Оценка за ответ: 5


Вопрос № 39.191
Как запустить внешнюю программу?
Отправлен: 02.04.2006, 11:07
Вопрос задал: Andy Greyleaf (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: romodos
Здравствуйте, Andy Greyleaf!
Есть два способа:
1. Функция WinExec(lpCmdLine: PAnsiChar, uCmdShow:Cardinal):Cardinal
из модуля Windows
2. Функция ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
Directory: PChar; ShowCmd: Integer): Cardinal;
из модуля ShellApi

Первая выполняет команду, как командная строка Windows, а вторая запускает файл с введенными параметрами.
Думаю, из названий параметров понятно, что они означают

Пример:
WinExec('notepad.exe', SW_SHOWNORMAL);
ShellExecute(Application.Handle, nil, 'C:WindowsNotepad.exe', nil,nil,0);

---------
The Source is Our Soul. FAQ me off!
Ответ отправил: romodos (статус: Практикант)
Ответ отправлен: 02.04.2006, 12:03
Оценка за ответ: 5

Отвечает: Jadd
Здравствуйте, Andy Greyleaf!
Помимо того, что написали ранее, есть функция CreateProcess. По советам из самой майкрософт, лучше ее использовать, но не обязательно ;) Пример в приложении. Успехов.

Приложение:

---------
Если в сердце дверь закрыта, нужно в печень постучаться

Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
ICQ: 28260749
----
Ответ отправлен: 02.04.2006, 12:07
Оценка за ответ: 5

Отвечает: Cheater76
Здравствуйте, Andy Greyleaf!
Для своих нужд я пользовался RxLib2.75 модуль RXShell

FileExecuteWait(const FileName, Params, StartDir: string;
InitialState: TExecState): Integer;

В функции (FileExecuteWait) используется ShellExecute из ShellAPI
Ответ отправил: Cheater76 (статус: 3-ий класс)
Ответ отправлен: 02.04.2006, 15:33
Оценка за ответ: 5


Вопрос № 39.200
Здраствуйте.
Как узнать существует ли директория?
Спасибо:)
Отправлен: 02.04.2006, 15:01
Вопрос задал: Yarking (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Minor
Здравствуйте, Yarking!
я советую вам воспользоватся функцией
DirectoryExists(DirectoryName:String):boolean

---------
Не руби сук, на котором сидишь! Вообще слезь с дерева, человек!
Ответ отправил: Minor (статус: 2-ой класс)
Ответ отправлен: 02.04.2006, 15:08
Оценка за ответ: 5

Отвечает: Ерёмин Андрей
Hello, Yarking!

if DirectoryExists('C:MyDir') then . . .


---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 02.04.2006, 15:08
Оценка за ответ: 5

Отвечает: Cheater76
Здравствуйте, Yarking!

Delphi7 модуль SysUtils

DirectoryExists(const Directory: string): Boolean;

FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;
Ответ отправил: Cheater76 (статус: 3-ий класс)
Ответ отправлен: 02.04.2006, 15:22


Вопрос № 39.207
Здравствуйте эксперты, у меня такой нелегкий вопросик, не думаю что мне ответят, но все же может найдется кто-нибудь. Итак вопрос:
мне нужно брать текст с текущей позиции курсора влево пока не будет пробела (или начала строки если слово первое) с мемо в чужом окне. Мемо я нашел..
Заранее спасибо.
Отправлен: 02.04.2006, 17:02
Вопрос задал: Yxo (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: romodos
Здравствуйте, Yxo!
М..да. Ну и вопросик. Даже боюсь спрашивать, для чего так извращаться.
Я в растерянности, что вам делать.
Как мне кажется, тут два варианта.
1) Узнать позицию курсора GetCursorPos, "вырезать" кусок чужого окна рядом с этой точкой, потом из картинки распознать текст.
По-моему, очень геморройно:)
2) Взять текст из Memo функцией GetWindowText, узнать позицию курсора, узнать позицию окна, узнать ширину строки (не знаю, возможно ли это), высчитать номер строки и найти ее в тесте.

В общем, оба метода далеко не легкие. Я бы сам даже не взялся программать все это. Возможно, существуют более легкие пути, но мне они что-то в голову не приходят.

P.S. Не претендую ни на что:)
---------
The Source is Our Soul. FAQ me off!
Ответ отправил: romodos (статус: Практикант)
Ответ отправлен: 02.04.2006, 18:31
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ответ, подумаю над вторым способом.

Отвечает: Артём Шегеда
Здравствуйте, Yxo!

Я просто в ЖУТКОЙ растерянности... Но попытаюсь родить что-нибудь...
В процедуре используется Memo1.Handle, ты должен поставить хэндл найденного тобой memo. В конце процедуры s есть строка, на которой стоит курсор, а i - индекс символа, на котором стоит курсор. Дальше, надеюсь, сам?..

Приложение:

Ответ отправил: Артём Шегеда (статус: 4-ый класс)
Ответ отправлен: 02.04.2006, 22:51
Оценка за ответ: 5
Комментарий оценки:
СПАСИБО!!! Именно то, что надо. 5 баллов бесспорно, еще раз спасибо.


Вопрос № 39.208
Здраствуйте уважаемые експерты!
У меня следующий вопрос по технологии DCOM :
Как определить собственый метод в RemoteDataModule (IAppServer) так чтоб он был доступен из клиента ?
Я определял метод в Type Library но толку нет.
Зарание спасибо.
Отправлен: 02.04.2006, 17:12
Вопрос задал: Pm_pilot (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Pm_pilot!
А что Вы имеете в виду под "толку нет"?
Опишите ситуацию поподробнее, тогда смогу помочь
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 2-ой класс)
Ответ отправлен: 03.04.2006, 10:07


Вопрос № 39.210
В папке где находится программа (Delphi 7) иногда появляются файлы типа _qsql0001.dbf.
Что это и как с этим бороться.
Спасибо. (Программы пишу я сам.Новичок)
Отправлен: 02.04.2006, 17:33
Вопрос задал: Rdomr (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Артём Шегеда
Здравствуйте, Rdomr!

Подозреваю, что ты пишешь не просто программы, а программы по работе с базами данных. Более того, используешь компонент TQuery. Если это так, то всё нормально - это рабочие таблицы запросов. Хуже, когда они остаются после завершения работы программы - в этом случае все "левые" таблицы нужно удалять при запуске.
Ответ отправил: Артём Шегеда (статус: 4-ый класс)
Ответ отправлен: 02.04.2006, 23:03


Вопрос № 39.228
Добрый вечер .
Уменя вопрос !
Где можно найти название всех панелей или окон Windows например "Shell_TrayWnd" - это окно панели задачь !
Вот есть какойнибуть справочник с их именами ?
Я пробовай написать преложение которое вытаскивает имя на он выдавал что-то вроде 16889 или что-то ешё !!!
А и вот ешё ктонибуть может сказать как зделать прокрутку вверх и вниз у Memo а то я досих пор этого незнаю !
А в учебниках ешё невидел !
С уважением,
Zmeu
Отправлен: 02.04.2006, 22:07
Вопрос задал: Tamashev Denis M (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Полховский Александр Владимирович
Здравствуйте, Tamashev Denis M!
1. Попробуйте программу Red Button (кажется, даже от MS). Там есть утилита для вытаскивания класса и др. информации из окна, на которое навёл курсор.
2. Memo1.ScrollBy(DeltaX, DeltaY: Integer)
---------
Спасём нашу хрупкую планету !
Ответ отправил: Полховский Александр Владимирович (статус: Практикант)
Ответ отправлен: 02.04.2006, 23:30
Оценка за ответ: 5


Вопрос № 39.231
Здраствуйте!
В одной программе мне необходимо отобразить матрицу графически, я для этого динамически создаю Panel, на нее ячейки(Panel и на нее Image). При отрисовки матрицы основную матрицу скрываю, при окончании создания ячеек отображаю. При таком подходе матрица отрисовыается очень долго, подскажите как и с помощью чего быстро отрисовать графическую матрицу?
Заранее спасибо.
Отправлен: 02.04.2006, 22:23
Вопрос задал: 007Makc (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Артём Шегеда
Здравствуйте, 007Makc!

Если мне нужно что-то отрисовать, я использую TImage: задаю его размер, задаю размер его Picture.Bitmap, а потом рисую по канве. Ничего сверхъестественного...

Приложение:

Ответ отправил: Артём Шегеда (статус: 4-ый класс)
Ответ отправлен: 02.04.2006, 23:19

Отвечает: Злоумышленник
Здравствуйте, 007Makc!
Не видел твой код, но скорее всего отрисовка медленно идёт из-за того, что через Canvas это делаешь. Гораздо быстрее получится, если будешь это делать путём записи пикселей напрямую в память. Но так посложнее будет.
Используется с-во Bitmap'а scanline, передающее указатель на Y-составляющюю битмэпа в памяти. В приложении пример заполнения формы точками случайного цвета из Bitmap'а, причём в цикле весь массив пикселей перебирается. Как битмэп с Image'ем связать, надеюсь, знаешь. У Image'а свой есть, кстати, Image1.Picture.Bitmap

Приложение:

Ответ отправил: Злоумышленник (статус: 5-ый класс)
Ответ отправлен: 03.04.2006, 11:08


Вопрос № 39.232
Здраствуйте ув. эксперты!
Мне необходмо добавить повех формы и всех компонентов прозрачный рисунок, как это реализовать? Спасибо.
Отправлен: 02.04.2006, 22:26
Вопрос задал: 007Makc (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Leshiy2006
Здравствуйте, 007Makc! Попробуйте такой вариант - создайте поверх Вашей ещё одну форму, AlphaBlend:=True; и установите нужный коэффициент прозрачности.
Удачи!

Ответ отправил: Leshiy2006 (статус: 6-ой класс)
Ответ отправлен: 02.04.2006, 23:30


Вопрос № 39.238
Здрасте! У меня люди пара вопроса:
1) куда пихать ресулт при роботе с делфийским асмом?
2) этот самый асм умеет игратса с Extended?
3) как быстро обьяснить что в Extended сидит Integer (вытянуть цел. часть и передать другому вару как можно быстрее!)?
4) как быстро опредилить надо ли масив расшырять или нет (X mod N -- медлено, ввёл вар "последний реалок" теперь в 2 раза быстрее но надо ешё быстрее!) ?

P. S. пишу навороченый скрипт-движок на делфи!
Отправлен: 03.04.2006, 01:08
Вопрос задал: Mirgorodchenko Anton (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Артём Шегеда
Здравствуйте, Mirgorodchenko Anton!

На первые три вопроса даю ответ в приложении. Рекомендую почитать "Assembler procedures and functions" в хелпе по Delphi.
Четвёртый вопрос непонятен... Что значит "X mod N"?

PS. Зачем массив только раз шЫрять? Можно ведь сразу раза три шЫрнуть... :)

Приложение:

Ответ отправил: Артём Шегеда (статус: 4-ый класс)
Ответ отправлен: 03.04.2006, 04:31


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.21 от 03.04.2006
Яндекс Rambler's Top100

В избранное