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

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


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

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

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

Выпуск № 999
от 06.12.2007, 10:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 443, Экспертов: 62
В номере:Вопросов: 4, Ответов: 7


Вопрос № 111727: Здравствуйте! Я первый раз пишу кейген для лицензии. Есть ключ авторизации (неизвесное кол-во знаков), и нужна составить по нему лицензионный ключ. Ну понял там типа прибавление номера знака, умножение на 2 и тд. Только незнаю как это все реализовать...
Вопрос № 111752: Здравствуйте, уважаемые эксперты! Как программно заставить проводник открыть необходимую мне папку? Допустим путь к папке будет храниться в переменной var path:pchar;...
Вопрос № 111789: Доброго времени суток. есть такая проблемка. сижу и туплю над задачей: написать программу, позволяющую перевести любое число из 17-ичной системы счисления в десятичную. предположим есть поле edit1 куда надо ввести число и поле label2 где...
Вопрос № 111828: Привет эксперты! Помогите пожалуйста перевести это на делфи: LPDISPATCH lpDisp = m_objABSDriver.OpenABS("xxx.abs"); ... CABS m_objABS(lpDisp); <---вот тут непонятка, как это сделать в Дельфе? Спасибо....

Вопрос № 111.727
Здравствуйте! Я первый раз пишу кейген для лицензии. Есть ключ авторизации (неизвесное кол-во знаков), и нужна составить по нему лицензионный ключ. Ну понял там типа прибавление номера знака, умножение на 2 и тд. Только незнаю как это все реализовать... У кого-нибудь есть примерчик кейгена такого?
Отправлен: 30.11.2007, 14:11
Вопрос задал: Зощенко Алексей (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Сычёв Павел Алексеевич
Здравствуйте, Зощенко Алексей!
Реализуеться просто- на форму кидаешь два Edit, кнопку, ну и лэйблы по желанию.
Пользователь вводит ключь авторизации в первый эдит, нажимает кнопку. в обработчике нажатия кнопки пишете проверку автор. ключа (чтобы совпадал с шаблоном), если проходит, то выполняете преобразования ключа в лицензионный ключь.
Если хоти поподробнее, присылайте алгоритм получения кода лицензии - сделаю keygen
Ответ отправил: Сычёв Павел Алексеевич (статус: 1-ый класс)
Ответ отправлен: 30.11.2007, 19:10
Оценка за ответ: 2


Вопрос № 111.752
Здравствуйте, уважаемые эксперты!
Как программно заставить проводник открыть необходимую мне папку? Допустим путь к папке будет храниться в переменной
var path:pchar;
Отправлен: 30.11.2007, 16:58
Вопрос задал: Александр Леонидович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

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

попробуйте

procedure TForm1.Button1Click(Sender: TObject);
var path:pchar;
begin
path := 'c:windowssystem';
ShellExecute(Handle, nil, path, nil, nil, SW_SHOWNORMAL);
end;
функция ShellExecute находится в модуле ShellAPI
Ответ отправил: Vas177 (статус: 2-ой класс)
Ответ отправлен: 30.11.2007, 17:06
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо! Очень быстрый ответ!

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

На самом деле предыдущий ответ не совсем точный, поскольу открывается не проводник, а окно...

Вот немного другой код:
procedure TForm1.Button1Click(Sender: TObject);
var path:pchar;
begin
   path:='/e,'+'c: emp';
   ShellExecute(Handle, nil, 'explorer.exe', path, nil, SW_SHOWNORMAL);
end;


В строке path:='/e,'+'c: emp';
'/e,' - это параметр запуска проводника, чтобы открывалась нужная папка.

Да и не забудте про подключение модуля ShellApi (uses ShellApi).

Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 30.11.2007, 17:33


Вопрос № 111.789
Доброго времени суток. есть такая проблемка. сижу и туплю над задачей:
написать программу, позволяющую перевести любое число из 17-ичной системы счисления в десятичную.

предположим есть поле edit1 куда надо ввести число и поле label2 где должен отображаться результат перевода после нажатия на button1.

Заранее благодарен
Отправлен: 30.11.2007, 21:28
Вопрос задал: Тихонов Алексей (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Denisss

Здравствуйте, Тихонов Алексей!

В приложении размещаю 2 функции:

function XSystemToDec(const aX: String; const X: Integer): Integer;
- преобразует из любой системы (1 < X < 36) в 10-чную
aX - число в этой системе;
X - система счисления (например: для 17-чной системы X=17).

Вторая функция
function System17ToDec(const a17: String): Integer;
- преобразует из 17-чной системы в 10-чную, сама по себе является упрощением первой функции.

Пример использования функций достаточно прост:

procedure TForm1.Button5Click(Sender: TObject);
begin
  Label1.Caption:= IntToStr(XSystemToDec(Edit1.Text, 17));
  Label2.Caption:= IntToStr(System17ToDec(Edit1.Text));
end;


Удачи!

Приложение:

---------
Будь осторожен, когда молишься ради чего-то, потому что можешь это получить...

Ответ отправил: Denisss (статус: Профессионал)
Россия, Москва
----
Ответ отправлен: 01.12.2007, 12:54

Отвечает: Дегтярев Антон Александрович
Здравствуйте, Тихонов Алексей!
для этой задачи вам понадобится дополнительно подключить модуль math и функция возведения в степень power.
Далее зная алгоритм преобразования числа всё просто.

Приложение:

---------
Знаете для чего нужен Яndex? для проверки работы интернета

Ответ отправил: Дегтярев Антон Александрович (статус: 3-ий класс)
Ответ отправлен: 01.12.2007, 14:08

Отвечает: Gh0stik
Здравствуйте, Тихонов Алексей!

Я предложу Вам процедуру, которая переводит число из системы X в систему Y.
procedure SysX_to_SysY(sysX:string; osnX,osnY:integer; var sysY:string);
var dec,i,z1,z2,r:integer;
    b,c:string;
begin
  i:=0;
  dec:=0; //число в десятичной системе
  sysY:='';
  while sysX<>'' do  //переводим число из системы Х в десятичную
  begin
    c:=copy(sysX,length(sysX),1);
    delete(sysX,length(sysX),1);
    if i=0 then z2:=1 else z2:=round(exp(i*ln(osnX)));
    if ord(c[1]) > 64 then z1:=ord(c[1])-55
                    else z1:=StrToInt(c);
    dec:=dec+z1*z2; inc(i);
  end;

  while dec > 0 do //переводим число из десятичной системы в ситему Y
  begin
    r:=dec mod osnY;
    dec:=dec div osnY;
    if r < 10 then b:=IntToStr(r) else b:=chr(ord('A')-10+r);
    sysY:=b+sysY;
  end;
end;


Для Вашей задачи вызвать данную процедуру с соответствующими параметрами.
procedure SysX_to_SysY(sysX:string; osnX,osnY:integer; var sysY:string);
//sysX - число в системе Х
//osnX - основание системы Х
//osnY - основание системы Y
//sysY - число в системе Y


Пример использования:
procedure TForm1.Button4Click(Sender: TObject);
var dd:string;
begin
   SysX_to_SysY('G',17,10,dd);
   ShowMessage(dd);
end;


Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 01.12.2007, 17:59


Вопрос № 111.828
Привет эксперты!
Помогите пожалуйста перевести это на делфи:

LPDISPATCH lpDisp = m_objABSDriver.OpenABS("xxx.abs");
...
CABS m_objABS(lpDisp); <---вот тут непонятка, как это сделать в Дельфе?

Спасибо.
Отправлен: 01.12.2007, 07:48
Вопрос задал: Apex36 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Gladiator
Здравствуйте, Apex36!
Это вызов функции function m_objABS(lpDisp:LPDISPATCH): CABS;
Ответ отправил: Gladiator (статус: Студент)
Ответ отправлен: 03.12.2007, 07:59
Оценка за ответ: 4
Комментарий оценки:
Привет, а вот и не вызов функции, - это какое-то хитрое объявление экземпляра класса, и какая-то извращенная ?инициализация? этого экземпляра значением переменной lpDisp..
Как такое в Дельфе сделать - пока не понятно...
Спасибо.


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

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

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

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

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


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


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

В избранное