| 
							Igel
							
						 | 
						
							
								  | 
								
									
									 «  : 20-06-2003 11:58 »   | 
								
								 | 
							  
							 
							Добрый время суток!!
  Проблема у меня. Сразу скажу, новичек в Дельфи, отсюда и непонимание.
  В общем, для созданной системы делаю программку настройки параметров. Параметры читаются и сохраняются в INI-файле. Структура параметров: Общие параметры:   - Цвет1   - Цвет2   -...   - Толщины... Параметры подключенных модулей системы: Модуль ALL   - слой 1   -... Модуль Spec   - параметр1   - ...
  Вопрос, основной, как это реализовать? На данный момент сделал диалог так: Слева Список разделов (Общие, Модуль ALL, Модуль Spec) Справа вверху список параметров выбранного раздела. TStringGrid Справа внизу информация о разделе - Memo-поле
  Вопрос, следующий, похожий, как оптимально работать с параметрами? Первая идея, при выборе параметра на изменение, если он должен принимать жесткие значения, то разворачивать список. Как сделать - не знаю, так смутно догадываюсь. А время жмет.
  Че-то, еще было... Ладно, по ходу уточним. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Ёжики, это не только ценные шкурки... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							PSD
							
								Главный специалист 
								
								 
								  Offline
								Пол:   
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 20-06-2003 12:02 »   | 
								
								 | 
							  
							 
							1) Реализовать в смысле дизайна? или  как это запрограмировать?
  2) Если нужно стисок значений то на свое усмотрение либо ставишь  ComboBox(не знаю как он назывется в делфи), при помощи метода Add (незнаю как он называется у компонента делфи) загоняешь туда список значений в конце считываешь что пользователь выбрал, и запрещаешь ввод новых значений(там будет либо свойство либо режим работы компоеннта COMBOLIST). С ListBox(не знаю как он назывется в делфи) один в один толкл он места требует по больше. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Да да нет нет все остальное от лукавого. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Pokemon
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #2 : 20-06-2003 12:07 »   | 
								
								 | 
							  
							 
							Не совсем понятно что за систему ты делаешь, поясни пожалуйста. И второе что означает: "должен принимать жесткие параметры"? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Igel
							
						 | 
						
							
								  | 
								
									
									 « Ответ #3 : 20-06-2003 13:53 »   | 
								
								 | 
							  
							 
							Для PSD:  На работу со КомбоБоксом и как загонять туда списки, на это моих знаний хватает. Тут другое немного.  Именно принцип программирования. 
  Для Pokemon-а: Приведу мой пример. Параметр в таблице "Цвет фона" - значение 7. Пользователь хочет изменить цвет. Кликает на значение, ему разворачивается список цветов. Штук 16, например. Ну-у, это я и назвал "жесткими параметрами". 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Ёжики, это не только ценные шкурки... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Igel
							
						 | 
						
							
								  | 
								
									
									 « Ответ #4 : 20-06-2003 14:00 »   | 
								
								 | 
							  
							 
							Pokemon, я систему, можно сказать сделал. Но это на АвтоЛИСПе и под АвтоКАД. Средств стандартного ЛИСПа не хватает для создания продвинутых диалогов. И я решил для настройки сделать небольшую программку на Дельфи, которая бы запускалась и создавала файл настроек. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Ёжики, это не только ценные шкурки... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Pokemon
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #5 : 20-06-2003 17:49 »   | 
								
								 | 
							  
							 
							Как я понял у тебя параметры хранятся в таблице: если это ListBox то лучше всего сделать при щелчке выпад контектного меню в котором есть значения цветов. Ну а если это ComboBox то у него есть параметр Style который задает возможность вводить в поле со списоком значение, вроде значение stDropList задает режим только списка. Но этот списак должен быть создан заранее из др. данных. По мне лучше всего сделать ComboBox и задать ему стиль работы ... 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Igel
							
						 | 
						
							
								  | 
								
									
									 « Ответ #6 : 21-06-2003 09:21 »   | 
								
								 | 
							  
							 
							Млин, не удалось объяснить...  Вся проблема пока не в конкретной реализации. Не могу понять КАК сделать. Т.е., конечно можно насоздавать кучу переменных, и друг за дружкой значения заносить в "Список". Потом кучу условий и пр... Но это будет ужасно с точки зрения программирования, и реализация с точки зрения дизайна.
  Как я делал на ЛИСПе: все данные, с которыми я работал, загонял в список(параметры, значения). В процессе работы в диалоге этот список меняется.И при выходе уже список сохраняю...  
  Здесь думал смогу аналогично, но язык другой, и я его еще не "чувствую". 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Ёжики, это не только ценные шкурки... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							PSD
							
								Главный специалист 
								
								 
								  Offline
								Пол:   
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #7 : 21-06-2003 11:43 »   | 
								
								 | 
							  
							 
							А так те нужна схема управлеия даными?
  Тут вариантов куча. Вот один Чтаешь свой ини файл в структуру типа дерева секции(папки) парамертры листья. Можно вообще ограничится  стандартным компонентом TREE если сами строки вводить в ручную. 
  А так по двойному клику извлекаешь стоку из дерева (там она в названии ноды хранится) распаковваешь и грузишь на правую строну в компоненты типа "Имя"  "значение".
  Вероятно для каждой секции придется подгружать свои компонеты управления. 
  По кнопке "ок" собираешь строку и запишиваешь ее назад в дерево.
  К расиво и элегантно, причем для мастеров можно оставить возможность  создавать и редактировать ноды  средствами самого дерева.
  По завершении или команде сохранить  записываешь все из дерева назад в файл.
  Алгоритм работы с деревом будет очень простой у тебя там всего два уровня.
  Единственое нужно перехватить создание папок и не разрешать создовать  папки во втором уровене. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Да да нет нет все остальное от лукавого. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Igel
							
						 | 
						
							
								  | 
								
									
									 « Ответ #8 : 21-06-2003 13:46 »   | 
								
								 | 
							  
							 
							Именно так я и думал. Только решил пока с "Деревом" не возиться, а взять ListBox. Ну, не важно. Вот как это реализовать, что-бы были эти самые "компоненты управления"? Тут у меня с понятиями туго... нет детальной картины... 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Ёжики, это не только ценные шкурки... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							PSD
							
								Главный специалист 
								
								 
								  Offline
								Пол:   
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #9 : 21-06-2003 14:34 »   | 
								
								 | 
							  
							 
							Я так понимаю й тебя данные в принципе типизированые. в виде 
  имя = число
  так?
  Только число  нужно по разному отобрадать  то это цвет то толщина линии и тп.
  Я бы сотворил так
  повесил Edit для имени комбо для параметра и возможно дополнительную кнопку  [...] для допонительных функций. Ну и разумется блок кнопок  изменить добавить сохранить отмена(можно без него но у меня юзеры тупые) Далее к списку нужно привязать както информацию о типе конкретной записи. Почему я говорил про дерево  У MS Tree  в качестве индотификатора ноды используется параметр key он текстовый и в него можно зашифровать информацию о типе ноды col - секция цвета col_1 -первая настройка  col_2 вторая  .... 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Да да нет нет все остальное от лукавого. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							PSD
							
								Главный специалист 
								
								 
								  Offline
								Пол:   
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #10 : 21-06-2003 14:35 »   | 
								
								 | 
							  
							 
							Далее когда  юзер кликает на ноду ды смотришь key видишь что  там  col_xx значит это цвет. и загружаешь в комбо цвета, будут толшины линий значит толшины линий. На кнопку [...]  case можно скомутировать вызов диалогов напимер вибора цвета или открытия файла.   case опереть на тотже key.
  При каждом клике у тебя грузятся соотвествующие предустановленые значения.
  Юзер кликнул из строки имя поля и его значение упали на правую сторону. Нажал изменить компоненты стали енабле  кликнул сохранить все из считал имя счтал значение собрал строчку и запихнул в дерево на место старой.  Все просто нужно толко акуратно запоминать(id или key) счем ты сейчас работаешь  и отслеживать его изменения  в VB такой диалог пишется за час. В делфи наверное чуть подольше возится. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Да да нет нет все остальное от лукавого. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Igel
							
						 | 
						
							
								  | 
								
									
									 « Ответ #11 : 21-06-2003 15:07 »   | 
								
								 | 
							  
							 
							Это ясно. Только зачем дерево городить, если у меня всего 2 уровня: Модуль  - Параметры модуля Хотел так: Слева Список модулей. Вызываю(указываю) конкретный - считываю объект, присоединенный (TStringList) в нем содержатся параметры (причем имя=число/строка).  По списку параметров формирую справа таблицу. Первый столбец - имена пар-ов, второй значения.  Вот на этом месте и встал. Список (TStringList) параметров сформирован, хотя, может есть конкретные предложения по структуре? Потому-что я делал, как привык, может это привнесет сложности!! 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Ёжики, это не только ценные шкурки... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							PSD
							
								Главный специалист 
								
								 
								  Offline
								Пол:   
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #12 : 21-06-2003 15:18 »   | 
								
								 | 
							  
							 
							Про дерево писать короче.
  Можно и два списка.
  А вчем проблемат тогда если ты уже все сделал? Или у тебя в гриду не получилось выпихнить? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Да да нет нет все остальное от лукавого. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Igel
							
						 | 
						
							
								  | 
								
									
									 « Ответ #13 : 21-06-2003 16:22 »   | 
								
								 | 
							  
							 
							Не-е, я прогнал. Я не смог все в один список запихнуть, мучаюсь... Хотел так: Список Модулей  Каждый элемент(объект класса) - список параметров - каждый параметр - объект со своими пар-ми, такими, как: Имя пар-ра, тип значения,значение, Информация о параметре. Вот такую структуру и не могу создать. Точнее я хотел создать класс. Затем, уже визуализация. Возьмем к примеру дерево: Выбрал я в дереве параметр - ладно-бы мне просто число или текст задать надо, так значение параметра может быть выбрано из жесткого списка. Т.е. не просто для параметра EDitBox приделать, а еще в зависимости от типа Или EDitBox или ComboBox. Ну, это ладно, можно, как ты советовал, кнопку приделать. Главное, как мне этот клас реализовать? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Ёжики, это не только ценные шкурки... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							PSD
							
								Главный специалист 
								
								 
								  Offline
								Пол:   
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #14 : 21-06-2003 16:32 »   | 
								
								 | 
							  
							 
							Ты меня окончательно запутал.
  Тыхочешь создать структуру данных(кнотейнер)в который бы считывались данные из ini  файла редактировались в программе а затем записывалис при сохранении в ini  файл  и тебя возникли проблемы именно с реализацией этой структуры?
  А скакой частью проблемы? Ты не можешь формализовать структуру данных.
  Не получается загнать данные из файла в структуру
  или не получается привязать структуру к интерфейсу и элементам управления? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Да да нет нет все остальное от лукавого. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Гром
							
								Птычк. Тьфу, птычник... Вот! 
								Готовлюсь к пенсии
								
								  
								  Offline
								Пол:   
								Бодрый птах
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #15 : 21-06-2003 17:00 »   | 
								
								 | 
							  
							 
							Опиши всю задачу целиком - пропиши здесь структуру и типы данных, которые ты собираешься использовать - я попробую тебе рассказать. я уже делал нечто подобное с деревом и зависимостью от дерева кучи параметров и использую ini файл... 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							А птичку нашу прошу не обижать!!! 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Igel
							
						 | 
						
							
								  | 
								
									
									 « Ответ #16 : 21-06-2003 17:03 »   | 
								
								 | 
							  
							 
							Да нет... Я не могу сделать класс так, что-бы он подошел под поставленную задачу. Знаний не хватает... может поэтому так изъясняюсь? Не знаю что такое контейнер и с чем его едять... Понимаю, что все просто, но не могу сделать... еще хуже, объяснить толком не могу... 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Ёжики, это не только ценные шкурки... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							PSD
							
								Главный специалист 
								
								 
								  Offline
								Пол:   
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #17 : 21-06-2003 17:21 »   | 
								
								 | 
							  
							 
							Так вот в моей идее с деревом в этом классе нужды нет вообще так как там строки ini файла храняться не посредственно в дереве в виде названия нод, а структура обеспечивается самим деревом(MS TREE это элемент управления в делфях должнобыть похожее или еееже можно зацепить это ActiveX) ты кабы видишь на экране свой ини но можешь ворачивать и разворачивать секции переносить мышью параметры из секции в секцию и прочие. А класс  можно сделать такой например: class meitem | int id; int id_parent; CString Name; int value; // Или VARIANT value int type;// тип записи  // Еще раз прошу прощения за С++  " А как тебе их связать вариантов множество  можешь просто объявить массив этих элементов и по  type  выбирать нужные. Можешь их опустить в контейнер типа Tlist(если не ошибаюсь или TTree)  Если ты не очень хорошо разбираеся в среде то вопрос как правильно не коректен делай как получится, будут конкретные траблы спросишь, по ходу дела возникнут мысли как это можно облегчить и оптимизировать.  Вариантов решения твоей задачи сотни и у каждого свои минусы и плюсы. Я лично думаю что в твоей задаче красивые изыски програмирования не кчему, побыстому слепить, чтоб только работала, а там видно будет что нетак.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Да да нет нет все остальное от лукавого. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Igel
							
						 | 
						
							
								  | 
								
									
									 « Ответ #18 : 23-06-2003 10:50 »   | 
								
								 | 
							  
							 
							Спасибо, пробую... 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Ёжики, это не только ценные шкурки... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Igel
							
						 | 
						
							
								  | 
								
									
									 « Ответ #19 : 23-06-2003 10:51 »   | 
								
								 | 
							  
							 
							Спасибо всем, пробую... За поддержку, особенно!   )  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Ёжики, это не только ценные шкурки... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Alex
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #20 : 24-06-2003 20:58 »   | 
								
								 | 
							  
							 
							Есть классный компонент -Virtual Treeview ( http://www.delphi-gems.com/) Он позволяет подвешивать разные эдиты к своим нодам, правда в нем не очень просто разобраться. Удачи!  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	 |