powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Общие принципы построения приложения в FoxPro
25 сообщений из 424, страница 3 из 17
Общие принципы построения приложения в FoxPro
    #38129094
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWist

Что-то ваш ГУРУ притих, а то все молнии метал - и про HELP, и про DOS, чуть не весь алфавит перебрал.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38129106
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы просто все запаслись попкорном - и...
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38129197
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12,

Да-да, продолжайте. Может, в конце более понятно будет.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38129264
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNGsg12,

Да-да, продолжайте. Может, в конце более понятно будет.

Вопрос этот нелегок, так как давят годами накопленные стереотипы.
Попробуем зайти с другого бока.

ДимаТ, в соседней теме вы вбросили что-то про FSO. Покажите, как вы его вписываете в свои программы.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38129593
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12ДимаТ, в соседней теме вы вбросили что-то про FSO. Покажите, как вы его вписываете в свои программы.
Поищи по форуму. Показывал где-то. Правда боюсь тебя мой код сильно расстроит. Я FSO в функцию обернул, на вход маска с путем, на выходе курсор со списком файлов подпадающих под маску.

Но как я понял (по твоим репликам выше) тебе не надо вдумываться и вникать суть написанного, достаточно просто выдернуть строку из моего поста и развернуть его критику на полстраницы. Поэтому ищи по форуму, дергай сюда и критикуй. Я не против.
А я как все ... с попкорном посижу :)
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38129613
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуем разобраться сами. Речь ведь не идет о какой-то отдельно взятой крутой функции, словно о какой-то невидали.

В FSO, кроме возможности непосредственной работы с самим объектом FSO, есть еще коллекции Drives,Folders,Files и объекты Drive,Folder,File,TextStream со своими свойствами и методами.
В основном функции работы с ними сами по себе несложные, хелп по ним доступен.
Чтобы не заморачиваться на названиях, для краткости пронумеруем их условно так: Процедура 1,2,3... и т.д.
У большинства наберется немало программ, где функции FSO могут применены, порой они могут оказаться весьма полезны.

Работа с ними происходит примерно так:
К примеру, в программе 1 используются Процедуры 1,7,22,
В программе 2 - Процедуры 3 и 15,
В 3 - Процедуры 1,2,11,17
И т.д.

Т.е. каждый программист в каждый программе каждый раз решает заново все вопросы работы с этими функциями.
Чем иной раз круто гордится.
Или ищет примеры решений. И не всегда всегда вопрос решается удачно.

Но ведь есть и другой путь.
В глобальном объекте собрать все обертки функций FSO в одну процедуру через то же ненавистное DO CASE.
Процедура будет большая, но вполне терпимая. Функции отлаживаются один раз.
А в приложениях пишется только их вызов с соответствующими параметрами.
И тогда FSO станет "карманным" объектом VFP.
А ведь есть WSH, WMI, Winapi ...
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38129691
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажется кое-кто получил задание - написать курсовик на тему "хоть_какая_нибудь_обертка_хоть_над_чем_нибудь"! И теперь хитростью пытается заставить уважаемых людей сделать за него эту задачу!!
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38129699
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redrik

Давненько вас не было ...

Насколько помнится, вы клятвенно клялись не троллить больше со мной.
Понимаю вас, в этот раз решили узнать, что такое "обертка", а то помнится, при слове "классы" у вас округлились от удивления глаза.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38130077
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, sg12!
Клятву я не нарушил - я лично к Вам не обращался, а ляпнуть чего-нибудь - святое право каждого!
Просто я делаю жалкие попытки привлечь остальных к своей, данной Вам, клятве!

P.S. Глаза округлятся у кого-хошь! Это ж надо - молиться на "классы", а агитировать за процедуру с миллионом CASE'ов!!! Хотя, конечно, новичку простительно - уж больно хочется получить нечто абсолютно универсальное: скачал и думать не надо!
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38130130
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redrik

Я уже думал, что в прошлый раз вы все свои восклицательные знаки израсходовали.

