Вопрос № 49581: Добрый день, эксперты... Возник такой вопрос...
Есть дисковый путь, который меняется.... В зависимости от открытого файла.
Как мне вытащить имя файла, а то что-то не могу вспомнить как....
Если можно с примерами...Вопрос № 49582: Здравствуйте!
Помогите решить задачку.
Подскажите как правильно рассчитать коефициент
при выводе на печать текста Printer.Canvas.TextOut
с учётом разрешения принтера
чтоб при разном разрешении текст выводился одинаково на бумаге.<...Вопрос № 49596: Кто нибудь знает, можно ли внедрить SWF (Flash-ку) в программу на дельфине. В смысле, что-бы она показывалась на форме....Вопрос № 49623: Ув. Эксперты!
Как реализовать перекодировку mp3 с битрейтом 128 кбит/с в mp3 с битрейтом 96 кбит/с. Хочется Группу файлов перекодировать..
Спасибо...Вопрос № 49629: Уважаемые эксперты, здравия желаю!
Пишу одну программку. На форме лежит три SpinEdit'a: SpinYear, SpnMonth и SpnDay. И еще есть Button "Ok". При щелчке по "Ok" необходимо проверить, верно ли введена дата в трех СпинЭдитах. Для...Вопрос № 49687: Здравствуйте уважаемые мастера.
Как из двух практически одинаковых форм (Form1 и Form2)
в приложении печатать отчет QReport, который сидит на
третьей форме (Form3)? Вопрос задан не очень понятно, лучше приведу код:
1.Вариант - ра...
Вопрос № 49.581
Добрый день, эксперты... Возник такой вопрос...
Есть дисковый путь, который меняется.... В зависимости от открытого файла.
Как мне вытащить имя файла, а то что-то не могу вспомнить как....
Если можно с примерами
Отправлен: 19.07.2006, 14:01
Вопрос задал: PheanixN (статус: 3-ий класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Ерёмин Андрей
Здравствуйте, PheanixN!
Вам помогут функции ExtractFilePath() и ExtractFileDir(). Она возвращают путь к каталогу, в котором находится указанный файл. Обычно это используется совместно с текущим путём exe-файла приложения: ExtractFilePath(Application.ExeName);
Это выдаст каталог, в котором расположена программа.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Rusland
Здравствуйте, PheanixN!
GetCurrentDir(); // получает путь
SetCurrentDir(); // устанавливает путь
--------- Если партия скажет есть контакт, будем есть контакт.
Ответ отправил: Rusland (статус: Специалист)
Ответ отправлен: 19.07.2006, 14:05
Отвечает: Gh0stik
Здравствуйте, PheanixN!
Вот предлагаю Вам такие функции: ExtractFilePath(const FileName: string) - путь к файлу ExtractFileName(const FileName: string) - имя файла ExtractFileDrive(const FileName: string) - название диска ExtractFileDir(const FileName: string) - путь к файлу
Удачи!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Студент)
Ответ отправлен: 19.07.2006, 14:13
Вопрос № 49.582
Здравствуйте!
Помогите решить задачку.
Подскажите как правильно рассчитать коефициент
при выводе на печать текста Printer.Canvas.TextOut
с учётом разрешения принтера
чтоб при разном разрешении текст выводился одинаково на бумаге.
Заранее спасибо!
Отправлен: 19.07.2006, 14:21
Вопрос задал: Vasiliy (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, Vasiliy!
Можно сделать что-то типа такого:
ScaleX := GetDeviceCaps(Printer.Handle, logPixelsX) div screen.PixelsPerInch;
ScaleY := GetDeviceCaps(Printer.Handle, logPixelsY) div screen.PixelsPerInch;
Только не забудте подключить модуль Printers.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 20.07.2006, 06:23
Вопрос № 49.596
Кто нибудь знает, можно ли внедрить SWF (Flash-ку) в программу на дельфине. В смысле, что-бы она показывалась на форме.
Отправлен: 19.07.2006, 17:27
Вопрос задал: Dr.Alex (статус: 10-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Dr.Alex!
Удачи!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Студент)
Ответ отправлен: 20.07.2006, 10:17 Оценка за ответ: 5
Вопрос № 49.623
Ув. Эксперты!
Как реализовать перекодировку mp3 с битрейтом 128 кбит/с в mp3 с битрейтом 96 кбит/с. Хочется Группу файлов перекодировать..
Спасибо
Отправлен: 19.07.2006, 22:23
Вопрос задал: $erBep (статус: 2-ой класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ерёмин Андрей
Здравствуйте, $erBep!
Скачайте Lame MP3 Encoder: http://lame.sourceforge.net/. С помощью него можно конвертировать формат MP3 (в том числе из WAV и из MP3). В справке описаны все параметры его работы. А запускать так: ShellExecute(0,'open','lame.exe','параметры','',SW_SHOWNORMAL); --------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: PheanixN
Здравствуйте, $erBep!
К ответу предыдущего експерта могу только добавить, что есть еще такая софтинка. По сути тот же Lame, только с графическим интерфейсом, и писать параметры в командной строке не требуется...
http://www.freecodecs.net/files/lamexp.zip
Ответ отправил: PheanixN (статус: 3-ий класс)
Ответ отправлен: 20.07.2006, 10:24
Вопрос № 49.629
Уважаемые эксперты, здравия желаю!
Пишу одну программку. На форме лежит три SpinEdit'a: SpinYear, SpnMonth и SpnDay. И еще есть Button "Ok". При щелчке по "Ok" необходимо проверить, верно ли введена дата в трех СпинЭдитах. Для этого написал процедуру (в приложении). Когда запустил программу и ввел намеренно неверную дату (31 февраля 2006), Delphi "заругался". Вылетела ошибка: "Project myprog.exe raised exception class EConverError with message 'Invalid argument to date encode'". Программу я откомпилировал,
и запустил уже exe-шный файл. Ввел опять неверную дату. Все нормально, программа выдала сообщение о неверно введенной дате. И программа не вылетела, продолжила работать дальше. У меня к Вам вопрос: что это, глюк Делфи (5-я версия) или все же проблема в алгоритме? Может я действительно что-то не верно написал в ниже приведенном алгоритме?
С уважением,
Александр (zimorodokbrest@rambler.ru)
Отвечает: Tsechoev Bagaudin
Здравствуйте, Зимородкин Александр!
Все нормально, в режиме отладки исполнение программы прерывается в случае исключения. На то она и отладка :)
--------- Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: Студент)
Ответ отправлен: 19.07.2006, 23:25 Оценка за ответ: 5 Комментарий оценки: Все понял! Благодарю за консультацию!
Отвечает: Melamed
Здравствуйте, Зимородкин Александр!
Если не хочешь, чтоб при отладке программа выскакивала, отключи обработку исключения
EConverError отладчиком. Это делается в меню Tuls->Option или Tuls->Deduger (не помню как в Delphi 5). Потом на вкладке Language Exceptions
085;аходишь список Excthnion type to ignore и напротив ислючания EConverError ставишь галочку. Если этого исключения нету,
то добавляещь его нажатием кнопки "Add" на этой вкладке. И все будет тип-топ.
P/S Извини, если что-то напутал. Риекомендацию писал сверяясь с Delphi 2005. Но в 5-ки такой механизм предусмотрен,
это точно. Поищи
Ответ отправил: Melamed (статус: 2-ой класс)
Ответ отправлен: 20.07.2006, 00:56 Оценка за ответ: 5 Комментарий оценки: Спасибо!
Отвечает: Савенко Вадим Иванович
Здравствуйте, Зимородкин Александр!
В дополнение к вышесказанному могу только посоветовать обрабатывать исключения с помощью блоков try ... except , а еще лучше не допускать исключений. Иначе Вы при написании какой-нибудь сложной программы будете долго разбираться, где вылезла ошибка
Ответ отправил: Савенко Вадим Иванович (статус: 4-ый класс)
Ответ отправлен: 20.07.2006, 10:16 Оценка за ответ: 5
Вопрос № 49.687
Здравствуйте уважаемые мастера.
Как из двух практически одинаковых форм (Form1 и Form2)
в приложении печатать отчет QReport, который сидит на
третьей форме (Form3)? Вопрос задан не очень понятно, лучше приведу код:
1.Вариант - работает:
На Form3:
type
TForm3 = class(TForm)
QReport: TQuickRep;
...........
private
...........
public
...........
end;
implementation
uses Form1,Form2;
.............
procedure TForm3.QReportBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
if Application.FindComponent('Form2') = nil then begin
with Application.FindComponent('Form1') as TForm1 do begin
// Работа с полями и параметрами по нескольким DataSet
// на Form1(DataSetы полностью индентичны с DataSetами на Form2).
.........
end;
end
else begin
with Application.FindComponent('Form2') as TForm2 do begin
// Работа с полями и параметрами по нескольким DataSet
// на Form2(DataSetы полностью индентичны с DataSetами на Form1).
.........(Тот же самый код)
end;
........
end;
И так во всех Bandax идет повторение кода.
2.Вариант - попытка избавиться от повторяющегося кода:
На Form3:
type
TForm3 = class(TForm)
QReport: TQuickRep;
private
...........
MyClass: TClass;
namf: string;
public
...........
end;
implementation
uses Form1,Form2;
.............
procedure TForm3.QReportBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
if Application.FindComponent('Form2') = nil then begin
MyClass:=TForm1;
namf:='Form1';
QReport.DataSet:=Form1.Query1;
...........
end
else begin
MyClass:=TForm2;
namf:='Form2';
QReport.DataSet:=Form2.Query1;
...........
end;
with Application.FindComponent(namf) as MyClass do begin
// Работа с полями и параметрами по нескольким DataSet
// на Form1 или Form2.
.........
end;
end;
Но в данном варианте компилятор не видит DataSetы, которые находятся
на Form1 или Form2. Где ошибка и как с ней бороться?
Отправлен: 20.07.2006, 13:13
Вопрос задал: Kraw (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 8)
Отвечает: Physicist
Здравствуйте, Kraw!
Раз формы почти одинаковые, то проще наследовать их от некоторого класса TMyForm, в котором должны быть описаны все DataSet'ы и т.д., используемые формой Form3. Тогда Вариант 2 будет работать, если объявить MyClass:TMyForm.
Ответ отправил: Physicist (статус: 7-ой класс)
Ответ отправлен: 20.07.2006, 13:24