Вопрос № 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
Доброго времени суток. Ув. Эксперты, подскажите пожалуйста литературу по стандартным типам данных, нужно для наполнения информацией сайта о языках программирования. Заранее спасибо
Ответ отправил: Николай Владимирович / Н.В. (статус: Профессионал) Россия, Москва 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?
Заранее благодарен, жду с нетерепением ответа:)
Отвечает: 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
Могу добавить еще вариант - использование 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
Здрасти! В кратце: Есть жесткий диск(подключается как флешка), надо написать программу-защиту. Т.е. украли жестяк, подключили, а там спрашивается пароль, пароль ввели неверный-с жесткого всё быстренько удаляется!
Отвечает: 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. Что-то там не получилось =(
Вообщем подскажите, как решить проблему!!!
Буду очень благодарен.
Отвечает: 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 если есть различие.
Буду благодарен, если поделитесь куском кода.
Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Зарубин Михаил Сергеевич!
Посмотрите вот эту статью (в приложении её копия).
Удачи!
Приложение:
Ответ отправил: Николай Владимирович / Н.В. (статус: Профессионал) Россия, Москва 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’ом. Значит это можно сделать! Вопрос как???