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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 1067
от 17.02.2008, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 436, Экспертов: 60
В номере:Вопросов: 8, Ответов: 18

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 122716: Здравствуйте уважаемые эксперты! помогите пожайлуста вычислить на ПК значения функции используя операторы while…do и repeat…until . a=1.5 диапазон аргумента x=[0.5 ; 3] шаг 0,3 a10x , при x ≥ 2 t= sin (ln x), при 1 ...
Вопрос № 122727: Доброго времени суток. Ув. Эксперты, подскажите пожалуйста литературу по стандартным типам данных, нужно для наполнения информацией сайта о языках программирования. Заранее спасибо...
Вопрос № 122745: Здрасте вам, уважаемые знатоки. Вопрос: можно ли как-нибудь получить выделенный(не скопированный в буфер) в сторонней программе текст при нажатии на кнопку в моей программе, добавить с обеих сторон текста теги и заменить выделенный текст получивш...
Вопрос № 122765: ***Уважаемые эксперты!*** Ответе, пожалуйста, почему в моей проге не удается поместить в форму графическое приложение с раширение .tif? Заранее благодарен, жду с нетерепением ответа:)...
Вопрос № 122789: Здравствуйте уважаемые программисты, у меня вопрос такой: Есть Timer1 и ProgressBar1 что можно прописать, чтобы во время отсчёта времени у меня отображался ProgressBar1. С уважением sefiros...
Вопрос № 122810: Здрасти! В кратце: Есть жесткий диск(подключается как флешка), надо написать программу-защиту. Т.е. украли жестяк, подключили, а там спрашивается пароль, пароль ввели неверный-с жесткого всё быстренько удаляется!...
Вопрос № 122835: Здравствуйте, уважаемые эксперты! Имеется строка S. Необходимо ее КАКИМ-ТО образом сжать (уменьшить количество символов), тем самым одновременно шифруя ее содержимое. Хотел использовать всякие шифровщики на панели Indy Misc, но там строка пре...
Вопрос № 122841: Здравствуйте, уважаемые эксперты! Подскажите пожалуйста, как сделать ассоциацию своего расширения со своей программой для ВСЕХ пользователей сразу? (Как у WinRar'а). Или зарегистрировать свое расширение для пользователя с ограниченными права...

Вопрос № 122.716
Здравствуйте уважаемые эксперты! помогите пожайлуста вычислить на ПК значения функции используя операторы while…do и repeat…until . a=1.5 диапазон аргумента x=[0.5 ; 3] шаг 0,3


a10x , при x ≥ 2
t=
sin (ln x), при 1 ≤ x < 2

a10x и sin (ln x) объединены фигурной скобкой,
извините не смог вставить

Приложение:

Отправлен: 11.02.2008, 19:57
Вопрос задал: Alex573 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Alex573!
Программа в приложении.
На форме кнопка и поле Memo для вывода результата.
Так как Вы не указали, чему равно t при x < 1, я взял его равным 0 - исправьте на нужное значение.

Удачи!

Приложение:

Ответ отправил: Николай Владимирович / Н.В. (статус: Профессионал)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 11.02.2008, 20:34
Оценка за ответ: 5


Вопрос № 122.727
Доброго времени суток. Ув. Эксперты, подскажите пожалуйста литературу по стандартным типам данных, нужно для наполнения информацией сайта о языках программирования. Заранее спасибо
Отправлен: 11.02.2008, 20:56
Вопрос задал: Орленко Максим Васильевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Орленко Максим Васильевич!
Посмотрите эти материалы:
Простые типы данных
Типы данных в DELPHI
Типы данных в Delphi
Типы данных

Переменные, типы данных и константы

Тип Variant
http://delphibasics.ru/1Types.php
Удачи!
Ответ отправил: Николай Владимирович / Н.В. (статус: Профессионал)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 11.02.2008, 21:18


Вопрос № 122.745
Здрасте вам, уважаемые знатоки.
Вопрос: можно ли как-нибудь получить выделенный(не скопированный в буфер) в сторонней программе текст при нажатии на кнопку в моей программе, добавить с обеих сторон текста теги и заменить выделенный текст получившимся. Или может не надо получать, а просто как-нибудь добавить с обеих сторон выделенного текста теги.
Может есть какой-нибудь редактор с такой функцией.
Такая прога очень бы облегчила мне работу.
Отправлен: 11.02.2008, 23:33
Вопрос задал: Benhu (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: din
Здравствуйте, Benhu!
У компонент, которые унаследованы от класса TCustomEdit и его потомков (такие как TEdit, TMemo и т.п.) есть свойство SelText, вот пример кода:
if Edit1.SelText <> '' then
Edit1.SelText := ''+Edit1.SelText+'';
или
if Memo1.SelText <> '' then
Memo1.SelText := ''+Memo1.SelText+'';
Удачи!
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: din (статус: Специалист)
Ответ отправлен: 11.02.2008, 23:49
Оценка за ответ: 4

Отвечает: PavelGM
Здравствуйте, Benhu!

Универсального решения скорее всего нет, но можно проанализировать каким стандартным компонетом Windows пользуется Wordpad (скорее всего RichEdit или что-то похожее) и, получив на него хэндл (через всякие EnumWindows и т.п.), получить с него нужную информацию (выделенный блок), изменить ее, а затем вставить обратно.

Есть еще такая идея - эмуляция нажатия клавиш Ctrl+X с вытягиванием в промежутке из буфера обмена информации и ее изменении, а потом перевод фокуса обратно и Ctrl+V.

Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 12.02.2008, 01:23


Вопрос № 122.765
***Уважаемые эксперты!***
Ответе, пожалуйста, почему в моей проге не удается поместить в форму графическое приложение с раширение .tif?
Заранее благодарен, жду с нетерепением ответа:)

Приложение:

Отправлен: 12.02.2008, 06:42
Вопрос задал: Резаев Всеволод Александрович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Raptor3
Здравствуйте, Резаев Всеволод Александрович!
В стандартный image tiff положить не получится.

Варианты : использовать нестандартный компонент от http://www.hicomponents.com ImageEn (обычные тифы отображается хорошо - но так называемые сжатые тифы без потери качества - не отображает)

2 вариант -использовать библиотеки от http://www.awaresystems.be/imaging/tiff.html - я из их исходников сделал длл - получилось здорово

3. есть еще куча подобных компонентов
---------
Программист - это человек который решает проблему, о которой вы не знаете, способом который вы не понимаете
Ответ отправил: Raptor3 (статус: 5-ый класс)
Ответ отправлен: 12.02.2008, 08:06
Оценка за ответ: 4

Отвечает: Selya
Здравствуйте, Резаев Всеволод Александрович!
А по моему TImage.Picture формат .tif не понимает.
Бросьте на форму Image и в инспекторе объектов щёлкните свойство Picture. Откроется диалог загрузки файлов, и в фильтре какие угодно форматы, но не .tif
Нужен либо какой-нибудь компонент с поддержкой tif-формата, либо перед открытием преобразовывать tif в любой другой читаемый формат с помощью хитрого алгоритма.
Ответ отправил: Selya (статус: 7-ой класс)
Ответ отправлен: 12.02.2008, 09:08
Оценка за ответ: 3

Отвечает: PavelGM
Здравствуйте, Резаев Всеволод Александрович!

Могу добавить еще вариант - использование Apple QuickTime API - получите поддержку еще ряда форматов (включая, помимо TIFF - еще PNG, GIF, PSD, JPEG2000 и ряд более экзотических).

К тому же они все время обновляют свой софт и новые форматы добавляются без переделок интерфейса.
Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 12.02.2008, 10:22
Оценка за ответ: 3


Вопрос № 122.789
Здравствуйте уважаемые программисты, у меня вопрос такой: Есть Timer1 и ProgressBar1 что можно прописать, чтобы во время отсчёта времени у меня отображался ProgressBar1.

С уважением sefiros
Отправлен: 12.02.2008, 11:58
Вопрос задал: Sefiros (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Sefiros!
Предлагаю такой вариант: задаете константой время, которое должен отсчитывать таймер. В событии OnTimer в timer1.tag записывается время, которое уже прошло с начала отсчета и в ProgressBar.Position выводится соответствующее прошедшему промежутку времени значение.
По окончании отсчета Timer.Tag обнуляется и снова можно запускать счетчик.
Пишите, если будут вопросы.

Удачи!

Приложение:

Ответ отправил: Николай Владимирович / Н.В. (статус: Профессионал)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 12.02.2008, 12:21
Оценка за ответ: 5
Комментарий оценки:
Пасибочки большое, оч помогло, вопросов по етому нед, тока я хотел, чтоб у меня ProgressBar частично выползал, а не сразу..........помогите дописать плз.......а так очень хорошо всё

Отвечает: Selya
Здравствуйте, Sefiros!
Всё просто:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Timer1.Enabled then
ProgressBar1.StepIt;
end;

Смотрите также свойства TProgressBar:
Max, Min, Step

Можно ещё сбрасывать счётчик, когда он наполняется:
if ProgressBar1.Position = ProgressBar1.Max then
ProgressBar1.Position := ProgressBar1.Min;
Ответ отправил: Selya (статус: 7-ой класс)
Ответ отправлен: 12.02.2008, 12:58
Оценка за ответ: 5
Комментарий оценки:
Спасибочки большое, кстати, прости, что в тот раз так нехорошо получилось. Можна спрасить? Сбрасывая счётчик, мы повторяем его?

Отвечает: Marked One
Здравствуйте, Sefiros!
В приложении рабочий код.
На форме две кнопки, один таймер и один ProgressBar.

Приложение:

Ответ отправил: Marked One (статус: 5-ый класс)
Ответ отправлен: 12.02.2008, 18:47
Оценка за ответ: 5
Комментарий оценки:
Спасибочки большое, но мене ужо помагли

Отвечает: Евчик Сергей Александрович
Здравствуйте, Sefiros! max-длина; position-позиция в ProgressBar наример:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
progressbar1.Max:=60;
progressbar1.Position:=progressbar1.Position+1;
end;
end.

Ответ отправил: Евчик Сергей Александрович (статус: 2-ой класс)
Ответ отправлен: 12.02.2008, 18:48
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо, что откликнулись, но мне уже помог Николай Васильевич. Очень помогло.

Отвечает: Genia007
Здравствуйте, Sefiros!
Просто по событию OnTimer пишите:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ProgressBar1.Position:=ProgressBar1.Position+1;
end;
И с каждым вызовом таймера в ProgressBar1 позиция будет увеличиваться на один сегмент.
Ответ отправил: Genia007 (статус: 6-ой класс)
Ответ отправлен: 13.02.2008, 12:13
Оценка за ответ: 5
Комментарий оценки:
Пасиб большое, приму кстате....


Вопрос № 122.810
Здрасти! В кратце: Есть жесткий диск(подключается как флешка), надо написать программу-защиту. Т.е. украли жестяк, подключили, а там спрашивается пароль, пароль ввели неверный-с жесткого всё быстренько удаляется!
Отправлен: 12.02.2008, 14:38
Вопрос задал: Чеботок Алексей Андреевич (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Selya
Здравствуйте, Чеботок Алексей Андреевич!
Не надо ничего писать. Всё уже написано до нас.
Устанавливаете на диске файловую систему NTFS и включаете шифрование данных. И всё. Эти данные сможет прочитать только заранее определённый пользователь.
Ответ отправил: Selya (статус: 7-ой класс)
Ответ отправлен: 12.02.2008, 14:48
Оценка за ответ: 5
Комментарий оценки:
Пасиба, попробу!

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Чеботок Алексей Андреевич!
Это неосуществимо.
Докажу от обратного: допустим, Вы написали такую программу под windows, а я подключу этот диск на компьютере с Linux-ом и программа мне больше не помеха.
Допустим, Вы напишите такую программу и под windows и под Linux и под все остальные существующие в природе системы - в таком случае возникает следующая проблема: программа чтобы спрашивать пароль должна быть запущена. А если я вставляю ворованный диск, я не буду запускать какую-то странную программу, а только скопирую нужную мне информацию.
Даже если предположить, что программа запуститься через какой-нибудь autorun.inf на диск, то опять есть проблема: у многих отключен автозапуск дисков и к тому же антивирус может его посчитать вредоносным и заблокировать.
Вот, что сразу же приходит в голову. Если у Вас есть способы преодолеть все эти проблемы, то Вы, вероятно, напишите такую программу, но времени это отнимет просто огромнейшее количество и не оправдается себя в итоге - все равно найдется способ отключить Вашу программу. Например, испортить сектора на диске.

На мой взгляд самый лучший способ защиты - заархивировать с хорошим паролем в rar ценные документы и когда надо только извлекать некоторые из них. В таком случае обычным воришкам придется очень долго и мучительно перебирать пароли к архиву.
Написанный экспертом Selya метод опять-таки не идеален: есть возможность взлома и прочтения зашифрованных данных. (Представьте, что Вы потеряли учетную запись пользователя, зашифровавшего данные)
И в этом случае есть еще одна маленькая тонкость: сертификаты шифрования должны быть на всех компьютерах, где Вы подключаете диск.
Это опять-таки только облегчение задачи для злоумышленника.
Удачи!
Ответ отправил: Николай Владимирович / Н.В. (статус: Профессионал)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 12.02.2008, 15:07
Оценка за ответ: 5
Комментарий оценки:
как мне кажется, способ взлома архивов типа rar известен как-бы лет 10, а вот додуматься и подключиться к тому же Linux не каждый сможет (еще один способ защиты от дурака)! Но, все-равно, спасибо

Отвечает: PavelGM
Здравствуйте, Чеботок Алексей Андреевич!

В первом ответе все хорошо за исключением того, что на другом компьютере вы эту флэшку тоже не прочитаете - шифрование идет по ОС и ее локальному юзеру - если имена даже совпадают это не поможет.

Лучше использовать программы шифровальщики, создающие свои диски (например, TrueCrypt) или написать самому такую.

Еще один похожий вариант - хранить файлы в своем контейнере (а его шифровать как хотите) и сохранять/восстанавливать их только через свою программу - зато не требует написания драйвера диска, но требует использования дополнительной программы для доступа.

Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 12.02.2008, 17:08
Оценка за ответ: 5
Комментарий оценки:
Пасиба, и это попробую


Вопрос № 122.835
Здравствуйте, уважаемые эксперты!
Имеется строка S. Необходимо ее КАКИМ-ТО образом сжать (уменьшить количество символов), тем самым одновременно шифруя ее содержимое.
Хотел использовать всякие шифровщики на панели Indy Misc, но там строка преобретает длину в 2-3 больше исходной. А хотелось бы сэкономить или оставить строку хотя бы прежней длины.
И необходимо затем расшифровать это обратно в строку. Хотел попробовать использовать TCompressionStream из ZLib. Что-то там не получилось =(
Вообщем подскажите, как решить проблему!!!
Буду очень благодарен.
Отправлен: 12.02.2008, 16:34
Вопрос задал: Александр Леонидович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Genia007
Здравствуйте, Александр Леонидович!
Есть набор компонент chdelphipack- набор компонент крутых, в который входит компонент CHCrypt, он прекрасно кодирует и декодирует строки, правда длинна строки остаётся прежней, но зато очень прост в использовании. Я его использовал для шифрования ключа для коммерческой проги.
Author: Christian Hдmmerle
EMail: chammerle@uni.de
Homepage: www.Blue-Xplosion.de
Ответ отправил: Genia007 (статус: 6-ой класс)
Ответ отправлен: 13.02.2008, 12:13
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо!!!!


Вопрос № 122.841
Здравствуйте, уважаемые эксперты!

Подскажите пожалуйста, как сделать ассоциацию своего расширения со своей программой для ВСЕХ пользователей сразу? (Как у WinRar'а). Или зарегистрировать свое расширение для пользователя с ограниченными правами. Хотелось бы услышать версию для WinXP и Vista если есть различие.
Буду благодарен, если поделитесь куском кода.
Отправлен: 12.02.2008, 17:06
Вопрос задал: Зарубин Михаил Сергеевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Зарубин Михаил Сергеевич!
Посмотрите вот эту статью (в приложении её копия).

Удачи!

Приложение:

Ответ отправил: Николай Владимирович / Н.В. (статус: Профессионал)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 12.02.2008, 17:19
Оценка за ответ: 2
Комментарий оценки:
Очень жаль, что мне не дали ответ на мой вопрос! Я знаю, как регистрировать расширение для своей программы, но если пользователь с хорошими правами, т.е. есть доступ на запись в HKEY_CLASSES_ROOT. Но если я установил на компе свою программу под админом, и ассоциировал ее с расширением *.aaa, а у меня есть еще пользователь “ Ограниченная учетная запись”, то у него расширение *.aaa не с чем не ассоциируется, и функция регистрации тоже не работает, т.к. нету прав для записи в HKEY_CLASSES_ROOT. Если запустить приложение с правами админа, то результата тоже нету  Но после установки WinRar’а, у всех пользователей сразу файлы *.rar открываются WinRar’ом. Значит это можно сделать! Вопрос как???

Отвечает: Marked One
Здравствуйте, Зарубин Михаил Сергеевич!
Процедура RegisterFileType ассоциирует твоё приложение с твойм типом файла.
Для её использования добавь в раздел uses модуль Registry.
Первый параметр sFileType - расширение файла, например: bmp или html.
Второй параметр sApp - полный путь к твоему приложению.
У всех параметров тип String.
Пример вызова: RegisterFileType('bmp' ,Application.ExeName);

Приложение:

Ответ отправил: Marked One (статус: 5-ый класс)
Ответ отправлен: 12.02.2008, 18:16
Оценка за ответ: 2
Комментарий оценки:
Очень жаль, что мне не дали ответ на мой вопрос! Я знаю, как регистрировать расширение для своей программы, но если пользователь с хорошими правами, т.е. есть доступ на запись в HKEY_CLASSES_ROOT. Но если я установил на компе свою программу под админом, и ассоциировал ее с расширением *.aaa, а у меня есть еще пользователь “ Ограниченная учетная запись”, то у него расширение *.aaa не с чем не ассоциируется, и функция регистрации тоже не работает, т.к. нету прав для записи в HKEY_CLASSES_ROOT. Если запустить приложение с правами админа, то результата тоже нету :( Но после установки WinRar’а, у всех пользователей сразу файлы *.rar открываются WinRar’ом. Значит это можно сделать! Вопрос как???


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное