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

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


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

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

Выпуск № 493
от 05.06.2006, 01:05

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


Вопрос № 44640: Привет экспертам . Вопрос: Как hex перевести в ascii ? Желательно по проше . .
Вопрос № 44647: Добрый день, уважаемые! Подскажите, как отслеживать изменения файловой системы? В моей программе две файловые панели, как в TotalCommander. Допустм у меня запущена эта программа и Виндовый проводник. Я удаляю файл в проводнике и в моей программе тоже...
Вопрос № 44664: delphi 7 программа перевода из двоичного числа в десятичное. Немогу написать. помогите пожалуйста....
Вопрос № 44666: Здравствуйте уважаемые эксперты. Я самый начинающий программист на Delphi. Имеется Delphi 2006. Прочитал о платформе .NET и ее достоинствах перед Win32. Все чюдесно. Но вот что меня интересует: те компоненты, которые выложены в Интернете отличают...
Вопрос № 44705: Здравствуйте уважаемые эксперты. У меня возникла вот такая проблема - необходимо заменить чёрный цвет на синий в рисунке отображаемом компонентом Image и еще заменить два рядом стоящих пиксела белого цвета на жёлтые Нашел несколько...

Вопрос № 44.640
Привет экспертам .
Вопрос:
Как hex перевести в ascii ?
Желательно по проше .
Отправлен: 30.05.2006, 04:14
Вопрос задал: Tamashev Denis M (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Shcherbakov Anton
Здравствуйте, Tamashev Denis M!
как вариант немного неудобный, но имеет право на существование:
создаёте 2 массива. 1 содержит hex обозначение буквы а второй то что долно получиться на выходе, что то типа таблицы соответсвия.
а дальше побуквенно берёте hex символ и замеяете его ascii представлением
удачи в этом нелёгком деле.
Ответ отправил: Shcherbakov Anton (статус: 2-ой класс)
Ответ отправлен: 30.05.2006, 08:03
Оценка за ответ: 5
Комментарий оценки:
Тема незакрыта !
Я уже сообразил но мне нужна помошь !

Отвечает: Boriss
Здравствуйте, Tamashev Denis M!
Посмотрите в книге Зубкова (действительно, бестселлер до сих пор!!) описание DAS
В приложении цитата

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: факультет Электронной техники, Мордовский госуниверситет
Адрес: г. Саранск
WWW: Программирование на Паскале
----
Ответ отправлен: 30.05.2006, 11:57
Оценка за ответ: 5
Комментарий оценки:
Ничего непонял !
Но посмотрю !


Вопрос № 44.647
Добрый день, уважаемые! Подскажите, как отслеживать изменения файловой системы? В моей программе две файловые панели, как в TotalCommander. Допустм у меня запущена эта программа и Виндовый проводник. Я удаляю файл в проводнике и в моей программе тоже удаляется соответствующая строка. Конечно можно по событию OnActivate снова перечитывать содержимое диска, но это не очень хороший выход. Заранее благодарю!
Отправлен: 30.05.2006, 08:23
Вопрос задал: Савенко Вадим Иванович (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Проходящий Мимо
Здравствуйте, Савенко Вадим Иванович!
На закладке Samples палитры Delphi есть компонент ShellChangeNotifier. Он предназначен для отслеживания изменений файловой системы. Может реагировать на следующие события:
nfFileNameChange
nfDirNameChange
nfAttributeChange
nfSizeChange
nfWriteChange
nfSecurityChange
Папку, в которой отслеживает изменения, можна задать в свойстве root.
WatchSubTree указывает, нужно отслеживать только конкретную папку, заданную в root или все дерево каталогов, начиная с root.
Удачи!
---------
Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 4-ый класс)
Ответ отправлен: 30.05.2006, 08:58
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Все работает замечательно!


Вопрос № 44.664
delphi 7 программа перевода из двоичного числа в десятичное.
Немогу написать. помогите пожалуйста.
Отправлен: 30.05.2006, 12:02
Вопрос задал: Роман Сергеeвич Магнитский (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Решетник Д
Здравствуйте, Роман Сергеeвич Магнитский!

function BToI(Value: string): LongInt;
var
i, Size: Integer;
begin
Result := 0;
Size := Length(Value);
for i := Size downto 0 do
begin
if Value[i] = '1' then
begin
Result := Result + (1 shl i);
end;
end;
end;

---------
Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: 7-ой класс)
Ответ отправлен: 30.05.2006, 12:20

Отвечает: Coupler
Здравствуйте, Роман Сергеeвич Магнитский!
Посмотри статьи на delphiworld.narod.ru - "преобразование двоичного числа в десятичное", там есть 3 способа.
Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 30.05.2006, 15:20

Отвечает: Gh0stik
Здравствуйте, Роман Сергеeвич Магнитский!

Вот процедурка которую я когда-то писал (для студентов физ-мата).
Она переводит число из системы исчисления Х в систему исчисления Y.

Удачи!!!

Приложение:

---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаються события на земле. Генератор случайных чисел - и только.

Ответ отправил: Gh0stik (статус: 10-ый класс)
Ответ отправлен: 31.05.2006, 11:24


Вопрос № 44.666
Здравствуйте уважаемые эксперты. Я самый начинающий программист на Delphi. Имеется Delphi 2006.
Прочитал о платформе .NET и ее достоинствах перед Win32. Все чюдесно. Но вот что меня интересует: те компоненты, которые выложены в Интернете отличаются для .NET и Win32?
Если я все же начну программировать сразу на .NET, то не получится, что долгое время я буду ограничен только компонентами программы Delphi 2006? (я уже читал у вас, что мало компонентов для Delphi 2005-2006, но исходим из того, что они есть)
Заранее благодарен.
Отправлен: 30.05.2006, 12:47
Вопрос задал: Denver 22 (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Савенко Вадим Иванович
Здравствуйте, Denver 22!
На мой взгляд учиться программировать лучше на Win32. Платформа .NET ориентирована на сеть,
а Вам , наверное, это пока не надо.А компонентов для D2005 навалом.Если хотите - поделюсь :) Хотя это не избавит Вас от самого процесса программирования :)
Ответ отправил: Савенко Вадим Иванович (статус: 1-ый класс)
Ответ отправлен: 30.05.2006, 16:34

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Denver 22!
В первый раз слышу, чтобы платформа .NET была ориентирована под сеть.
Вообще, если вы только-только начинаете программировать, то начинайте сразу на C# - там просто огромнейшая библиотека классов на .NET А вообще, не всегда бывают нужны чужие компоненты.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: 7-ой класс)
Ответ отправлен: 30.05.2006, 19:50