RS. Сколько новостей порой узнаешь на форуме.
Очередной хит - "CASE несовместим с классами!".
Это надо же - увидав новое незнакомое слово, человек полночи ДУМАЛ, чтобы ЛЯПНУТЬ такое.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38130254
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12

Если Вы пытаетесь доказать, что создание неких "оберток" всегда и для всего - есть светлое будущее программирования, то так и надо было называть тему

Однако пока Вы так и не привели ни одного сколько-нибудь убедительного примера правильности Вашего вывода. Почему-то "обертки" оказываются более ограниченными в применении, чем прямое использование команд и функций.

Каждый, абсолютно каждый, без исключения (!), новичек в программировании начинает с того, что пытается создать нечто универсальное. На все случаи жизни. Пока ни у кого не получилось. Все время что-то "выпирает" и "не влезает" в эту самую "универсальную штуку". Как правило, после длительных попыток приходят к разумному компромису. Да, "универсальное", но при выполнении ряда дополнительных условий и ограничений.

PS: Ваша идея насчет глобальной процедуры с DO CASE для выбора принципиально разных операций - мягко говоря, не разумная. Даже в рамках процедурного программирования, не говоря про ООП. Это просто лишний посредник.

DO CASE используется при выборе однотипных операций. Например, разных алгоритмов расчета. Но использовать DO CASE для анализа того, что именно будем делать (добавить/удалить) - бессмысленно. Мы уже ДО вызова DO CASE знаем это. Зачем же "переспрашивать"?
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38130496
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМЗачем же "переспрашивать"?Чтобы вместо add() или remove() писать mycoolproc('add') или mycoolproc('remove'), это же очевидно
PS. Прекратите уже его кормить.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38131221
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ

Тема названа так, как вы хотели. Это ВАШ термин и не надо придумывать новые термины.

Об обертках, на последнем примере о FSO. Вы еще с тех старых времен хорошо знакомы с циклом статей Ю.Шутейко. Покажите реализацию этих функций. Всех. И не так, как любят ГУРУ: "Ищи!", а так: "Коды в студию, пожалуйста".

На чем основано ваше утверждения про DO CASE, да еще с приплетением не к месту красивых бантиков типа "процедурное программирование,ООП"?
К примеру, вот цитата из вашей статьи:
"Проблематично написать парные процедуры загрузки-выгрузки, если они требуют некоторого "внешнего" по отношению к этим процедурам хранилища данных. Например, восстановление исходных настроек среды FoxPro требует где-то сохранить эти самые настройки."
Чуть выше я показал, что таких проблем нет. Чтобы вы и этот вопрос не заболтали - выложьте свой учебный пример.

Ваше утверждение об однотипности операций с DO CASE вообще глупость.
Вот краткий пример:
WITH объект
DO CASE
CASE !_SCREEN.Visible
MESSAGEBOX(2*2)
CASE tcCase == 'Свойство1'
RETURN .свойство1
CASE LEFT(tcCase,5) == 'Метод'
.метод()
ENDCASE
ENDWITH
Этот прием позволяет в одной процедуре компактно собрать необходимое для работы с конкретным объектом, а не расписывать для этого целые классы.

Об универсальности - непонятно вообще, что вы имееете ввиду. У вас какие-то абстрактные рассуждения, о чем-то своем, наболевшем.
К примеру, если я заготовлю заранее парные кнопки "OK и Отмена", то их нельзя будет применять по вашей теории универсальности? А если покнопочно рисовать их в каждой форме приложения, то пожалуйста.

Вы наизусть выучили HELP к фоксу, все его команды и функции, но плохо изучили сам девятый VFP - в нем почти все МОЖНО И НУЖНО выносить в универсальные базовые классы.
А в приложениях оставлять только специфику, для каждого приложения она своя.
VFP9 так заточен и если у вас это не получилось, отсюда не следует, что это плохо.

В VFP9 имеется свой механизм работы с проектами, причем довольно мощный. Убедиться в этом может каждый, запустив учебный проект.
Вы в свое время перепутали понятия механизм и его реализация. Сам механизм встроен в VFP, а его реализация выполнена в директориях FFC и Wizards. Причем очень плохо, да и устарело.
Смените реализацию на свою и в вашем распоряжении окажется этот мощный механизм для работы с приложениями, позволяющий их создавать заново или переделывать старые.
И еще использовать кучи готовых решений, которые лежат мертвым грузом по той простой причине, что их некуда внедрять.

Но спасовав однажды перед этим вопросом, вы уже восемь лет продолжаете проповедовать идеологию, что в VFP9 надо писать как в VFP3-VFP5, приводя в качестве образца Tastrade.
Когда все, что можно и что нельзя, делается в приложениях. И у каждого свой паровоз, каждый изворачивается как может.
На чем основана эта ваша уверенность, непонятно.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38131252
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, а Вы можете хотя бы одну тему довести до логического конца? Без "потока сознания"? Или Вам главное просто поболтать, а о чем - не имеет значения?

С чего началось обсуждение и родилась данная тема?

sg12А здесь всего три процедуры "Добавить, Удалить, Изменить" в двух вариациях.

Неужели нельзя было за десять лет написать одну универсальную обертку, где можно один раз отладить все проверки, и куда можно было бы просто передавать параметры из таблиц.
Т.е. Ваш исходный посыл: Существует некая универсальная процедура (обертка) для операций "Добавить, Удалить, Изменить"

Для начала, Вам показали на примерах, что это не так. Не существует. Всегда есть "что-то", что не укладывается в эту самую "универсальную" процедуру.

Далее я заметил, что в одном DO CASE обычно не делают выбор принципиально разных процедур. Это не значит, что это нельзя сделать в принципе. Это всего-лишь значит, что ТАК не делают в виду бессмысленности подобной операции. Вы можете объяснить ЗАЧЕМ мне повторно указывать что именно я хочу сделать, если я и так уже знаю, что будут делать? Я знаю, что я собираюсь делать еще ДО вызова Case.

Остановимся на этих двух вопросах: отстутствие универсальности и бессмысленность "переспрашивания". Все остальное у Вас крутится вокруг этого. Ответы будут?
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38131308
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ,

забей на него. Стандартный психологический прием троля: обратится к конкретному человеку. Подстава в том что любой нормальный человек считает что должен отвечать раз к нему обращаются. Считает неправильно, т.к. если изначально понятно что спрашивающий ждет не ответа а продолжение диалога. Поэтому надо просто помолчать, какой бы бред не писался. То что это бред понимают все.
Так что пусть пишет. Не будет ответов, сам исчезнет отсюда.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38131326
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ

Извините, но я только пунктуально ответил на вопросы, которые ВЫ затронули. Прочитайте свой пост.
И насколько я понял, ответы "новичка" застали вас врасплох.

На каких примерах вы что показали? Ваш компаньон морочил мне этим голову, теперь вы.
Повторяю - вы хоть можете не на пальцах, а хоть что-то показать, хоть примитивный проект для новичков, соответствующий вашей теории?
И покажите мне ваше туманное "что-то".

Свою фразу:
"ЗАЧЕМ мне повторно указывать что именно я хочу сделать, если я и так уже знаю, что будут делать? Я знаю, что я собираюсь делать еще ДО вызова Case."
переведите на нормальный русский язык, пожалуйста.

Об универсальности я достаточно четко и однозначно сформулировал предложения, куда уж дальше.
Что у вас вызывает затруднения?
Может быть то, что "универсальность" оказалась для вас неожиданностью?

RS. Кстати, к вам и подмога подоспела, вовремя.

ДимаТ
Если человек не может ответить на вопросы, то лучше не пытаться отвечать, а то попадешь в глупое положение.
Если человек, двадцать лет изучающий FoxPro, не может ответить на вопросы "новичка", то вдвойне.
И речь идет об ответах, а не поучениях, на что горазды многие ГУРУ, пока дело не доходит до конкретики.
Я лично стараюсь отвечать на все вопросы, в том числе и ваши.
И если что непонятно, всегда готов уточнить.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38131348
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12RS.
http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%81%D1%82%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%83%D0%BC] P S сокращение от P ost Scriprum .

sg12Я лично стараюсь отвечать на все вопросы, в том числе и ваши.
Не вижу ни одного ответа по существу. Ни на мои вопросы, ни на чужие. Вижу только вопросы и использование ответов для продолжения монолога.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38131357
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ

Теперь вернемся к вашей коронному номеру: "Добавить,Удалить,Изменить".
Приведите комплект ВАШИХ кодов этих функций, и я покажу ВАМ, как их переделать их через DO CASE.
И объясню вам, почему в вашем случае модернизация приложений вызывает известные затруднения, а после перестройки их в главный модуль нет.

ДимаТ. Ладно, можете повторить вопросы, если что непонятно.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38131504
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМWord - это текстовый редактор. Предназначен для ввода/отображения текста . Для него таблицы - это вспомогательный инструмент отображения того же текста. И именно в небольших объемах. Порядка нескольких десятков записей.

Если речь идет об отображении тысяч и десятков тысяч записей, то текстовый редактор для этого мало пригоден. Нужно использовать инструмент, специально для этого и предназначенный. Т.е. табличный редактор Excel. Гораздо проще нарисовать некую шапку в Excel, чем мучиться с выводом большой табличной части в Word.

Хороший совет.

Но возникает новый вопрос - а что мешает в этот раз эти коды вам сделать универсальными?
Хотя бы из курсора для начала и без шапки, ее потом можно будет пристроить.
Т.е перенести их в глобальный базовый модуль, и тогда ни новичок, ни опытный программист не будут больше постоянно тыкаться с такими вопросами, а просто в эту процедуры будут передавать параметры.

Вы можете это объяснить на конкретном примере, а не на пальцах?
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38131607
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Универсализм кодов"... "Классы-наше всё"... "Давайте свернём Гланый Модуль"...
Начинает напоминать мантры и некие братства

Вот давайте я вам, дорогой наш sg12 , подкину вопрос: А если мне и надо-то только обработать некий набор данных, заменить некие значения, получив при этом отклик о том, что необходимые действия выполнились верно. На десятке таблиц в полтора-два миллина записей, и быстро - желательно ещё вчера... Я буду посреди тайги искать "универсальный класс" для "Добавления/Удаления/Изменения" (учитывая, что Инета, например, нет или очень мало)? Создавать Хглавный Проэкт с "универсальным кодом"? Или просто напишу десяток-другой строк в виде обычной программы? Причём не заморачиваясь с установкой VFP9, если в наличии имеется только 8, 6 или вообще FPD...
Убедите меня, что мой подход неверен
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38131794
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMВот давайте я вам, дорогой наш sg12 , подкину вопрос: А если мне и надо-то только обработать некий набор данных, заменить некие значения, получив при этом отклик о том, что необходимые действия выполнились верно. На десятке таблиц в полтора-два миллина записей, и быстро - желательно ещё вчера... Я буду посреди тайги искать "универсальный класс" для "Добавления/Удаления/Изменения" (учитывая, что Инета, например, нет или очень мало)? Создавать Хглавный Проэкт с "универсальным кодом"? Или просто напишу десяток-другой строк в виде обычной программы? Причём не заморачиваясь с установкой VFP9, если в наличии имеется только 8, 6 или вообще FPD...
Убедите меня, что мой подход неверен

А в чем проблема?
Кто мешает вам написать эти строчки кода, пишите на здоровье.

Но логические ваши ошибки в рассуждениях могу отметить:
Главный модуль (а не проект) вам не надо создавать, он у вас уже на флешке, вместе с dll-ками. Если уже не на компе.
Вполне вероятно, что ваша задача не так уж сложна и она уже есть в Главном проекте. И возможно вам остается только на худой конец скопировать нужные вам коды, а не писать их заново.
А в тестовом шаблоне-проекте она вообще может оказаться только строкой вызова с параметрами.
На календаре 2013 г, 9-ка загибается, а вы сидите на 8,6,FPD ..., это говорит о вашем уровне. Где уж тут речь вести о Главном модуле.
И посмотрел бы я, как вы будете мыкаться с переносом этих ваших FPD на что-то другое, а здесь системная часть у вас уже готовенькая.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38131894
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12, не думаю, что кому-то из участников, имевших неосторожность вступить с тобой в полемику, что-либо мешает писать. Проблемы, похоже, у тебя. Озвучивать суть их не буду, т.к. это противоречит правилам форума, отмечу лишь то, что явно наличествует в твоих "простынях" - клинический случай резонерства. А вообще - забавно, когда на форуме появляется очередной апологет какой-либо сверхценной идеи, так что -давай, пиши еще!
P.S. А "R.S" - это что обозначало-то: "Rectum scriptum" что ли? :)
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38132013
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12,

Про то, на чём я сижу (или не сижу) я уже, вроде, упоминал - не надо за меня выражаться

И мысль, которую я вам пытаюсь донести с момента вашего появления в теме "Чем заменить..." - я лично не буду искать где-то чей-то готовый код (который ещё неизвестно, решит ли именно ту задачу, что требуется), если я вижу, что мне проще и быстрее написАть несколько собственных строк. Если же я вижу, что для решения требуется что-то, что я писАть буду долго и нудно - да, я найду и встрою. Кроме того, возможно, я уже знаю и видел нужные мне части реализации, поэтому я искать не буду, а сразу воспользуюсь, либо решу вопрос с автором функционала.
В общем, кредо примерно таково - не "эффективность" кода, а эффективность трудозатрат. И не надо мне говорить, что сборка из "конструктора" быстрее и качественнее. Всё познается на опыте, и мне мой вопит (в противоположность всему нынешнему маркетингу от разработки продуктов), что где-то в чём то я намного более прав, нежели дипломированные (и наслушавшиеся их) "розроботчики".
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38132105
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM

С чего вы решили, что речь идет о "сборке из конструктора"?
С чего вы решили, что "трудозатраты" увеличиваются, а не уменьшаются?.
С чего вы решили, что код придется искать?

На самом деле опытные программисты этот Главный модуль имеют, только называют его по другому, к примеру так - "наработанные решения".
Только хранится он вразброд и при необходимости процедуры перекопируются в программы с небольшими корректировками.
Чем хуже собрать их и только вызывать их из приложения.
К примеру, зачем переписывать код вывода отчета в Word или Excel в каждом приложении в каждом отчете, если будет возможность использовать универсальный код, который можно написать.

Свежий пример, кусок кода из соседней темы:
LParameters tnID
if type("m.tnID") <> 'N' or m.tnID <= 0
m.tnID = 0
endif

Убейте меня, ну не пойму я - почему лучше в каждой форме нужно героически сочинять эти коды, если эти вопросы можно решить один раз в базовом модуле для всех форм.
И такое впечатление, что слово ООП употребляется только для красного словца.

Вот пример универсального кода передачи собственно объекта и сессии, написанный для Init А.Климовым лет восемь назад:

LPARAMETERS toForm
WITH THISFORM
DODEFAULT()
IF PCOUNT() = 1 AND UPPER(VARTYPE(m.toForm)) == "O" AND UPPER(m.toForm.BASECLASS) = "FORM"
.pForm = m.toForm
ELSE
IF VARTYPE(_SCREEN.ACTIVEFORM) == "O" AND UPPER(_SCREEN.ACTIVEFORM.BASECLASS) = "FORM"
.pForm = _SCREEN.ACTIVEFORM
ENDIF
ENDIF

IF VARTYPE(.pForm) == "O" AND UPPER(.pForm.BASECLASS) = "FORM"
SET DATASESSION TO (.pForm.DATASESSIONID)
ENDIF
ENDIF

Чем он плох, зачем нужно заново открывать Америку в каждой форме?
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38132128
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12,

Ну так и я о том же, в принципе. То есть "наработанные решения", естественно, не переписываю каждый раз заново. Вот только мы с вами разошлись в оценке того, какой код нужно "унифицировать". Вы утверждаете, что нужно сделать универсальным всё вплоть до операций обслуживания базы. Я же говорю, что одно дело - отчеты, обработка ошибок, интерфейс. И другое - работа с БД. Не нужно (и даже вредно) делать универсальной работу с данными.
...
Рейтинг: 0 / 0
25 сообщений из 424, страница 3 из 17
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Общие принципы построения приложения в FoxPro
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]