Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 945
от 05.10.2007, 21:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 460, Экспертов: 83
В номере:Вопросов: 3, Ответов: 3


Вопрос № 103801: Здравствуйте, господа-эксперты! Имеется база данных Access, доступ через ADO. Проблемы в следующем. 1) Нужно фильтровать данные одновременно по двум полям: [1-я сдача крови] и [2-я сдача крови], при этом чтобы отбор по полю [1-я сда...
Вопрос № 103827: ну, информатики могучие, помогайте: Задание: с помощью свойства Flo, присвоить полю FloField значение 4.56 нашла этот же вопрос на вашем сайте, но эти ответы не подходят((...
Вопрос № 103837: Доброе время суток! Уважаемые эксперты. Подскажите пожалуйста какими средствами возможно создать 1 класс на базе 2 -х других классов. Если можно то с пирмерчиком , Пожалуйста! Заранее благодарен!!!...

Вопрос № 103.801
Здравствуйте, господа-эксперты!
Имеется база данных Access, доступ через ADO.
Проблемы в следующем.
1) Нужно фильтровать данные одновременно по двум полям:
[1-я сдача крови] и [2-я сдача крови], при этом чтобы отбор по полю [1-я сдача крови] был меньше или равным указанной дате в <MaskEdit1>, а поле [2-я сдача крови] - только пустые ячейки.Эти поля в формате <дата/время>.
Если компилировать проект так, как в листинге (фильтр только по полю [1-я сдача крови]), все работает, а если снять комментарий в
<procedure TForm1.FilterButtonClick> - компилятор выдает ошибку (при попытке изменить код ошибка меняется).Помогите справиться.
2) Как из программы запустить файл (справка *.chm) по нажатию на кнопку,например,"Справка".
3) Как после фильтрации вернуть полный вид базы (кнопка "Обновить"), а то приходиться выходить из программы и запускать снова.
ЗЫ: Не судите строго за, может быть, наивные вопросы. Просто я новичек в программировании, и к тому же самоучка. Опыта никакого, знания тоже, естественно, слабые.

Приложение:

Отправлен: 29.09.2007, 22:51
Вопрос задал: Krizz (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Виктор Пырлик
Здравствуйте, Krizz!

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

Фамилия -> Surname
1-я сдача крови -> First_shelters
2-я сдача крови -> Second_shelters

Во вторых, я заменил вашу кнопку FilterButton на более подходящий компонент - FiltrCheck (TCheckBox).

В третих, если есть необходимость во всех этих кнопках - по работе с набором данных (редактирование, удаление, вставка и т.д.), рекомендую использовать стандартный набор событий - Action (Standart Action -> Dataset).

Остальное, приведено в коде с комментариями.

Приложение:

---------
Если ничего не помогло - надо читать инструкцию

Ответ отправил: Виктор Пырлик (статус: Студент)
Ответ отправлен: 30.09.2007, 12:38
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо, буду пробовать.


Вопрос № 103.827
ну, информатики могучие, помогайте:

Задание: с помощью свойства Flo, присвоить полю FloField значение 4.56
нашла этот же вопрос на вашем сайте, но эти ответы не подходят((

Приложение:

Отправлен: 30.09.2007, 13:57
Вопрос задала: Малюшенкова Диана Игоревна (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: sir henry
Здравствуйте, Малюшенкова Диана Игоревна!
Во-первых, класс объявлен неверно. Если всё оставить как есть, то полю FloField можно присваивать значение непосредственно. Обычно поля класса скрывают от непосредственного использования с помощью волшебного слова private:

Type
TaClass=Class
private
FloField:Real;
Function GetField:Real;
Procedure SetField(Value:Rea);
public
Property Flo: Real Read GetField Write SetField;
End;

Во-вторых, сначала необходимо определить алгоритм присвоения полю значения. Например, необходимо чтобы значение укладывалось в какой-то диапазон или дополнительно проводилось какое-либо действие. Для этого используют специальную функцию, которая записывается после волшебного слова write и определяется в классе:

TaClass=Class
private
...
Procedure SetField(Value:Rea);
Property Flo: Real read FloField write SetField;
implementation
...
Procedure TaClass.SetField(Value: Real);
Begin
If Value<4,56 Then
MessageBox(0, 'Это не катит, надо 4,56 или больше!', 'Ошибка', MB_OK)
Else
FloField:=Value;
End;

Если же никаких предварительных действий со значением проводить не нужно, то после слова write пишут название поля, тогда значение сразу присвоится этому полю:

TaClass=Class
private
...
public
Property Flo: Real read FloField write FloField;
...

Теперь, когда Вы определились с действием которое нужно проводить над значением поля, свойству можно присваивать значение:

Var
a:TaClass;
Begin
a:=TaClass.Create;
a.Flo:=4.56;
...
End;
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 30.09.2007, 15:40
Оценка за ответ: 5
Комментарий оценки:
Спасибо вам большое)
Думаю,в задание нет ошибки,т.к так написано в обучающей программе
Но ответ подошёл)
спасибо


Вопрос № 103.837
Доброе время суток! Уважаемые эксперты.

Подскажите пожалуйста какими средствами возможно создать 1 класс на базе 2 -х других классов. Если можно то с пирмерчиком , Пожалуйста!

Заранее благодарен!!!
Отправлен: 30.09.2007, 16:47
Вопрос задал: Andrey (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Виктор Пырлик
Здравствуйте, Andrey!

К сожалению, Delphi использует язык Pascal, который не в полной мере поддерживает концепции ООП (объектно-ориентированного программирования), в частности, не поддерживает множественного наследования в чистом виде. Но можно реализовать посредством интерфейсов.
Вот несколько ссылок, где подробно описано и есть примеры:
Как преодолеть отсутствие множественного наследования в Delphi
Создание COM-объектов средствами Delphi
Delphi и COM


---------
Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: Студент)
Ответ отправлен: 30.09.2007, 18:00


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.60.10 от 27.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное