Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Вниз

Как Попасть в нужный Квадрат? )))))   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.045 c
2-1142349392
KyRo
2006-03-14 18:16
2006.04.02
Путь к программе


2-1142421848
Пакизат
2006-03-15 14:24
2006.04.02
Помогите!


2-1142500691
Fenix
2006-03-16 12:18
2006.04.02
Встевить рисунок в StatusBar


2-1142500422
tytus
2006-03-16 12:13
2006.04.02
BM_SETIMAGE


3-1139303307
salexn
2006-02-07 12:08
2006.04.02
Формат даты в Interbase Yaffil





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский