![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как Попасть в нужный Квадрат? ))))) [D6, 2000]
Officeman © (2006-03-16 14:18:00)НА форме расположены панельки Panel1..Panel100 в виде маленьких квардатиков. Расположенные рядом 10x10 они образуют большой квадрат.
Примимая общие габариты x=500, y=500. получается что каждая Panel-ка
должно занимать (в уме) .. 50 точек (позиций)
на форме дополнительно размещаем TEdit.xxx и TEdit.yyy
в которые заносим значения(каждый раз разные) - обозначающие координаты X и Y
например xxx.text:=365
yyy.text:=117
!!! Вопрос: как закрашивать нужную ПАНЕЛЬКУ. на которую приходятся введённые координаты xxx и yyy
p.s. 100% что никто не понял о чём речь ))). придётся самому ломать башню.
Officeman (2006-03-17 08:47:00) [1]to Плохиш
это данные КООРДИНАТ поступающих на обработку, в итоге обработка указывает на нужных квадратик (Panel27), которой в последствии красится и делается запись в его Caption.
очень доволен
Плохиш (2006-03-16 17:46:00) [2]
> Officeman (16.03.06 17:38) [14]
Смотрел, смотрел, так и не понял, где здесь используется
> например xxx.text:=365
> yyy.text:=117
Ну и ладно, главное, автор доволен.
Officeman (2006-03-16 17:38:00) [3]вай. супер!!! спасибо! кароче работает.! потом оптимизирую, и всё гуд будет!
procedure TForm1.Button1Click(Sender: TObject);
var
x,y,poz_x,poz_y,KVA:integer;
begin
for x:=0 to LV.Items.Count-1 do begin
//--------
poz_x:=0;
poz_y:=0;
KVA:=0;
//--------
poz_x:=(strtoint(LV.Items[x].caption)+51) div 51;
poz_y:=(strtoint(LV.Items[x].subitems[0])+51) div 51;
//--------
if ((poz_x<>0) and (poz_y<>0)) then begin
KVA:=((poz_y*10)+poz_x); // номер Квадрата
Memo1.Lines.Add('x='+inttostr(poz_x)+', y='+inttostr(poz_y)+' //Panel'+inttostr(KVA));
//пробуем покрасить
with TPanel(FindComponent('Panel'+inttostr(KVA))) do
begin
color:=clRED;
end;
end;
end;
end;
Leonid Troyanovsky (2006-03-16 16:23:00) [4]
> Officeman (16.03.06 15:30) [11]
> помогите перевести STR в тип КОМПОНЕНТ и закрасить например
Видишь ли, Юра..
Похоже, что ты больше пишешь, чем читаешь.
Предлагаю восполнить этот пробел: FindComponent, RTFM.
Хотя, как уже сказали, все это - не наш путь.
Ну, а красить уж изволь сам, бо, видимо, с панелей ты не слез,
а их красят в одиночестве (clRed).
--
Regards, LVT.
Officeman (2006-03-16 15:30:00) [5]уже почти сделал. обработка в 10 строк вышла. )))
получаю в "string" название нужной панельки. например str:='Panel72'
помогите перевести STR в тип КОМПОНЕНТ и закрасить например в красный
спасибо за поддержку топа.
Leonid Troyanovsky (2006-03-16 15:30:00) [6]
> Сергей М. © (16.03.06 15:06) [9]
> Имеешь ввиду дальнейший ControlAtPos() ?
Его-то б было можно даже без div :)
А я хотел сказать, что, все равно, придется мапить контролы
в какой-нибудь массив. Потому, как сначала раскрасить,
потом еще чего-нибудь.
--
Regards, LVT.
Игорь Шевченко (2006-03-16 15:19:00) [7]пример выбора квадратика есть в http://kladovka.net.ru/download.cgi?id=191
Сергей М. (2006-03-16 15:06:00) [8]
> Leonid Troyanovsky © (16.03.06 14:44) [8]
Имеешь ввиду дальнейший ControlAtPos() ?
Тоже неплохо .. Но все равно - геморрой) .. по сравнению с готовымиконтролами а-ля grid, реализующими интуитивно понятный и простой/удобный интерфейс доступа к тем самым "квадратам")
Leonid Troyanovsky (2006-03-16 14:44:00) [9]
> Сергей М. © (16.03.06 14:39) [7]
> Что ж ... В цикле по всем контролам в пределах указанного
Цикл - это уже перебор.
Квадраты одинаковые, расположены в квадрате,
т.е., достаточно двух div.
--
Regards, LVT.
Leonid Troyanovsky (2006-03-16 14:39:00) [10]
> Officeman (16.03.06 14:35) [4]
> Нужно по заданным координатам определить НА КАКОЙ КВАДРАТ
> они попадают!
MouseToCell
Покрасить-то сумеешь? ;)
--
Regards, LVT.
Сергей М. (2006-03-16 14:39:00) [11]
> Officeman (16.03.06 14:35) [4]
мы легких путей не ищем ? Нам геморрой подавай ?
Что ж ... В цикле по всем контролам в пределах указанного владельца проверяй нужные координаты на предмет их вхождения в координаты каждого из перечисляемых в цикле контролов.
Джо (2006-03-16 14:37:00) [12]PtInRect
Officeman (2006-03-16 14:35:00) [13]как угодно. рисовать или компоненты ставить. главное:
Нужно по заданным координатам определить НА КАКОЙ КВАДРАТ они попадают! и ЗАКРАСИТЬ этот КВАДРАТ
Anatoly Podgoretsky (2006-03-16 14:31:00) [14]А если посчитать то получится 2500 точек
Leonid Troyanovsky (2006-03-16 14:28:00) [15]
> Officeman (16.03.06 14:18)
> НА форме расположены панельки Panel1..Panel100 в виде маленьких
> квардатиков. Расположенные рядом 10x10 они образуют большой
Уже плохо.
Возьми TDrawGrid и раскрась его требуемым образом.
--
Regards, LVT.
clickmaker (2006-03-16 14:25:00) [16]
> p.s. 100% что никто не понял о чём речь
я не понял только одного: зачем для этого располагать панельки? Каждая панелька - окно, а это - ресурс.
Проще рисовать прямо на форме.