Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Embarcadero RAD Studio XE2 (Pulsar)

Автор: korstin
Дата сообщения: 19.04.2012 08:56
Сталкивался кто-нибудь с ошибкой при запуске студии "Access violation at adress xxxxxx in module 'rtl160.bpl'"?
Автор: mdid
Дата сообщения: 19.04.2012 16:12
korstin
а среду переустанавливали?
--------------------------------------------
вопрос...в общем сто лет не юзал стандартные компоненты и тут беда...есть TLabel и скин к форме...захотел я значить что бы эта лейбла была серым цветов...но в ран тайме цвет сбрасывается на черный...как победить?


Автор: Arioch1
Дата сообщения: 19.04.2012 20:43
> скин к форме

что это ?

Если введённые в ХЕ2 VCL Themes, то они и не предназначены для разных шалостей с цветами. Установил тему - будь добр исполнять.
Автор: delover
Дата сообщения: 20.04.2012 08:27
Arioch1
У меня опен диалог тормозил из за ThoortleSVN кеша. Снёс - перестал тормозить.

Добрался до массива System.PIntegerArray. Чтобы быть точным -

Код: IntegerArray = array[0..$effffff] of Integer;
PIntegerArray = ^IntegerArray;
Автор: Man_Without_Face
Дата сообщения: 20.04.2012 09:17
Пишу лог в потоке через критическую секцию:
[more]
procedure WriteLog(const Msg: string);
var
LogThread: TLogThread;
begin
LogThread := TLogThread.Create(true);
LogThread.FreeOnTerminate := true;
LogThread.Priority := tpNormal;
LogThread.msg := msg;
LogThread.Resume;
end;

procedure TLogThread.Execute;
var
sFile, sMsg: string;
F: TextFile;
year, month, day: Word;
begin
LogThreadCriticalSection.Enter;
decodedate(date, year, month, day);
sFile := 'Serverlogs\Server('+inttostr(day)+'-'+inttostr(month)+'-'+inttostr(year)+').log';
try
if FileExists(sFile) then
begin
AssignFile(F, sFile);
Append(F);
end
else
begin
AssignFile(F, sFile);
ReWrite(F);
end;
sMsg := FormatDateTime('dd.mm.yyyy hh:nn:ss.zzz', Now)+ ' : ' + Msg;
Writeln(F, sMsg);
finally
CloseFile(F);
end;
LogThreadCriticalSection.Leave;
end;
[/more]
Записи в лог попадают в разнобой, т.е. первая запись может оказаться записанная второй или третьей. Как это можно изменить, чтобы записывались по порядку?
Автор: korstin
Дата сообщения: 20.04.2012 09:53
mdid

Цитата:
а среду переустанавливали?

Ну дык. Переустановил, поработал чуток - после пары закрытий студии опять та же ошибка. Возникает на update3 и update4.
Автор: Arvur
Дата сообщения: 20.04.2012 12:22
Man_Without_Face
Завести какой-нибудь TQueue (очередь), все доступы к нему обернуть в CriticalSection и писать туда строки лога. А поток не создавать каждый раз новый, а наоборот держать один запущенным и из него разбирать очередь по порядку.

(в очередь я бы клал какой-нибудь record или класс со временем и строкой)

... Честно говоря, не уловил смысл простого лога в отдельном потоке. Есть причины?
Автор: Frodo_Torbins
Дата сообщения: 20.04.2012 13:17
korstin
Скорее всего какой то из установленных компонент содержит кривой код.

Man_Without_Face
Для ситуации, когда есть несколько писателей в разных потоках, это совершенно нормально. Если нужно писать сообщения в лог в более строгой последовательности, то пишущий поток должен быть один на все приложение, и работать, пока работает приложение. Если у вас несколько процессов пишущих в один файл, то нужно выделять отдельный процесс для ведения логов.
Автор: vez
Дата сообщения: 20.04.2012 13:48
Кстаnи, в RadXE2 есть ошибка в билдерной части,

TSysCharSet sset;
sset << ':';

sset не заполняется, QC#105004
Автор: deks
Дата сообщения: 20.04.2012 15:04
Frodo_Torbins
Arvur

