Вопрос № 83657: Подскажите пожалуйста, как перечислить в реестре ключи и их значения по определенной ветке. Сколько не искал находил перечисление только по всей КОРНЕВОЙ ветке. А вставлять условия на соответсвие искомому не хочется, уж больно гомоздко и медленно. Же...Вопрос № 83689: Здравствуйте. Есть вопрос. Хочу написать браузерную игру типа Дозоры.ру (http://dozory.ru). Так как знаю только делфи, работать буду на нём. Нужна литература,
советы, статьи. Спасибо. Оценю щедро.
З.Ы. Прошу не отвечать как в одной рассылке ...Вопрос № 83712: Здравствуйте!
Покажите примером мне создание класса с методами. Но, пожалуйста, не поленитесь его проверить! Главное, чтобы он был не сложный, мне суть создания методов нужно! Постоянно ошибки компиляции вылазят!...Вопрос № 83718: Здравствуйте!
Помогите решить такую задачку на Delphi.
Дано
const maxN=30;
type вещТип=record
знак:boolean;
мантисса, порядок:real;
end;
список=array[1..MaxN] of ВещТип;
Опишите функцию MaxNeg(C) д...Вопрос № 83746: Доброго времени суток, всем экспертам!
Использую модули Антона Григорьева: ExprDraw, ExprMake (модули здесь: http://www.delphikingdom.com/zip/expr.zip) для рисования математических формул на компоненте Image.
Вопрос: как сделать на компоненте...
Вопрос № 83.657
Подскажите пожалуйста, как перечислить в реестре ключи и их значения по определенной ветке. Сколько не искал находил перечисление только по всей КОРНЕВОЙ ветке. А вставлять условия на соответсвие искомому не хочется, уж больно гомоздко и медленно. Желательно пример. Заранее спасибо
Отправлен: 22.04.2007, 10:51
Вопрос задал: Bee.line (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Ерёмин Андрей
Здравствуйте, Bee.line!
Плохо искали :-) У TRegistry есть функции GetKeyNames() и GetValueNames(), которые делают соответственно листинг ключей и значений. Пример в приложении. Удачи!
Приложение:
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Приведённый мною пример читает все значения типа String из ветки HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion. Если добавить другие if'ы, то можно читать и числа (Integer) и другие типы.
Принцип работы следующий.
Создаём объект реестра (класс TRegistry). Указываем корневую ветвь (для примера HKEY_LOCAL_MACHINE). Проверяем существование указанной в Path ветви. Если такой ветви нет (что в нашем примере не есть хорошо :)), то оповещаем об этом пользователя, удаляем объект реестра и вылетаем из процедуры. В противном случае открываем нужную ветку (задаётся в Path; естесственно, что необязательно константа, может быть параметром процедуры или функции). В объект класса TStringList (заранее созданный) загружаем список всех
параметров данной ветки. Затем в цикле перебираем и, в зависимости от типа очередного параметра, можем проигнорировать его или загрузить в соответствующую переменную. В приведённом примере загружаются только строковые параметры и осуществляется их вывод на экран (ShowMessage).
<OffTop>Кстати, много интересной информации увидел: имя пользователя, организация, регистрационный ключ, название ОС и т.п.</OffTop>.
После того, как повызверялись над несчастной веткой, удаляем объект TStringList-ового класса, закрываем открытую ветвь реестра и удаляем объект реестра.
*************
Если надо проверить значения не только в Path'овой ветви, но и во всех вложенных, то нужно просто модифицировать упомянутый Вами код, перебирающий все ветки, задав в качестве отправной точки не корневую ветвь, а Path'овую. Если нужно именно это и возникнут трудности - пишите.
Приложение:
Ответ отправил: DimonSoft (статус: 1-ый класс)
Ответ отправлен: 22.04.2007, 11:32
Вопрос № 83.689
Здравствуйте. Есть вопрос. Хочу написать браузерную игру типа Дозоры.ру (http://dozory.ru). Так как знаю только делфи, работать буду на нём. Нужна литература, советы, статьи. Спасибо. Оценю щедро.
З.Ы. Прошу не отвечать как в одной рассылке (не на этом сайте), что это не возможно. Я могу назвать несколько браузерных игр, написанных на делфи.
Отправлен: 22.04.2007, 15:16
Вопрос задал: Dende-Soft (статус: 3-ий класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 7)
Отвечает: Сарумян
Здравствуйте, Dende-Soft!
Не поверите так и хотелось написать что это не возможно.
Но подумал (кстати понравилось) понял на что вы намекаете.
Во первых Вам надо писать серверное приложение, которое будет работать с 80 портом.
www.delphiworld.ru
Посмотрите там. Есть кое что, но не на эту тему основано.
Далее...
Во вторых, смысл работы будет таков: Запущен Ваше серверное приложение. Игрок вводит адрес типа : www.coolgame.ru . Регистрацию DNS я опущу это долго. Смысл в том что Ваше приложение получает запрос с 80 порта и генерирует страницу и после уже передает игроку. Своего рода HTML-сервер по типу Apache.
Ну вроде ясно обьяснил.
Теперь рассказу почему и у меня и у остальных сразу правая мысль: "Такое не возможно".
Правильнее трактовать "это тупо, сложно, много головной боли а толку потом может быть ноль". Обьясняю:
Т.к. Вы собрались писать приложение на Delphi Вам понадобится сервер на базе Windows.
Так же есть один нюанс. НИ ОДИН сервер не разрешает пользователям закачивать свои программные продукты. Только скрипты Java, C++, Perl ...
Т.е. Вам необходим выделенный сервер, с прописанными адресами. Идеально настроенный. И с высокоскоростной линией доступа в интернет.
В итоге имеем что Вам надо:
1) Купить мощный компьютер-сервер. Т.к. Windows платформа то простым за 30000р. не обойтись при большом кол-ве игроков.
2) Выделенную линию доступа в интернет. И разумеется свой домен. Домен не так уж и тяжело зарегистрировать (600р. в год).
3) Написать в первую очередь СЕРВЕРную часть приложения.
P.S. Если что-то не понятно обращайтесь в личку разъясню что да как на сколько смогу.
--------- Пришел, увидел, развернулся и ушел...
Ответ отправил: Сарумян (статус: 4-ый класс)
Ответ отправлен: 22.04.2007, 15:31
Отвечает: CoolBick
Здравствуйте, Dende-Soft!
Ты наверно что-то путаешь!
Скорее всего на делфи ты видел клиенты игр, написаных на html. php. java и т.д.
Ответ отправил: CoolBick (статус: 1-ый класс)
Ответ отправлен: 23.04.2007, 09:16
Вопрос № 83.712
Здравствуйте!
Покажите примером мне создание класса с методами. Но, пожалуйста, не поленитесь его проверить! Главное, чтобы он был не сложный, мне суть создания методов нужно! Постоянно ошибки компиляции вылазят!
Отправлен: 22.04.2007, 18:27
Вопрос задал: Troyan (статус: 9-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: sir henry
Здравствуйте, Troyan!
Вот небольшой примерчик.
Работает. :)
Приложение:
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 22.04.2007, 19:11 Оценка за ответ: 5 Комментарий оценки: Спасибо, вы описали методы. Но я ошибся в вопросе, мне нужны не методы, а свойства, т.е. чтобы при изменении переменной класса выполнялось действие
Отвечает: DimonSoft
В приведённом примере полностью рабочий контрол, наследованный от TGraphicControl. Может быть, не хватает какого-нибудь модуля в uses или есть ещё какая-нибудь мелкая проблема, т.к. писал из головы, не в Delphi.
PropertyName - имя свойства, отображаемое в Object Browser'е. PropertyType - тип свойства (например, TColor). <Variable> после read и <Procedure> после write - это просто пример. На самом деле как после read, так и после write может быть переменная или процедура. Важно то, что переменная или процедура после этих двух слов должная быть объявлена в секции private (для переменной) или protected (для процедуры). <Value> после default - значение по умолчанию, то значение, которое в ObjectBrowser
будет отображаться неЖирным шрифтом, этот параметр можно использовать только с перечисляемыми типами, числами и символами (не строками), т.е. не всегда.
Поясню работу контрола из приложения. При создании вызывается конструктор, в котором
inherited Create(AOwner);
вызывается конструктор TGraphicControl'а, который выполняет все необходимые действия, больше знать ничего не надо. Затем
FBackColor:=clBtnFace;
позволяет при создании контрола сразу установить значение свойства по умолчанию, в противном случае здесь будет clBlack (попробуйте убрать эту строку).
Наследованный скрытый метод Paint содержит прорисовку. В данном случае реализована просто закраска контрола заданным в свойстве BackColor цветом.
В деструкторе просто вызывается унаследованный от родителя деструктор. Опять же он выполняет всё необходимое, больше ничего знать не надо.
Процедура SetBackColor, которая, кстати, была указана после write в описании свойства BackColor вызывается, когда программист на этапе дизайна или в runtime изменяет свойство BackColor. В runtime это выполняется, например, такой строкой:
MyControl1.BackColor:=clGray;
Поэтому задача программиста при описании этой процедуры выполнить необходимые действия для изменения свойства. В частности обновить, если это требуется, значение переменной, в которой хранится это свойство и из которой, кстати, оно читается (за это отвечает "read FBackColor"). Кроме того, т.к. изменение этого свойства должно влиять на внешний вид нашего контрола, мы должны принудительно перерисовать его путём вызова процедуры Paint.
Если остались вопросы, пишите Dimon-Delphist [ [ [ @ ] ] ] mail.ru.
Приложение:
Ответ отправил: DimonSoft (статус: 1-ый класс)
Ответ отправлен: 22.04.2007, 21:23 Оценка за ответ: 5 Комментарий оценки: Спасибо, то что нужно!
Вопрос № 83.718
Здравствуйте!
Помогите решить такую задачку на Delphi.
Дано
const maxN=30;
type вещТип=record
знак:boolean;
мантисса, порядок:real;
end;
список=array[1..MaxN] of ВещТип;
Опишите функцию MaxNeg(C) для нахождения минимального отрицательного числа из списка С
Отвечает: Gh0stik
Здравствуйте, Милютин Сергей Александрович!
Позволю предложить себе такой вариант, поскольку не указали какое конкретно поле мы проверяем на минимальность, то я взял поле мантисс (mantisa). И функция соответственно возвращает минимальное отрицательное среди мантисс, единственное функция не предусматривает вариант когда нет отрицательных. Вот сама функция:
function MaxNeg(x:spisok):real;
var k,n:integer;
begin
k:=1;
while (x[k].znak) and (k<=maxN) do inc(k);
n:=k;
for k:=1 to maxN do
with x[k] do
begin
if (not znak) and (mantisa < x[n].mantisa) then n:=k;
end;
Result:=x[n].mantisa;
end;
Для полноты также в приложение поместил полный код.
Good Luck!!!
Приложение:
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 22.04.2007, 19:45
Вопрос № 83.746
Доброго времени суток, всем экспертам!
Использую модули Антона Григорьева: ExprDraw, ExprMake (модули здесь: http://www.delphikingdom.com/zip/expr.zip) для рисования математических формул на компоненте Image.
Вопрос: как сделать на компоненте Image WordWrap т.е. многострочность как в Edit, RichEdit-ах например?
Может есть другие более легкие решения для вывода математических формул на контролах? Большое спасибо за помощь и за то что Вы есть!
Исходник в приложении:
Приложение:
Отправлен: 22.04.2007, 21:48
Вопрос задал: Burgem (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: PGM
Здравствуйте, Burgem!
К сожалению не знаком с теми компонетами, которые вы используете, но по существу, если надо выводить именно текст, могу посоветовать такой способ - в функции отрисовки (MakePict) использовать вызов API
где ARect прямоугольник вывода, в который надо вписаться.
Если же речь идет о переносе формул, особенно многострочных, то тут все будет не так тривиально и требует больших усилий. В общем случае, мне кажется, задача нетривиальна - например перенос дробей (с горизонтальной линией) с правильной разбивкой. Для частных же случаев линейной записи (многочленов, например) вполне можно использовать приведенный выше механизм.
Ответ отправил: PGM (статус: 5-ый класс)
Ответ отправлен: 22.04.2007, 22:40