Вопрос № 44160: Такой вопрос...
К примеру надо получить содержание странички вебсайта.
Как это сделать с помощью компонента TIdHTTP из Indy Clients?...Вопрос № 44169: Здравствуйте уважаемые эксперты. Подскажите, как сделать в DBGrid выпадающее меню с данными из другой таблицы?...Вопрос № 44185: Доброго всем.
Есть числа от 1 до 100, например.
Надо выдавать случайные числа с вероятностью, такие, что чем ближе к 20, например, тем вероятность больше.
Вроде понятно написал. Если что уточните - не ругайте....Вопрос № 44198: Делаю програмку; много форм, юнитов. Как её организовать лучше? те юниты переделываю в dll, а как быть с формами? как то читал что можно сохранять их в dll. ...Вопрос № 44208: Здравствуйте все уважаемые эксперты.
Хотелось спросить почему у меня тормозит программа на Delphi ,,??,,
Она служит для копирования файлов с носителей.
Но очень долго работает и сама на время работы зависает как этого избежать и ускорить ...Вопрос № 44218: Здраствуте, эксперты!!!
В приложении приведён листинг программы, которая должна рисовать линии одна из одной(последяя точка одной первая точка следующей) точки задаются красным квадратиком(управление стрелочками) и сразу рисуется красная линия ко...Вопрос № 44235: Здраствуйте! Как организовать проверку пароля в программе. Типа сравнение из TEdit с какой нибудь переменной. Я знаю что такое может прокатить с цифрами (val потом if a=12345 then ...) а вот буквы уже не сравнишь... может какие
компоненты есть. Да и ...Вопрос № 44239: Здравствуйте Уважаемые Эксперты! Подскажите какие-нибудь компоненты для создания Мульти языкового приложения. Желательно,
чтобы компоненты были бесплатные или такие к которым легко можно найти лекарство. Заранее Спсибо....
Вопрос № 44.160
Такой вопрос...
К примеру надо получить содержание странички вебсайта.
Как это сделать с помощью компонента TIdHTTP из Indy Clients?
Отправлен: 25.05.2006, 02:46
Вопрос задал: Vento (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Ерёмин Андрей
Здравствуйте, Vento!
Вот так например:
var Str: AnsiString; HTTP.Host:=`rusfaq.ru`; HTTP.Connect(); Str:=HTTP.Get(`http://rusfaq.ru`); HTTP.Disconnect;
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор) Россия, Тула WWW:Программирование на DELPHI: Всё для программиста. ICQ: 286837644 ---- Ответ отправлен: 25.05.2006, 07:59 Оценка за ответ: 4 Комментарий оценки: Делал точто так же.... и оно успешно вылетает при соединении с ошибкой... Причем с пустой :) Может у меня Инди глючный?... Благо нашел Синапс, поставил, сформировал запрос вручную...
И все заработало :) Не дружить мне с Indy...
Вопрос № 44.169
Здравствуйте уважаемые эксперты. Подскажите, как сделать в DBGrid выпадающее меню с данными из другой таблицы?
Отвечает: RSV
Здравствуйте, Сапожников Владимир Алексеевич!
Самый простой и легкий способ - использование TDBGridEh из пакета EhLib 3.6 (http://www.ehlib.com/RUS/default.htm Раздел "Регистрация"), либо воспользоваться "Советы по Delphi" от В.Озерова (материалы отправлены на Вашу внутреннюю почту RusFAQ.ru)
Ответ отправил: RSV (статус: 1-ый класс)
Ответ отправлен: 25.05.2006, 11:15
Вопрос № 44.185
Доброго всем.
Есть числа от 1 до 100, например.
Надо выдавать случайные числа с вероятностью, такие, что чем ближе к 20, например, тем вероятность больше.
Вроде понятно написал. Если что уточните - не ругайте.
Отправлен: 25.05.2006, 11:36
Вопрос задал: Kazakh (статус: 9-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Kazakh!
Можно, например, так, как написано в приложении. Здесь c-ваше число 20, r-случайное число, p- период.
Смысл работы таков:
Выбираем случайное число.
Если оно входит в интервал (c-p;c+p), то выводим его, иначе увеличиваем интервал.
Если интервал включает в себя промежуток [1;100], то выводим получившееся число.
Изменение периода p подберите как вам будет удобнее. Чем он меньше, тем больше вероятность получения чисел наиболее близких к c и меньше вероятность получить числа более отдаленные от c.
Удачи!
Приложение:
--------- Ответы на все вопросы - на сайте www.ya.ru :)
Ответ отправил: Устинов Сергей Евгеньевич (статус: 10-ый класс)
Ответ отправлен: 25.05.2006, 12:09 Оценка за ответ: 5 Комментарий оценки: Как всё иногда оказывается просто :-) Спасибо.
Отвечает: Boriss
Здравствуйте, Kazakh!
Оно, конечно, можно и так, через N-ное место. Но проще воспользоваться функцией из модуля Math
function RandG(Mean, StdDev: Extended): Extended;
которая генерирует случайное число, подчиняющееся статистике Гаусса:
Mean - среднее значение (20, у Вас);
StdDev - ширина разброса
А так, есть формулы пересчета случайных чисел, равномерно разбросанных в некотором интервале, в случайные числа, разбросанные вокруг среднего по определенному закону
--------- Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор) Россия, Саранск Организация: факультет Электронной техники, Мордовский госуниверситет Адрес: г. Саранск WWW:Программирование на Паскале ---- Ответ отправлен: 25.05.2006, 13:09 Оценка за ответ: 5 Комментарий оценки: Спасибо. Так ещё проще :-)
Вопрос № 44.198
Делаю програмку; много форм, юнитов. Как её организовать лучше? те юниты переделываю в dll, а как быть с формами? как то читал что можно сохранять их в dll.
Отвечает: sir henry
Здравствуйте, Negruzzi Cristian!
Нет никакго смысла переделывать все в DLL, если Ваши модулиформы не будут использовать ОДНОВРЕМЕННО другие приложения. Ваш вопрос непонятен, что Вы подразумеваете под "Как её организовать лучше"? У Вас есть определение, что такое "лучше"?
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 25.05.2006, 14:02
Отвечает: Проходящий Мимо
Здравствуйте, Negruzzi Cristian!
Прочитайте статью http://delphiworld.narod.ru/base/using_and_creating_dll.html, где описаны области применения DLL. По Вашему вопросу поможет http://delphiworld.narod.ru/base/forms_in_dll.html.
Формы можно сохранять в случае использования DLL в качестве Plug-in, так как в тело DLL компилируются модули, которые используются для создания форм. Соответственно, возникает ситуация, при которой одновременно в памяти размещаются несколько копий одного и того же модуля, а это не есть оптимизация Вашего проекта.
--------- Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 4-ый класс)
Ответ отправлен: 25.05.2006, 14:18
Вопрос № 44.208
Здравствуйте все уважаемые эксперты.
Хотелось спросить почему у меня тормозит программа на Delphi ,,??,,
Она служит для копирования файлов с носителей.
Но очень долго работает и сама на время работы зависает как этого избежать и ускорить её работу ?
Спасибо за внимание.
P.S : Это не весь код программы но именно где то здесь ошибки !
Отвечает: Решетник Д
Здравствуйте, Tamashev Denis M!
чтобы не томрозило, поставьте в цикле Application.ProcessMessage
--------- Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: 6-ой класс)
Ответ отправлен: 25.05.2006, 16:07 Оценка за ответ: 4 Комментарий оценки: Я в Delphi не очень что это даст ?
Вопрос № 44.218
Здраствуте, эксперты!!!
В приложении приведён листинг программы, которая должна рисовать линии одна из одной(последяя точка одной первая точка следующей) точки задаются красным квадратиком(управление стрелочками) и сразу рисуется красная линия которая показывает как будет выглядеть следующая! Но почему-то при использовании динамического массива рисуется только одна линия первой точкой которой является точкой старта ( х=0 и у=0), а точка конца линии- последяя указаная точка!
Если чётко указать размер массива то всё работает!
Подскажите где ошибка!
Приложение:
Отправлен: 25.05.2006, 17:24
Вопрос задал: chikanok (статус: 2-ой класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: sir henry
Здравствуйте, chikanok!
Подозоеваю, что у Вас проблемы с зажданием размера массива. Опять же подозреваю, что Вы его задаете в цикле прибавляя по одному и сразу же задаете размер. Из Вашего кода неясно, извините.
Сделайте так: сначала определитесь с размером массива (как Вы его определяеие - Ваше дело) и только когда размер уже известен, за один раз задайте его с помощью SetLength().
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 26.05.2006, 07:29 Оценка за ответ: 3 Комментарий оценки: Если размер массива задовать за одни раз то зачем мне тогда вообще нужна динамическая длина массива! Дело в том,что я не как не могу предсказать длину массива, а тратить лишнии ресурсы,сами понимаете мимо! В конце концов в этой программе будет около 500 массивов!
Отвечает: Caleb
Здравствуйте, chikanok!
Если вы задаёте размер масива динамически, то обращение к последнему элементу лучше делать вот так: lines[high(lines)]:=<value>;
Точно также можно обращаться к самому первому элеменe lines[low(lines)]:=<Value>;
А в цикле обработки массива при выводе можно использовать length.
for q:=0 to length(line)-1 do ...
или
for q:=low(lines) to high(lines) do ...
Удачи.
Ответ отправил: Caleb (статус: 1-ый класс)
Ответ отправлен: 26.05.2006, 09:22 Оценка за ответ: 5 Комментарий оценки: Хех! Работает! Ток непонимаю почему,но работает! Спасибо!!!
Вопрос № 44.235
Здраствуйте! Как организовать проверку пароля в программе. Типа сравнение из TEdit с какой нибудь переменной. Я знаю что такое может прокатить с цифрами (val потом if a=12345 then ...) а вот буквы уже не сравнишь... может какие компоненты есть. Да и если не сложно обьясните как пользоваться этим компнентом... Жду ответов =)
Отвечает: Ерёмин Андрей
Здравствуйте, Калашников Михаил!
Возможно, я неправильно понял вопрос и посчитал его слишком лёгким, но всё-таки...
var Pwd: String; . . . Pwd:='123'; if (Edit1.Text = Pwd) then begin { Пароль верный } end else begin { Пароль неверный } end;
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор) Россия, Тула WWW:Программирование на DELPHI: Всё для программиста. ICQ: 286837644 ---- Ответ отправлен: 25.05.2006, 21:24 Оценка за ответ: 3 Комментарий оценки: такая штука как раз не катит потому что "f (Edit1.Text = Pwd) thenbegin" String нельзя сравнивать а Edit1.Text как раз СТРИНГ, только числовые вроде сравниваются...
Отвечает: Решетник Д
Здравствуйте, Калашников Михаил!
такой код
if 'asdfa' = 'Asdfa' then beep;
после выполнения НЕ пропищит (проверил :). так что можете сравнивать строки.
http://www.codenet.ru/progr/delphi/stat/delphi.php
--------- Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: 6-ой класс)
Ответ отправлен: 25.05.2006, 21:35 Оценка за ответ: 5 Комментарий оценки: Может конечно и правильно, но когда я пытаюсь сделать это, у меня ничего не получается. Компилятор ругается что нельзя сравнивать стринги ... =( Может конечно я чё неправильно делаю...
Отвечает: Kazakh
Здравствуйте, Калашников Михаил!
А что кто-то отменил стандартные дельфийские функции
function AnsiCompareStr(const S1, S2: string): Integer;
function CompareStr(const S1, S2: string): Integer; ? Или они тоже не работают?
А вообще конструкции экспертов Ерёмина А. и Решетника Д. являются правильными. И мой компилятор не ругается. Может у вас проблемы с Delphi? Может уже пора переустановить?
--------- Если собеседник затрудняется ответить, значит, вопрос поставлен правильно.
Ответ отправил: Kazakh (статус: 9-ый класс)
Ответ отправлен: 26.05.2006, 07:26
Отвечает: nimoid
Здравствуйте, Калашников Михаил!
Все ответы экспертов правильные и работают на 100%. Строковые типы так сравнивать можно. if a = b then ... // a, b: string;
Проверь свои объявления переменных. Возможно ты где-то ошибся и написал к примеру не var a: string; , а может var a: integer;
И еще.. так ради интереса, какая версия делфей?
--------- Пишем баги на любые патчи :-]
Ответ отправил: nimoid (статус: 8-ой класс)
Ответ отправлен: 26.05.2006, 09:37
Отвечает: Shcherbakov Anton
Здравствуйте, Калашников Михаил!
а что вам мешает сравнить тексты??
var str : string;
if str = edit.text then ...
Ответ отправил: Shcherbakov Anton (статус: 2-ой класс)
Ответ отправлен: 26.05.2006, 10:04
Вопрос № 44.239
Здравствуйте Уважаемые Эксперты! Подскажите какие-нибудь компоненты для создания Мульти языкового приложения. Желательно,
чтобы компоненты были бесплатные или такие к которым легко можно найти лекарство. Заранее Спсибо.
Отвечает: Николай Б.
Здравствуйте, Шишкин М.А.!
Насколько мне известно, таких компонентов нет. В интернете много статей по созданию мультиязычных приложений.
I. Самый популярный (и, наверно, лучший) способ - через ini-файлы. В него записываются значения каждого пункта меню, сообщения и т.д. и установленный язык. Во время работы, программа, в зависимости от языка, считывает нужные значения и использует их. Другой вариант- загрузка значений в массив и использование на протяжении работы программы. Он использует больше памяти. Первый же тратит время на обращение к диску.
II. Часто используется реестр. В него аналогично записываются значения пунктов меню и т.д., а затем считываются.
Удачи!
--------- Недавно прошёл тест на IQ. Результат отрицательный.
Ответ отправил: Николай Б. (статус: 9-ый класс)
Ответ отправлен: 26.05.2006, 06:49
Отвечает: Проходящий Мимо
Здравствуйте, Шишкин М.А.!
Как один с вариантов, можно использовать компоненты на подобии FormStorage с пакета RXLib, который сохраняет во внешний ini-файл выбранные свойства компонентов, в т.ч. Caption. Этот ini-файл можно отредактировать под нужный язык. Соответственно, при создании формы автоматически считываются и заполняются надписи на нужном языке:
FormStorage1.IniFileName:=ExtractFilePath(Application.ExeName)+'Eng.ini';
FormStorage1.Active:=true;
Аналог компонента FormStorage есть во многих пакетах. Удачи.
--------- Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 4-ый класс)
Ответ отправлен: 26.05.2006, 09:29
Отвечает: Решетник Д
Здравствуйте, Шишкин М.А.!
В приложении приведен кусок кода, который работает по принципу, описанному Николаем Б. - через ini-файлы.
функция ReadString: 1 параметр - имя секции ([]), 2 параметр - название ключа, а 3 - значение по-умолчанию
Приложение:
--------- Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: 6-ой класс)
Ответ отправлен: 26.05.2006, 14:46