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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 282
от 01.11.2005, 17:27

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


Вопрос № 28358: Здраствуйте!!! У меня очень простой вопрос!!! Как посчитать обычный логарифм для любого числа(тоесть мне нужна функция)!!! log !!!...
Вопрос № 28385: Здраствуйте уважаемые Эксперты. У меня такой вот вопрос. Я применяю метод OpenDialog у меня на форме расположен Memo, в котором прописывается путь файла. Скажите как правильно использовать к Memo метод Delete чтобы осталось только название файла и ег...
Вопрос № 28386: Здраствуйте уважаемые Эксперты. У меня такой вот вопрос. Я применяю метод OpenDialog у меня на форме расположен Memo, в котором прописывается путь файла. Скажите как правильно использовать к Memo метод Delete чтобы осталось только название файла и ег...
Вопрос № 28403: Здравствуйте, уважаемые эксперты! Подскажите, пожайлуста, как в StringGrid выделить ячейку другим цветом, в зависимости от того, какое значение она имеет? Спасибо!......

Вопрос № 28.358
Здраствуйте!!! У меня очень простой вопрос!!!
Как посчитать обычный логарифм для любого числа(тоесть мне нужна функция)!!! log !!!
Отправлен: 26.10.2005, 22:15
Вопрос задал: chikanok (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ujin Antikvar
Здравствуйте, chikanok!

Ответ на этот вопрос очень простой и вытекает он из замены основания логарифма
сделать это можно так:
log b по основанию a можно заминить вот так ln(b)/ln(a)

Пример работы данной замены смтри в приложении

С Уважением,
Ujin Antikvar!!!

Приложение:

---------
Не зацикливайся на достигнутом, а двигайся в перед

Ответ отправил: Ujin Antikvar (статус: 2-ой класс)
Отправлен: 26.10.2005, 22:43

Отвечает: Master135
Здравствуйте, chikanok!
Обычных логарифмов не бывает - бывают логарифмы с основанием. В общем технология их вычисления опирается на числовые ряды ln|1-x|=-x-x^2/2-x^3/3....-X^(n+1)/(n+1). точность вычислений может задаваться, например, если точность 0.001, то отниматься члены ряда будут до тех пор, пока очередной член не станет<0/001.
ln|1+x|=x-(x^2)/2+(x^3)/3-...-(-1)^n*x^(n+1)/(n+1)
Ответ отправил: Master135 (статус: 10-ый класс)
Отправлен: 27.10.2005, 01:28

Отвечает: Romodos
Здравствуйте, chikanok!
Ну это мы по математике в 10 классе проходили все!
logyx=logzy/logzx
т.е log24=ln(4)/ln(2)

var x,osn,res:extended;
begin
x:=2;
osn:=4;
res:=ln(x)/ln(osn);
end;
---------
FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 27.10.2005, 05:06

Отвечает: Schmak
Здравствуйте, chikanok!
Есть 2 способа:
1) Подключить модуль Math и использовать функции из него: Log2, Log10, LogN
2) Вспомнить математику:
Известно что log a(b)=log c(b)/log c(a)
В Delphi естm фунция вычисления натурального логарифма LN, т.е
Log числа b по основанию a вычислится как
result:=ln(b)/ln(a);
Ответ отправил: Schmak (статус: 4-ый класс)
Отправлен: 27.10.2005, 05:30

Отвечает: sir henry
Здравствуйте, chikanok!
А к модулю MATH обратиться не судьба? :)
Вычислить логарифм по любому основанию числа Х можно функцией:
LogN(Base, X):
По основанию 2:
Log2(X);
По основанию 10:
Log10(X);
Там еще куча всевозможных математических функций.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 27.10.2005, 08:36

Отвечает: Ерёмин Андрей
Здравствуйте, chikanok!
Стандартная функция LN():

function Ln(X: Real): Real;

Description

In Delphi code, Ln returns the natural logarithm (Ln(e) = 1) of the real-type expression X.

---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 27.10.2005, 13:09


Вопрос № 28.385
Здраствуйте уважаемые Эксперты. У меня такой вот вопрос. Я применяю метод OpenDialog у меня на форме расположен Memo, в котором прописывается путь файла. Скажите как правильно использовать к Memo метод Delete чтобы осталось только название файла и его расширенее. Или какой метод лучше использовать. Заранее благодарна.
Отправлен: 27.10.2005, 11:12
Вопрос задала: Шишлянникова Анисия Николаевна (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Rusland
Здравствуйте, Шишлянникова Анисия Николаевна!
Перед добавлением в Memo используйте функцию ExtractFileName(FullFilePath). Удачи
---------
Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)
Ответ отправил: Rusland (статус: Практикант)
Отправлен: 27.10.2005, 11:20

Отвечает: Werewolf
Здравствуйте, Шишлянникова Анисия Николаевна!
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=0 to (Memo1.Lines.count-1) do
Memo1.Lines[i]:=ExtractFileName(Memo1.Lines[i]);
end;
Ответ отправил: Werewolf (статус: Студент)
Отправлен: 27.10.2005, 11:23

Отвечает: Ballon
Здравствуйте, Шишлянникова Анисия Николаевна!

