Текущий архив: 2006.04.02;
Скачать: CL | DM;
ВнизКак Попасть в нужный Квадрат? ))))) Найти похожие ветки
← →
Officeman (2006-03-16 14:18) [0]НА форме расположены панельки 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% что никто не понял о чём речь ))). придётся самому ломать башню.
← →
clickmaker © (2006-03-16 14:25) [1]
> p.s. 100% что никто не понял о чём речь
я не понял только одного: зачем для этого располагать панельки? Каждая панелька - окно, а это - ресурс.
Проще рисовать прямо на форме.
← →
Leonid Troyanovsky © (2006-03-16 14:28) [2]
> Officeman (16.03.06 14:18)
> НА форме расположены панельки Panel1..Panel100 в виде маленьких
> квардатиков. Расположенные рядом 10x10 они образуют большой
Уже плохо.
Возьми TDrawGrid и раскрась его требуемым образом.
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2006-03-16 14:31) [3]А если посчитать то получится 2500 точек
← →
Officeman (2006-03-16 14:35) [4]как угодно. рисовать или компоненты ставить. главное:
Нужно по заданным координатам определить НА КАКОЙ КВАДРАТ они попадают! и ЗАКРАСИТЬ этот КВАДРАТ
← →
Джо © (2006-03-16 14:37) [5]PtInRect
← →
Leonid Troyanovsky © (2006-03-16 14:39) [6]
> Officeman (16.03.06 14:35) [4]
> Нужно по заданным координатам определить НА КАКОЙ КВАДРАТ
> они попадают!
MouseToCell
Покрасить-то сумеешь? ;)
--
Regards, LVT.
← →
Сергей М. © (2006-03-16 14:39) [7]
> Officeman (16.03.06 14:35) [4]
мы легких путей не ищем ? Нам геморрой подавай ?
Что ж ... В цикле по всем контролам в пределах указанного владельца проверяй нужные координаты на предмет их вхождения в координаты каждого из перечисляемых в цикле контролов.
← →
Leonid Troyanovsky © (2006-03-16 14:44) [8]
> Сергей М. © (16.03.06 14:39) [7]
> Что ж ... В цикле по всем контролам в пределах указанного
Цикл - это уже перебор.
Квадраты одинаковые, расположены в квадрате,
т.е., достаточно двух div.
--
Regards, LVT.
← →
Сергей М. © (2006-03-16 15:06) [9]
> Leonid Troyanovsky © (16.03.06 14:44) [8]
Имеешь ввиду дальнейший ControlAtPos() ?
Тоже неплохо .. Но все равно - геморрой) .. по сравнению с готовыми контролами а-ля grid, реализующими интуитивно понятный и простой/удобный интерфейс доступа к тем самым "квадратам")
← →
Игорь Шевченко © (2006-03-16 15:19) [10]пример выбора квадратика есть в http://kladovka.net.ru/download.cgi?id=191
← →
Officeman (2006-03-16 15:30) [11]уже почти сделал. обработка в 10 строк вышла. )))
получаю в "string" название нужной панельки. например str:="Panel72"
помогите перевести STR в тип КОМПОНЕНТ и закрасить например в красный
спасибо за поддержку топа.
← →
Leonid Troyanovsky © (2006-03-16 15:30) [12]
> Сергей М. © (16.03.06 15:06) [9]
> Имеешь ввиду дальнейший ControlAtPos() ?
Его-то б было можно даже без div :)
А я хотел сказать, что, все равно, придется мапить контролы
в какой-нибудь массив. Потому, как сначала раскрасить,
потом еще чего-нибудь.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2006-03-16 16:23) [13]
> Officeman (16.03.06 15:30) [11]
> помогите перевести STR в тип КОМПОНЕНТ и закрасить например
Видишь ли, Юра..
Похоже, что ты больше пишешь, чем читаешь.
Предлагаю восполнить этот пробел: FindComponent, RTFM.
Хотя, как уже сказали, все это - не наш путь.
Ну, а красить уж изволь сам, бо, видимо, с панелей ты не слез,
а их красят в одиночестве (clRed).
--
Regards, LVT.
← →
Officeman (2006-03-16 17:38) [14]вай. супер!!! спасибо! кароче работает.! потом оптимизирую, и всё гуд будет!
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;
← →
Плохиш © (2006-03-16 17:46) [15]
> Officeman (16.03.06 17:38) [14]
Смотрел, смотрел, так и не понял, где здесь используется
> например xxx.text:=365
> yyy.text:=117
Ну и ладно, главное, автор доволен.
← →
Officeman (2006-03-17 08:47) [16]to Плохиш
это данные КООРДИНАТ поступающих на обработку, в итоге обработка указывает на нужных квадратик (Panel27), которой в последствии красится и делается запись в его Caption.
очень доволен
Страницы: 1 вся ветка
Текущий архив: 2006.04.02;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.045 c