Экран компьютера целый день перед глазами работника
предприятия. Унылая картина. Не правда ли? Чтобы хоть как-то разнообразить ее,
дайте пользователю возможность выбора фона главного окна программного комплекса.
Лучше, если картинок будет побольше. На рис. 4.34
показан рабочий вид формы ChangPic.
Рис. 4.34. Смена картинки главного окна программного
комплекса
Код события Activate формы ChangePic:
* Для преемственности в работе во время
* одного сеанса имя картинки - глобальное
Public NamePicture
NamePicture=[Въезд в город 800 на 600 точек]
* Определение полного пути к папке с картинками
IF ALLTRIM(SYS(2003))=[\]
RealDirectory=[]
ELSE
RealDirectory=[\]
ENDIF
THISFORM.IMAGE1.PICTURE=DISK+RealDirectory+[\DECKTOP\khab.jpg]
* Описание массива Title
* Он используется в RowSourceType
(5-Array) Combo1
* Число элементов - по числу картинок
DIMENSION Title(28)
Title(1) =[Въезд в
город 800 на 600 точек]
Title(2)
=[Физкультура 800 на 600 точек]
Title(3) =[ХабИИЖТ 800
на 600 точек]
Title(4) =[Манеж 1024 на 768 точек]
* Два десятка строк в целях экономии места пропущено
Title(26)=[Мост 1280 на 1024 точек]
Title(27)=[Сказочный
город 1280 на 1024 точек]
Title(28)=[Без картинки]
THISFORM.COMBO1.Refresh
Код события InteractiveChange объекта Combo1:
* Определение полного пути к папке с картинками
* Переменная Shot содержит полный путь к
папке
IF ALLTRIM(SYS(2003))=[\]
RealDirectory=[]
ELSE
RealDirectory=[\]
ENDIF
Shot=DISK+RealDirectory+[\DECKTOP\]
SET EXACT OFF
* Неполное соответствие для того, чтобы
* не писать далее название картинок целиком
* Например
* CASE THIS.VALUE=[Физкультура]
* Вместо
* CASE THIS.VALUE=[Физкультура 800 на 600 точек]
DO CASE
CASE THIS.VALUE=[Физкультура]
THISFORM.IMAGE1.PICTURE=Shot+[SPORTS.JPG]
CASE THIS.VALUE=[Въезд в город]
THISFORM.IMAGE1.PICTURE=Shot+[KHAB.JPG]
CASE THIS.VALUE=[ХабИИЖТ]
THISFORM.IMAGE1.PICTURE=Shot+[RailWay.JPG]
CASE THIS.VALUE=[Манеж]
THISFORM.IMAGE1.PICTURE=Shot+[Area.JPG]
* Два десятка строк пропущено
CASE THIS.VALUE=[Железная
дорога]
THISFORM.IMAGE1.PICTURE=Shot+[RAILROAD.JPG]
CASE THIS.VALUE=[Без картинки]
THISFORM.IMAGE1.PICTURE=Shot+[NO.JPG]
ENDCASE
Код события Click кнопки Записать:
* Если картинка для главного окна комплекса назначена
* удалить ее
IF FILE('C:\WINNT\TEMP\Picture.jpg')
DELETE FILE('C:\WINNT\TEMP\Picture.jpg')
ENDIF
IF NamePicture=[Без картинки]
* Вывод только на экран
_SCREEN.PICTURE=[]
ELSE
* Картинку на экран и в файл
C:\WINNT\TEMP\Picture.jpg
_SCREEN.PICTURE=THISFORM.IMAGE1.PICTURE
FilePicture=THISFORM.IMAGE1.PICTURE
COPY FILE &FilePicture TO C:\WINNT\TEMP\Picture.jpg
ENDIF
* Форму перерисовать
THISFORM.Release