Страница 1 из 3

И снова статус строка

Добавлено: 28 июн 2010, 19:29
BlazeBio
Я знаю тема поднималась на форуме. Но как-то мимо вяло прошла. Так понимаю, что собственный набор не составить. Тогда используя стандартный, я накидал такой фейс.

Код: Выделить всё

#component "L_DOGOVOR"
const
  sciAQAEnEsc178=7500;
end;
planstatus statusLine
{
        (sciAQAEnEsc178..sciAQAEnEsc178)
        {
          '~F1~ Помощь',       cmHelp,               kbF1;
          '~Alt-F10~ Меню',cmHotKeys,kbAltF10;
          '~Enter~ Редактирование',  cmDefault,      kbNoKey;
          '~F7~ Создать',      cmInsert,             kbF7;
          '~F8~ Удалить',      cmDelete,             kbF8;
          '~Ins~ Пометить',cmAqaMarkRec, kbIns;
          '', cmAqaMarkAll, kbGrayPlus;
          '', cmAqaUnMarkAll, kbGrayMinus;
          '', cmAQAUpDownloadScript,kbCtrlF2;
		            '',cmResize,kbCtrlF5;
					'',cmSysMenu,kbCtrlF10;
					'',cmCalculator,kbShiftF2;
					'',cmEvaluateAndModify,kbCtrlF4;
					'',cmLastHelp,kbAltF1;
					'',cmHelp,kbF1;
		  //          '',cmCallIndex,kbShiftF1;
					'',cmQuit,kbAltX;
					'',cmMenu,kbF10;
					'',cmCalendar, kbAltF4;
					'',cmAqaReport,kbCtrlP;

        }
}

interface Plan 'Производственные планы' (,,scPPlan) ;
show at (,,76,25);
var name:string;
	data:date;
	status:string;
	podr:string;
	t_plan:string;
			browse bPPlan;
				fields
					data 'Дата':[15],protect, noAutoSize;
					name 'Номер плана':[25],protect, noAutoSize;
					status 'Статус':[7],protect, noAutoSize;
					podr 'Подразделение':[25],protect, noAutoSize;
					t_plan 'Тип плана':[4],protect, noAutoSize;
			end;
	handleevent
	cmDefault:
	{
		RunInterface('PlanCorrect');
	}
	end
end.
Почему, когда я создаю таким образом статус строку, то некоторые кнопки этой статус строки не видны в фейсе?

Re: И снова статус строка

Добавлено: 29 июн 2010, 14:41
Ged
Потому что галла работает только со статуслайном StatGal.
Для добавления своего нужно перекомпиливать StatGal.

Re: И снова статус строка

Добавлено: 29 июн 2010, 16:33
BlazeBio
Нарыл в доке

Код: Выделить всё

#statusline "StatGal"

#include core.inc
#include sklad.inc
end;
При добавлении данных строк в debug.prg и компиляции вылетает ошибка: Не могу загрузить StatusLine : StatGal. Я так понимаю здесь в файлах *.inc находится описание статус строк?

Re: И снова статус строка

Добавлено: 29 июн 2010, 16:37
Ged
StatGal уже откомпилен в ресурс C_StatLine.res
Соответственно для компиляции его необходимо подключить.

а инки - это просто константы.

Re: И снова статус строка

Добавлено: 29 июн 2010, 16:53
BlazeBio
Ged писал(а):StatGal уже откомпилен в ресурс C_StatLine.res
Соответственно для компиляции его необходимо подключить.
Компиляция прошла нормально, но все равно не изменилась статус строка :(

Re: И снова статус строка

Добавлено: 29 июн 2010, 17:10
Ged
Так я ж написал, что галактика использует StatGal
чтобы добавить в него свою статус строку необходима его перекомпиляция.
А для перекомпиляции необходимы исходники.
Чтобы что то у вас получилось должно быть как минимум

Код: Выделить всё

StatGal statusLine
{
.....
        (sciAQAEnEsc178..sciAQAEnEsc178)
        {
.....
        }
.....
}
Можете конечно сделать свой StatGal, но тогда в других фейсах все пропадет :)

Re: И снова статус строка

Добавлено: 29 июн 2010, 17:33
KATZ
BlazeBio
Зря вы так глубоко полезли. В STATGAL-е полно разных контекстов на все случаи жизни, нет смысла придумывать еще. Просто подберите подходящий для вашей задачи.

Re: И снова статус строка

