IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> ссылка в stringgrid
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 143
Пол: Мужской

Репутация: -  0  +


Есть форма которая в одном столбике компонета stringgrid выводит названия городов, нужно из этих названий сделать ссылки которые открывают другую форму с информацией про соотвественный город.
Как сделать из названий ссылки?
За вывод информации про каждый город отвечает одна стандартная форма, которая читает данные из файлов.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


может быть, обрабатывать OnMouseDown? определять, по какому городу щелкнули...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
Есть форма которая в одном столбике компонета stringgrid выводит названия городов
Вместо текста с названием города пускай она создает TLabel с нужной информацией (и со своим обработчиком OnClick), и вставляет его в грид. Тогда при клике на любой из этих Label-ов будет выполняться нужный обработчик без каких-либо дополнительных действий с твоей стороны. Как вставить один компонент в другой - см. DRKB.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 143
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 18.01.2011 12:38) *

Вместо текста с названием города пускай она создает TLabel с нужной информацией (и со своим обработчиком OnClick), и вставляет его в грид. Тогда при клике на любой из этих Label-ов будет выполняться нужный обработчик без каких-либо дополнительных действий с твоей стороны. Как вставить один компонент в другой - см. DRKB.


Спасибо! Будем пробовать smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 143
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 18.01.2011 12:38) *

Вместо текста с названием города пускай она создает TLabel с нужной информацией (и со своим обработчиком OnClick), и вставляет его в грид. Тогда при клике на любой из этих Label-ов будет выполняться нужный обработчик без каких-либо дополнительных действий с твоей стороны. Как вставить один компонент в другой - см. DRKB.

Хмм... Не так всё просто как казалось. Может есть какой-нибудь другой подход?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Поправка: вместо TLabel использовать TStaticText, потому как TLabel - не оконный компонент, и будет лежать под оконными компонентами, его на гриде просто не будет видно. А Статик - это компонент оконный, он прекрасно будет отображаться...

Цитата
Хмм... Не так всё просто как казалось.
Куда ж проще? Что, код показать?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 143
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 18.01.2011 14:21) *

Поправка: вместо TLabel использовать TStaticText, потому как TLabel - не оконный компонент, и будет лежать под оконными компонентами, его на гриде просто не будет видно. А Статик - это компонент оконный, он прекрасно будет отображаться...

Куда ж проще? Что, код показать?

у меня идея такая возникла: создаю простую процедуру которая просто открывает нужную форму, например:

Код

procedure TForm1.Click(Sender: TObject);
begin
  form2.Show;
end;

для собития onClick в stringgrid, то есть где бы не кликнул по ячейке нужная форма откроется, но тут возникают проблемы, как узнать номер ячейки по которой кликнули и как сделать активным для кликов только нужный столбец
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата
как узнать номер ячейки по которой кликнули
В OnClick - никак. Надо ловить OnMouseDown, там определять, в какой ячейке пользователь нажал на кнопку мыши, запоминать координаты ячейки, а потом - ловить OnClick и обрабатывать запомненное раньше значение. Предупреждаю сразу: это - плохой метод. Ибо в Windows я привык, что если нажму мышой на контрол, а потом передумаю и нажатую мышь уведу с контрола - то клик не засчитывается. У тебя будет засчитываться. Это нехорошо. Чем тебе вот это решение не понравилось - понять не могу.

... (Показать/Скрыть)
Вот оно работает так, как пользователь привык. А ты извращайся дальше smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 143
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 18.01.2011 15:18) *

В OnClick - никак. Надо ловить OnMouseDown, там определять, в какой ячейке пользователь нажал на кнопку мыши, запоминать координаты ячейки, а потом - ловить OnClick и обрабатывать запомненное раньше значение. Предупреждаю сразу: это - плохой метод. Ибо в Windows я привык, что если нажму мышой на контрол, а потом передумаю и нажатую мышь уведу с контрола - то клик не засчитывается. У тебя будет засчитываться. Это нехорошо. Чем тебе вот это решение не понравилось - понять не могу.


Ваш код записал в delphi 7. Результат прикрепляю. Получается, что в StringGrid всё равно ссылки не создаются, ссылка создается вверху формы, может и напутал чего конечно...

Прикрепленный файл  drt1.rar ( 273.12 килобайт ) Кол-во скачиваний: 505
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.12.2024 1:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name