Вопрос № 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 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 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 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Шамрай Олег Анатолиевич
Здравствуйте, 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 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 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 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 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 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 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 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо. Я вчера немножко затупил и вместо self написал free, т.е. подскажите пожалуйста что такое self.
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.