Используйте функцию ExtractFileName(();

Например:
Memo1.Lines.Add(ExtractFileName(OpenDialog1.FileName));
---------
Хочу все знать...
Ответ отправил: Ballon (статус: 6-ой класс)
Отправлен: 27.10.2005, 11:25

Отвечает: Jadd
Здравствуйте, Шишлянникова Анисия Николаевна!
функция ExtractFileName уже делает то, что Вам нужно.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 27.10.2005, 11:35

Отвечает: sir henry
Здравствуйте, Шишлянникова Анисия Николаевна!
Вы хотите удалить файл, имя которого прописано в мемо или хотите усечь строку из мемо, чтобы осталось только название файла?
Опишу втрое, если ошибся, то уточните, что нужно.
Для этого нужно использовать функцию ExtractFileName().
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 27.10.2005, 12:30

Отвечает: Schmak
Здравствуйте, Шишлянникова Анисия Николаевна!
Для получения короткого имени файла есть функция ExtractFileName(). Пример:
Memo1.Lines.Add(ExtractFileName(OpenDialog1.FileName));
Ответ отправил: Schmak (статус: 4-ый класс)
Отправлен: 27.10.2005, 16:11


Вопрос № 28.386
Здраствуйте уважаемые Эксперты. У меня такой вот вопрос. Я применяю метод OpenDialog у меня на форме расположен Memo, в котором прописывается путь файла. Скажите как правильно использовать к Memo метод Delete чтобы осталось только название файла и его расширенее. Или какой метод лучше использовать. Заранее благодарна.
Я уточню я использую не Lines, а Memo1.text

Приложение:

Отправлен: 27.10.2005, 11:37
Вопрос задала: Шишлянникова Анисия Николаевна (статус: Посетитель)
Всего ответов: 7
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Werewolf
Здравствуйте, Шишлянникова Анисия Николаевна!
Memo1.text:=ExtractFileName(opendialog1.filename);
Ответ отправил: Werewolf (статус: Студент)
Отправлен: 27.10.2005, 11:41

Отвечает: sir henry
Здравствуйте, Шишлянникова Анисия Николаевна!
Зделайте так:
Memo1.Text:=ExtractFileName(OpenDialog1.FileName);
Непонятно только зачем использовать именно Мемо? Не лучше ли сразу в запросе использовать OpenDialog1.FileName?
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 27.10.2005, 12:34

Отвечает: Delphin
Здравствуйте, Шишлянникова Анисия Николаевна!
Пользуйся функцией ExtractFilePath( );

Приложение:

---------
Обращаться в ICQ: 66550088 (Ally) или E-Mail: delphinster@gmail.com

Ответ отправил: Delphin (статус: Студент)
Отправлен: 27.10.2005, 12:43

Отвечает: Romodos
Здравствуйте, Шишлянникова Анисия Николаевна!
Надо использовать не delete, а функцию ExtractFileName из модуля SysUtils
memo1.text:=extractfilename(memo1.Text);
---------
FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 27.10.2005, 14:03

Отвечает: Ерёмин Андрей
Здравствуйте, Шишлянникова Анисия Николаевна!
Если я правильно понял, Вам нужно из полного пути к файлу оставить только его имя. Тогда это делается так:

Memo1.Text:=ExtractFileName(Memo1.Text);
---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 27.10.2005, 15:16

Отвечает: Schmak
Здравствуйте, Шишлянникова Анисия Николаевна!
Ну тогда вот так
Memo1.Text:=ExtractFileName(OpenDialog1.FileName);
Ответ отправил: Schmak (статус: 4-ый класс)
Отправлен: 27.10.2005, 16:11

Отвечает: Ballon
Здравствуйте, Шишлянникова Анисия Николаевна!

напишите так:

Memo1.Text := ExtractFileName(OpenDialog1.FileName);
---------
Хочу все знать...
Ответ отправил: Ballon (статус: 6-ой класс)
Отправлен: 28.10.2005, 07:06


Вопрос № 28.403
Здравствуйте, уважаемые эксперты! Подскажите, пожайлуста, как в StringGrid выделить ячейку другим цветом, в зависимости от того, какое значение она имеет?
Спасибо!...
Отправлен: 27.10.2005, 15:57
Вопрос задал: Wictor (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jadd
Здравствуйте, Куприенко Виктор Петрович!
Нужно переопределить функцию OnDrawCell и заливать Rect тем цветом, который тебе нужен.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 27.10.2005, 16:04
Оценка за ответ: 4

Отвечает: Werewolf
Здравствуйте, Куприенко Виктор Петрович!
Примерно следующий обработчик OnDrawCell:

Приложение:

Ответ отправил: Werewolf (статус: Студент)
Отправлен: 27.10.2005, 16:11
Оценка за ответ: 5
Комментарий оценки:
Спасибо!...

Отвечает: sir henry
Здравствуйте, Куприенко Виктор Петрович!
В событии OnDrawCell можно определять цвет текста и фона, по другому никак.
StringGrid1.Canvas.Brush.Color := clGreen;
StringGrid1.Canvas.Font.Color := clWhite;
StringGrid1.Canvas.FillRect(Rect);
StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]);
Естественно, зависимость цвета от значения ячейки Вы будете определять сами. :)
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 27.10.2005, 17:32
Оценка за ответ: 4

Отвечает: Ерёмин Андрей
Здравствуйте, Куприенко Виктор Петрович!
Для примера я сделал таблицу умножения 15х15, в которой ячейки, содержащие числа, которые делятся без остатка на 5, выделяются другим цветом. Программка вместе с ответом. А по технологии - нужно обрабатывать событие OnDrawCell. Только учтите, что если шрифт другого размера, то его лучше выводить в других координатах ячейки. Я вывожу в примере в (2;2), хотя это далеко не по центру.

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...

Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 27.10.2005, 17:51
Оценка за ответ: 5

Отвечает: Schmak
Здравствуйте, Куприенко Виктор Петрович!
В событии StringGrida OnDrawCell заливайте прямоугольник нужным Вам цветом, а потом вручную выводите содержимое ячейки на эран. Пример см. далее. Естественно, что условия Вы определите сами.

Приложение:

Ответ отправил: Schmak (статус: 4-ый класс)
Отправлен: 27.10.2005, 18:41
Оценка за ответ: 5


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное