Типичные вопросы [программирование] |
На этой станице помещены ответы на вопросы, которые я сам мучительно (или легко) находил, я не думаю, что ответы исчерпывающие, и если Вы найдёте, что что-нибудь дисанирует с Вашими представлениями, давайте обсудим и найдём лучшие решения... Кроме того, часто ответ может зависеть от версии как OS так и Visual FoxPro, проверить всё на всех версиях и платформах для меня просто непосильно. Изначально этот список был исключительно для VFP 5.0, в то время как сейчас это только VFP 7.0/8.0, я мог где-нибудь и пропустить упоминание о версии, и если Вы найдёте несоответствия, сообщите пожалуйста мне. |
... DisplayStatus([Creating table СПРАВОЧНИК_МАРОК_РАЗЪЕДИНИТЕЛЕЙ...]) MakeTable________________________________() ...можно ли это как-то побороть?
Вопрос: Почему exe-модуль созданный в Visual FoxPro "не работает" при попытке запустить его на машине, где не установлена полная версия Visual FoxPro, а только RunTime-овская часть его?
Вопрос: Я экспериментально установил, какой набор файлов следует поместить в каталог вместе с exe-модулем, созданным в Visual FoxPro, чтобы он корректно работал на клиенте без установки RunTime-овской части Visual FoxPro. Правильно ли я сделал, не будет ли у меня проблем в будущем?
Вопрос: Я создаю приложение VFP 6.0 используя Application Wizard. Почему теперь, когда я открываю созданный таким образом проект приложения из проводника Windows у меня недоступны все Помощники (Wizard) и Построители (Builders)? Tо же самое я имею, если создам иконку приложения на DeskTop Windows (Shortcut) и открою своё приложение через неё.
Вопрос: Как "убить" Main Visual FoxPro Window? Создаю форму, устанавливаю ShowWindow=2 (As Top-Level Form)...
Вопрос: Как решать проблему хранения паролей для доступа к программе. Имеется ли простой способ сделать это? Для паролей я имею dbf-файл (пользователь, пароль). Хотел бы быть иметь возможность шифровать/расшифровать поле пароль.
Вопрос: Где найти информацию о проблемах 2000 года для FoxPro?
Вопрос: Как предотвратить запуск нескольких экземпляров VFP приложения на одном рабочем месте?
#DEFINE MY_APP_CAPTION "Application Window" #DEFINE SW_SHOWNOACTIVATE 4 DECLARE INTEGER SetForegroundWindow IN Win32API ; LONG hWnd DECLARE INTEGER IsIconic IN Win32API; LONG hWnd DECLARE LONG FindWindow IN Win32API ; STRING lpClassName; ,STRING lpWindowName DECLARE LONG ShowWindow IN Win32API ; LONG hwnd ; ,LONG nCmdShow LOCAL lhWnd lhWnd = FindWindow(NULL, MY_APP_CAPTION) IF lhWnd # 0 IF IsIconic(lhWnd) # 0 ShowWindow(lhWnd, SW_SHOWNOACTIVATE) ENDIF SetForegroundWindow(lhWnd) CLEAR DLLS QUIT ENDIF
Вопрос: Создаю VFP-приложение с одной формой (ShowWindow - 2 as Top-Level Form), делаю для него Setup, устанавливаю на клиенте Windows 95..., по завершению приложения задача виснит. Имеется ли способ избавиться от этого?
Вопрос: Как из VFP отследить завершение процесса?
Вопрос: Нужно из кода переключать раскладку клавиатуры: Rus/Lat. Можно ли это сделать?
#DEFINE hklRus "00000419" && - name from 0x0419 Russian #DEFINE hklEng "00000409" && - name from 0x0409 English (US) #define KLF_ACTIVATE 1 && 0x00000001 DECLARE LONG LoadKeyboardLayout IN WIN32API ; STRING pwszKLID, ; && input locale identifier INTEGER Flags && input locale identifier options LOCAL lnRetCode lnRetCode = LoadKeyboardLayout(hklRus, KLF_ACTIVATE) lnRetCode = LoadKeyboardLayout(hklEng, KLF_ACTIVATE) CLEAR DLLS
Вопрос: Как поместить картинку в VFP main window?
WITH _SCREEN .AddObject( "MyPic", "Image" ) .MyPic.Picture = HOME()+"Fox.bmp" .MyPic.Top = 10 .MyPic.Left = 10 .MyPic.Visible = .T. ENDWITH * *... а для удаления: * _screen.RemoveObject("MyPic")
Вопрос: Есть ли библиотека локализации для VFP6 ? Такая как в пятом vfp5rus.dll.
Вопрос: Возможно ли как-нибудь работать с Си-структурами, получаемыми через Win32Api функций в VFP?
Вопрос: У меня не закрывается приложение по [x]. Как это побороть?
PROCEDURE MyCleanUp ON SHUTDOWN ... IF VERSION(2) = 0 QUIT ENDIF
Вопрос: Использую HOME()+'tools/GenDbc/GenDbc.prg' для генерации dbc-файлов, однако получаю безобразие, подобное:
...
DisplayStatus([Creating table СПРАВОЧНИК_МАРОК_РАЗЪЕДИНИТЕЛЕЙ...])
MakeTable________________________________()
...
можно ли это как-то побороть?
PROCEDURE FixName(lcProcName) lcProcName=ALLTRIM(lcProcName) cbadchars = '/,-=:;!@#$%&*.<>()?[]'+; '+'+CHR(34)+CHR(39)+" " lcProcName = CHRTRANC(lcProcName,cbadchars ,REPL('_',LEN(cbadchars))) RETURN lcProcName ENDPROC
Вопрос: Попытка воспользоваться решением Q194702 "HOWTO: Locate Windows Special Folder Locations" из MSDN ни к чему не привела. Имеется ли альтернативное решение?
o = CreateObject('wscript.shell') for i = 1 to 17 ? o.SpecialFolders(i) next
Вопрос: Имеется ли возможность перехватить события VFP main window (_SCREEN) из своей программы?
* ScreenMethods.PRG * * Author: Fred Taylor - 4/10/2001 * * Use the following to modify _SCREEN methods: * * For VFP6 & 7: * * _SCREEN.NewObject("oSH","ScreenHook","screenmethods.prg") * * For VFP3 & 5: * * SET PROCEDURE TO screenmethods ADDITIVE * _SCREEN.AddObject("oSH","ScreenHook") * * Any of the main VFP screen methods can be hooked into in this manner. * DEFINE CLASS ScreenHook AS CUSTOM oScr = _SCREEN PROCEDURE oScr.Resize() * * Code to handle the main VFP screen being resized * WAIT WINDOW NOWAIT TRANSFORM(this.Width)+" "+TRANSFORM(this.Height) ENDPROC PROCEDURE oScr.RightClick * * Code to do a "shortcut" menu on main VFP screen RightClick * DO testmenu.mpr ENDPROC * * Custom methods work, too. * PROCEDURE oScr.MyMethod wait window "my method fired!" ENDPROC ENDDEFINEОбратите внимание, что в последнем случае ряд событий недоступно, в частности QueryUnload()
Вопрос: Как определить високосный год?
Вопрос: Как создать setup VFP-приложения в версии 7.0 и выше? Не могу найти пункт Tools/Wizards/Setup