Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.07.2008, 23:48
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию невидимость

кинул на форму картинку (во всю форму и кинул две кнопки например на картинке что то нарисовано и в эту область кинул кнопку,ну что бы кнопка не перекрывала эту картинку установил значеие формы видимость false ,только вот если нажимать по картинке в ту область где должна быть кнопка ни фига не происходит.А должно переходить на другую форму
Ответить с цитированием
  #2  
Старый 01.08.2008, 00:30
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

Выкидываешь на форму TImage (твоя картинка), и пару Button. На форме построй элементы так чтобы кнопки были поверх TImagе.

В твоем случае, если стоит на форме visible=false пропиши следующее:

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  form2.visible:=true;
  form2.ShowModal;
end;
Ответить с цитированием
  #3  
Старый 02.08.2008, 00:51
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

Блин я походу не так обьяснил,короче допустим картинка на ней там поле и овца ,вот я делаю кнопку размером с овцу кидаю ,на картинку там где нарисована овца ,ставлю в инвиз кнопку (невидимую)и там пишу при нажатии на кнопку ,что бы показалась джругая форма ,компилю,нажимаю на область овцы где должна быть кнопка тока нифига не че не открывается..если все же вопрос поняли прально ,то ваш совет не сработал (
Ответить с цитированием
  #4  
Старый 02.08.2008, 06:08
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

Всё понял..а если ты ставишь в инвиз кнопку, то как ты на неё нажмешь? Ставишь в инвиз, значит и использовать её не можешь..
Советую поделить одну большую картинку на несколько меньше.
Например картинка овци..Выложи на твою картинку..новый TImage на котором будет изображена только овца и задай у неё OnClick
Ответить с цитированием
  #5  
Старый 05.08.2008, 20:15
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

т.е. ни как нельзя кинуть на область рисунка кнопку и просто сделать кнопку невидимой ,но активной ...
Ответить с цитированием
  #6  
Старый 05.08.2008, 21:20
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,034
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Нет, нельзя.
А в чем тебя не устраивает проверка области.
Сделай в том же TImage'е обработчик щелчка мыши и проверяй координаты на попадание в нужную тебе область.

Пример попадания в область 100-150,100-150:
Код:
procedure TMainForm.Image1Click(Sender: TObject);
var
  ClickPoint : TPoint;
begin
  ClickPoint := ScreenToClient(Mouse.CursorPos);

  // По координатам на форме
  If (ClickPoint.X > 100) And (ClickPoint.X < 150) And
     (ClickPoint.Y > 100) And (ClickPoint.Y < 150) Then
    Begin
      // Твои действия здесь
    End;

  // По координатам на картинке
  If (ClickPoint.X > Image1.Left + 100) And (ClickPoint.X < Image1.Left + 150) And
     (ClickPoint.Y > Image1.Top + 100) And (ClickPoint.Y < Image1.Top + 150) Then
    Begin
      // Твои действия здесь
    End;
end;
Ответить с цитированием
  #7  
Старый 05.08.2008, 21:55
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

У меня ужасно плохо с координатами ,может подскажешь где почитать на эту тему в делфи?
Ответить с цитированием
  #8  
Старый 05.08.2008, 22:05
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,034
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну с кординатами все просто.
Есть локальные координаты (от родителя компонента). Есть глобальные - координаты экрана. Переход между ними через ClientToScreen и ScreenToClient. Дальше просто поэксперементируй и все.
Ответить с цитированием
  #9  
Старый 09.08.2008, 18:27
Аватар для Zander_driver
Zander_driver Zander_driver вне форума
Прохожий
 
Регистрация: 07.03.2008
Сообщения: 29
Репутация: 10
По умолчанию

Еще, если овца одноцветная можно проверять цвет того пиксела по которому произошел клик. (по координатам клика) - если совпадает с цветом овцы то значит по ней кликнули.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter