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

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


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

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

Выпуск № 875
от 22.07.2007, 11:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 464, Экспертов: 83
В номере:Вопросов: 3, Ответов: 6


Вопрос № 95303: Здравствуйте уважаемые эксперты. На форме имеется Image:Timage. Как сделать так чтобы нужный мне пиксель Image стал прозрачным. P.S. сделать этот пиксель такого же цвета что и форма не подходящий выход. ..
Вопрос № 95318: Ребят никто не встречал готового решения, аналога пхп функции date date ( string format [, int timestamp] ) http://ru2.php.net/manual/ru/function.date.php...
Вопрос № 95372: Здравствуйте! Подскажите пожайлуста как прорисовать в PaintBox несколько картинок, в заданных координатах ...

Вопрос № 95.303
Здравствуйте уважаемые эксперты.
На форме имеется Image:Timage. Как сделать так чтобы нужный мне пиксель Image стал прозрачным.
P.S. сделать этот пиксель такого же цвета что и форма не подходящий выход.
Отправлен: 16.07.2007, 14:50
Вопрос задал: Левадный Тимур Русланович (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Omickron
Здравствуйте, Левадный Тимур Русланович!

Если в класс TImage загружено изображение типа TBitmap (*.bmp), тогда можно использовать свойство TImage.Transparent, отвечающее за прозрачность. Тут даже писать нечего.
Разберём теперь другой случай: если в TImage загружено изображение другого типа (например, *.jpeg).
В этом случае можно поступить так:
*учитываем, что понятие "прозрачный пиксель" подразумевает собой то, что цвет пикселя TImage будет совпадать с цветом пикселя формы, который находится в данный момент под ним; если же под ним другой компонент, то становится трудно описать общее решение этой задачи и нужно разбираться в конкретном случае*
- высчитываем положение пикселя формы, который находится под интересующим нас пикселем;
- получаем его цвет;
- задаём цвет интересующего нас пикселя полученным.
Эту процедуру нужно выполнять каждый раз при перерисовке формы.

Данная операция будет занимать тем больше ресурсов (времени), чем больше пикселей Вам нужно сделать прозрачными.
Если таких пикселей много, то рекомендую не пользоваться компонентом класса TImage (он используется в основном для упрощения задачи), а создать экземпляр класса, в который загружается Ваше изображение, затем скопировать рисунок в класс TBitMap и выводить рисунок из этого TBitMap прямо на форму (на нужную поверхность).

Других решений я (на первый взгляд) не вижу. Если найдёте такие, пожалуйста, дайте мне знать.
Ответ отправил: Omickron (статус: 3-ий класс)
Ответ отправлен: 16.07.2007, 15:28
Оценка за ответ: 5
Комментарий оценки:
Я не использую готовые картинки а рисую их сам во время работы програмы.
Приемлимо использовать любой другой компонент где можно рисовать при помощи канвы. Также нужно чтобы этот компонент обладал OnMouseleave, ...dawn, ...up, ...enter. Возможно это как то упростит решение.

Отвечает: Shveps
Здравствуйте, Левадный Тимур Русланович!
Сейчас я не могу проверить, так как нуту под рукой Delphi. Но по моему, за прозрачность отвечает свойство Transparent или Transluent.
---------
Пиво ф топку !!! Водку Тоже !!!
Ответ отправил: Shveps (статус: 3-ий класс)
Ответ отправлен: 16.07.2007, 16:21
Оценка за ответ: 3
Комментарий оценки:
но как это использовать?


Вопрос № 95.318
Ребят никто не встречал готового решения, аналога пхп функции date
date ( string format [, int timestamp] )
http://ru2.php.net/manual/ru/function.date.php
Отправлен: 16.07.2007, 16:28
Вопрос задал: IrviS (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Gh0stik
Здравствуйте, IrviS!

Почему же есть подобная...
function FormatDateTime ( const Formatting : string; DateTime : TDateTime ) : string;
Функция FormatDateTime обеспечивает, богатое форматирование TDateTime DateTime значения в строку. Форматирование определяется строкой форматирования.
Форматируемая строка (Formatting) может включать смесь обычных символов (которые передаются неизменными в строку результата), и символы форматирования данных.

Более детально Вы сможете прочесть по ссылке.

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

Отвечает: Виктор Пырлик
Здравствуйте, IrviS!
function FormatDateTime(const Format: string; DateTime: TDateTime): string;

например так:
Label1.Caption := FormatDateTime('dddd mm yyyy',Date);
----------------
Приводить формат спецификации - можно посмотреть в справке Delphi (там целая страница) и уж не меньше чем в PHP :)

---------
Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: 9-ый класс)
Ответ отправлен: 16.07.2007, 17:04

Отвечает: CjJoker
Здравствуйте, IrviS!

Самое первое что пришло на ум:

FormatDateTime('dd-mm-yy',[ Now() ]); - см. справку ...
Ответ отправил: CjJoker (статус: 2-ой класс)
Ответ отправлен: 16.07.2007, 17:11


Вопрос № 95.372
Здравствуйте!
Подскажите пожайлуста как прорисовать в PaintBox несколько картинок, в заданных координатах
Отправлен: 17.07.2007, 07:11
Вопрос задал: Stari (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: CjJoker
Здравствуйте, Stari!

Используйте методы класса TCanvas или аналогичные WinAPI:

Еще возможно использвание TImageList - Draw(TargetCanvas, x, y, IndexOfImage, Enabled); очень удобно при использовании нескольких изображений одинакового размера ... таким образом можно рисовать не только на TPaintBox, но и других компонентах использующих TCanvas ...

Приложение:

Ответ отправил: CjJoker (статус: 2-ой класс)
Ответ отправлен: 17.07.2007, 09:11
Оценка за ответ: 5


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

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

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

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

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


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


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

В избранное