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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 1108
от 01.04.2008, 10:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 447, Экспертов: 56
В номере:Вопросов: 4, Ответов: 12

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


Вопрос № 129133: Здравствуйте эксперты! Есть такой вопрос, у мну есть база данных Firebird. приложение в Delphi 7, компоненты таблиц и база данных в приложении Interbase .Когда добавляю данные в таблицы Напрямую связанные через Datasource c DBgrid-ом, они автоматичес...
Вопрос № 129156: Здравствуйте, уважаемые эксперты портала. Мой вопрос адресован тем людям, которые работают с программами-инсталляторами. Я использую инсталлятор Inno Setup Compiler 5.1.4. В общем, написал я программку, теперь хотелось бы создать установочный файл, к...
Вопрос № 129202: Здравствуйте, уважаемые эксперты портала. Вот такой вот у меня есть вопрос по Делфи: В общем, создал я 2 формы, (2я скрытая) разместил на форме таймер, когда таймер срабатывает, открывается 2я форма. Но когда открыты любые другие окна с прог...
Вопрос № 129204: Здравствуйте Уважаемые!Никогда ничего не писал для com-порта,поэтому и спрашиваю у Вас.Задача стоит о передачи изображения через него.Во-первых через какой компонент надо работать,я так думаю надо скачать какой то сторонний(видел в билдере RS-232)есл...

Вопрос № 129.133
Здравствуйте эксперты! Есть такой вопрос, у мну есть база данных Firebird. приложение в Delphi 7, компоненты таблиц и база данных в приложении Interbase .Когда добавляю данные в таблицы Напрямую связанные через Datasource c DBgrid-ом, они автоматически попадают в DBGrid, Но когда идет добавление данных в таблицы, данные из которых выводятся в DBGrid через sql запрос IBQuery, в DBGrid они попадают только после следующего запуска прогрммы, то есть требуется сделать следующее
IbDatabase1.Connected:=False;
IbDatabase1.Connected:=true;
После чего для работы программы необходимо опять установить значение Active = true для всех компонентов базы данных то есть для таблиц и query, так как после отключения базы они автоматически становятся False.
Просто переоткрыть IbQuery1 я пробовал, но это не помогло.
Есть ли какой нибудь метод или способ, при помощи которого можно решить мою проблему, как нибудь безболезненно переподключить базу данных или обновить IBquery, чтобы данные в DBGrid появлялись непосредственно сразу же после добавления их в таблицу.
Помогите пожалуйста, может кто знает как это сделать?
Отправлен: 26.03.2008, 10:48
Вопрос задал: Артур Вильевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Архангельский Андрей Германович
Здравствуйте, Артур Вильевич!
1) После добавления записи нужно сделать IBQuery.Post; затем IBTransaction.Commit;
2) для IBQuery, который связан с DBGrid нужно сделать IBQuery.Refresh;
---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 26.03.2008, 10:56
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое, я попробую сделать как вы сказали

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

Мой ответ на практически такой же вопрос №127573
==
После вставки записи Вам необходимо провести закрепление данных - Commit или CommitRetaining. (Разница только в том, что CommitRetaining не закрывает наборы данных, а просто Commit - закрывает).
Есть подозрение, что для каждого из IBQuery Вы используетет отдельный IBTransaction. Если это так, проверьте, чтобы у них были установлены параметры read_commited (читать данные подтвержденных транзакций. В противном случае установлен режим Snapshot_isolation - читаются данные, существовавшие на момент старта транзакции).
==
И не забудьте, что запрос, отображающий данные в гриде, после вставки данных надо обновить (переоткрыть)
Ответ отправил: Лукьяненко Алексей Валериевич (статус: Студент)
Ответ отправлен: 26.03.2008, 10:58
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое, я попробую, в тот раз я не совсем понял, что Commit нужно сделать для IBTransaction, Смысле не только установить CommitRetaining, но и подтвердить вручную.


Вопрос № 129.156
Здравствуйте, уважаемые эксперты портала. Мой вопрос адресован тем людям, которые работают с программами-инсталляторами. Я использую инсталлятор Inno Setup Compiler 5.1.4. В общем, написал я программку, теперь хотелось бы создать установочный файл, который распаковывает основной файл моей программки в автозапуск. Подскажите, как это устроить. Может, посоветуете мне какую-нибудь другую программу-инсталлятор, кроме Inno Setup (только желательно, чтобы она была бесплатная, и подскажите ссылочки, откуда ее можно скачать).
Заранее спасибо. Георгий.
Отправлен: 26.03.2008, 13:48
Вопрос задал: Чечин Георгий Александрович (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: AndreyZotov
Здравствуйте, Чечин Георгий Александрович!

Ответ на второй вопрос
http://www.istool.org/ - Этот инструмент работает в паре с Inno Setup и служит прекрасной визуальной оболочкой для него. Использую эту пару года 3 и доволен.

На первый... Вот нашел кусок из инета (сам не пробовал):
[Icons]
Name: "{commonprograms}Автозагрузка"; Filename: "{app}miranda32.exe"
Говорят, надо почитать в хелпе раздел "Переменные".

PS По ходу узнал что Inno Setup в последних версиях стал более русским (???)
Надо бы обновить эту парочку...
Ответ отправил: AndreyZotov (статус: 1-ый класс)
Ответ отправлен: 26.03.2008, 14:10
Оценка за ответ: 4
Комментарий оценки:
Спасибо за ответ. Но такой Вам встречный вопрос:
Вы то хоть сами поняли, что написали?
Я пока читал Ваш ответ бодро посмеялся.
С уважением, Георгий.
P.S. Не обижайтесь.

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Чечин Георгий Александрович!
Сделал, как Вы хотите: файл сохраняется в папке Автозагрузка, также отключено создание uninstaller-а (чтобы файлы в этой папке не размножать) и сообщение о том, что указанная папка уже существует.

Вот сам скрипт:
_________________________

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
 
[Setup]
AppName=Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
AppPublisherURL=http://www.example.com/
AppSupportURL=http://www.example.com/
AppUpdatesURL=http://www.example.com/
DefaultDirName={commonprograms}\Автозагрузка
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
 
 
; чтобы файл unis000.exe не создавался
Uninstallable=no
; разрешаем не создавать никакие иконки
AllowNoIcons=yes
; отключаем сообщение о том что папка уже существует
DirExistsWarning=no
 
 
[Languages]
Name: "english"; MessagesFile:"compiler:Default.isl"
 
[Tasks]
Name: "desktopicon"; Description:"{cm:CreateDesktopIcon}"; GroupDescription:"{cm:AdditionalIcons}"; Flags: unchecked
 
[Files]
Source: "C:\Program Files\Inno Setup 5\Examples\MyProg.exe";
DestDir: "{app}"; Flags: ignoreversion

; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
[Icons]
Name: "{group}\My Program"; Filename:"{app}\MyProg.exe"
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe";Tasks:desktopicon
 
[Run]
Filename: "{app}\MyProg.exe"; Description: "{cm:LaunchProgram,My Program}"; Flags: nowait postinstall skipifsilent

_________________________

Также можете его скачать из приложенного файла.

Если что не так, пишите в мини-форум - постараюсь помочь!:)

Удачи!

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.

Ответ отправил: Николай Владимирович / Н.В. (статус: Профессор)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 26.03.2008, 22:50
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое. Попробую сделать все, как Вы сказали. Спасибо еще раз.


Вопрос № 129.202
Здравствуйте, уважаемые эксперты портала.
Вот такой вот у меня есть вопрос по Делфи:
В общем, создал я 2 формы, (2я скрытая) разместил на форме таймер, когда таймер срабатывает, открывается 2я форма. Но когда открыты любые другие окна с программами, а моя программка свернута, - по таймеру открывается 2я форма, но открывается она на «заднем плане». Как сделать так, чтобы она открывалась поверх всех окон, независимо от того, какие это программы.
Отправлен: 26.03.2008, 18:48
Вопрос задал: Чечин Георгий Александрович (статус: 3-ий класс)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Drbear
!!!
Здравствуйте, Чечин Георгий Александрович!

Попробуйте установить FormStyle в fsStayOnTop

Простое выставление данного свойства не поможет.
Смотрите следующий ответ.

