Вопрос № 151558: здравствуйте уважаемые эксперты решил добавить в прогу ведение логов ошибок и натолкнулся на проблемку. Не знаю как можно получить имя процедуры в которой была вызвана эта процедура. Тоесть я для отлавливания всех ошибок использую Appli...
Вопрос № 151671: Здравствуйте, уважаемые эксперты! Нужно загрузить графический файл в TImage и предотвратить открытие испорченных или пустых файлов. Например, создаю пустой файл пустышка.JPG
и при попытке его открыть выскакивает окошко "JPEG error #42" ,...Вопрос № 151691: Уважаемые эксперты,подскажите пожалуйста новичку как прописать програмку.... так что бы по истечении 1минуты программа закрывалась...Заранее благодарю......Вопрос № 151694: Уважаемые эксперты, как прописать таймер что бы он отсчитывал время назад и был видим на форме(в label или pan
el) и после того как время будет 00:00:00 программа закроется??...Вопрос № 151696: Здравствуйте, господа эксперты. Имеется следующая проблема. Главное окно программы скрывается по правому тыку на кнопке в панели инструментов, вот так <div style="margin:15px; margin-top:10px"><div><b><font color="gray">Код:</font></b></div><pr...Вопрос № 151701: Здравствуйте! У меня проблема:
мне необходимо сделать программу, которая будет вращать квадрат. У меня не получается это сделать, т.е. частично я это сделал - у меня получается вращение какой-то другой фигуры, но как превратить ее в квадрат я не з...
Вопрос № 151.558
здравствуйте уважаемые эксперты
решил добавить в прогу ведение логов ошибок и натолкнулся на проблемку. Не знаю как можно получить имя процедуры в которой была вызвана эта процедура.
Тоесть я для отлавливания всех ошибок использую ApplicationEvents (ну чтобы в каждой процедуре не писать try....except) OnException
в ней написал :
DebuggerLogs(E.Message);
DebuggerLogs - просто пишет в лог все ошибки
вопрос - как кроме ошибок в таком варианте получить еще и имя процедуры
в которой она произошла ?
Специализированные библиотеки компонентов прошу не предлагать - я про них сам знаю :)
Отправлен: 23.11.2008, 18:47
Вопрос задал: source (статус: 2-й класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Шевченко Дмитрий
Здравствуйте, source!
Можно сделать глобальную переменную типа String и в начале каждой процедуры записывать в неё название этой процедуры. В случае ошибки - записать её значение в лог.
Ответ отправил: Шевченко Дмитрий (статус: 5-й класс)
Ответ отправлен: 23.11.2008, 19:36
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236453 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 4 Комментарий оценки: не - у меня более 40 000 строк в программе если не получится, то буду использовать баблиотеку бля создания багрепорта как в QIP Infirm
Вопрос № 151.671
Здравствуйте, уважаемые эксперты! Нужно загрузить графический файл в TImage и предотвратить открытие испорченных или пустых файлов. Например, создаю пустой файл пустышка.JPG и при попытке его открыть выскакивает окошко "JPEG error #42" , а я хочу, чтобы выводилось осмысленное сообщение, типа "Файл поврежден" (см. листинг). Подскажите, как быть?
Приложение:
Отправлен: 24.11.2008, 17:52
Вопрос задал: Гидроген (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 9)
Отвечает: Виктор Пырлик
Здравствуйте, Гидроген!
вот так попробуйте
Код:
procedure TForm1.Button1Click(Sender: TObject); begin if OpenPictureDialog1.Execute then begin try Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); except on e:Exception do
MessageBox(GetActiveWindow,PChar(Format('Ошибка:%s'#13+'файл поврежден',[e.Message])),'Ошибка',MB_OK+MB_ICONSTOP); end; end; end;
--------- не получается там - где не пробуют
Ответ отправил: Виктор Пырлик (статус: Профессионал) Россия, Екатеринбург Тел.: 89043822027 ICQ: 490191733 ---- Ответ отправлен: 24.11.2008, 18:11
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236558 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 151.691
Уважаемые эксперты,подскажите пожалуйста новичку как прописать програмку.... так что бы по истечении 1минуты программа закрывалась...Заранее благодарю...
Отправлен: 24.11.2008, 19:18
Вопрос задал: Dorik (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Максим Sly
Здравствуйте, Dorik! В делфи нужно на форме разместить компонент время(TIMER) на вкладке System на форме, для процедуры FormActivate (Активация формы) написать следующее procedure Tform1.FormActivate(Sender: TObject); begin
form1.Timer1.Enabled := true; end;
после для Timer указываем количество секунд, которое он будет работать и после чего произойдет выполнение следующей процедуры (для саого таймера)
procedure Tform1.Timer1Timer(Sender: TObject); begin
Application.Terminate; // закрытие программы end;
--------- Мы не ищем легких путей.... они сами нас находят:)
Ответ отправил: Максим Sly (статус: 1-й класс)
Ответ отправлен: 24.11.2008, 19:28
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236577 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 151.694
Уважаемые эксперты, как прописать таймер что бы он отсчитывал время назад и был видим на форме(в label или panel) и после того как время будет 00:00:00 программа закроется??
Отправлен: 24.11.2008, 19:51
Вопрос задал: Dorik (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
procedure TForm1.FormCreate(Sender: TObject); begin mtime := StrToTime('00:00:59');// установим время - 59 секунд T
imer1.Interval := 1000; //1 секунда Timer1.Enabled := false; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin mtime :=IncSecond(mtime,-1); // уменьшаяем на 1 секунду if mtime >0 then begin Label1.Caption := TimeToStr(mtime); // отображаем end else begin Timer1.Enabled := false; // останавливаем таймер //Close; // или закрываем приложение end; end;
procedure TForm1.Button1Click(Sender: TObject); begin
Timer1.Enabled := true; end;
end.
--------- не получается там - где не пробуют
Ответ отправил: Виктор Пырлик (статус: Профессионал) Россия, Екатеринбург Тел.: 89043822027 ICQ: 490191733 ---- Ответ отправлен: 24.11.2008, 20:31
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236584 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Отвечает: Drbear
Здравствуйте, Dorik! Попробуйте вариант без использования таймера (в приложении).
Приложение:
Ответ отправил: Drbear (статус: Студент)
Ответ отправлен: 24.11.2008, 20:47
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236588 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Вопрос № 151.696
Здравствуйте, господа эксперты. Имеется следующая проблема. Главное окно программы скрывается по правому тыку на кнопке в панели инструментов, вот так
Код:
procedure TMainForm.ToolButton2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin
case Button of mbRight: MainForm.Hide; mbLeft: Close; end; end;
Также в коде самого проекта есть такое
Код:
begin if mmm then begin ShowWindow(FindWindow('TMainForm','Главное окн
о'),SW_RESTORE); Application.Terminate; end else begin SplashForm:=TSplashForm.Create(nil); SplashForm.Show; SplashForm.Repaint; Application.Initialize; Application.Title := 'Главное окно'; Application.CreateForm(TMainForm, MainForm); Application.CreateForm(TDataModule1, DataModule1); Application.CreateForm(TEditRecForm, EditRecForm); Application.CreateForm(TFormParametr, FormParametr); Sleep(1000); SplashForm.Close;
Application.Run; end; end.
То есть, если приложение уже запущено, но сидит в трее, то окно просто активизируется. И вот в чём проблема, второй раз правый клик уже не работает. Окно не скрывается. Подскажите где собака зарыта?
Отправлен: 24.11.2008, 19:58
Вопрос задал: Maximus777 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Drbear
Здравствуйте, Maximus777! Попробуйте после активизации приложения воткнуть такую функцию указав в качестве входного параметра MainForm
Приложение:
Ответ отправил: Drbear (статус: Студент)
Ответ отправлен: 24.11.2008, 20:57
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236590 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: monah
Здравствуйте, Maximus777! В строке Cloce добавте указатель на себя Self.close; А еще лучше воспользуйтесь API функцией ShowWindow(application.handle, sw_hide); // прячет приложение ShowWindow(Self.handle, sw_hide); // прячет форму также попробуйте application.minimize;
Приложение:
--------- festina lente
Ответ отправил: monah (статус: Практикант)
Ответ отправлен: 24.11.2008, 21:38
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236593 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 151.701
Здравствуйте! У меня проблема: мне необходимо сделать программу, которая будет вращать квадрат. У меня не получается это сделать, т.е. частично я это сделал - у меня получается вращение какой-то другой фигуры, но как превратить ее в квадрат я не знаю. Причем, можно, чтобы она вращалась не вокруг своей оси, а так, как она сейчас вращается (увидите, когда запустите программу) - главное, чтобы это был квадрат, а не тот 4-угольник, который у меня там получился. Люди, помогите, пожалуйста, сделать так, чтобы
вместо моей получившейся фигуры вращался квадрат? Язык программирования: Delphi 7. Программа в приложении. На форме располагается таймер и Image. Также я использую модуль, код которого будет приведен в приложении после кода проги. Еще Вам понадобится пустой файл *.bmp, который применяется для очистки Image от следов фигуры при вращении. Я УЖАСНО ИЗМУЧИЛСЯ. ОГРОМНОЕ СПАСИБО!!! УМОЛЯЮ, ПОСМОТРИТЕ
ПРОГРАММУ, ПОЖАЛУЙТСТА!!
Приложение:
Отправлен: 24.11.2008, 20:17
Вопрос задал: AkaProc (статус: 4-й класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Genia007
Здравствуйте, AkaProc! Вместо Вашей программы могу предложить свою, которая намного проще, на форме таймер и PaintBox, код в приложении, а весь проект по адресу: http://jonix.ucoz.ru/proejct/kvadrat.rar
Приложение:
--------- Помогли тебе, помоги и ты.
Ответ отправил: Genia007 (статус: Студент)
Ответ отправлен: 26.11.2008, 20:25
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236807 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо!
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.