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

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


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

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

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

Выпуск № 228
от 04.09.2005, 19:59

Администратор:Калашников О.А.
В рассылке:Подписчиков: 236, Экспертов: 50
В номере:Вопросов: 2, Ответов: 7


Вопрос № 25516: Здраствуйте уважаемые эксперты!У меня 2 вопроса. 1) Мне нужно програмно создать несколько обьектов класса TImage. Вот как у меня это выходит: {MapTail: array of array of TImage;} For csh_i:=0 to i do for csh_j:=0 to j do begin S...
Вопрос № 25526: Всем привет! Пример Demos\ActiveX\ShellExt\contmenu.dpr из дистрибутива Delphi показывает, как можно добавлять свои пункты в контекстные меню Проводника (Explorer). А как сделать так, чтобы рядом с этими пунктами отображались ещё и иконки? Зар...

Вопрос № 25.516
Здраствуйте уважаемые эксперты!У меня 2 вопроса.
1) Мне нужно програмно создать несколько обьектов класса TImage. Вот как у меня это выходит:
{MapTail: array of array of TImage;}
For csh_i:=0 to i do
for csh_j:=0 to j do begin
SetLength(MapTail,csh_i+1,csh_j+1);
MapTail[csh_i,csh_j]:= TImage.Create(Self);
MapTail[csh_i,csh_j].Left:=csh_i*50;
MapTail[csh_i,csh_j].Top:=csh_j*50;
MapTail[csh_i,csh_j].Width:=50;
MapTail[csh_i,csh_j].Height:=50;
MapTail[csh_i,csh_j].Parent:=Self;
end;
Но меня неустраивает то что они создаються прямо на форме, а как сделать чтобы они создавались на нужной мне панеле MAP_Panel?

2) Как задать прозрачный цвет для Form1.Canvas.Pen.Color?
Отправлен: 30.08.2005, 00:34
Вопрос задал: Puld (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: wils0n
Здравствуйте, Puld!

MapTail[csh_i,csh_j].Parent:=MAP_Panel; // родитель (Parent) - это то, где твоя картинка будет показываться. Так что только MAP_Panel :)
---------
Life is like a box with chocolate. You never know what you're gonna get. (c) Forrest Gump's mom
Ответ отправил: wils0n (статус: 2-ой класс)
Отправлен: 30.08.2005, 01:15
Оценка за ответ: 4
Комментарий оценки:
Меня удивляет такой быстрай ответ! Еле чай успел попить, как уже ответ пришёл. Спасибо! Но как насчет второго вопроса?

Отвечает: sir henry
Здравствуйте, Puld!
1) А Вы укажите в свойстве Parent тот компонент, на котором он должен располагаться.
2. Ни для Color, ни для Pen, ни для Canvas прозрачного цвета не существует. Единственное, что можно сделать - создать прозрачную форму. Для этого, надо свойству формы AlphaBlend присвоить True, а в свойстве AlphaBlendValue указать коэффициент прозрачности.
Для некоторых компонентов, располагаемых на форме, например TImage или TLabel прозрачность можно сделать присвоив свойству Transparent True.
Пожалуйста, уточните Ваш второй вопрос. Он не совсем понятен.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 30.08.2005, 05:59

Отвечает: Ерёмин Андрей
Здравствуйте, Puld!
1) Просто после создания укажите, кто будет являться предком компонента:
MapTail[csh_i,csh_j].Parent:=MAP_Panel;
2) Задать прозрачный цвет не получится, однако можно задать прозрачный стиль рисования:
Form1.Canvas.Pen.Style:=psClear;
---------
Мышка побежала, xвостиком махнула - cервер упал...
Ответ отправил: Ерёмин Андрей (статус: Практикант)
Отправлен: 30.08.2005, 08:32

Отвечает: Баркин Алексей
Здравствуйте, Puld!
На вопрос 1:
Можно сделать производный класс от TImage и перегрузить конструктор.
или при создании Parent указать ту форму на которую создаешь.

2:

Form1.Canvas.Pen.Color:=$00ff00; // зеленый цвет
Form1.Canvas.Pen.Style:=psClear;

Приложение:

Ответ отправил: Баркин Алексей (статус: 1-ый класс)
Отправлен: 30.08.2005, 10:23

Отвечает: Zubex
Здравствуйте, Puld!
1. Self - это и есть твоя форма, задай parent:=MAP_Panel;
2. Для PEN - прозрачного цвета не существет, однако, как я понимаю ты хочешь нарисовать что-то вроде прямоугольника и круга, но без заливки - тогда сделай так:
Form1.Canvas.Pen.Color:=clBlack; //твой цвет карандаша
Form1.Canvas.Brush.Style:=bsClear; //прозрачная заливка
Ответ отправил: Zubex (статус: 2-ой класс)
Отправлен: 30.08.2005, 10:38

Отвечает: Delphin
Здравствуйте, Puld!

1: MapTail[csh_i,csh_j].Parent:=MAP_Panel;
---------
Обращаться в ICQ: 77778851 или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: 9-ый класс)
Отправлен: 30.08.2005, 11:13


Вопрос № 25.526
Всем привет!
Пример Demos\ActiveX\ShellExt\contmenu.dpr из дистрибутива Delphi показывает, как можно добавлять свои пункты в контекстные меню Проводника (Explorer). А как сделать так, чтобы рядом с этими пунктами отображались ещё и иконки? Заранее багодарен за ответ.
Отправлен: 30.08.2005, 08:04
Вопрос задал: Ерёмин Андрей (статус: Практикант)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: sir henry
Здравствуйте, Ерёмин Андрей!
Примерно так:
var
Bmp1 : TPicture; {Картинка}
Begin
Bmp1 := TPicture.Create;
Bmp1.LoadFromFile('c:pict1.BMP');
SetMenuItemBitmaps(YourMenuItem.Handle,
0,
MF_BYPOSITION,
Bmp1.Bitmap.Handle, {Картинка для невыбранного пункта}
Bmp1.Bitmap.Handle);{Картинка для выбранного пункта}
End;
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 30.08.2005, 08:17
Оценка за ответ: 4
Комментарий оценки:
Спасибо, но это почему-то не помогло и иконка не появляется.


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

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

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

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

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


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


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

Яндекс


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

В избранное