Вопрос по DCL
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вопрос по DCL

Вопрос по DCL

Ответ
Поиск в этой теме
Непрочитано 07.06.2006, 10:19 #1
Вопрос по DCL
DANZZ
 
Проектировщик
 
Омск
Регистрация: 05.05.2006
Сообщений: 91

Как сделать чтоб второе поле в окне было не активным если в первом поле пусто???
Просмотров: 4002
 
Непрочитано 07.06.2006, 12:09
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


(mode_tile код_поля 1) ;-выключить поле
(mode_tile код_поля 0) ;-включить поле
VVA вне форума  
 
Автор темы   Непрочитано 08.06.2006, 13:10
#3
DANZZ

Проектировщик
 
Регистрация: 05.05.2006
Омск
Сообщений: 91


(setq dcl_id (load_dialog "vnsk_Danzz.dcl"))
(if (not (new_dialog "vnsk_dialog" dcl_id))
(exit)
)

(defun ok_tab ( / h NumPol NumMark NumVstrok)
(setq h "edit1" NumPol "edit2" NumMark "edit3" NumVstrok "edit4")
)

(set_tile "edit1" "3.5")
(set_tile "edit2" "1")
(set_tile "edit3" "0")
(mode_tile "edit4" 1)
(set_tile "edit4" "0")
(setq h "3.5" NumPol "1" NumMark "0" NumVstrok "0")
(setq what_next 8)
(while (< 2 what_next)
(action_tile "edit1" "(setq h $value)")
(action_tile "edit2" "(setq NumPol $value)")
(action_tile "edit3" "(setq NumMark $value)")
(action_tile "edit4" "(setq NumVstrok $value)")
(action_tile "accept" "(done_dialog 1) (ok_tab)")
(setq what_next (start_dialog))
)
(unload_dialog dcl_id)

а как включить "edit4" если (> (atoi "edit3") 2)
DANZZ вне форума  
 
Непрочитано 08.06.2006, 13:49
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Код:
[Выделить все]
(if (> (atoi (get_tile "etit3")) 2)
  (mode_tile "edit4" 0)
  (mode_tile "edit4" 1)
  )
VVA вне форума  
 
Непрочитано 08.06.2006, 13:58
#5
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Если имеется ввиду действия, то
1. Пишем ф-цию
Код:
[Выделить все]
(defun check_edit3 ()
(if (> (atoi (get_tile "etit3")) 2)
  (mode_tile "edit4" 0)
  (mode_tile "edit4" 1)
  )
  )
И вешаем ее на дейсвие поля
Код:
[Выделить все]
(action_tile "edit3" "(progn (setq NumMark $value)(check_edit3))")
VVA вне форума  
 
Автор темы   Непрочитано 09.06.2006, 13:47
#6
DANZZ

Проектировщик
 
Регистрация: 05.05.2006
Омск
Сообщений: 91


спасиб
DANZZ вне форума  
 
Непрочитано 13.06.2007, 13:35
#7
vic153

проектировщик газопроводов
 
Регистрация: 04.08.2005
Петербург
Сообщений: 327


Здраствуйте, коллеги
Подскажи, если возможность создания диалогового окна без использования стандартных кнопок ОК, Cancel
Что-нибудь типа:
Код:
[Выделить все]
test: dialog {label="Работа с исходными данными";
:row {
:button {label="Создать"; key="create"; action="(setq reply \"Create\")";}
:button {label="Считать"; key="read"; action="(setq reply \"Read\")";}
} //end of row
ok_button;
} //end of dialog
только без кнопки ОК
vic153 вне форума  
 
Непрочитано 13.06.2007, 14:52
#8
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Так например:
Код:
[Выделить все]
test: dialog {label="Работа с исходными данными"; 
:row { 
:button {label="Создать"; key="create"; action="(setq reply \"Create\")";is_default = true;}// Enter
:button {label="Считать"; key="read"; action="(setq reply \"Read\")"; is_cancel  = true;}// ESC
} //end of row 
} //end of dialog
Достаточно одной кнопки со свойством is_cancel (по нажатию ESC) или is_default (по нажатию Enter) со значением true
Евгений А. вне форума  
 
