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

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


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

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

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

Шичко Игорь
Статус: Практикант
Рейтинг: 182
∙ повысить рейтинг >>
Шевченко Дмитрий
Статус: 6-й класс
Рейтинг: 49
∙ повысить рейтинг >>
Виктор Пырлик
Статус: Профессионал
Рейтинг: 47
∙ повысить рейтинг >>

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

Выпуск № 1247
от 05.12.2008, 04:05

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

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

Вопрос № 152236: Всем добрый день. Очень нужна Ваша помощь.У меня имеется проект, состоящий из 3 модулей.В каждом модуле разные алгоритмы (расчеты расстояний между двумя городами).Результат работы каждого алгоритма(расчет) должен выводится в поле Memo.В первом модуле...


Вопрос № 152244: Подскажите ответ на простой вопрос: как очистить txt файл, вот допустим у меня есть код: procedure TForm1.Timer1Timer(Sender: TObject); var g: TextFile; gName: String; buf: String; begin memo1.Text:=''; AssignF...
Вопрос № 152295: Здравствуйте, у меня есть небольшой вопросик... На форме установелен компонент TMediaPlayer, который при событии onShow воспроизводит mp3 файл! Как сделать так, что бы после воспроизведения этого файла форма автоматически закрывалась? И как сделать т...
Вопрос № 152302: Доброго времени суток, уважаемые эксперты! Уже не одну неделю делаю программу, которая просто воспроизводит мп3 файлы через МедиаПлэйер при нажатии на баттон. На каждый батон - свой мп3 файл! Вот что хочу спросить - можно сделать так, что бы при нажа...
Вопрос № 152323: Доброй ночи! Помогите разобраться. procedure TForm1.Button1Click(Sender : TObject); var i : integer; begin for i := 0 to self.ComponentCount-1 do if self.Components[i] is TLabel then self.Component[i].free; en...

Вопрос № 152.236
Всем добрый день. Очень нужна Ваша помощь.У меня имеется проект, состоящий из 3 модулей.В каждом модуле разные алгоритмы (расчеты расстояний между двумя городами).Результат работы каждого алгоритма(расчет) должен выводится в поле Memo.В первом модуле такая процедура работает(см приложение).Мне необходимо сделать две процедуры, выводящие результат работы алгоритма в другое поле memo.MemRes2: TMemo;
Но, отличие в том, что во втором алгоритме города выбираются с помощью компонента Combobox1 и Combobox2.(расчет расстояния между двумя городами).А расстояния берутся все так же из таблицы StringGrid. Здесь используются следующие массивы:
Weights: array [0..MAXTOWNCOUNT-1, 0..MAXTOWNCOUNT-1] of integer;
incl:array[1..MAXTOWNCOUNT]of integer; // incl[1]равен 1,если точка
road:array[1..MAXTOWNCOUNT]of integer;

А в 3 алгоритме используются предыдущие Combobox1 и Combobox2+Combobox3(расчет расстояния между двумя городами,через промежуточный).Расстояния берутся также из StringGrid.Массивы используются те же, что написаны в приложении.
Если кто-нибудь может помочь, буду очень благодарна.Спасибо заранее.

Приложение:

Отправлен: 29.11.2008, 11:25
Вопрос задала: Uli89 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 19)

Отвечает: Layer
Здравствуйте, Uli89!
Не до конца понятно задание. Из того что понял могу порекомендовать воспользоваться тем же принципом, что и в первой процедуре(см. приложение), раз уж он работает, только в качестве первого города жестко задается город, выбранный в Combobox1, а в качестве второго - выбранный в Combobox2. В третьем случае рекомендую дважды использовать вторую процедуру - один раз для городов Combobox1-Combobox2, второй раз для городов Combobox2-Combobox3, впоследствии объединив результаты.
Для каких-то более развернутых ответов требуется весь(!!!) текст программы и пример входных данных.

Приложение:

Ответ отправил: Layer (статус: 3-й класс)
Ответ отправлен: 29.11.2008, 15:34

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

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


    Вопрос № 152.244
    Подскажите ответ на простой вопрос: как очистить txt файл, вот допустим у меня есть код:

    procedure TForm1.Timer1Timer(Sender: TObject);
    var g: TextFile;
    gName: String;
    buf: String;
    begin
    memo1.Text:='';
    AssignFile(g,'C:/1.txt');
    Reset(g);

    if IOResult <> 0 then begin
    MessageDlg ('Ошибка доступа к файлу ' + gName,
    mtError,[mbOk],0); exit; end;
    while not EOF(g) do begin
    readln(g,buf);
    Memo1.Lines.Add(buf);
    end;
    CloseFile(g);

    каждые 3 минуты я вывожу текст из txt в Memo. текст за это время там меняется, мне нужно чтобы вывел я текст в мемо, из txt файла его удалил, чтоб не повторялся текст.
    Отправлен: 29.11.2008, 12:32
    Вопрос задал: Akahaos (статус: Посетитель)
    Всего ответов: 2
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Del
    Здравствуйте, Akahaos!

    Немного не въехал, что тебе требуется, ну да ладно. В общих чертах:
    Memo1.Lines.LoadFromFile(Filename) - загрузка файла в мему. Можешь убирать все веселье с AssignFile и далее по тексту.
    Memo1.Lines.SaveToFile(Filename) - сохранение мемы в файл. Если мема пустая - файл тоже будет пустым.

    Удачи.
    ---------
    Только массовые расстрелы спасут Родину!
    Ответ отправил: Del (статус: 2-й класс)
    Ответ отправлен: 29.11.2008, 12:40

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


    Отвечает: Шамрай Олег Анатолиевич
    Здравствуйте, Akahaos!
    Вместо (memo1.Text:='') лучше писать:
    .........
    Memo1.Clear; //отчистка Memo1
    Memo1.Lines.LoadFromFile(ExtractFilePath(ParamStr(0))+'Memo.txt');//загрузить из файла
    Memo1.Lines.SaveFromFile(ExtractFilePath(ParamStr(0))+'Memo.txt');//сохранить в файл
    или
    Memo1.Lines.SaveFromFile('D:ProgrаmMemo.txt');//сохранить по указаному адресу
    .........
    где - ExtractFilePath(ParamStr(0)) указывает путь тот, где находиться программа,
    'Memo.txt' - имя файла с расширением txt
    ---------
    Delphi, пиво и кальмары
    Ответ отправил: Шамрай Олег Анатолиевич (статус: 1-й класс)
    Ответ отправлен: 01.12.2008, 21:54

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


    Вопрос № 152.295
    Здравствуйте, у меня есть небольшой вопросик... На форме установелен компонент TMediaPlayer, который при событии onShow воспроизводит mp3 файл! Как сделать так, что бы после воспроизведения этого файла форма автоматически закрывалась? И как сделать так, что бы при помощью клавиатуру нельзя было управлять функциями play, stop и т.д. для MediaPlayer'а? Ато на прбел нажал, оно заново играет( Заранее большое спасибо!
    Отправлен: 29.11.2008, 19:58
    Вопрос задал: Andryxo (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Genia007
    Здравствуйте, Andryxo!
    Вам нужно сделать следующее, в событии OnNotify компонента MediaPlayer прописать:

    procedure TForm1.MediaPlayer1Notify(Sender: TObject);
    begin
    with MediaPlayer1 do
    if NotifyValue = nvSuccessful then
    begin
    Form1.Close;
    end;
    end;

    По поводу управления с клавы попробуйте выставить MediaPlayer1.TabStop:= False;


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

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

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


    Вопрос № 152.302
    Доброго времени суток, уважаемые эксперты! Уже не одну неделю делаю программу, которая просто воспроизводит мп3 файлы через МедиаПлэйер при нажатии на баттон. На каждый батон - свой мп3 файл! Вот что хочу спросить - можно сделать так, что бы при нажатии на баттон мп3 файлы воспроизводились по очереди, один проиграл - другой начал, затем третий и т. д - что бы выполняла функцию - проиграть все, как бы. И еще есть один вопросик - как сделать так, что бы при закрытии формы 2 автоматически начал проигрывать текущий файл МедиаПлэйера на форме 1? Спасибо !
    Отправлен: 29.11.2008, 21:39
    Вопрос задал: Chporick (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 4)

    Отвечает: Layer
    Здравствуйте, Chporick!
    Заведи глобальную(в необходимых пределах) переменную, скажем IsPlaying: boolean, содержащую информацию о текущем состоянии медиаплеера. Далее в OnNotify медиаплеера на NotifyValue = nvSuccessful устанавливай ее в false. В обработчике своей кнопки "проиграть все" - воспроизводи в цикле, переводя перед воспроизведением IsPlaying ;= true; и дожидаясь возвращения IsPlaying в состояние false перед воспроизведением следующего файла. (См. приложение)
    Чтобы при закрытии формы 2 запускать проигрывание файла есть три способа:
    1. Показывать форму 2 через ShowModal - таким образом выполнение текущего кода остановится до момента закрытия формы 2 и следующий после ShowModal оператор выполнится сразу после закрытия формы 2 - им и воспроизводи
    2. Средствами WinAPI следить за состоянием формы 2 и запускать проигрывание после закрытия - более подробно это тема для отдельного разговора и достаточно серьезного
    3. Из формы 2 перед закрытием запуст ить на форме 1 воспроизведение файла - для этого в список uses модуля формы 2 необходимо включить модуль формы 1 в секцию implementation и в обработчике OnDestroy формы два обратиться к форме 1 и запустить воспроизведение

    Приложение:

    Ответ отправил: Layer (статус: 3-й класс)
    Ответ отправлен: 29.11.2008, 22:11

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


    Вопрос № 152.323
    Доброй ночи! Помогите разобраться.

    procedure TForm1.Button1Click(Sender : TObject);
    var
    i : integer;
    begin
    for i := 0 to self.ComponentCount-1 do
    if self.Components[i] is TLabel then
    self.Component[i].free;
    endl;

    вот это как Вы видите процедура уничтожения всех объектов класса TLabel. Подскажите что такое free и СomponentCount и для чего оно используется.
    Отправлен: 30.11.2008, 02:50
    Вопрос задал: compile (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: progerNSK
    Здравствуйте, compile!

    в цикле бежим по всем компонентам и если компонент принадлежит к классу Label уничтожаем его, соответсвенно componentCount общее число компонент, free - процедура уничтожения
    ---------
    Программист - это человек который решает проблему, о которой вы не знаете, способом который вы не понимаете
    Ответ отправил: progerNSK (статус: Студент)
    Ответ отправлен: 30.11.2008, 07:57

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

    Оценка за ответ: 5
    Комментарий оценки:
    Спасибо. Я вчера немножко затупил и вместо self написал free, т.е. подскажите пожалуйста что такое self.


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

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

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

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

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

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала 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.13 от 01.12.2008

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

    В избранное