-----
∙ Отредактировал: Николай Владимирович / Н.В. (Профессионал)
∙ Дата редактирования: 26.03.2008, 19:07
Ответ отправил: Drbear (статус: 8-ой класс)
Ответ отправлен: 26.03.2008, 18:55
Оценка за ответ: 4
Комментарий оценки:
Спасибо. Но это почему-то не сработало.

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Чечин Георгий Александрович!
В событии OnPaint для второй формы напишите
FormStyle := fsStayOnTop;
Обратите внимание: изначально данное свойство должно быть fsNormal иначе форма останется на заднем плане.

А простая установка свойства FormStyle, как посоветовал предыдущий эксперт, здесь не поможет.

Удачи!
Ответ отправил: Николай Владимирович / Н.В. (статус: Профессор)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 26.03.2008, 19:06
Оценка за ответ: 5
Комментарий оценки:
Николай Владимирович, Вам отдельное спасибо. Ваши ответы мне очень хорошо помогают.

Отвечает: Mishell
Здравствуйте, Чечин Георгий Александрович!
как вариант при показе второй формы можно сделать так:
SetForegroundWindow(Application.Handle);
Ответ отправил: Mishell (статус: 9-ый класс)
Ответ отправлен: 26.03.2008, 19:54
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Попробую и так.

Отвечает: PavelGM
Здравствуйте, Чечин Георгий Александрович!

Ну и до кучи можно еще добавить к предыдущим такой способ

SetWindowPos(Form2.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);

А можно использовать все сразу, или два из трех - иногда по задаче нежелательно иметь стиль fsStayOnTop.
Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 26.03.2008, 21:54
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Интересный ответ.

Отвечает: Genia007
Здравствуйте, Чечин Георгий Александрович!
Можно сделать так, у меня нормально работает:
procedure TForm3.Timer1Timer(Sender: TObject);
begin
Form3.Show;
Form3.FormStyle:= fsStayOnTop;{Форма поверх остальных}
Form3.SetFocus;
end;
Ответ отправил: Genia007 (статус: 9-ый класс)
Ответ отправлен: 27.03.2008, 09:17
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: AndreyZotov
Здравствуйте, Чечин Георгий Александрович!

//сработал таймер
Application.BringToFront; //по желанию...
SetForegroundWindow(Form2.Handle); //должно сработать
Ответ отправил: AndreyZotov (статус: 1-ый класс)
Ответ отправлен: 28.03.2008, 13:53
Оценка за ответ: 4
Комментарий оценки:
Спасибо.


Вопрос № 129.204
Здравствуйте Уважаемые!Никогда ничего не писал для com-порта,поэтому и спрашиваю у Вас.Задача стоит о передачи изображения через него.Во-первых через какой компонент надо работать,я так думаю надо скачать какой то сторонний(видел в билдере RS-232)если есть ссылка дайте пожалуйста у меня D7.Во-вторых может поможете с сылками на литературу которую нужно почитать,ну и было бы замечательно если у кого есть готовый код.
Отправлен: 26.03.2008, 19:00
Вопрос задал: Зотов.Г.А (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Igor_
Здравствуйте, Зотов.Г.А!

Использую CPort он работает как для Delphi так и для BCB.
Очень удобная штука.

Я ни чего не зная о работе с COM-портом с этим компонентом уже реально работал через пару часов с устройством (кассовый аппарат).

Рекомендую.

Скачать указанный компонент можно отсюда: http://sourceforge.net/projects/comport

Добавлена ссылка на загрузку.
-----
∙ Отредактировал: Николай Владимирович / Н.В. (Профессионал)
∙ Дата редактирования: 26.03.2008, 19:25
Ответ отправил: Igor_ (статус: 4-ый класс)
Ответ отправлен: 26.03.2008, 19:08
Оценка за ответ: 5
Комментарий оценки:
Спасибо и за это,есть хоть с чего начать

Отвечает: Marked One
Здравствуйте, Зотов.Г.А!
Вот компонент Com32: ссылка. А вот пример работы с ним: http://rusfaq.ru/upload/380

Оформлены ссылки.
-----
∙ Отредактировал: Николай Владимирович / Н.В. (Профессионал)
∙ Дата редактирования: 26.03.2008, 19:32
Ответ отправил: Marked One (статус: 9-ый класс)
Ответ отправлен: 26.03.2008, 19:30
Оценка за ответ: 5
Комментарий оценки:
Спасибо буду разбираться.


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

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

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

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

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

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


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


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.72.6 beta от 22.03.2008

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

В избранное