Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Help me,please. Очень срочно

5.8K
22 августа 2004 года
Chapay
3 / / 02.02.2004
Доброго времени суток! Хочу задать несколько вопросов. Понимаю, что такое "сочинение" лень читать, но у меня
очень мало времени, а ответы надо узнать обязательно.
1. Я пишу реляционную базу данных с использованием таблиц Paradox. На форме у меня несколько Query, один DBGrid и несколько DataSource. DBGrid заполняется из одного Query и часть даных лукапит из другого. Пользователь редактирует данные в DBGride, при этом переход между колонками происходит при нажатии Enter. При нажатии Entera один из Query(не тот, с которым связан DBGrid выполняет update/insert/delete). Правильно ли это, или можно как-то упростить(но ввод данных только через DBGrid)?
2. Как на форме выводить постоянно изменяющуюся сумму значений DBGrida при минимальных затратах ресурсов?
3. Как создать просмотр отчётов(я использую QuickReport, но можете посоветовать что-нибудь другое) без открытия стандартного окна просмотра и без всех стандартных кнопок? Может, возможно как-то вывести на форму канвас принтера?
4. Хочу создать своё меню, и для этого загружаю из файла список кнопок(количество заранее не известно), потом создаю в памяти объекты TGraphic и загружаю в них изображения: кнопку без Caption, кнопку с подсветкой(использую OnMouseMove формы и на основе координат рисую на Canvase третьего), и пустое изображнение с размерами формы. Третье изображение(такое же, как канвас формы) вывожу на канвас формы при изменении положения курсора(когда находится над другой кнопкой). При этом, если быстро проводить мышью над всеми кнопками, канвас не успевает перерисовываться. Как быть? Я конечно понимаю, что нагородил лишнего, но всё-таки хочется сделать нормальный дизайн для проги, а другого решения не вижу: может быть, надо создать объект, но я не знаю как, а позагружать на форму Image- программы будет весить больше, чем хотелось бы.
5. Мне надо сделать базу сетевой(редактируемой с нескольких машин одновременно), но не знаю как. Возникла идея передавать на сервер запросы через NMMsg и NMMsgServ. Тогда запрос будет передаваться в Query, если редактируется таблица, не используемая сервером. Правильно ли это? Или можно упростить?
6. Как загружать в программу DLL, если их количество заранее не известно и как работать с DLL вобще?
7. Как можно организовать базу без BDE, если я не знаю ничего о других видах баз?
8. Как в DBGrid пользователю мышью выделить и скопировать(Ctrl+C) в буфер, а потом вставить(Ctrl+V) некоторое колисество строк и столбцов?
9. Как использовать пароль?

Если знаете ответы хоть на один из этих вопросов- пришлите НА МЫЛО: [email]chapay@mail.zp.ua[/email] (очень срочно надо)
294
23 августа 2004 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by Chapay
Доброго времени суток! Хочу задать несколько вопросов. Понимаю, что такое "сочинение" лень читать, но у меня
очень мало времени, а ответы надо узнать обязательно.
1. Я пишу реляционную базу данных с использованием таблиц Paradox. На форме у меня несколько Query, один DBGrid и несколько DataSource. DBGrid заполняется из одного Query и часть даных лукапит из другого. Пользователь редактирует данные в DBGride, при этом переход между колонками происходит при нажатии Enter. При нажатии Entera один из Query(не тот, с которым связан DBGrid выполняет update/insert/delete). Правильно ли это, или можно как-то упростить(но ввод данных только через DBGrid)?
2. Как на форме выводить постоянно изменяющуюся сумму значений DBGrida при минимальных затратах ресурсов?
3. Как создать просмотр отчётов(я использую QuickReport, но можете посоветовать что-нибудь другое) без открытия стандартного окна просмотра и без всех стандартных кнопок? Может, возможно как-то вывести на форму канвас принтера?
4. Хочу создать своё меню, и для этого загружаю из файла список кнопок(количество заранее не известно), потом создаю в памяти объекты TGraphic и загружаю в них изображения: кнопку без Caption, кнопку с подсветкой(использую OnMouseMove формы и на основе координат рисую на Canvase третьего), и пустое изображнение с размерами формы. Третье изображение(такое же, как канвас формы) вывожу на канвас формы при изменении положения курсора(когда находится над другой кнопкой). При этом, если быстро проводить мышью над всеми кнопками, канвас не успевает перерисовываться. Как быть? Я конечно понимаю, что нагородил лишнего, но всё-таки хочется сделать нормальный дизайн для проги, а другого решения не вижу: может быть, надо создать объект, но я не знаю как, а позагружать на форму Image- программы будет весить больше, чем хотелось бы.
5. Мне надо сделать базу сетевой(редактируемой с нескольких машин одновременно), но не знаю как. Возникла идея передавать на сервер запросы через NMMsg и NMMsgServ. Тогда запрос будет передаваться в Query, если редактируется таблица, не используемая сервером. Правильно ли это? Или можно упростить?
6. Как загружать в программу DLL, если их количество заранее не известно и как работать с DLL вобще?
7. Как можно организовать базу без BDE, если я не знаю ничего о других видах баз?
8. Как в DBGrid пользователю мышью выделить и скопировать(Ctrl+C) в буфер, а потом вставить(Ctrl+V) некоторое колисество строк и столбцов?
9. Как использовать пароль?

Если знаете ответы хоть на один из этих вопросов- пришлите НА МЫЛО: [email]chapay@mail.zp.ua[/email] (очень срочно надо)



Отвечаю на некоторые вопросы (да ещё и не по порядку):
7) Можно через ADO, тем более, что ADO есть на любой машине, где установлен MSIE 5.0+ или Access 2000+. Есть ещё такие компоненты и библиотеки, как Apollo, DegisyData, CodeBase, TDbf... Короче, Welcom на Torry.net!
1) Может, лучше использовать TQupdateSQL? Он, правда, работает исключительно с TQuery и исключительно в режиме CachedUpdates.
9) А парадоксовские таблички под пароль умеют закрываться (не знаю, насколько это надёжно)... Для работы с закрытыми под пароль табличками надобно использовать объект TSession, туда пихать пароли. Подробнее -- в борландовском хелпе.
6) Как я понимаю, нечто вроде плагинов?
Примерно так:

Код:
TSearchRec sr;
    HMODULE PluginHandles[1024];
    FARPROC PluginMains[1024];
    int i = 0;
    int PluginCount;
    if (FindFirst(AnsiString("Plugins\\*.DLL", faAnyFile, sr) == 0)
    {
        do
        {
            PluginModules = LoadLibrary(sr.Name);
            PluginMains   = GetProcAddress(PluginModules[i++], "MyPluginDescriber");
        }
        while (FindNext(sr) == 0);
        FindClose(sr);
    }
    else
        throw Exception("Плагинов НЕТ!!!");
    PluginCount = i;

Ну, а в DLL-плагине есть твоя волшебная функция MyPluginDescriber, которую ты пишешь так, чтобы она тебе сказала, как зовётся плагин, какие задачи он решает, какие функции для этого надо вызывать, и т.п. Конечно, надо ещё обработчик ошибок на предмет кривых DLL.
5) Paradox без всяких примочек сетевая.
Всё уже украдено до нас. (с)...
Если надо обязательно клиент-серверную, то... Ой, чувствую, сейчас меня ногами запинают, но я всё равно скажу... Лучше таких грандов как Oracle, IBM DB2 или, скажем, Interbase всё равно не напишешь, так, может, стоит к ним приглядеться? Тем более, что для Oracle существуют компоненты DOAC и DAC, очень мощные штуки.
2) Если не отказываться от рассылок сообщений, можно при каждом изменении записи информировать об этом остальных пользователей: "сумма по такой строке изменилась с такого-то значения на другое, пересчитайте", а эти самые остальные уменьшают или увеличивают сумму в соответствии с изменениями. Будет сравнительно быстро, но при большом количестве пользователей сильно трафик вырастет. Да и геморройно. Так что забей. Сделай кнопочку "Пересчитать суммы" и пусть юзер при необходимости по ней мышой давит.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог