Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.51 MB
Время: 0.031 c
15-1141971896
ZeroDivide
2006-03-10 09:24
2006.04.02
Отчисления Open Source проекту


2-1142687332
Новочеркасский Волк
2006-03-18 16:08
2006.04.02
2 месяца не могу понять в чём ошибка?!?!?


2-1142407623
KyRo
2006-03-15 10:27
2006.04.02
TStringList


1-1141213648
Aleksandr.
2006-03-01 14:47
2006.04.02
Можно ли как-то через CreateParams задать немодальной форме


11-1122315580
AlexLumpov
2005-07-25 22:19
2006.04.02
OnClose в модальной форме на KOL