Для многопоточных задач в приложениях лучше всего юзать OTL - OmniThreadLibrary. Эта библиотека довольно сильно помогает с многопотоковыми приложениями, и в ней решены отдельными классами некоторые сложные задачи. Много конкретных примеров) Рекомендую!)
Автор: delover
Дата сообщения: 20.04.2012 19:39
отлично, deleted я уже почти что верю[
Автор: deks
Дата сообщения: 23.04.2012 17:04
Lena44

.. Перенесено из "Вареза" - вопрос был почему recompile из FR4.12.6 не работает под XE2.

По поводу FR4-Ent и DXE2: вкратце - это мрачный пц как там все для XE2 сделано.

Во-первых, FR4 при установке копирует bpl в windows\system (SysWOW64). В XE2 в связи с появлением x64 так делать не надо - так как в зависимости от целевой платформы, подхватывается нужный bpl или из lib, или из lib64.

Во-вторых, при установке FR4.Ent не удаляется FR4 Emro Edition (по крайней мере, из списка установленных программ в панели управления) - это дополнительные проблемы.. Лучше удалить это чудо заранее, так как после установки FR4.Ent удаляется уже FR4.Ent!

В третьих - те пакеты, которые лежат в Sources, вообще не особенно адаптированы под XE2: при ручной рекомпиляции в студии не хватает многих алиасов к новым пространствам имен (winapi, system.win), в результате чего студия не может найти windows.dcu, comobj.dcu и тп.. Я удивлен, как ребята из FR вообще сумели бинарники в свой инсталл сделать! Судя по всему, у них есть build сервера, где конфиг задается параметрами командной строки..

В результате - Не вижу смысла пользовать recompile. Я делаю все в среде и руками. Сначала чистим машину от следов bpl от FR и от EMRO Edition. Потом в среде делаем project group, куда набрасыаем все пакеты. Дальше - build/install, руками указываем недостающие опции.. Мануал по ручной перекомпиляции в install.txt Я как то так боролся! Хотя обидно - могли бы и разрабы порядок навести!
Автор: Lena44
Дата сообщения: 23.04.2012 21:24

Цитата:
Сначала чистим машину от следов bpl от FR


У меня на компьютере две студии XE и ХЕ2. В ХЕ установлен адаптированный для нее FR и он мне нужен. Мне также захотелось иметь FR и в новой студии XE2. Я установила XE2 и во время установки отказалась от предлагаемого по умолчанию FR. Таким образом, XE2 чистая от FR. Если для установки FR в ХЕ2 надо чистить и XE от FR, то этот вариант мне не подходит. Мне надо FR в обеих студиях.


Цитата:
Потом в среде делаем project group, куда набрасыаем все пакеты


Можно чуть подробнее, для блондинки, о набрасывании пакетов. Что и как по пунктам.
Автор: deks
Дата сообщения: 24.04.2012 14:09
Lena44

Тогда у вас на машине не должно быть файлов вида fr*16.bpl - проверьте на всякий случай!

А по поводу ручной установки: в дистрибутив входит файл install_rus.txt - там подробно написано какие пакеты и как ставить. Я сделал очень просто - создал project group, куда добавил необходимые пакеты из QueryBuilder, FastScript, FastScript - FMX, ExportPack, FastReport.. Еще пакеты зачем-то были в папке LibD16 - я их не использовал, там пути неправльно прописаны.

Возникли некоторые проблемы: в пакетах не были прописаны namespace alias. Прописывать их надо в опциях самого пакета, в разделе delphi compiler - unis scope names. Я добавлял к по-умолчанию еще winapi и System.Win. Еще я прописывал - куда класть dcu и dpk & bpl. Также пришлось корректировать опции explict rebuild для пакетов. Для красоты добавил Description во все пакеты.

Сразу скажу - я готовил все под win32, и x64 не пробовал.
Автор: 3hub
Дата сообщения: 24.04.2012 14:52
Всем привет!
Может кто-то сталкивался со следующей ошибкой при создании пакета в C++BuilderXE2:
[ILINK32 Error] Fatal: Unable to open file 'C:\Documents and Settings\All Users\Документы\RAD Studio\9.0\BPL\Package1.pdi'?
Вроде перепробовал все опции в настройках окружения, проблема остается даже при билдовании пустого пакета.
Помогите, пожалуйста.
Автор: Lena44
Дата сообщения: 25.04.2012 01:28
deks, спасибо за информацию.
Ставить пока не буду. Как-то сложно все, плюс я пользуюсь С++ Builder, а не Дельфи. Подожду, может появиться нормальный установщик FR для ХЕ2.


Добавлено:
3hub

Builder не переносить кирилицу в путях (Документы).
Автор: 3hub
Дата сообщения: 25.04.2012 08:11
Lena44, спасибо, помогло!
Автор: AlexCoRu
Дата сообщения: 25.04.2012 10:24
[more=Командные файлы для сборки и установки FR под D16]
Компиляция пакетов

Код: @echo off

:DCC
set DCC="%ProgramFiles(x86)%\Embarcadero\RAD Studio\9.0\bin\DCC32.EXE"
if exist %DCC% goto :BRCC
set DCC="%ProgramFiles%\Embarcadero\RAD Studio\9.0\bin\DCC32.EXE"
if exist %DCC% goto :BRCC
echo DCC32.exe not found. Abort.
goto :eof

:BRCC
set BRCC="%ProgramFiles(x86)%\Embarcadero\RAD Studio\9.0\bin\BRCC32.EXE"
if exist %BRCC% goto :BPL
set BRCC="%ProgramFiles%\Embarcadero\RAD Studio\9.0\bin\BRCC32.EXE"
if exist %BRCC% goto :BPL
echo BRCC32.exe not found. Abort.
goto :eof

:BPL
set BPL=%USERPROFILE%\Documents\RAD Studio\9.0\Bpl
if not exist "%BPL%" md "%BPL%"

:DCP
set DCP=%USERPROFILE%\Documents\RAD Studio\9.0\Bpl
if not exist "%DCP%" md "%DCP%"

:LIB
set LIB=LibD16
if not exist "%LIB%" md "%LIB%"
del /q "%LIB%\*.*"

del /q "%BPL%\fs*16.bpl"
del /q "%DCP%\fs*16.dcp"
del /q "%BPL%\dclfs*16.bpl"
del /q "%DCP%\dclfs*16.dcp"

del /q "%BPL%\frx*16.bpl"
del /q "%DCP%\frx*16.dcp"
del /q "%BPL%\dclfrx*16.bpl"
del /q "%DCP%\dclfrx*16.dcp"

set OPT=-NSWinapi;System;System.Win;Vcl;Vcl.Imaging;Data;Data.Win;VclTee -M -W -LE"%BPL%" -LN"%DCP%"

pushd FastScript
%DCC% %OPT% -N0"..\%LIB%" fs16.dpk
%DCC% %OPT% -N0"..\%LIB%" dclfs16.dpk
%DCC% %OPT% -N0"..\%LIB%" fsDB16.dpk
%DCC% %OPT% -N0"..\%LIB%" dclfsDB16.dpk
%DCC% %OPT% -N0"..\%LIB%" fsADO16.dpk
%DCC% %OPT% -N0"..\%LIB%" dclfsADO16.dpk
::%DCC% %OPT% -N0"..\%LIB%" fsIBX16.dpk
::%DCC% %OPT% -N0"..\%LIB%" dclfsIBX16.dpk
%DCC% %OPT% -N0"..\%LIB%" fsTee16.dpk
%DCC% %OPT% -N0"..\%LIB%" dclfsTee16.dpk
copy *.dfm "..\%LIB%"
copy dclfsx.res "..\%LIB%"
copy fs_tree.res "..\%LIB%"
copy fsx.res "..\%LIB%"
copy fs_ireg.dcr "..\%LIB%"
popd

pushd Source

%DCC% %OPT% -N0"..\%LIB%" frx16.dpk
%DCC% %OPT% -N0"..\%LIB%" dclfrx16.dpk
%DCC% %OPT% -N0"..\%LIB%" frxDB16.dpk
%DCC% %OPT% -N0"..\%LIB%" dclfrxDB16.dpk
%DCC% %OPT% -N0"..\%LIB%" frxTee16.dpk
%DCC% %OPT% -N0"..\%LIB%" dclfrxTee16.dpk
copy frx.inc "..\%LIB%"
copy *.dfm "..\%LIB%"
copy frxAdoWizard.res "..\%LIB%"
copy frxClass.res "..\%LIB%"
copy frxConnWizard.res "..\%LIB%"
copy frxCtrls.res "..\%LIB%"
copy frxDesgn.res "..\%LIB%"
copy frxDesgnIcon.res "..\%LIB%"
copy frxDesgnWorkspace.res "..\%LIB%"
copy frxPreview.res "..\%LIB%"
copy frxStdWizard.res "..\%LIB%"
copy frxeReg.dcr "..\%LIB%"
copy frxReg.dcr "..\%LIB%"

pushd ADO
%DCC% -I.. %OPT% -N0"..\..\%LIB%" frxADO16.dpk
%DCC% -I.. %OPT% -N0"..\..\%LIB%" dclfrxADO16.dpk
copy frxADOReg.dcr "..\..\%LIB%"
popd

::pushd FIB
::%DCC% -I.. %OPT% -N0"..\..\%LIB%" frxFIB16.dpk
::%DCC% -I.. %OPT% -N0"..\..\%LIB%" dclfrxFIB16.dpk
::copy frxFIBReg.dcr "..\..\%LIB%"
::popd

::pushd IBX
::%DCC% -I.. %OPT% -N0"..\..\%LIB%" frxIBX16.dpk
::%DCC% -I.. %OPT% -N0"..\..\%LIB%" dclfrxIBX16.dpk
::copy frxIBXReg.dcr "..\..\%LIB%"
::popd

pushd ExportPack
%DCC% -I.. %OPT% -N0"..\..\%LIB%" frxe16.dpk
%DCC% -I.. %OPT% -N0"..\..\%LIB%" dclfrxe16.dpk
copy *.dfm "..\..\%LIB%"
copy frxeReg.dcr "..\..\%LIB%"
popd

::pushd ClientServer
::%DCC% -I.. %OPT% -N0"..\..\%LIB%" frxcs16.dpk
::%DCC% -I.. %OPT% -N0"..\..\%LIB%" dclfrxcs16.dpk
::copy frxServerConfig.res "..\..\%LIB%"
::copy frxRegCS.dcr "..\..\%LIB%"
::popd

popd
Автор: eddoc
Дата сообщения: 25.04.2012 10:28
Lena44

Цитата:
Подожду, может появиться нормальный установщик FR для ХЕ2.


Лучше дождитесь очередного релиза студии - они же на вас, бедных, тренируются. DXE - последняя более-менее допиленная среда, имхо. Чего так торопитесь? Неужели так сильно необходим x64 или МАК ?

AlexCoRu
Спасибки. Положу в заначку на всякий пожарный
Автор: deks
Дата сообщения: 25.04.2012 12:35
eddoc

Студия работает вполне нормально) Я пользовал 2010 до этого, по моим впечатлениям XE2 лучше. Баги в апдейтах исправляются в основном в x64, FMX и тп)