Отвечает: sir henry
Здравствуйте, Denver 22!
Если Вы только начинаете программировать, то Вам совершенно все равно с чего начинать - сразу с NET или с Win32. Плаиформа NET - это некая попытка стандартизировать классы, с которыми общается Windows-программист, поскольку раньше у каждого языка были свои наборы классов: у VC - MFC, у Delphi - VCL и т.п. Дело по стандаотизации безусловно нужное, но добавляет хлопот тем, что на каждом компьютере, где Вы собираетесь ставить NET-программу, должен быть набор библиотек, стандаотых классов для NET (netframework), а вот это уже слегка напрягает. Framework 2.0 весит уже 22 МБ (инсталляшка). В то время как программа написаная под Win32 пользуется исключительно теми библиотеками (естественно в стандартном варианте), которые уже есть в любой винде.
Решайте сами. Преимущества NET - стандартные классы (Delphi, C++, C#). Недостатки - дополнительный кусок жира в виде FraneWork.
Преимущества Win32 - самобостаточность бинарника. Недостатки - для каждого языка программирования свой набор классов.
А на счет компонентов, я думаю волноваться не стоит. Начинайте с тех, которые уже есть в Delphi, а пополнятся они будут постоянно. Заходите на www.torry.net в раздел NET. Там большая помойка компонентов.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 31.05.2006, 09:47
Оценка за ответ: 5
Комментарий оценки:
sir henry, большое спасибо. Именно ТАКОЙ ответ мне и нужен был.


Вопрос № 44.705
Здравствуйте уважаемые эксперты.
У меня возникла вот такая проблема - необходимо заменить чёрный цвет на синий в рисунке отображаемом компонентом Image

и еще заменить два рядом стоящих пиксела белого цвета на жёлтые
Нашел несколько вариантов в интернете - к сожалению ничего подходящего не оказалось
Отправлен: 30.05.2006, 20:15
Вопрос задал: source (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Головченко Алексей
Здравствуйте, source!
Насколько я понимаю, то вам следует использовать Маски в компоненте TImage.
---------
Правильно заданный вопрос - половина ответа!
Ответ отправил: Головченко Алексей (статус: 2-ой класс)
Ответ отправлен: 30.05.2006, 20:32

Отвечает: Ерёмин Андрей
Здравствуйте, source!
Замена цветов делается посредством Canvas. Пример замены чёрного цвета на синий см. ниже. Естественно, сам файл, из которого загружено изображение, при этом не изменяется. С заменой рядом стоящих пикселов поступать точно также, только делать проверку на две точки и изменять цвет обеих точек.

procedure TForm1.Button1Click(Sender: TObject);
var X,Y: Integer;
begin
for X:=0 to Image1.Picture.Width-1 do
for Y:=0 to Image1.Picture.Height-1 do
begin
if Image1.Canvas.Pixels[X,Y] = clBlack then
Image1.Canvas.Pixels[X,Y] := clBlue;
end;
end;


---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 30.05.2006, 22:23
Оценка за ответ: 5

Отвечает: Злоумышленник
Здравствуйте, source!
Если в Image загружен *.bmp, то перебираете пиксели в цикле по x, y в свойстве Image1.Picture.Bitmap.Canvas:
if Image1.Picture.Bitmap.Canvas.Pixels[x,y] = clBlack then
Image1.Picture.Bitmap.Canvas.Pixels[x,y] := clBlue;
Но так долго. Быстрее получается при работе с памятью Image'а напрямую, я написал пример в приложении, меняет "чёрный цвет на синий в рисунке отображаемом компонентом Image".
********************************
Если в Image загружен не растровый формат, *jpg например, потребуется сначела перегнать в BMP:
...
var
bm: TBitmap;
...
bm.Assign(Image1.Picture.Graphic);
Image1.Picture.Bitmap.Assign(bm);
а потом можно пробовать вышеприведённый рецепт.
"и еще заменить два рядом стоящих пиксела белого цвета на жёлтые" - это сами сможете.
Желаю Вам успеха!

Приложение:

Ответ отправил: Злоумышленник (статус: 8-ой класс)
Ответ отправлен: 30.05.2006, 23:13
Оценка за ответ: 5


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное