Автор | Сообщение |
|
| |
Пост N: 67
Зарегистрирован: 05.10.06
|
|
Отправлено: 30.11.14 11:22. Заголовок: Перевожу Clipper на консольный Харбор
Добрый день, уважаемое сообщество! Перехожу на Харбор, собрал программу, начинаю бороть ошибки несовместимости кода, по мере появления вопросов надеюсь на скорую помощь. Заранее всем участникам огромное спасибо!
|
|
|
Ответов - 245
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
All
[только новые]
|
|
|
| |
Пост N: 240
Зарегистрирован: 05.10.06
|
|
Отправлено: 24.10.19 09:20. Заголовок: alexmar пишет: memo..
alexmar пишет: цитата: | memo полями в формате fpt, которые ntx не поддерживают |
| конвертни в dbt
|
|
|
|
| |
Пост N: 74
Зарегистрирован: 25.07.06
|
|
Отправлено: 24.10.19 12:54. Заголовок: 2MIKHAIL Я в свое вр..
2 MIKHAIL Я в свое время спецом конвертнул их в fpt из-за постоянно возникающих ошибок переполнения счетчика количества блоков Dima пишет: цитата: | ... тянем Advantage Client Engine Advantage Clipper RDD или более раннюю версию |
|
а Advantage Database Server разве не нужен?
|
|
|
|
| |
Пост N: 7131
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.10.19 13:36. Заголовок: alexmar пишет: Adv..
alexmar пишет: цитата: | Advantage Database Server разве не нужен |
| можно локальный юзать ну если задача не сетевая а если сетевая то да нужен и если религия позволяет можно и пиратский качнуть PS я тупанул , для локального тож надо качнуть Advantage Database Server
|
|
|
|
| |
Пост N: 76
Зарегистрирован: 25.07.06
|
|
Отправлено: 12.02.21 16:39. Заголовок: Такой вопрос. Имеетс..
Такой вопрос. Имеется dbf файл с мемо файлом. Как определить с каким типом файла dbt или fpt открывается dbf файл, если в папке, где лежит dbf, лежат оба мемо-файла?
|
|
|
|
| Администратор
|
Пост N: 3998
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.02.21 17:57. Заголовок: Тип мемо однозначно ..
Тип мемо однозначно определяется по сигнатуре, 1-му байту dbf Если там 0x83 - то dbt, если 0xF5 или 0x30 - fpt
|
|
|
|
| постоянный участник
|
Пост N: 3562
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.02.21 18:25. Заголовок: Pasha пишет Тип мемо..
Pasha пишет цитата: | Тип мемо однозначно определяется по сигнатуре |
| После USE можно и так ? dbinfo(DBI_MEMOEXT)
|
|
|
|
| |
Пост N: 77
Зарегистрирован: 25.07.06
|
|
Отправлено: 10.03.21 10:01. Заголовок: Привет всем Есть иде..
Привет всем Есть идеи как организовать многоязыковую поддержку двуязычного интерфейса в консольном харборе? Программы построены на вызовах из меню. Меню динамическое, основанное на dbf-файле. Т.е. из самой программы можно изменять меню, подключая или отключая функционал. По поводу меню у меня 2 варианта: 1. Дублирование полей, привязанных к языку 2. Добавление в dbf файл меню мемо полей, содержащих локализованные названия и т.д Пока не решил какой вариант лучше. Может есть еще какие-то варианты? Браузер и средства для редактирования записей реализованы через текстовые вспомогательные файлы, в которых описаны названия колонок и полей в режиме редактирования. Т.е. для работы с браузером достаточно перевести эти файлы. Основной вопрос как быть с диалоговыми окнами. Они все реализованы через одну и ту же функцию. Может кто-то занимался подобной задачей в консольном харборе или клиппере?
|
|
|
|
| постоянный участник
|
Пост N: 3594
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.03.21 10:16. Заголовок: alexmar пишет как ор..
alexmar пишет цитата: | как организовать многоязыковую поддержку двуязычного интерфейса в консольном харборе? |
| Посмотрите исходники hbedit http://www.kresin.ru/hbedit.html
|
|
|
|
| постоянный участник
|
Пост N: 1596
Зарегистрирован: 09.10.06
|
|
Отправлено: 10.03.21 11:00. Заголовок: alexmar пишет: Осно..
alexmar пишет: цитата: | Основной вопрос как быть с диалоговыми окнами. Они все реализованы через одну и ту же функцию. Может кто-то занимался подобной задачей в консольном харборе или клиппере? |
| Harbour поддерживает i18n "из коробки". Хорошим примером могут могут послужить исходники hbmk2 Поищите на этом форуме, я что-то также писал на эту тему. Harbour & i18n в примерах
|
|
|
|
| постоянный участник
|
Пост N: 3595
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.03.21 12:15. Заголовок: Кусочки текстов рабо..
Кусочки текстов работы с code page в hbedit (он у меня под рукой, как раб инструмент) Делаете подключение нужных ... REQUEST HB_CODEPAGE_ROISO, HB_CODEPAGE_ROWIN, HB_CODEPAGE_RU1251, HB_CODEPAGE_RU866, HB_CODEPAGE_RUISO ... REQUEST HB_CODEPAGE_TRWIN, HB_CODEPAGE_UA1125, HB_CODEPAGE_UA1251, HB_CODEPAGE_UA866, HB_CODEPAGE_UAKOI8 REQUEST HB_CODEPAGE_UTF8 используете ... x1 := Int( (MaxCol()-nLen)/2 ) bufsc := Savescreen( y1, x1, y1+Len(aText)+3, x1+nLen ) oldc := SetColor( TEdit():cColorWR ) cp := hb_cdpSelect( "RU866" ) @ y1, x1, y1+Len(aText)+3, x1+nLen BOX "┌─┐│┘─└│ " hb_cdpSelect( cp ) FOR i := 1 TO Len( aText ) @ y1+i, x1 + 2 SAY aText NEXT SetColor( oldc ) i := edi_Read( aGets ) Restscreen( y1, x1, y1+Len(aText)+3, x1+nLen, bufsc ) ... hb_cdpSelect( "RU866" ) @ 09, 10, 15, 72 BOX "┌─┐│┘─└│ " @ 13, 20 SAY "├" @ 13, 60 SAY "┤" @ 13, 11 TO 13, 71 hb_cdpSelect( oEdit:cp ) @ 10, 12 SAY "Open file" @ 12, 12 SAY "[ ] ReadOnly" @ 12, 27 SAY "[ ] In a current window" IF !Empty( oEdit:cFileName ) aGets[5,3] := 1 @ 12, 55 SAY "[ ] Diff" ENDIF ... hb_cdpSelect( "RU866" ) @ 09, 20, 16, 60 BOX "┌─┐│┘─└│ " @ 14, 20 SAY "├" @ 14, 60 SAY "┤" @ 14, 21 TO 14, 59 hb_cdpSelect( oEdit:cp ) @ 10,22 SAY "Search for" @ 12, 22 SAY "[ ] Case sensitive" @ 12, 42 SAY "[ ] Backward" @ 13, 22 SAY "[ ] Whole word" @ 13, 42 SAY "[ ] Regular expr." ... oldc := SetColor( cColor ) cp := hb_cdpSelect( "RU866" ) aText := hb_aTokens( cText, ";" ) FOR i := 1 TO Len( aText ) nLen := Max( nLen, Len( aText ) ) NEXT nLen += 4 x1 := Int( (MaxCol()-nLen)/2 ) x2 := x1+nLen y2 := y1+Len(aText)+1 cBuffScr := SaveScreen( y1, x1, y2, x2 ) @ y1, x1, y2, x2 BOX "┌─┐│┘─└│ " hb_cdpSelect( cp ) FOR i := 1 TO Len( aText ) @ y1+i, x1 + 2 SAY aText NEXT SetColor( oldc ) ...
|
|
|
|
| постоянный участник
|
Пост N: 3596
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.03.21 12:17. Заголовок: УПС. В текстах было ..
УПС. В текстах было [ i ] без пробелов, исказилось, но суть понятна должна быть. Поиск RU866 в *.prg hbedit все выдаст
|
|
|
|
|
| постоянный участник
|
Пост N: 3597
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.03.21 12:29. Заголовок: PS С dbf, если все п..
PS С dbf, если все поля в нем в одной кодировке, при открытии указывайте CP, тогда в установленную кодировку hb_cdpSelect( cp ) будет переводить hb, если поля в разных кодировках, не указывайте CP при открытии, но уст. этот CP (программы) при чтении\записи. Др. языки из полей читайте в переменные и при выводе ставьте нужный CP с возвратом потом
|
|
|
|
| |
Пост N: 78
Зарегистрирован: 25.07.06
|
|
Отправлено: 10.03.21 13:42. Заголовок: Всем огромное спасиб..
Всем огромное спасибо. Пошел изучать матчасть Появятся вопросы, буду здесь отписываться
|
|
|
|
| |
Пост N: 79
Зарегистрирован: 25.07.06
|
|
Отправлено: 11.03.21 01:39. Заголовок: Петр пишет: Harbour..
Петр пишет: цитата: | Harbour поддерживает i18n "из коробки". |
|
Файлик почитал. А где можно про эти функции поподробнее почитать? hb_i18n_gettext hb_i18n_ngettext, hb_i18n_gettext_strict, hb_i18n_ngettext_strict etc.
|
|
|
|
| |
Пост N: 7286
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.03.21 08:36. Заголовок: Может тут http://hmg..
|
|
|
|
| |
Пост N: 80
Зарегистрирован: 25.07.06
|
|
Отправлено: 11.03.21 08:38. Заголовок: спасибо :sm36:..
спасибо
|
|
|
|
| постоянный участник
|
Пост N: 3598
Зарегистрирован: 17.02.12
|
|
Отправлено: 11.03.21 08:58. Заголовок: alexmar пишет А где ..
alexmar пишет цитата: | А где можно про эти функции поподробнее почитать? hb_i18n_gettext hb_i18n_ngettext, hb_i18n_gettext_strict, hb_i18n_ngettext_strict etc. |
| в исходниках rtl\hbi18n?.* Но по мне это не совсем удобная штука, т.к. варианты текстов (окончания) могут форм. динамически, часто тексты привязаны к окнам и таблицам и выбранное кучей в .pot файлы - офигенная работа для разбора всего. Т.к. мы страдаем с языками со времен clipper и похожую схему выборки текстов для перевода делали еще в 90х ... Удобнее оказалось сразу делать текст в ini.RU, ini.LV, ini.EN с секциями, которые могут опр. использование в конкретном prg или окне + часто клиент не согласен с переводом того или др. текста. Имеем перекрывающие ini в подкаталоге пользователя, где только тексты от клиента (даем возможность их менять). Тексты не читаем в память (массивы или hash), достаются они ф-ей сразу из файла, т.к. в win буферизация, то все достается мгновенно. Все ini utf8 с BOM, если у ini нет bom - это старая версия и сразу переделываем в вариант с BOM. Пример ini _Agent.lv (базовый вариант в ресурсах программы) Скрытый текст
v.m. = 0.0063 [DOK] DokumRet = Pavadzīme Nr. SumNoPvn = Kopā bez PVN EUR SumArpvn = Kopā ar PVN EUR PvnProc = % PVN [KLI] Kli = Nosūtītājs Sanem = Saņēmējs Bank = Banka BankKod = Bankas kods BankScet = Bankas konts AdrJur = Juridiskā adrese AdrFiz = Preču izsniegšanas vieta: AdrMst = Preču saņemšanas vieta: Telefon = Tālruņa nr. RegNr = Reģistrācijas Nr. PvnNr = PVN reģistrācijas Nr. [RET] Nr = Nr. p.k. Ean = Svītru kods Name = Nosaukums KolVo = Daudz. EdIzm = Mērv. Cena = Vienības cena Sale = Atl. % Summa = Summa [TEXT] Menu10 = DOKUMENTI Menu11 = Zakazi ot agentov Menu20 = LOAD Menu21 = Load Excel ( xls ) files NewCopy = New as ... New = New Del = Delete Edit = Edit Metka = Zīme MetLine = Atzīmēt rindu MetAll = Atzīmēt visas rindas MetAllNo = Noņemiet atzīmi no visām rindām MsgCopy = Add new record from selected record MsgNew = Apend new record MsgDel = Dzēst izvēlēto rindu ; Delete selected record MsgDelAll = Dzēst visas rindas ; Delete ALL records MsgEdit = Edit selected record MsgSel = Selected record Title = Materiāli Vozvrat = Atgriešanās Refund = Atgriešanās Art = Article ; Raksts Cancel = Atcelt Anulet = Anulēt Info = INFO Error = ERROR Load = Load Ili = or g = .g. Line = Līnijas Stroki = Rindās Print = Drukāt Prnt = Drukāšana Continue = Turpināt Material = Materiāli MatName = Mat. nosaukums NotInf = Informācijas nav ! NotDok = Nav dokuments ! NotCena = Nav cenas NotMCen = Materiālu sarakstā nav cenas RedLine = Izvēlētās līnijas korekcija Data = Datums Ddat = Datums Edi = Mērv. Enter = Rindu izvēle Exit = Izeja ExitPrg = Programmas beigas ExitWnd = Izeja no saraksta Spisok = Sarakst Find = Meklēt Find1 = Meklēt no šķirotā saraksta Find2 = Meklēt pa grupas kodiem Find_Mt = Mēklet materiālos Found = found ! GoEnd = Uz beigām GoTom = Uz beigām GoTop = Sākumā Gru = Grupas Grupa = Grupas KlNum1 = Daudzums Kod = Kods Kods = Šķirot pa kodiem Ucen = Cenu uzskaite Rcen = Pārdošanas cena Scen = Kataloga cena Ncen = Jauna cena Mcen = Cena Mcnp = Pl.cena Medi = Mērv. Menshe = Mazāk, vienādi Met = Zīme Met1 = Zīme Met2 = Uzstādīt zīmes Met3 = Noņemt zīmes Ean = Svītru kods CenaR = Vienības cena CenaS = Norakstīšanas cena Mkol = Daudzums Kolvo = daudz. Kol. = Daudz. EdIzm = Mērv. Month1 = Mēnesis Month2 = Nomainīt mēnesi Msma = Atlaide Msmp = Pl.summa Msum = Summa Nam = Nosaukums Name = Šķirot pa nosaukumiem NewYear = Jauns gads Next = Nāk.rinda Next_ = Nākošā rinda NmName = Nosaukums NmNote = Piezīmes Nos = Nosaukums NotField = FieldName not found in table NotFound = File not found ! NotUsed = File not used ! NotKod = Kods nav atrasts ! NotPprNr = Nav PPR numeru ! Note = Piezīmes Nr. = Nr. R_1 = Kods R_2 = Nosaukums Sort = Šķirot Sort1 = Šķirot Sort2 = Šķirot pa kodiem / pa nosaukumiem SortPakape = Šķirot pēc pakāpe SortNodala = Šķirot pēc nodaļa SortKods = Šķirot pēc koda Vibor = Izvēle Viss = Viss saraksts Itogo = Kopā Pavisam = Pavisam Vsego = Pavisam: Kopa = Kopā izsniegts KopaItg = Pavisam apmaksai ScetNr = RĒĶINS Nr. PavadNr = PAVADZĪME Nr. Pavadz = Pavadzīme Nr. Kravas = Kravas pārvadātājs: AM_Reg = A/M reg. Nr. : Vodila = Vadītājs: SpecAtz1 = Apmaksa līdz SpecAtz3 = (preču piegāde) SamaksatD = Ar pārskaitījumu Samaksat = Samaksas veids un kārtība: SpecAtz = Speciālas atzīmes : SpecDop = Pasūtījuma Nr. : SaimnDA = Saimnieciskās darbības apraksts: PrecuPar = Preču piegāde (pārdošana) PavisApm = ```Pavisam apmaksai: ApmVard = `````( ar vārdiem ): VidalKto = Izsniedza : VidalDat = Datums : VidalGod = Piegādes datums: 201__.g.__________________ PriemKto = Pieņēma : ________________________ PriemPar = Paraksts : ________________________ PriemDat = Datums : ________________________ ScetKto1 = Rēķinu izsniedza : ScetKto2 = ```````````````````________________________ ____________________ ____________ ScetKto3 = ````````````````````````````amats vārds, uzvārds paraksts Kto1 = Amats Kto2 = Vārds, uzvārds Kto3 = Paraksts Wait = ... G A I D I E T ... Zime = Z. Save = Saglabāt SaveInf = Informācija jau ir saglabāta SaveNo = Dokuments nav saglabāts NoLock = Informācija nav saglabāts BarKod = BAR-CODE h1 = Nr. h2 = EAN h3 = Artikuls, nosaukums h4 = Daudz. h5 = Krāsa h6 = Informācija h7 = Cena Order = Pasūtīt Orders = Pasūtījumi OrderNr = Pasūtījuma Nr. OrderData = Pasūtījuma datumi OrderLine = Pasūtījuma līnijas OrdRet = Pieņemt dokum. Ordbtn = Orders ; Pasūtījumi OrdLst = Pasūtījumu saraksts Customer = Klients CustKli = Nosūtītājs Agenti = Aģenti Agent = Aģents Price = Cenrādis PriceCen = Cenrādis cena ; Cena no cenrāža PriceList = Preču cenu saraksts PriceMat = Materiālu cenrādis Dokum = Dokumenti Dok.Ser = Sēriju Dok.Dat = Dok. datums Dok.Nr = Dok. Nr. DokNr = Dokum. Nr DokNr. = Dokumenta Nr. DokDat = Dokumenta datums DokPrn = Dokumenta drukāšana Oplata = Apm. (dienas) gr1 = Kods gr2 = Nosaukums gr3 = Mērv. gr4 = Daudz. gr5 = Uzsk. cena gr6 = Uzsk. summa gr7 = Datums gr8 = Dokum.Nr gr9 = Debets gr10 = Krēdits gr11 = EAN gl5 = Ligum. cena gl6 = Ligum. summa gl7 = Starpiba gl8 = Koef. AdrF = Faktiskā adrese AdrFT = __________tālr.,fakss AdrJ = Juridiskā adrese AdrJT = __________tālr.,fakss DirDnm = Vadītāja amata nosaukums DirFio = Vadītāja uzvārds Bank = Bank Rscet = Nor.konta Nr. Kscet = Kor.konta Nr. Banka = Banka BankKod = Bankas kods BankScet = Bankas konts EurBank = EUR.BANK EurIban = EUR.IBAN EurSwift = EUR.SWIFT GlvDnm = Galv.grāmatveža amata nosaukums GlvFio = Galv.grāmatveža uzvārds IspAmats = Izpildvaras amats IspDnm = Izpildītāja amata nosaukums IspDnmEN = Post of performer IspDnmRU = Должность исполнителя IspFio = Izpildītāia uzvārds IspFioEN = Name, surname IspFioRU = Ф. И. О. исполнителя KodBil = Kods SIA Bilance NameK = Īis nosaukums NameP = Pilns nosaukums NodIn = Nodokļu inspekcija NodNr = Nodokļu maksātāja kods Note = Piezīmes PamV = Pamatdarbibas veids ParIn = Pārvaldes institūcija PvnNr = PVN maks. Nr. RegNr = Reģistrācijas Nr. PvnNr2 = PVN reģistrācijas Nr. Nosut = Nosūtītājs Sanem = Saņēmējs AdrJur = Jurid./dzīvesviet. adrese AdrFiz = Nosūtīšanas vietas adrese Telef = Tālr. BankNm = Kredītiestādes nosaukums BankKd = Kredītiestādes kods BankRs = Nor.konta Nr. M01 = Janvāris M02 = Februāris M03 = Marts M04 = Aprīlis M05 = Maijs M06 = Jūnijs M07 = Jūlijs M08 = Augusts M09 = Septembri M10 = Oktobris M11 = Novembris M12 = Decembris Prixod = Ieņēmumi Pereme = Pārvietoties Realiz = Realizācija Vibiti = Norakstīšana Dok_1 = Ieņēmumi no piegādātāja Dok_2 = Iekšējais apgrozījums Dok_3 = Realizācija Dok_4 = Norakstīšana 1_Dok = Dokuments 1_Skl = Noliktava 1_Kli = Piegādātāji 1_R_4 = Datums 1_R_50 = Sērija 1_R_5 = Numurs 1_R_6 = Summa 1_R_22 = Summa\valūtā 1_R_16 = Valūta\kods 1_R_3 = Cehs\Iecirknis 1_R_7 = Kods 1_R_19 = Nosaukums 1_R_19A = Reģ. Nr. UK\PVN Nr. / PK 1_R_200 = Grupas 1_R_92 = Dok.\tips 1_R_93 = Tipa\Nosauk. D3_Dok. = Dokum. D3_Dok = Dokuments D3_Skl = Noliktava D3_Kli = Saņēmējs D3_Cehs = No ceha D3_Rpt1 = Realizācija pēc saņēmēji D3_Rpt2 = Realizācija pēc saņēmēju grupām D3_Rpt3 = Realizācija par datumu D3_Rpt4 = Realizācija par datumu pēc saņēmēja D3_Rpt5 = Realizācija par datumu pēc saņēmēju grupām D3_R_20 = Līgums D3_R_4 = Datums D3_R_50 = Sērija D3_R_5 = Numurs D3_R_6 = Summa D3_R_11 = Daudzums D3_R_26 = Cena D3_R_27 = Summa D3_R_22 = Summa\valūtā D3_R_16 = Valūta\kods D3_R_3 = Cehs\Iecirknis D3_R_7 = Kods D3_MA_1 = Kods D3_MA_2 = Nosaukums D3_MA_3 = Mērv. D3_MA_4 = E A N D3_MA_5 = Artikuls D3_R_19 = Nosaukums D3_R_19A = Reģ. Nr. UK\PVN Nr. / PK D3_R_50A = Orders D3_R_51 = Orders D3_R_92 = Dok.\tips D3_R_93 = Tipa\Nosauk. D3_R_200 = Grupas Gru_All = Pilns saraksts grupu Kli_All = Pilns saraksts saņēmēju Kli_U03 = Piegādātāji Kli_U04 = Saņēmēji Kli_Adr = Adrese Kli_R_1 = Kods Kli_R_2 = Nosaukums Kli_R_2A = Pilns nosaukums Kli_R_3 = Juridiskā adrese Kli_R_3A = Kli_R_4 = Nod. m. kods Kli_R_5 = Rēg.NR. UK Kli_R_10 = Spec. informācīja Kli_R_11A = Valsts Kli_R_11B = Tips Kli_R_12B = Piezīmes Kli_R_13 = Grupas Kli_R_34 = Faktiskā adrese Kli_R_35 = Kli_R_40 = Cenrādis Kli_R_41 = Apmaksa ( dienas ) Kli_R_43 = Aģents Kli_R_31 = LV Adrese Kli_R_32 = RU Адрес Kli_R_33 = EN Adress Kli_R_51 = LV Nosaukums Kli_R_52 = RU Наименование Kli_R_53 = EN Name Kli_R_54 = Agreement
| в коде текст достается ф-ей _gTxt("ключ", ...) в параметрах можно указать варианты окончания и секцию подмены от установл. default
|
|
|
|
| Администратор
|
Пост N: 4009
Зарегистрирован: 23.05.05
|
|
Отправлено: 11.03.21 09:43. Заголовок: SergKis пишет: Т.к...
SergKis пишет: цитата: | Т.к. мы страдаем с языками со времен clipper |
| Хотя наши страдания с языками уже закончились, вспоминаю времена, когда эти страдания еще были... Возвращаясь к исходному вопросу. Проще всего идти по п.1: добавить в dbf локализованные поля: Name/NameU. Я так и делал
|
|
|
|
| |
Пост N: 81
Зарегистрирован: 25.07.06
|
|
Отправлено: 11.03.21 09:49. Заголовок: alexmar пишет: Т.к...
SergKis пишет: цитата: | Т.к. мы страдаем с языками со времен clipper и похожую схему выборки текстов для перевода делали еще в 90х ... Удобнее оказалось сразу делать текст в ini.RU, ini.LV, ini.EN с секциями |
| Т.е вариант локализации с ini-файлами использовали еще в Clipper? А вместо _gTxt() что использовали?
|
|
|
|
| постоянный участник
|
Пост N: 3599
Зарегистрирован: 17.02.12
|
|
Отправлено: 11.03.21 10:15. Заголовок: alexmar пишет А вмес..
alexmar пишет цитата: | А вместо _gTxt() что использовали? |
| Т.к. hash не было был dbf с полями EN, RU, LV и index unique, переводили в dbf _gTxt() не было, выбирали из prg строки в "", '' потом меняли прямо в prg, но таких prg было мало, т.к. была своя Ide с базой txt формата, где хранились все окна с координатами, типа (упрощенно схема) Func SvWnd(y,x,w,h) ; Retu hb_valtoexp({ y,x,w,h, savescreen(y,x,w,h), <тип данных> }) // <тип данных> : Func RsWnd(w) ; Local a := &(w) ;Retu restscreen(a[1],a[2],a[3],a[4], a[5])) // панель, текст, структура, dbf, ... ф-ии на C, доставали окна, тексты с окон. панелей. В ide (уже на S87 была) можно было рисовать окна, привязывать к Say,Get,, макросы,своей achioce и tbrowse, так вот файлы были отд. для каждого языка и из dbf процедурой переносились в нужный и от ENV установки подкл. тот или иной язык.
|
|
|
Ответов - 245
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
All
[только новые]
|
|