Согласен, что XE3 будет постабильнее! Возможно)

AlexCoRu

Командные файлы - я так понимаю типа mkall.bat из комплекта FR?)
Автор: AlexCoRu
Дата сообщения: 25.04.2012 13:52
deksНе из комплекта, сам делал. Правильнее будет расширение cmd.
Вообще все сторонние пакеты устанавливаю подобными cmd-шниками. Все bpl лежат в %USERPROFILE%\Documents\RAD Studio\9.0\Bpl
(для win 7). В виндовзных папках bpl вообще не держу.
Автор: RuXandr
Дата сообщения: 26.04.2012 09:57
Боюсь XE3 стабильнее не будет, ведь они там обещают абсолютно новый модульный компилятор, но будем надеяться на лучшее)
Автор: deks
Дата сообщения: 26.04.2012 15:32
X11
apnss
Grande

(продолжаю тему, поднятую в варезе - про FastReport EMRO Edition): редакции продукта описаны тут - _http://www.fast-report.com/ru/products/fast-report4-editions-compare.html

Определенно, run-time designer входит с версии Pro. Так что это не баг, это фича! Ну и наивно думать, что разработчик положит в бандл полнофункциональный продукт! Я за это и не люблю budled-продукты: они вроде бы есть, но пользовать невозможно!
Автор: X11
Дата сообщения: 26.04.2012 15:33

