Форум » GUI » Почему? » Ответить

Почему?

mshep: Почему? Я не понимаю, почему в одних местах я пишу Fontname и Fontsize, а в других – Font и Size (тогда бы уж по логике – Name и Size). Я не понимаю, почему в DoMethod или SetProperty я пишу сначала имя формы, потом имя контрола, а в _ExtDisableControl, например – наоборот? Я не понимаю, почему в DEFINE BROWSE есть ALLOWEDIT < .T. | .F.> ] [ INPLACEEDIT < .T. | .F.> ] [ ALLOWAPPEND < .T. | .F.> ], а в [ @ <nRow> ,<nCol> BROWSE - [ LOCK ] и [ DELETE ] Почему, писючи программку, ч каждый раз останавливаюсь, думая, что писать: INPUTMASK или PICTURE? Ну и т д. Это что – первую волну разработчиков скосили пулеметами, а последующие в азарте подхватывали упавшее знамя, не рассматривая что на нем – серп с молотом или веселый Роджер…. (((( Когда-то примерно при 4 с конца генсеке активно пропагандировали Neat-Pl, но там была преемственность с Pl/1 и о том, какое это благо, даже не задумывались… (((( Четверть века назад мне приходилось в течение где-то месяца с перерывами в 20-30 мин то колотить по ФЫВАПовской клавиатуре ec7920 (при этом постоянно помнить – не дай бог нажать Fk3, кажется – там тоже такие клавиши были, но чисто с аппаратн назначением), то по клаве суперового 286. И каждый раз напоминать себе – где пишется Then после If, а где нет, и где можно набивать по несколько операторов в одной строке. Сейчас вот такое же состояние….. Вся радуга моих талантов наиболее полно отражается в трехстопье “Плагиатор-Рутинер-Штамповщик”, посему текущие условия дюже грузят и так перегруженную голову…. (((( Пишу не в ожидании ответа, а просто душа вылиться хочет…

Ответов - 40, стр: 1 2 All

mshep: P S На эту тему вспомнился бородатый анекдот про урок русского языка в грузинской школе и его итог: "Понять это нельзя, это модно толко запомнит!"

mshep: P P S И вопрос уже сегодняшнего дня: Как в Browse получить/изменить цвет тевущей (выделенной) строки таблицы? Не нашел, увы, в примерах (это к Andrey ))) ).

Andrey: mshep пишет: Как в Browse получить/изменить цвет тевущей (выделенной) строки таблицы? В МиниГуи есть Browse и TsBrowse. С Browse не работал вообще, сразу начал с TsBrowse. Для TsBrowse изменить цвет: "тевущей (выделенной) строки таблицы" - это 5 и 6 параметр массива цвета. Смотреть примеры: \MiniGUI\SAMPLES\Advanced\Tsb_colors_2 и \MiniGUI\SAMPLES\Advanced\Tsb_config oBrw1:SetColor( { 1}, { { || CLR_BLACK } } ) // 1 , текста в ячейках таблицы oBrw1:SetColor( { 2}, { { || MyRGB(aBackClr) } } ) // 2 , фона в ячейках таблицы oBrw1:Setcolor( { 3}, { CLR_YELLOW } ) // 3 , текста шапки таблицы oBrw1:SetColor( { 4}, { { || { nHeadClr1, nHeadClr2 } } } ) // 4 , фона шапка таблицы oBrw1:SetColor( { 5}, { { || CLR_BLACK } } ) // 5 , текста курсора, текст в ячейках с фокусом oBrw1:SetColor( { 6}, { { || { 4915199,255} } } ) // 6 , фона курсора oBrw1:SetColor( { 7}, { { || CLR_RED } } ) // 7 , текста редактируемого поля oBrw1:SetColor( { 8}, { { || CLR_YELLOW } } ) // 8 , фона редактируемого поля oBrw1:SetColor( { 9}, { CLR_YELLOW } ) // 9 , текста подвала таблицы oBrw1:SetColor( {10}, { { || { nHeadClr1, nHeadClr2 } } } ) // 10, фона подвала таблицы oBrw1:SetColor( { 11 }, { { || CLR_GRAY } } ) // 11, текста неактивного курсора (selected cell no focused) oBrw1:SetColor( { 12 }, { { || { RGB(255,255,74), RGB(240,240,0)}} } ) // 12, фона неактивного курсора (selected cell no focused) oBrw1:SetColor( { 13 }, { { || CLR_HRED } } ) // 13, текста шапки выбранного индекса oBrw1:SetColor( { 14 }, { { || { nHeadClr1, nHeadClr2 } } } ) // 14, фона шапки выбранного индекса oBrw1:SetColor( { 15 }, { { || CLR_GRAY } } ) // 15, линий между ячейками таблицы oBrw1:SetColor( {16}, { { || { nHeadClr1, nHeadClr2 } } } ) // 16, фона спецхидер oBrw1:SetColor( {17}, { { || CLR_WHITE } } ) // 17, текста спецхидер oBrw1:SetColor( { ХХ - смотреть примеры Цвета CLR_* смотреть в TSBROWSE.CH При задании цвета так: { nHeadClr1, nHeadClr2 } будет градиент из 2-х цветов. Можно цвета задавать и так: // переназначим цвет: строка маркера/курсора текущй записи таблицы oBrw1:SetColor( { 6 }, { { |a,b,c| IF( c:nCell == b,{ 4915199, 255 },; { Rgb( 255, 192, 160 ), Rgb( 255, 226, 0 ) }) } } ) // примеры закраски всей строки по номеру строки таблицы чет\нечет oBrw1:SetColor( { 2 }, { { |a,b,o| iif( o:nAt % 2 == 0, RGB( 255, 255, 255 ), RGB( 230, 230, 230 ) ) } } ) // примеры закраски всей строки по номеру месяца из строки o:aArray[o:nAt][5] (5-я ячейка таблицы, тип поля ДАТА) oBrw1:SetColor( { 2 }, { { |a,b,o| iif( Month(o:aArray[o:nAt][5]) % 2 == 0, ; MyRGB( {0, 204, 255} ) ,; MyRGB( aBackClr ) ) } } ) //////////////////////////////////////////////////////////////////// // Функции ЦВЕТА FUNCTION MyRGB(aDim) RETURN RGB(aDim[1],aDim[2],aDim[3])

Haz: Andrey пишет: Для TsBrowse изменить цвет: Дополню Андрея по TSBrowse. Пример Tsb_Cursor - вся текущая строка меняет цвет. Это достигается установкой флага lFixLite в колонках где цвет менять надо В примере это все, поэтому [pre2] AEval( oBrw:aColumns, {|oCol| oCol:lFixLite := .T. } ) [/pre2] Но можно и определенные колонки установить к покраске [pre2] oBrw:aColumns[1]:lFixLite := .T. oBrw:aColumns[3]:lFixLite := .T. oBrw:aColumns[5]:lFixLite := .T. [/pre2] Саму окраску курсора в нужных колонках делает 6-й параметр SetColor К примеру [pre2] oBrw:SetColor( { 6 }, { {|a, b, c| IF( c:nCell == b, { RGB( 66, 255, 236 ), RGB( 111, 183, 155 ) }, ; [/pre2] где, a - сам бровс объект b - номер колонки в которой есть курсор с - текущая окрашиваемая колонка

valery2: Как красить Browse SAMPLE\BASIC\BROWSE7\

gfilatov2002: mshep пишет: Я не понимаю, почему в DEFINE BROWSE есть ALLOWEDIT < .T. | .F.> ] [ INPLACEEDIT < .T. | .F.> ] [ ALLOWAPPEND < .T. | .F.> ], а в [ @ <nRow> ,<nCol> BROWSE - [ LOCK ] и [ DELETE ] Потому что это два разных стиля синтаксиса, поодерживаемые в Минигуи: 1- альтернативный синтаксис; 2- базовый (основной) синтаксис. mshep пишет: Я не понимаю, почему в DoMethod или SetProperty я пишу сначала имя формы, потом имя контрола А использование функций DoMethod и SetProperty - это третий стиль синтаксиса

Andrey: gfilatov2002 пишет: это третий стиль синтаксиса Давайте его тоже как нибудь назовём ? Т.е. есть стиль синтаксиса: базовый, альтернативный и ????? А то слово третий как то не по русски ... (анология совсем другая напрашивается, как в Кавказкой пленнице - третьим будешь ? )

gfilatov2002: Andrey пишет: Давайте его тоже как нибудь назовём Это функциональный синтаксис. А есть еще и четвертый - командный синтаксис Примеры командного синтаксиса ниже: MODIFY PROPERTY ; CONTROL Button_1 ; OF Form_1 ; CAPTION 'New Caption' FETCH CONTROL Button_1 OF Form_1 CAPTION TO TmpVar

mshep: gfilatov2002 пишет: Потому что это два разных стиля синтаксиса, поодерживаемые в Минигуи: 1- альтернативный синтаксис; 2- базовый (основной) синтаксис. Типа - для хохлов один, для москалей - другой? А 3 и 4 уже белорусы придумали что ли? ((((

PSP: mshep, придётся приспосабливаться. С вас же денег не просят))

mshep: valery2 пишет: Как красить Browse SAMPLE\BASIC\BROWSE7\ Пасибки, раскрашивать проблем нет. Мне надо в подсказку для пользователя передать гамму используемых в табл для разл.строк цветов. Цвета что я использую я туда без проблем передаю, а то, что сам Browse использует - (цвет текущ строки) - приходится просто на глазок подбирать или в открытую писать: "сыный" ))). Типа x_col = GetProperty( X_form, 'Browse_1', 'цвет для тек.строки' ) надо.

mshep: PSP пишет: mshep, придётся приспосабливаться. С вас же денег не просят)) Когда-то в 90-91 я купил дистрибутив и доки по Clipper5. Это единственное лицензионное (не шаровое) мат обеспеч, что я использовал в жизни. ))) А книжки (синенькие) теперь наверно уже раритет. VB6 мне обошелся в 12 гривен лет 10 назад, помню, за компашку с инсталляцией

mshep: И еще посл.вопрос, пока не ушел: Какой генератор отчетов удобнее подключить в Clipper? FastReport может быть установлен в Borland Delphi 4-7, 2005 и C++Builder 4-6 а здесь? В IDE видел какой-то встроенный, но не вдохновил он меня. И можно ли в нем описывать переменное число колонок таблицы (точное кол-во определяется на этапе выполнения)? А то грозит мне, подозреваю, все-таки через Word тащить формы.... (((

Andrey: mshep пишет: А то грозит мне, подозреваю, все-таки через Word тащить формы.... ((( Через Ексель лучше будет ! Пример давал.

mshep: Догадываюсь. Но бухгалтера - народ консервативный....... Я их успел к ворду прочно приручить. (((((

Andrey: mshep пишет: Я их успел к ворду прочно приручить. Тогда переделай пример под Ворд. Будет возможность по эксперементировать.

mshep: Простенькие таблички в вордах печатаю сразу. А сейчас к ж/о переходить время. Проблема - узнать как пишется объединение ячеек таблицы, добавление/удаление столбцов. По натуре я штамповщик, мне умненькое увидеть, к себе приладить, а далее наштампую!! ))) Мне сейчас элементарная подсказка от умных ребятишек нужна: Вот есть уже созданная табличка в ворде - oTable := oActive:Tables[3] например. Всего-то 4 действия нужны: 1) вставить какое-то число столбцов в опред место таблицы (например, после 3 столбца добавить еще 5) Как сие пишется? InsertColumnsRight что ли? и как указывается старт номер столбца? 2) То же с Delete: удалить например 2 столбца после первых трех ( т е 4 и 5) 3) объединение ячеек строки заголовка (например, объединить в первой строке ячейки с 3 по 8 в одну Здесь сразу вопрос: а к Cells[9] потом обращаться как к Cells[9] или Cells[4] (если по этой строке)? 4) объединение ячеек по вертикали (например, в 1 колонке объединить ячейки 1 и 2 строк. Все остальное доштампую, формы в основном не более 3-4 листов, так что и в ворде не слишком долго. А сейчас пока печатаю им в txt даже бех псевдографики, как в добрые dosoвские времена....

Haz: mshep пишет: Я их успел к ворду прочно приру Не стоит останавливаться , открой им мир Excel. А по существу - работа в Worde с таблицами через VBA даже не поддерживает запись макросов и элементарная подсказка от умных ребятишек недоступна к сожалению. Андрей дело говорит - рисуй в Excel ( не показывая его на экране ), а потом просто копируй таблицу в Word. Сейчас тебе 4 действия нужны, потом формулы в ячейках захочешь и опять приплыли т.к. любимая подсказка как запись макроса не работает

Dima: Haz пишет: Андрей дело говорит - рисуй в Excel +1

Vlad04: Для работы с rtf форматом с любым редактором(Word, OpenOffice,Ashampoo и др.), поддерживающих rtf, есть неплохая программка reportf. Можно делать многоуровневые отчеты и т.п. Колонки вставлять или она не умеет или я не знаю как, но у меня и необходимости такой не было. Но это решается просто - можно предусмотреть несколько шаблонов , если их разумное количество, конечно.

mshep: Переменное кол-во колонок - ж/о. При кажом запуске их может быть от 0 до 15-20 по Дб и от 0 - до 15-20 по Кр (самые уж критичные случаи и не рассматриваю). Итого переменная часть отчета - от 1 до 40 колонок. Плюс 2-5 постоянные слева и как минимум одна (итог) справа. В DOSе я рисовал все это псевдографикой и еще предусматривал разбиение при необходимости таблицы на 2-4 по ширине (выводил все это добро одновременно в 2-4 файла, а потом склеивал эти файлы в один) - т е печатались последовательно несколько листов по ширине. . Сейчас уже энтузиазма на такое нет и псевдографики в 1251 тоже нет. (((( vbaxl10.chm не нашел ни у себя ни у заказчиков, но буду искать, как "перламутровые пуговицы". Или терпеливо ждать, когда какая-нибудь добрая душа пример модификации таблицы водровской вышлет.... (((

Dima: mshep пишет: vbaxl10.chm не нашел ни у себя ни у заказчиков лови http://my-files.ru/5xub16 mshep пишет: и псевдографики в 1251 тоже нет чеканул в FAR , все норм рисуется. скопировал в MS WORD установив в нем моноширинный шрифт (Lucida Console) тож норм :)

mshep: Ликуй народ: за вечер хоть добавление колонок методом перебора всех англ слов что знаю, нашел. Теперь пошло дело..... За chm спасибо. Я в старой программе формировал txt и вызывал на него word. Пользователи указывали кодировку Dos при преобразовании и читали там... Но рамки (псевдографику) - добавлял из программы!! Но собирать исходники *.prg, хранящиеся в разной кодировке Dos и Win - голова уже не выдержит..... ((((( Побьюсь еще с выводом в табл.Worda....

mshep: Dima пишет: лови http://my-files.ru/5xub16 А вот ввести пароль для зашифр.файла не удается дедушке.... (((

mshep: Dima пишет: лови http://my-files.ru/5xub16 Может, есть возможность на почту - mshep@i.ua и даже не заархивированный?

Dima: mshep Пароль mshep

mshep: Haz пишет: Андрей дело говорит - рисуй в Excel ( не показывая его на экране ), а потом просто копируй таблицу в Word. Сейчас тебе 4 действия нужны, потом формулы в ячейках захочешь и опять приплыли т.к. любимая подсказка как запись макроса не работает Да уж..... До конца буду биться - к репортам не приплывать... Пока некоторые формы сделал в Word, но больно трудоемко и не шустро работает, некоторые - тупо забрал из DOS своего переделав псевдографику на "|" да "-" и открываю в блокноте. Но уж больно не нарядно... (((( Есть уже позыв - разыграть старую свою сценку: Я раньше головн модули писал на VB6, а оттуда вызывал exeшники досовские от Clippera с псевдографикой и перенаправлял в Word чисто для открытия файла. Да не охота так уж возвращаться..... Или формировать листинг с псевдографикой досовской и открывать в блокноте с опред.шрифтом? Прикомпилировать стар.исходники неззя - они в досовской кодировке, менять надо не только коды символов псевдографики, но и все текст.поля, нереально. Можно ли как-то прилинковать старые клипперовские объектники, где *.prg и в них - текст.поля и псевдографика записаны в досовской кодировке, к модулю в MiniGui? Сил моральных нет самому попробовать, может, совет предварительно мудрый от кого получу?

Andrey: mshep пишет: Можно ли как-то прилинковать старые клипперовские объектники, где *.prg и в них - текст.поля и псевдографика записаны в досовской кодировке, к модулю в MiniGui? Сил моральных нет самому попробовать, может, совет предварительно мудрый от кого получу? Я бы не советовал. Переведи исходники в ANSI, для этого в Far 1.7 есть простая перекодировка файлов. А потом уже цепляй к МиниГуи. А в чем трудности перевода форм печати на Excel ? Пускай твои юзера привыкают и потом легче сопровождать такие программы.

Haz: mshep пишет: Да уж..... ты просто попробуй один простой отчет сделать в екселе, Потом выводы делать будешь. PS. Excel - уникальная программа , позволяет вывести отчет и с таблицами и с картинками и с графиками. при этом так же доступны формулы, макросы и пр. Из минусив - лицуха на ПО, можно заменить на опенофис ... но там танцы с макросами посложнее будут. Какая псевдографика из DOS ???? с ней геммороя на порядок больше.

mshep: Почему??? Почему в GetBox нет “On Enter” (а в Textbox есть)?? По совету доброго человека заполнение экранной формы сделал на GetBox (и действительно удобнее). Но добрые девушки, привыкшие работать в старой доброй dosовской программе, по привычке колотят значения в поля и жмут “Enter”. А у меня между Getbox кое-где разбросаны Button, которые открывают доп окна (не всегда нужные опытному пользователю). Т.е. нажимая в очередной раз по привычке “Enter” они попадают на Button, открывают доп.окна и бывают недовольны сиим. LostFocus здесь не играет – к нужным полям мышкой не всегда подобраться. Т е надо как-то обходить все “Button” (если ввод предыдущ.поля завершился по Enter). Возможно ли сие? Как получить имя (и тип ) текущ. Control на экранной форме? Следующего за ним? Как сформировать массив контроллов с их типами и порядковыми номерами по последовательности обработки на экране? Что-то типа “ _GetArrayOfAllControlsForForm() ” ? В примерах не нашел сего. Где еще поискать?

SergKis: mshep пишет:Т е надо как-то обходить все “Button” [pre2] #xcommand @ <row>,<col> BUTTONEX <name> ; [ <dummy1: OF, PARENT> <parent> ] ; [ CAPTION <caption> ] ; [ PICTURE <bitmap> ] ; [ ICON <icon> ] ; [ <vertical : VERTICAL> ] ; [ <dummy2: ACTION,ON CLICK,ONCLICK> <action> ] ; [ WIDTH <w> ] ; [ HEIGHT <h> ] ; [ FONT <font> ] ; [ SIZE <size> ] ; [ <bold : BOLD> ] ; [ <italic : ITALIC> ] ; [ <underline : UNDERLINE> ] ; [ <strikeout : STRIKEOUT> ] ; [ <lefttext : LEFTTEXT> ] ; [ <uptext : UPPERTEXT> ] ; [ <adjust : ADJUST> ] ; [ TOOLTIP <tooltip> ] ; [ BACKCOLOR <backcolor> ] ; [ FONTCOLOR <fontcolor> ] ; [ <nohotlight : NOHOTLIGHT> ] ; [ <flat: FLAT> ] ; [ <notrans: NOTRANSPARENT > ] ; [ <noxpstyle: NOXPSTYLE > ] ; [ <dummy3: ON GOTFOCUS,ON MOUSEHOVER> <gotfocus> ] ; [ <dummy4: ON LOSTFOCUS,ON MOUSELEAVE> <lostfocus> ] ; [ <handcursor: HANDCURSOR> ] ; [ <notabstop: NOTABSTOP> ] ; [ HELPID <helpid> ] ; [ <invisible: INVISIBLE> ] ; [ <default: DEFAULT> ] ; [/pre2] т.е. ваше "почему ?" адресуется к вам

SergKis: mshep пишет:Как получить имя (и тип ) текущ. Control на экранной форме? Samples\advanced\Tsb_seek_2 [pre2] *----------------------------------- Static Procedure BtnMsg() *----------------------------------- Local cEvent := _HMG_ThisEventType Local cForm := _HMG_ThisFormName Local nForm := _HMG_ThisFormIndex Local cType := _HMG_ThisType // "W" - window, "C" - control Local nIndex := _HMG_ThisIndex Local cName := _HMG_ThisControlName Local oBrw := oMyBase() Local cTx := "" cTx += '_HMG_ThisEventType ' + _HMG_ThisEventType + CRLF cTx += '_HMG_ThisFormName ' + _HMG_ThisFormName + CRLF cTx += '_HMG_ThisFormIndex ' + hb_ntos( _HMG_ThisFormIndex ) + CRLF cTx += '_HMG_ThisType ' + _HMG_ThisType + CRLF cTx += '_HMG_ThisControlName ' + _HMG_ThisControlName + CRLF cTx += '_HMG_ThisIndex ' + hb_ntos( _HMG_ThisIndex ) + CRLF cTx += 'TBrowse Name ' + oBrw:cControlName MsgBox(cTx, ProcName()) oBrw:SetFocus() Return [/pre2] еще hHandle := GetFocus() nIndex := ascan(_HMG_aControlHandles, hHandle) If nIndex > 0 cName := _HMG_aControlName[ nIndex ] EndIf еще в событиях контролов This.Name или _HMG_ThisControlName и т.д. надо смотреть исходники и *.ch файлы например h_init.prg - переменные базовые MiniGui как заполняются смотрите в h_<КонтролНаме>.prg для контролов изучайте

SergKis: mshep пишет:_GetArrayOfAllControlsForForm() ” ? В примерах не нашел сего. Где еще поискать? Far.exe каталог SAMPLES поиск Alt+F7 *.prg AllControls ==> даст результат

mshep: SergKis пишет: Far.exe каталог SAMPLES поиск Alt+F7 *.prg AllControls ==> даст результат Alt/F7 - слыхал про такое. Но вот "AllControls" - как определитьо что его искать? Знал бы - не спрашивал. ((((( По незнанию можно ведь и "ControlsAll" в поиск забить.... пасибки.

Haz: mshep пишет: Знал бы - не спрашивал. (((( Да это Сергей не в упрек сказал. Многие на форуме не один год и отвечать на одни и те-же вопросы поднадоело. http://clipper.borda.ru/?1-1-0-00000467-000-0-0 Ответы постепенно трансформируются в примеры и этих примеров не так уж много. Просто если интерес к теме форума есть, имеет смысл изучить все не спеша и вдумчиво. Уверяю там очень много интересных решений. Я на форуме давно, вроде все примеры изучил вдоль и поперек, но периодически лезу и нахожу в них что-то новое. В примерах Advanced\ControlPos почитай

SergKis: mshep для поиска, я вырвал контекст из вашего вопроса про GetArrayOfAllControlsForForm() ” ? В примерах не нашел сего. Где еще поискать?

SergKis: mshep возможно поможет в изучении utils\FuncList

Andrey: mshep пишет: Но бухгалтера - народ консервативный....... Я их успел к ворду прочно приручить. ((((( Как у тебя дела с переводом на Эксель ? Если не смог и сидишь на Ворде, то появились 2 новых примера работы с таблицами Ворда в библиотеке у Григория !

Dima: Andrey пишет: Как у тебя дела с переводом на Эксель ? Ну ты и археолог )) Пропиариться решил ? Выкладывай примеры в чистом (X)Harbour , при чем тут Минигуи.

Andrey: Dima пишет: Пропиариться решил ? Он про МиниГуи писал. Dima пишет: Выкладывай примеры в чистом (X)Harbour , при чем тут Минигуи. Переводом займёшься сам. Уже не хочется на чистом Харборе работать, привык уже к МиниГуи.



полная версия страницы