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

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


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

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

Чемпионы рейтинга экспертов в этой рассылке

Влaдимир
Статус: 4-й класс
Рейтинг: 47
∙ повысить рейтинг >>
Genia007
Статус: Студент
Рейтинг: 25
∙ повысить рейтинг >>
Motoden
Статус: 4-й класс
Рейтинг: 24
∙ повысить рейтинг >>

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

Выпуск № 1326
от 23.03.2009, 15:05

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

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 162573: Здравствуйте, Эксперты. Помогите реализовать латинский шифр Полибия. Вот на картинке пример <img src="http://rusfaq.ru/thumb.cgi?&r=1&w=600&s=http://i024.radikal.ru/0903/09/23ccce83fd2d.jpg" border="0" class="pic"> Суть метода такова: имеется м...


Вопрос № 162598: Здравствуйте! У меня такая задача: В базе данных есть 2-е таблицы: lokomotuvu (локомотивы) и migrem_probigu (ремонтные пробеги). Поля таблицы lokomotuvu: 1. id_lok - идентификатор локомотива 2.inv_nom - инвентарный номер 3.data_vvo...
Вопрос № 162608: Доброго времени суток, уважаемые эксперты! Мне необходимо построить график на форме в дельфи. С помощью какого класса это можно сделать? Какими методами? Приведите пожалуйста несложный пример....
Вопрос № 162631: Здравствуйте Уважаемые эксперты!Помогите решить задумку со случайным вы бором.Необходимо на StrigGrid повесить таймер,при работе которого через некоторый интервал произвольно выбирается несколько ячеек StrigGrid-а,каждая из которых окрашивается в цвет...

Вопрос № 162.573
Здравствуйте, Эксперты.
Помогите реализовать латинский шифр Полибия. Вот на картинке пример
Суть метода такова: имеется матрица 5х5
Зашифровка идет так: каждой букве соответствует номер строки и столбца

например: K V А D R А Т
ШИФР: 25 51 11 14 42 11 44