Добавлено: 29 июн 2010, 17:57
BlazeBio
KATZ писал(а): В STATGAL-е полно разных контекстов на все случаи жизни, нет смысла придумывать еще. Просто подберите подходящий для вашей задачи.
А разве этот не стандартный? :-(

Код: Выделить всё

StatGal statusLine {
        (sciAQAEnEsc178..sciAQAEnEsc178)
        {
          '~F1~ Помощь',       cmHelp,               kbF1;
          '~Alt-F10~ Меню',cmHotKeys,kbAltF10;
          '~Enter~ Редактирование',  cmDefault,      kbNoKey;
          '~F7~ Создать',      cmInsert,             kbF7;
          '~F8~ Удалить',      cmDelete,             kbF8;
          '~Ins~ Пометить',cmAqaMarkRec, kbIns;
          '', cmAqaMarkAll, kbGrayPlus;
          '', cmAqaUnMarkAll, kbGrayMinus;
          '', cmAQAUpDownloadScript,kbCtrlF2;
          '',cmResize,kbCtrlF5;
          '',cmSysMenu,kbCtrlF10;
          '',cmCalculator,kbShiftF2;
          '',cmEvaluateAndModify,kbCtrlF4;
          '',cmLastHelp,kbAltF1;
          '',cmHelp,kbF1;
          '',cmQuit,kbAltX;
          '',cmMenu,kbF10;
          '',cmCalendar, kbAltF4;
      	  '',cmAqaReport,kbCtrlP;
        }
}
Или всё-таки, как я понимаю, нужно оставить вместо StatGal название статус строки planstatus. Потому что при StatGal вообще пропадает статус строка, а при planstatus видны только кнопки F1,F5,CTRL+F5 и Esc (Ни F7, ни F8). Это так и должно происходит?
Статус строка объявляется в фейсе plan. И хотелось бы, чтобы она была видна только в этом фейсе, а в других фейсах уже использовать новые статус строки.

Re: И снова статус строка

Добавлено: 29 июн 2010, 18:52
BlazeBio
Так как можно сделать, чтобы стандартные F7(добавить) и F8(удалить) отображались в статус строке фейса?

Re: И снова статус строка

Добавлено: 29 июн 2010, 21:39
KATZ
BlazeBio писал(а):А разве этот не стандартный?
Стандартный или нет - судить не берусь. Но в STATGAL-е такой контекст есть, заново его компилировать не нужно. А идентификатором sciAQAEnEsc178 обозначается некая константа. Неважно, как будет называться ваш контекст, так же или по-другому, важно, чтобы константа была та, которая в STATGAL-е ему присвоена.

Код: Выделить всё

const
  sciAQAEnEsc178=302; // можно так
/*
  или так:
  scMyFavouriteContext=302;
  или даже так:
  sc_00302=302;
*/
end;

// Дальше - интерфейс, в котором контекст указывается стандартно
BlazeBio писал(а):Так как можно сделать, чтобы стандартные F7(добавить) и F8(удалить) отображались в статус строке фейса?
Как написано выше, только константу правильную выбрать (например, 6901 или 6903). Раньше разработчики не давали исходники для статус-линии, приходилось всяко-разно извращаться, чтобы эти константы вытащить. Сейчас GALNET.CSC найти несложно, вот из него небольшой кусочек, думаю, разберетесь даже без комментариев.

Код: Выделить всё

sci178Esc         =  6901;
sci1378Esc        =  6902;
sci178EnEsc       =  6903;
sci147EnEsc       =  6904;
sci17EnEsc        =  6905;
sci13EnEsc        =  6906;
sci1EnEsc         =  6907;
sci1Esc           =  6911;
sci13Esc          =  6912;
sci1378EnEsc      =  6914;
sci1478Esc        =  6916;
sci1Ins           =  6917;
sci178Ins         =  6918;
sci14Esc          =  6919;
sci178EnEscInsPM  =  6920;
sci14EnIns        =  6921;
sci134EnIns       =  6922;
sci17EnIns        =  6923;
sci1348Esc        =  6924;
sci148Ins         =  6925;
sci134EnEsc       =  6926;
sci147EnEscTree   =  6927;
sci14EnEscTree    =  6928;
sci17EnEscTree    =  6929;
sci1EnInsTree     =  6930;
sci14EnInsTree    =  6931;
sci178EscTree     =  6932;
sci1EnEscTree     =  6933;
sci148Esc         =  6935;
sci14EnEsc        =  6936;
sci1EnIns         =  6937;
sci138EnEsc       =  6938;
sci18EnEsc        =  6939;
sci1378En         =  6940;
sci178En          =  6941;
sci18Esc          =  6942;
sci1EnPM          =  6943;
sci147EnIns       =  6945;
sci134Esc         =  6949;

Re: И снова статус строка

Добавлено: 30 июн 2010, 10:03
edward_K
а еще проще зайти в консоль упраления и посмотреть "Статус-строки" - тот же strartgal(систему тока не забудьте дернуть в "репозитарии")

Re: И снова статус строка

Добавлено: 30 июн 2010, 14:19
BlazeBio
KATZ, я не нашёл константы sciAQAEnEsc178. Использовал вместо sciAQAEnEsc178 константу sci178EnEsc=6903 и аналогичную статус строку из C_STATLINE.res. Все равно ничего не меняется, те же 4 кнопки.

Код: Выделить всё

  const
   	   sci178EnEsc =  6903;
   end;

planstatus   statusLine
{
	(sci178EnEsc..sci178EnEsc)
	{
	'~F1~ Помощь',cmHelp,   kbF1
	'~F7~ Добавить',cmInsert,   kbF7
	'~F8~ Удалить',cmDelete ,  kbF8
	'~Enter~ Выбор',cmDefault,   kbEnter
	'~Esc~ Выход', cmClose ,  kbAltF3
	 '',cmAlt1, kbAlt1  
	 '',cmAlt2, kbAlt2  
	 '',cmAlt3, kbAlt3 
	 '',cmAlt4, kbAlt4  
	 '',cmAlt5, kbAlt5 
	 '',cmAlt6, kbAlt6 
	 '',cmAlt7, kbAlt7 
	 '',cmAlt8, kbAlt8 
	 '',cmAlt9, kbAlt9  
	 '',cmAltEqual,kbAltEqual 
	 '',cmAltMinus,kbAltMinus 
	 '',cmPickAttr,kbAltA 
	 '',cmFilterSave,kbAltB 
	 '',cmPickClass,kbAltC 
	 '',cmDocBas,kbAltD 
	 '',cmNal,kbAltF 
	 '',cmRecalcAllSums,kbAltG 
	 '',cmIEHist,kbAltH 
	 '', cmImp,kbAltI 
	 '', cmOneRec,kbAltK 
	 '', cmManagerId,kbAltM 
	 '', cmFilialNo,kbAltN 
	 '', cmExp,kbAltO 
	 '', cmPlansNo,kbAltP 
	 '', cmOpenFile,kbAltR 
	 '', cmAccording,kbAltS 
	 '', cmKauReff,kbAltT 
	 '', cmLegend,kbAltU 
	 '', cmQuit,kbAltX 
	 '', cmLastHelp,kbAltF1 
	 '', cmChangeViewMode,kbAltF2 
	 '', cmAltInsert,kbAltF7 
	 '', cmAlternativeDelete,kbAltF8 
	 '', cmHotKeys,kbAltF10 
	 '', cmCalculator,kbShiftF2 
	 '', cmBuhCalculator,kbShiftF3 
	 '', cmPrev,kbShiftF6 
	 '', cmExtendedDelete,kbShiftF8 
	 '', cmSHIFTF9,kbShiftF9 
	 '', cmCalc,kbCtrlC 
	 '', cmEditBudget,kbCtrlB 
	 '', cmMulSelDO,kbCtrlI 
	 '', cmHozOper,kbCtrlH 
	 '', cmPrintDoc,kbCtrlP 
	 '', cmSetupReport,kbCtrlR 
	 '', cmIerarchy,kbCtrlU 
	 '', cmAttrib,kbCtrlEnter 
	 '', cmSaveDoc,kbCtrlF2 
	 '', cmRestoreDoc,kbCtrlF3 
	 '', cmEvaluateAndModify,kbCtrlF4 
	 '', cmResize,kbCtrlF5 
	 '', cmInsLowLevel,kbCtrlF7 
	 '', cmSpecialDelete,kbCtrlF8 
	 '', cmSysMenu,kbCtrlF10 
	 '', cmCompressLevel,kbCtrlBack 
	 '', cmShowAll,kbCtrlGrayPlus 
	 '', cmShowAll,kbCtrlEqual 
	 '', cmHideAll,kbCtrlGrayMinus 
	 '', cmPass,kbF4 
	 '', cmZoom,kbF5 
	 '', cmNext,kbF6 
	 '', cmMenu,kbF10 
	}
}
edward_K писал(а):а еще проще зайти в консоль упраления и посмотреть "Статус-строки" - тот же strartgal(систему тока не забудьте дернуть в "репозитарии")
У меня нет в консоли управления Статус-строки, есть только Система-Репозитарий-Компоненты/Системы. Мне говорили на форуме, что у меня вроде как неполная лицензия? Как быть в этом случае?

Re: И снова статус строка

Добавлено: 30 июн 2010, 14:44
edward_K
уберите всю вашу фигню и просто в броусе сделайте sci178EnEsc. Эта константа уже определена в GALNET.CSC(подключить в проект const ????? end если еще не поключено ) и не надо ни в коем случае ее определять повторно.

Re: И снова статус строка

Добавлено: 30 июн 2010, 14:51
galover
Мне когда-то эта ветка помогла http://www.tyumbit.ru/gal_forum/viewtopic.php?f=2&t=332

Re: И снова статус строка

Добавлено: 30 июн 2010, 16:36
BlazeBio
edward_K писал(а):уберите всю вашу фигню и просто в броусе сделайте sci178EnEsc. Эта константа уже определена в GALNET.CSC(подключить в проект const ????? end если еще не поключено ) и не надо ни в коем случае ее определять повторно.
Всё оказалось просто! :grin:
А если бы не было браузера в фейсе, что тогда?