Непрочитано 13.06.2007, 15:04
#9
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от vic153
Здраствуйте, коллеги
Подскажи, если возможность создания диалогового окна без использования стандартных кнопок ОК, Cancel
Что-нибудь типа:
Код:
[Выделить все]
test: dialog {label="Работа с исходными данными";
:row {
:button {label="Создать"; key="create"; action="(setq reply \"Create\")";}
:button {label="Считать"; key="read"; action="(setq reply \"Read\")";}
} //end of row
ok_button;
} //end of dialog
только без кнопки ОК
Так сотри ok_button и все.
ShaggyDoc вне форума  
 
Непрочитано 13.06.2007, 15:26
#10
vic153

проектировщик газопроводов
 
Регистрация: 04.08.2005
Петербург
Сообщений: 327


Цитата:
Сообщение от ShaggyDoc
[Так сотри ok_button и все.
Тогда при запуске пишет:
Dialog has neither an OK nor a CANCEL button
и отказывается работать
vic153 вне форума  
 
Непрочитано 13.06.2007, 17:28
#11
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Пример (в сокращенном виде) диалога без Ok - в качестве Оk-кнопок выступают иконки:
Код:
[Выделить все]
BDE : dialog {
label = "------- Pig Equipment";
: row {fixed_width=true;
   : image_button {key = "BD_logo"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}
//..................
   : image_button {key = "rebristaja_plita"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}
}
: row {fixed_width=true;
   : image_button {key = "Farrowing1800_p"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}
//..................
   : image_button {key = "Boars_semen_p"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}
}
: row {fixed_width=true;
   : image_button {key = "PigNic_p"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}
//..................
   : image_button {key = "Rohrautomat1_s"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}
}
: row {fixed_width=true;
   : image_button {key = "Simultan500_p"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}
//..................
   : image_button {key = "Silo"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}

}
: row {fixed_width=true;
   : image_button {key = "JetMaster_p"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}
//..................
   : image_button {key = "CL600_s"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}
}
: row {fixed_width=true;
   : image_button {key = "Wallinlet_s"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}
//..................
   : image_button {key = "DiffAir"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}
}
: row {fixed_width=true;
   : image_button {key = "ManureTubes1"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}
//..................
   : image_button {key = "ManurePipeExtention_s"; is_cancel = true;
      color=graphics_background; width=12; height=4; fixed_height=true; fixed_width=true;}
}
spacer_1;
cancel_button;
}//BDE
А вот его скриншот:
[ATTACH]1181741316.jpg[/ATTACH]
Pilot вне форума  
 
Непрочитано 13.06.2007, 22:47
#12
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Цитата:
Сообщение от vic153
Тогда при запуске пишет:
Dialog has neither an OK nor a CANCEL button
и отказывается работать
Мой-то вариант хоть работает?
Вот для разнообразия диалог вообще без кнопок

Код:
[Выделить все]
test: dialog {label="Окно без кнопок!"; is_cancel = true;
	:list_box {key="list1";list = "Выход\nНичего";
		action = "(if (= \"0\" $value) (done_dialog 0))";}
	}
->Pilot не годится - читай вопрос
Цитата:
без использования стандартных кнопок ОК, Cancel
Евгений А. вне форума  
 
Непрочитано 14.06.2007, 00:55
#13
vic153

проектировщик газопроводов
 
Регистрация: 04.08.2005
Петербург
Сообщений: 327


Евгений А. да спасибо заработало не сразу, конечно, но удалось запустить по твоему варианту.
vic153 вне форума  
 
Непрочитано 14.06.2007, 10:18
#14
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Цитата:
Сообщение от Евгений А.
->Pilot не годится - читай вопрос
Цитата:
без использования стандартных кнопок ОК, Cancel
Тут я привел пример реальной работающей программы.
Кнопку Cancel можно убрать. Диалог будет работать и без нее.
Pilot вне форума  
 
Непрочитано 14.06.2007, 11:46
#15
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Цитата:
Сообщение от Pilot
Тут я привел пример реальной работающей программы.
Кнопку Cancel можно убрать. Диалог будет работать и без нее.
Не спорю, но человек помощи просил...
Евгений А. вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вопрос по DCL