Цитата:
Так что это не баг, это фича!

а КТО сказал, что баг?
Автор: deks
Дата сообщения: 26.04.2012 15:38
AlexCoRu

На каждый пакет делать командник - подход хороший, но трудоемкий! Если уж не родные инсталы пользовать, то я бы посоветовал начать пользовать Lazy Delphi Builder, хороший, кстати инструмент!)

Думаю - в связи со своим "зоопарком" vm (я всю разработку веду в vm), и разными проектами, я начну пользовать связку Dropbox + LzDB. Типа, в каждой vm буду ставить компоненты в студию из общей папки VCL из dropbox, и с помощью LzDB!

Добавлено:
X11

Да я в качестве шутки упомянул.. Never mind!)
Автор: delover
Дата сообщения: 26.04.2012 17:56
Поделитесь секретом вы про что? Про Делпхи XE2 ни слова, а тем не менее единственным неприятным моментом оказались пространства имён к которым все в дотнет привыкли. fast не юзабелен только в руках макаки, а вот переходы на новый фаст занимают примерно год. Я бы тоже советовал остаться в XE если непонятно выразился...
Автор: deks
Дата сообщения: 26.04.2012 19:54
delover

Мы тут обсуждали установку FastReport Ent в XE2 - она слегка не работает (если не ставить оригинальным binary инсталятором).

Потом в варезе возник вопрос про EMRO Edition фаста (она входит в XE2) - эта редакция Фаста слабее в функциональности)
Автор: delover
Дата сообщения: 27.04.2012 20:20
deks
deks
Спасибо про слабости вообще не в курсе мы ешё на третий фаст не перешли. Вам то легко.

Тут была умная мысль но почемуто я её забыл. А да вспомнил 15-6=9
Автор: delover
Дата сообщения: 03.05.2012 18:37
All XE
А Вы то пользуютесь новым модным Exit?

Код: function TForm1.DoExit: Boolean;
begin
if 2 <> 1 then
Exit(True) else
Exit(False)
end;
Автор: Arioch1
Дата сообщения: 03.05.2012 21:36
Странный пример очень - проще "Result := 2<>1"
Такие примеры напрочь отбивают.

Зато можно написать Exit (True))))))
Не знаю зачем, но прикольно.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738

Предыдущая тема: Как сделать offline версию сайта со встроенным браузером?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.