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

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


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

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

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

Шичко Игорь
Статус: Студент
Рейтинг: 261
∙ повысить рейтинг >>
Николай Владимирович / Н.В.
Статус: Академик
Рейтинг: 58
∙ повысить рейтинг >>
Виктор Пырлик
Статус: Профессионал
Рейтинг: 58
∙ повысить рейтинг >>

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

Выпуск № 1220
от 02.11.2008, 14:35

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

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

Вопрос № 148672: Добрый вечер Уважаемые эксперты! Помогите пожалуйста написать программу, можно в графическом режиме, суть программы в следующем: Для элемента массива с произвольным номером (вводится с клавиатуры, обеспечить контроль правильности вода) определить ...


Вопрос № 148696: Добрый вечер эксперты. Вопрос у меня такой: как сделать невидимыми иконки рабочего стола??? Если можно с примером. Заранеее спасибо....
Вопрос № 148720: Здравствуйте уважаемые программисты, у меня есть такой вопросик: На форме расположен MediaPlayer1 и Label1, вопрос заключается в том, как бы мне сделать, чтоб при нажатии левой кнопки мыши на *.mp3, *.wav, и так далее у меня MediaPlayer1 стал бы п...
Вопрос № 148732: Здравствуйте эксперты. Помогите мне разобраться в следующей задаче. Программа Delphi 8.0. Дана последовательность произвол ьных целых чисел. Два массива. Ввести 30 проивольных чисел в Memo1. Определить в последовательности номера всех четных зна...

Вопрос № 148.672
Добрый вечер Уважаемые эксперты! Помогите пожалуйста написать программу, можно в графическом режиме, суть программы в следующем:
Для элемента массива с произвольным номером (вводится с клавиатуры, обеспечить контроль правильности вода) определить является ли оно палиндромом. Палиндромом называется число, которое читается одинаково слева-направо и справа-налево
Заранее благодарен.
Отправлен: 27.10.2008, 18:05
Вопрос задал: Пожидаев Сергей Сергеевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Абельхарисов Руслан/Marked One
Здравствуйте, Пожидаев Сергей Сергеевич!
Программу можете скачать URL >>здесь. В качестве массива я использовал StringGrid. По нажатию на кнопку Обновить изменяется кол-во столбцов на указанное в поле Кол-во элементов. Если стоит галочка в поле Заполнить случайными числами, то массив заодно заполнится случайными числами. Проверка осуществляется по нажатию кнопки Проверить(в этом случае номер элемента берется из текстового поля, счет номеров начинается с 0).
Оснавная функция это Check(), которая принимает в качестве аргумента целое число и возвращает true если число - Палиндром.
Код:
function TForm1.Check(const num: integer): boolean;
var
Str, Str2: string;
i: integer;

begin
Str := IntToStr(num);
Str2:='';
for i := Length(Str) downto 1 do
Str2 := Str2 + Str;
result := (Str = Str2);
end;

Функция конвертирует число в строку. Затем это строка записывается в обратном порядке в другую переменную. Потом обе строки сравниваются и возвращается результат сравнения. Если строки равны, то числа Палиндромы.
Для того чтобы можно было редактировать данные прямо в StringGrid'е я установил свойство в [i]Object Inspector
у StringGridOptions -> goEditing в true.
Удачи!!!
Ответ отправил: Абельхарисов Руслан/Marked One (статус: Студент)
Ответ отправлен: 28.10.2008, 12:40

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


    Вопрос № 148.696
    Добрый вечер эксперты. Вопрос у меня такой: как сделать невидимыми иконки рабочего стола??? Если можно с примером. Заранеее спасибо.
    Отправлен: 27.10.2008, 20:02
    Вопрос задал: Журавлёв Юрий (статус: 1-ый класс)
    Всего ответов: 2
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Genia007
    Здравствуйте, Журавлёв Юрий!
    Если Вас интересует как можно скрыть или показать иконки на рабочем столе, то попробуйте следующее:

    Приложение:

    Ответ отправил: Genia007 (статус: 10-ый класс)
    Ответ отправлен: 27.10.2008, 20:17

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

    Оценка за ответ: 5
    Комментарий оценки:
    Отличный ответ с примером. Именно это я и спрашивал.


    Отвечает: Шичко Игорь
    Здравствуйте, Журавлёв Юрий!
    Если речь идет о всех иконках Рабочего стола, то нового тут придумывать нечего:

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    // скрыть иконки
    ShowWindow(FindWindow(nil, 'Program Manager'), SW_HIDE);
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
    // показать иконки
    ShowWindow(FindWindow(nil, 'Program Manager'), SW_SHOW);
    end;

    Источник информации:
    http://www.delphisources.ru/pages/faq/base/show_hide_desktop_icons.html
    Ответ отправил: Шичко Игорь (статус: Студент)
    Ответ отправлен: 28.10.2008, 08:45

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


    Вопрос № 148.720
    Здравствуйте уважаемые программисты, у меня есть такой вопросик:
    На форме расположен MediaPlayer1 и Label1, вопрос заключается в том, как бы мне сделать, чтоб при нажатии левой кнопки мыши на *.mp3, *.wav, и так далее у меня MediaPlayer1 стал бы проигрывать песню , а Label1 показывал бы какой трек проигрывается. Заранее спасибо
    Отправлен: 27.10.2008, 23:21
    Вопрос задал: Ivanoff Seryojko (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Silent_Control
    Здравствуйте, Ivanoff Seryojko!
    Как я понимаю, выборе файла. Тогда ставим на форму компонент OpenDialog1 и Button1. Два раза кликаем на Button1 и пишем следующий код:
    if opendialog1.execute then
    begin
    mediaplayer1.FileName:=opendialog1.FileName;
    label1.Caption:=mediaplayer1.FileName;
    mediaplayer1.Play;
    end;
    Этот код реализован именно для Диалога, но алгоритм остается тем же и не для него.
    Успехов!
    ---------
    Луна светит всем: и злодеям, и жертвам))
    Ответ отправил: Silent_Control (статус: 4-ый класс)
    Ответ отправлен: 28.10.2008, 21:12

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


    Вопрос № 148.732
    Здравствуйте эксперты.
    Помогите мне разобраться в следующей задаче. Программа Delphi 8.0.
    Дана последовательность произвольных целых чисел. Два массива. Ввести 30 проивольных чисел в Memo1. Определить в последовательности номера всех четных значений и вывести найденный массив из четных чисел в Memo2. Определить количество элементов в полученном массиве и вывести в Label3.
    При решении не удается обработать массив.

    Приложение:

    Отправлен: 28.10.2008, 06:09
    Вопрос задал: Спиридонов Данил Сергеевич (статус: Посетитель)
    Всего ответов: 2
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Виктор Пырлик
    Здравствуйте, Спиридонов Данил Сергеевич!

    вот ссылка на приложение: URL >> Тестовое приложние + исходники

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

    unit Unit1;

    interface

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

    type
    TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Label1: TLabel;
    Label3: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Fo rmCreate(Sender: TObject);
    procedure Memo1KeyPress(Sender: TObject; var Key: Char);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation
    type TIntArray = array of integer; // массив динамический, мы можем хранить сколько угодно чисел
    {$R *.dfm}
    {
    Здравствуйте эксперты.
    Помогите мне разобраться в следующей задаче. Программа Delphi 8.0.
    Дана последовательность произвольных целых чисел. Два массива. Ввести 30 проивольных чисел в Memo1.
    Определить в последовательности номера всех четных значений и вывести найденный массив из четных чисел в Memo2.
    Определить количество элементов в полученном массиве и вывести в Label3.
    При решении не удается обработать массив.
    }
    // функция разделяет строку на числа
    function SplitStringToInt(src,delim:String):TIntArray;
    var s:String;
    x,i,z:integer;
    begin
    z := Pos(delim,src)-1;
    if(z <=1)then exit;
    s := Copy(src,1,z);
    src := Copy(src,z+2,length(src));
    i := 0;
    while(s <> '')do
    begin
    SetLength(result,i+1);
    result[i] := StrToIntDef(s,0);
    inc(i);
    z := Pos(delim,src)-1;
    if z<= 0 then
    begin
    SetLength(result,i+1);
    result[i] := StrToIntDef(src,0);
    break;
    end;
    s := Copy(src,1,z);
    src := Copy(src,z+2,length(src));
    end;
    end;
    //--------------- функция получает массив целых чисел---------------------------
    function GetEvenNumber({в hint сохраним номера}var hint:String;a:TIntArray):TIntArray;
    var j,i,n:integer;
    begin
    j := 0;
    n := length(a);
    SetLength(result,n);
    for i:=0 to n-1 do
    begin
    if a[i] mod 2 = 0 then
    begin
    hint := Format('%s-%d',[hint,i]);
    SetLength(result,j+1);
    result[j ] := a[i]; inc(j);
    end;
    end;
    end;
    //------------------------------------------------------------------------------
    procedure TForm1.Button1Click(Sender: TObject);
    var i,n:integer;
    s:String;
    ar:TIntArray;
    begin
    s := Trim(Memo1.Text);
    s := AnsiReplaceStr(s,#$D,' ');
    s := AnsiReplaceStr(s,#$A,'');
    if(length(s) <=0) then
    begin
    MessageBox(GetActiveWindow,'Не заполненны числа','Ошибка',MB_OK+MB_ICONSTOP);
    Memo1.SetFocus;
    exit;
    end;
    ar := SplitStringToInt(s,' ');
    if(ar = nil) then exit
    else
    begin
    Memo2.Clear;
    s := '';
    ar := GetEvenNumber(s,ar);
    Label3.Caption := Format('Четные элементы в следующих позияциях:'#13+'%s',[s]);
    n := length(ar);
    Label1.Caption := Format('Всего найдено четных элементов: %d',[n]);
    for i:=0 to n-1 do
    Me mo2.Lines.Add(IntToStr(ar[i]));
    end;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
    Close;
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Label3.WordWrap := true;
    Label3.Height := 42;
    Memo1.WordWrap := false;
    end;

    procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
    begin
    if not (key in['.'..'9',' ']) then Key := #0; //запрет вводить не числа и пробел
    end;
    end.


    ---------
    не получается там - где не пробуют
    Ответ отправил: Виктор Пырлик (статус: Профессионал)
    Россия, Екатеринбург
    Тел.: 89043822027
    ICQ: 490191733
    ----
    Ответ отправлен: 28.10.2008, 08:31

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


    Отвечает: Николай Владимирович / Н.В.
    Здравствуйте, Спиридонов Данил Сергеевич!
    В приложении исправленный код Вашей программы с подробными комментариями.
    Проект целиком можете скачать по этой ссылке: скачать.

    Удачи!

    Приложение:

    Ответ отправил: Николай Владимирович / Н.В. (статус: Академик)
    Россия, Москва
    ----
    Ответ отправлен: 28.10.2008, 08:44

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

    Оценка за ответ: 5
    Комментарий оценки:
    Ответ очень точный, написанный понятно для начинающего. Спасибо.


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

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

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

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

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

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


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

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

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

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

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

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


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

    ∙ Версия системы: 5.9 от 29.10.2008

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

    В избранное