программа должна шифровать и расшифровывать.
Отправлен: 17.03.2009, 14:45
Вопрос задал: Kreaman (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Boriss
Здравствуйте, Kreaman!
Вот посмотрите. Так нужно? В Вашем примере, насколько, понял, пробелы и прочие знаки препинания надо пропускать

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: Мордовский госуниверситет, Саранск, Факультет Электронной Техники
WWW: Программирование на Паскале
ICQ: 320096696
----
Ответ отправлен: 19.03.2009, 20:30

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245644 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 162.598
    Здравствуйте! У меня такая задача:
    В базе данных есть 2-е таблицы: lokomotuvu (локомотивы) и migrem_probigu (ремонтные пробеги).
    Поля таблицы lokomotuvu:
    1. id_lok - идентификатор локомотива
    2.inv_nom - инвентарный номер
    3.data_vvody - дата вводу в эксплуатацию
    4.TO_ost - дата последнего техн.обслуживания

    Поля таблицы migrem_probigu:
    1. id_probigy - идентификатор ремонтного пробега
    2.TO - пробег локомотива на техн.обслуживания составляет для каждого типа локомотива отдельное число, например 40 суток, 2 месяца, ...

    В Borland Delphi 7 я создала форму, на которой есть DBGrid (связанная с базой с помощью Query). В этой DBGrid отображаться поля таблицы локомотивы. При нажатии кнопки Новый или Редактировать я ввожу данные (или их меняю) в поля (Edit, DateTimePicker) (только не ввожу данные в TO_ost - дата последнего техн.обслуживания, отсутствует поле для его ввода) и при нажатии на кнопку Принять мне нужно чтобы это поле автоматически в ысчитывало и отображало в DBGrid. А именно дата последнего технического обслуживания (TO_ost) должна высчитываться как дата вводу в эксплуатацию (data_vvody) + пробег локомотива (ТО) (и этот пробег должен суммироваться до тех пор, чтобы вычислить последний ремонт, дата которого не превышает сегодняшней даты).
    Помогите это реализовать, пожалуйста!!!
    Отправлен: 17.03.2009, 18:56
    Вопрос задала: T. Tanyta (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 3)

    Отвечает: Шевченко Дмитрий
    Здравствуйте, T. Tanyta!

    Насколько я понял, Ваша задача решается примерно так:
    В TQuery (далее принято что он называется Query1) пишете:

    SELECT migrem_probigu.TO FROM migrem_probigu
    INNER JOIN lokomotuvu ON lokomotuvu.id_probigy = migrem_probigu.id_probigy
    WHERE lokomotuvu.id_lok = :ID

    где :ID - это параметр (Params в properties компонента TQuery), которому Вы присваиваете ID_lok редактируемого локомотива:
    Query1.ParamByName('ID').AsInteger:= ID_lok; {ID_lok - это переменная с ID локомотива у Вас в программе}

    Результатом этого запроса станет единственное поле - пробег(TO) для данного локомотива.
    допустим, Вы сохраните его в переменную TO_lok:

    Query1.First;
    TO_lok:= Query1.FieldByName('TO').AsInteger;

    Тогда если в переменной vvod_lok хранится дата (TDate) ввода этого локомотива в эксплуатацию, тогда поле TO_ost можно рассчитать так:
    Код:
    var vvod_lok, TO_ost: TDate;
    TO_lok: Integer;
    begin
    {...}
    TO_lok:= Query1.FieldByName('TO').AsInteger;
    {...}
    TO_ost:=vvod_lok;
    while (TO_ost + TO_lok) <= now() do{пока не превысили сегодняшнюю дату}
    TO_ost:= TO_ost + TO_lok;{добавляем ещё одно время пробега к последнему техобслуживанию}


    Делать так можно, потому что дата хранится в виде рационального числа, где целая часть - кол-во дней, прошедших с определённой даты (если мне не изменяет память, в Delphi это 01.01.1900, но это здесь не важно), поэтому если TO_ost имеет тип TDate, то "TO_ost + 40" это дата, которая позже TO_ost на 40 дней.

    Надеюсь, понял Вас правильно.
    Успехов!
    Ответ отправил: Шевченко Дмитрий (статус: Студент)
    Ответ отправлен: 19.03.2009, 20:46

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245645 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5


    Вопрос № 162.608
    Доброго времени суток, уважаемые эксперты!
    Мне необходимо построить график на форме в дельфи. С помощью какого класса это можно сделать? Какими методами?
    Приведите пожалуйста несложный пример.
    Отправлен: 17.03.2009, 20:36
    Вопрос задал: Motoden (статус: 4-й класс)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Влaдимир
    Здравствуйте, Motoden!
    Для построения графиков можно воспользоваться компонентом TImage. В предлагаемом варианте используется метод канвы LinrTo, рисующий отрезок прямой из текущей точки в заданную. Этот метод удобен при построении графиков в реальном времени. Код с комментариями в приложении.
    Удачи!

    Приложение:

    Ответ отправил: Влaдимир (статус: 4-й класс)
    Ответ отправлен: 18.03.2009, 09:55

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245537 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    большое спасибо!


    Вопрос № 162.631
    Здравствуйте Уважаемые эксперты!Помогите решить задумку со случайным выбором.Необходимо на StrigGrid повесить таймер,при работе которого через некоторый интервал произвольно выбирается несколько ячеек StrigGrid-а,каждая из которых окрашивается в цвет выбранный случайным образом и т.д,типа как в цветомузыкальных установках.
    Отправлен: 18.03.2009, 07:04
    Вопрос задал: Gennadijzotov (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Genia007
    Здравствуйте, Gennadijzotov!
    Вот посмотрите, что у меня получилось. Сетка содержит 11 ячеек и 7 столбцов:
    Код:
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ExtCtrls, Grids;

    type
    TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Timer1: TTimer;
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
    Rect: TRect; State: TGridDrawState);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;
    colorstr: TColor;

    implementation

    {$R *.dfm}

    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
    Rect: TRect; State: TGridDrawState);
    begin
    with StringGrid1, Canvas do
    begin
    Brush.Color := colorstr;
    FillRect(Rect);
    TextRect(Rect, Rect.Left + 2, Rect.Top + 2, Cells[aCol, aRow]);
    end;
    end;

    procedure TForm1.Timer1Timer(Sender: TObject);
    var
    SRect: TGridRect;
    r, c: integer;
    begin
    r:= random(11);
    c:= random(7);
    with StringGrid1 do
    begin
    SetFocus; {Передаем фокус сетке}
    Row := r; {Устанавливаем Row/Col}
    Col := c;
    SRect.Top := r; {Определяем выбранную область}
    SRect.Left := c;
    SRect.Bottom := r;
    SRect.Right := c;
    Selection := SRect; {Устанавливаем выбор}
    end;
    colorstr:= random(255) shl 16 or random(255) shl 8 or random(255);
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    randomize;
    Colorstr:= clWhite;
    end;

    end.

    ---------
    Помогли тебе, помоги и ты.
    Ответ отправил: Genia007 (статус: Студент)
    Ответ отправлен: 18.03.2009, 11:10

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245540 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    Спасибо за быстрый ответ.Я немного видоизменил код,взяв ваш за основу.Мой вариант в мини-форуме.


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

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

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

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

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

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


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

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное