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

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


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

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

Выпуск № 922
от 12.09.2007, 07:05

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


Вопрос № 101096: Здравствуйте Уважаемые эксперты. Как можно в Delphi уменьшить качество mp3 файлов?...
Вопрос № 101122: Здравствуйте уважаемые эксперты. У меня такой вопрос: Стандартный DbGrid в Delphi отображает столбцы вертикально, что в моём случае очень не удобно. Можно ли как-нибудь заставить его делать это горизонтально? дата 01.01.07 02.01.07 03.01...
Вопрос № 101123: Уважаемые эксперты, подскажите, пожалуйста, как правильно вводить массивы в Delphi. Вот, например программка, которая запрашивает температуру воздуха в течение трех дней и запоминает введенные значения в массиве Temper и затем вычисляется средне...

Вопрос № 101.096
Здравствуйте Уважаемые эксперты. Как можно в Delphi уменьшить качество mp3 файлов?
Отправлен: 06.09.2007, 18:35
Вопрос задал: T1000 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Igor_
Здравствуйте, T1000!

При желании можно написать "обертку" для перекодировщика, который работает с командной строки lame.exe - аналог RazorLame.

Сам с нуля, я бы точно писать не стал..
Ответ отправил: Igor_ (статус: 3-ий класс)
Ответ отправлен: 06.09.2007, 18:50


Вопрос № 101.122
Здравствуйте уважаемые эксперты. У меня такой вопрос:
Стандартный DbGrid в Delphi отображает столбцы вертикально, что в моём случае очень не удобно. Можно ли как-нибудь заставить его делать это горизонтально?

дата 01.01.07 02.01.07 03.01.07 и т.д.
давление 5 3 4

Смотрел DbGridEh. но он тоже не умеет этого делать
Отправлен: 06.09.2007, 22:55
Вопрос задал: Romiros (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Mishell
Здравствуйте, Romiros!
сами гриды вряд ли Вам помогут развернуть столбцы горизонтально
я думаю Вам больше подойдет компонент TDBCtrlGrid с установленным св-вами Orientation:=goHorizontal; RowCount:=1; ColCount:=5 (или сколько Вам нужно колонок)
на панели этого компонента расположите два компонента TDBText (или TDBEdit) в которых пропишите нужные Вам поля (для даты и давления)
Ответ отправил: Mishell (статус: 6-ой класс)
Ответ отправлен: 07.09.2007, 10:14

Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Romiros!

Посмотрите библиотеку NXGrids - сетка там умеет транспонировать представление. Библиотеку брал кажется на torry.net
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 9-ый класс)
Ответ отправлен: 07.09.2007, 10:45

Отвечает: Alexey Bednov
Здравствуйте, Romiros!
Есть компонент - cxVerticalGrid от Developer Express - он как раз выводит данные в нужном виде.
Ответ отправил: Alexey Bednov (статус: 1-ый класс)
Ответ отправлен: 07.09.2007, 13:19


Вопрос № 101.123
Уважаемые эксперты, подскажите, пожалуйста, как правильно вводить массивы в Delphi.
Вот, например программка, которая запрашивает температуру воздуха в течение трех дней и запоминает введенные значения в массиве Temper и затем вычисляется среднее значение. Для организации подсказок используется массив day. Помогите, пожалуйста реализовать этот код в Delphi! Заранее спасибо Вам большое, Вы мне очень помагаете разбираться с Delphi!:-)

Приложение:

Отправлен: 06.09.2007, 23:05
Вопрос задала: Алена (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Omickron
Здравствуйте, Алена!

ИМХО, для учебной программки лучше всего вводить данные в массив из файла.
Т.е. создаёте текстовый файл, откуда считываете параметры.
Операции чтения и записи в файл стандартные.
Ответ отправил: Omickron (статус: 3-ий класс)
Ответ отправлен: 06.09.2007, 23:26
Оценка за ответ: 4

Отвечает: Delph
Здравствуйте, Алена!

Предлагаю Вам завести новый тип данных в Вашей программе:

TWeather = Record
year, month, day, hour, min: Word; // Дата и время
Temperature: Double; // Температура
Humidity: Double; // Влажность
end;

Если что-то лишнее, можно выкинуть. А можно и наоборот, что-то добавить. Далее определяется массив с этим типом данных (Weather), а заодно запись с результатами одного цикла измерений (WeatherOne):

Weather: Array of TWeather;
WeatherOne: TWeather;

В программе удобно сначала заполнить структуру WeatherOne, после чего уже добавить её к массиву. Вот как я считывал данные с формы:

procedure TWeatherForm.ApplyButtonClick(Sender: TObject);
var n: Integer;
begin
WeatherOne.year := StrToInt(YearEdit.Text);
WeatherOne.month := StrToInt(MonthEdit.Text);
WeatherOne.day := StrToInt(DayEdit.Text);
WeatherOne.hour := StrToInt(HourEdit.Text);
WeatherOne.min := StrToInt(MinuteEdit.Text);
WeatherOne.Temperature := StrToFloat(TemperatureEdit.Text);
WeatherOne.Humidity := StrToFloat(HumidityEdit.Text);
n := Length(Weather);
SetLength(Weather, n + 1);
Weather[n] := WeatherOne;
end;

Далее в нужный момент весь массив сохраняется на диске:

procedure TWeatherForm.SaveButtonClick(Sender: TObject);
var f: File of TWeather; i: Integer;
begin
if Length(Weather) < 1 then exit;
AssignFile(f, 'Weather.dat'); ReWrite(f);
for i := 1 to Length(Weather) do Write(f, Weather[i - 1]);
CloseFile(f);
end;

Когда массив есть на диске, его можно прочитать в память по следующему сценарию:

AssignFile(f, 'Weather.dat'); Reset(f);
i := 0;
While not eof(f) do
begin
inc(i); SetLength(Weather, i);
Read(f, Weather[i - 1]);
end;
CloseFile(f);

Цикл While здесь используется только потому, что программа заранее не знает длину файла (хотя ничего не мешает её узнать, но лень...). Теперь можно проводить статистические исследования.
---------
Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.
Ответ отправил: Delph (статус: 8-ой класс)
Ответ отправлен: 07.09.2007, 09:32
Оценка за ответ: 5
Комментарий оценки:
Спасибо!:-)

Отвечает: Shurka
Привет! Просто какой-то мастер-класс по переучиванию с Паскаля на Дельфи получается :))
Для того чтобы что-то спросить у пользователя можно использовать функцию InputBox.
Она определена в модуле Dialogs, поэтому чтобы компилятор не ругался при ее использовании, нужно в строчке uses ... помимо того что там уже написано дописать Dialogs, если его там еще нет. Есть несколько различных версий этой функции для ввода различных типов данных. Чтобы посмотреть их все кликаешь мышью по написанному слову InputBox и жмешь F1. Компилятор сам решает какую функцию запустить исходя из тех параметров, которые мы передаем функции при вызове. Этот механизм, кстати называется перегрузкой. Вот как можно ввести вещественный массив:
for i:=1 to 3 do
temper[i]:= InputBox('Ввод температуры', {Заголовок}
'За ' + day[i], {Текст пояснения к полю ввода}
0.0 {Значение по умолчанию. Если тут поставить просто 0 то вызвана будет функция для ввода целых чисел ! ! !});

Ну а чтобы что-то пользователю сообщить есть процедура ShowMessage с одним параметром - строкой.
Превратить вещественное число в строку поможет FloatToStr

Сообщаем пользователю среднее:
ShowMessage('Среднее значение за три дня: ' + FloatToStr(Sredn));
Я постарался привести наиболее простые способы. Но простота часто достигается в ущерб качеству и гибкости. Как я уже говорил осталось еще 999 способов сделать это.

Ответ отправил: Shurka (статус: 3-ий класс)
Ответ отправлен: 07.09.2007, 16:39
Оценка за ответ: 5
Комментарий оценки:
Спасибо Вам ОГРОМНОЕ, Shurka!;-)


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

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

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

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

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


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


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

В избранное