Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> if then, 60 штук 
:(
    Опции темы
ivan219
Дата 17.1.2006, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Вобщем вот код в котором будет 60 штук IF .... then .... може както это уменьшить они все проктически одно ипные меняются толко значения переменных Col, Nam и SenseNumber1.

Код

procedure TForm1.ShapeMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
Col: TColor;
Nam: String;
begin
 Col:=TShape(Sender).Brush.Color;
 Nam:=TShape(Sender).Name;

 if (Col=clBlack) and (Nam='S10') then
   begin
    SenseNumber1:=0;
    .......
   end;
 if (Col=$00173968) and (Nam='S11') then
   begin
    SenseNumber1:=1;
    .....
   end;
end;


smile
PM MAIL ICQ   Вверх
z-END
Дата 17.1.2006, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



ivan219 поподробней что тебе требуется сделать=)


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
MIX55
Дата 17.1.2006, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


много работы
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 208
Регистрация: 23.10.2005
Где: Здесь

Репутация: 3
Всего: 4



case SenseNumber1 of
0: (Col=clBlack) and (Nam='S10')
1:(Col=$00173968) and (Nam='S11')
и т.д.

--------------------
Hарод, а как в дельфи писать паскалевские проги....?*********************************************Жизнь слишком коротка, чтобы писать на Assembler'e
PM MAIL ICQ   Вверх
Albinos_x
Дата 17.1.2006, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



набор цветов объявить в массиве , с 'S11' можно набодобии поступить или
например:
Код

for i:=1 to 60 do
   begin
   Nam:='S'+inttostr(10+i);
...

Добавлено @ 23:20
если у набора цветов есть закономерность, то тоже можно через цикл делать без объявления массива...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
ivan219
Дата 18.1.2006, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Цитата(MIX55 @ 17.1.2006, 23:12)
case SenseNumber1 of
0: (Col=clBlack) and (Nam='S10')
1:(Col=$00173968) and (Nam='S11')
и т.д.

Нет ту получается если SenseNumber1=0 то (Col=clBlack) and (Nam='S10') а мне надо наоборот или я ошибаюсь smile


Вобщем что мне нужно имеется 59 контрлов типа TShape у каждого есть имя Nam (S11-первый столбец и первая строка S12-первый столб вторая строка) и его цвет Col (имеется всего 12 цветов) мне надо чтоб при обращении к определённому контролу переменная SenseNumber1 преобретала определённое значение.

Это можно реализовать так но получится 59 штук вот я и подума может можно чтоб по меньше было.
Код

if (Col=clBlack) and (Nam='S10') then    
   begin    
    SenseNumber1:=0;    
    .......    
   end;    
 if (Col=$00173968) and (Nam='S11') then    
   begin    
    SenseNumber1:=1;    
    .....    
   end;


Вобщем вот как это будет выгдедеть.

user posted image


Это сообщение отредактировал(а) ivan219 - 18.1.2006, 00:07
PM MAIL ICQ   Вверх
Snowy
Дата 18.1.2006, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Проще всего присвоить каждому шейпу номер - прописать его в св-во Tag.
Для этого оно и существует.
PM MAIL   Вверх
darkart
Дата 18.1.2006, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 379
Регистрация: 9.11.2005

Репутация: нет
Всего: 31



С Tag - лучший вариант, записывай в Tag а далее что-нибудь типа:
Код

{этот обработчик у всех Shapов}
procedure TForm1.ShapeMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  SenseNumber1:=(Sender as TShape).Tag;
  //...
end;

PM MAIL WWW ICQ Skype GTalk   Вверх
ivan219
Дата 18.1.2006, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Да я это уже зделал спасибо как я сам до этого только недодумался ведь знал smile про Tag
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1779 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.