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

» Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)

Автор: V1s1ter
Дата сообщения: 08.10.2009 08:06
ALEF
Makdir
andrewtishkin
JustAMaaan
Мужики за религиозные войны, модератор может и отминусовать...
Простите за офтоп.
Автор: Makdir
Дата сообщения: 08.10.2009 22:54
V1s1ter
Где ты религиозные войны нашел? Тема посвящена возможностям и недостаткам Делфи 2010 - я спросил что новенького и есть ли смысл возвращаться в эту среду программирования, а мне ответили, что ничего кардинально нового не появилось и каждый высказал чем доволен и чем - нет. Похоже для этого данная ветка и предназначена. Другой момент, что все познается в сравнении.
Автор: V1s1ter
Дата сообщения: 08.10.2009 23:24
Makdir
Ответил в ПМ (ЛС)
Автор: andrewtishkin
Дата сообщения: 09.10.2009 02:52
У меня такой вопрос
После запуска 2010-ой IDE при создании нового VCL-проекта IDE подвисает на некоторое время? У меня да + ещё если настроено создание пустого проекта при её запуске...

//10 октября планируется обновление вики. Я подозреваю что сразу после после него выпустят первый апдейт справки (только выдерут содержимое из вики и в архивчики разложат ), финальный вариант readme уже подготовили (и сам инсталлер тоже, см. правки от 07.10)//
Автор: BugDigger
Дата сообщения: 09.10.2009 06:53
Для тех, кому интересно.

Если CodeInsight начинает подчеркивать ошибки в неправильных местах и/или при компиляции для ошибки выдается неправильный номер строки, это значит, что в тексте есть неправильные окончания строк (одиночный LF вместо LF+CR), вследствие чего IDE неверно определяет номера строк.

Лечение: открыть файл в любом редакторе, позволяющем автоматически корректировать концы строк (например, WordPad; стандартный Notepad этого не умеет), сделать любое изменение (добавить пустую строку), и сохранить.
Автор: JustAMaaan
Дата сообщения: 09.10.2009 18:57
andrewtishkin

Цитата:
После запуска 2010-ой IDE при создании нового VCL-проекта IDE подвисает на некоторое время? У меня да

Если "некоторое время" больше нескольких десятых долей секунды, то у меня такого не наблюдается. Может, дистиллером по нему стукнуть надо было? Я там всё, что связано с .net отключал, и плюс ещё в настройках загрузку нескольких неактуальных для меня пакетов выкинул.
Автор: djdtyfhu
Дата сообщения: 09.10.2009 19:08
Вопрос про RTTI: оно вообще мне нужно если я создаю небольшие свои расчетные утилиты, направленные, в основном, на автоматизацию расчетов в другой большой программе и разбор бинарных файлов жестко заданного формата?

Ранее давались ссылки на опции компилятора, позволяющие убирать "лишнюю" информацию из EXE файлов, но у меня IDE ругается, что неправильные параметры, что такое? Надо подключать дополнительные модули?
Автор: data man
Дата сообщения: 09.10.2009 19:25
djdtyfhu

Цитата:
но у меня IDE ругается, что неправильные параметры, что такое?

Это смотря какие параметры.
Что связано с отключением RTTI - по идее не должна ругаться.
А если параметры $SetPEFlags, то нужно указывать в uses Windows.

А насчет нужно-не нужно - вот отличная серия постов про использование RTTI http://robstechcorner.blogspot.com/2009/09/so-what-is-rtti-rtti-is-acronym-for-run.html
Может что-то и пригодится.
Автор: whitewolfs
Дата сообщения: 14.10.2009 02:41
Уважаемые подскажите плиз.

Раньше стоял D2009 и там у меня было настроено что при "Default Layout" и снятой в опциях галочке "Embedded Designer" форму можно было таскать по экрану, а между кодом и формой переключаться или с помощью вкладок "Design|Code" внизу редактора кода или горячей клавишей. Соответственно на переднем плане был или код или форма.
Сейчас при тех же опциях вкладки "Design" внизу редактора нет. Есть только "Code". Форму можно таскать по экрану, но скрыть её нельзя, она всегда на переднем плане. Скрыть её можно только при включенном "Embedded Designer" или при раскладке "Classic Undocked". Есть возможность вернуть удобности?
Автор: eddoc
Дата сообщения: 14.10.2009 15:46
Блин, на ровном месте проблемы с TTrayIcon. В D2009 работало "на ура", а тут BalloonHint не показывается. Глянул в QC - там тикет 77561 за 21.09.09, пишут что баг воспроизводится для всех доВистовых ОСей. Придется ждать апдейтов :'(

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

И еще вопрос. У кого-нить стоит касталия 2009.3 ? У меня криво работает касталийный Search. Хотелось бы выяснить, это глюки Касталии или все же в IDE что-то не так? (на D7 этот же билд работает изумительно)
Автор: data man
Дата сообщения: 14.10.2009 15:58
eddoc

Цитата:
посоветуйте какой-нить не очень навороченной

Здесь http://www.songbeamer.com/delphi/ Cooltray не подойдет ?
Но он "навороченный"
Насчет работы в "до Висты" не знаю.

upd:
[more=Хотя вроде там есть хак]{ I tried to hack around the problem that in some versions of NT4 the tray icon
will not display properly upon logging off, then logging on. It appears to be
a VCL problem. The solution is probably to substitute Delphi's AllocateHWnd
method, but I haven't gotten around to experimenting with that.
For now, leave WINNT_SERVICE_HACK undefined (no special NT handling). }[/more] и используется тип TNotifyIconDataEx.
Автор: eddoc
Дата сообщения: 14.10.2009 16:32
Во, спасибки. У меня в запасниках лежит этот компонент, только под ранние (D6, D7) версии. Думал портировать, а тут готовые пакеты. От судьбы не уйдешь :)


Цитата:
Хотя вроде там есть хак и используется тип TNotifyIconDataEx.

это в исходниках наверное ковыряться надо? Не, дождусь апдейта, лениво делать за кодегировцевэмбаркАдЫровцев их работу ;)

зы. а Castalia так никто и не пользует?
Автор: delover
Дата сообщения: 14.10.2009 18:09
День добрый
Мне не удасться сейчас наблюдать это в Delphi 2010, меня ещё не пригласили.
Но в 2009 это наблюдаю вплоть с Delphi7. Если кто сможет посмотрите пожалуйста.
Файл называется SockApp.pas и находится как положено в папке Delphi\Sources.
Меня смущает код

Код: procedure FinalizeApp;
begin
...
if SaveExitProc <> nil then TProcedure(ExitProc);
...
end;
Автор: eddoc
Дата сообщения: 14.10.2009 23:54

Цитата:
посмотрите пожалуйста, исправлена ли эта ошибка???


Код: procedure FinalizeApp;
begin
if RunningWebAppNotifier <> nil then
begin
RunningWebAppNotifier.Unregister;
RunningWebAppNotifier.Free;
end;
if SaveExitProc <> nil then TProcedure(ExitProc);
FreeAndNil(WebAppSockObjectFactory);
FreeAndNil(WebRequestListener);
FreeAndNil(FSockWebRequestHandler);
end;
Автор: delover
Дата сообщения: 15.10.2009 07:54
eddoc
Благодарю, у меня такой же. Правда, предполагаю, что при компиляции в DLL этот код может вообще быть не важен.

[more=Я думаю что выглядеть должно примерно так]

Код:


{*******************************************************}
{ Modified: $Date: 2009/10/16 17:37:30, +0500 $xpin }
{*******************************************************}

unit Unit1;

{$I ..\Lib\jedi.inc}

interface

uses
Classes, Forms;

type

{ TSymbiosisProfile }

TSymbiosisProfile = class
private
FOnExit: TNotifyEvent;
FOnInitialize: TNotifyEvent;
FOnRun: TNotifyEvent;
procedure DoExit(Sender: TObject);
procedure DoInitialize(Sender: TObject);
public
constructor Create;
property OnExit: TNotifyEvent read FOnExit write FOnExit;
property OnInitialize: TNotifyEvent read FOnInitialize write FOnInitialize;
property OnRun: TNotifyEvent read FOnRun write FOnRun;
end;

{ TApplicationHelper }

TApplicationHelper = class helper
{$IFDEF COMPILER11}(TApplicationHelper){$ENDIF} for TApplication
private
{$IFDEF CIL}
procedure _Initialize; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF}
{$ENDIF}
procedure _Run; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF}
public
{$IFDEF CIL}
procedure Initialize;
{$ENDIF}
procedure Run;
end;

function SymbiosisProfile: TSymbiosisProfile;

//Log intf
// IExceptionRTLTracking = interface(IInterface)
// ['{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}']
// function Active: Boolean;
// function HandleException(Strings: TObject; Options: Integer): Boolean;
// procedure Start;
// procedure Stop;
// end;

//Log include on exception stack
// JDBG_AddressOffset = 2;

implementation

uses
SysUtils;
//{$IFNDEF CIL}
// pinDeclInta,
//{$ENDIF}
// pinDeclares;

var
FProjectSymbiosisProfile: TSymbiosisProfile;

function SymbiosisProfile: TSymbiosisProfile;
begin
if not Assigned(FProjectSymbiosisProfile) then
FProjectSymbiosisProfile := TSymbiosisProfile.Create;
Result := FProjectSymbiosisProfile;
end;

{ TSymbiosisProfile }

constructor TSymbiosisProfile.Create;
begin
inherited Create;
OnInitialize := DoInitialize;
OnExit := DoExit;
end;

procedure TSymbiosisProfile.DoExit(Sender: TObject);
//var
// Intf: IInterface;
begin
// if Supports(BindingRTLServices, IExceptionRTLTracking, Intf) then
// begin
// IExceptionRTLTracking(Intf).Stop;
// Intf := nil;
// end;
end;

procedure TSymbiosisProfile.DoInitialize(Sender: TObject);
//var
// Intf: IInterface;
begin
// if Supports(BindingRTLServices, IExceptionRTLTracking, Intf) then
// begin
// IExceptionRTLTracking(Intf).Start;
// Intf := nil;
// end;
end;

{ TApplicationHelper }

{$IFDEF CIL}
procedure TApplicationHelper.Initialize;
begin
_Initialize;
with SymbiosisProfile do
if Assigned(OnInitialize) then OnInitialize(Application);
end;
{$ENDIF}

procedure TApplicationHelper.Run;
begin
with SymbiosisProfile do
begin
if Assigned(OnRun) then OnRun(Application);
_Run;
if Assigned(OnExit) then OnExit(Application);
end;
end;

{$IFDEF CIL}
procedure TApplicationHelper._Initialize;
begin
inherited Initialize;
end;
{$ENDIF}

procedure TApplicationHelper._Run;
begin
inherited Run;
end;

{$IFNDEF CIL}
var
SaveInitProc: Pointer = nil;
SaveExitProc: Pointer = nil;

procedure InitProf;
begin
if SaveInitProc <> nil then TProcedure(SaveInitProc);
with SymbiosisProfile do
if Assigned(OnInitialize) then OnInitialize(Application);
end;

procedure FinalizeProf;
begin
ExitProc := SaveExitProc;
FreeAndNil(FProjectSymbiosisProfile);
end;
{$ENDIF}

initialization
{$IFNDEF CIL}
SaveInitProc := InitProc;
InitProc := @InitProf;
SaveExitProc := ExitProc;
ExitProc := @FinalizeProf;
{$ELSE}
finalization
FreeAndNil(FProjectSymbiosisProfile);
{$ENDIF}
end.

Автор: Alexos
Дата сообщения: 21.10.2009 02:38
А не подскажете как можно установить свой шрифт для редактора? В часности интересует Tahoma
Автор: volax
Дата сообщения: 21.10.2009 05:51
Alexos

Цитата:
А не подскажете как можно установить свой шрифт для редактора? В часности интересует Tahoma

Редактор поддерживает только моноширные шрифты, только они винды в списке
Options -> Editor Options -> Display
Tahoma - шрифт не моноширный, потому ее там нет.
Автор: Andrey128
Дата сообщения: 21.10.2009 15:12
При использовании TThread.Resume или Suspend получаю такой варниг:

Цитата:
W1000 Symbol 'Resume' is deprecated

В хелпе по Resume и Suspend не пишут, чем их заменить, а в разделе "Starting and Stopping Threads" кое-что есть:

Цитата:
Try to avoid using Suspend and Resume in most circumstances. Suspending and resuming a thread using these two functions can result in undefined behavior and in deadlock situations that are hard to debug and fix later on. Proper thread synchronization techniques should be based on TEvent, TMutex, and critical sections.

Насколько я понял, желательно использовать "TEvent, TMutex , and critical sections" для приостановки потока.
Так что-же, усложняется жизнь или я чего-то не догоняю?
Автор: Frodo_Torbins
Дата сообщения: 21.10.2009 21:56
Andrey128

Цитата:
Так что-же, усложняется жизнь или я чего-то не догоняю?

Очень интересный дилог на эту тему: https://forums.codegear.com/message.jspa?messageID=3466
Автор: BugDigger
Дата сообщения: 22.10.2009 06:51
Andrey128

Вместо первого Resuma теперь использовать Start.


Цитата:
Насколько я понял, желательно использовать "TEvent, TMutex , and critical sections" для приостановки потока.
Так что-же, усложняется жизнь или я чего-то не догоняю?


Всё остается по-прежнему, только теперь честно признается, что Suspend/Resume небезопасны (каковыми они всегда были). Всё дело в связанных с этими методами внутренних переменных, которые присваиваются потоково-небезопасно.
Автор: Andrey128
Дата сообщения: 22.10.2009 07:40
BugDigger
Спасибо, теперь все понятно.
Тогда им еще нужно на установку свойства Suspended тоже варниг показывать, потому как в TThread.SetSuspended вызываются Suspend/Resume.
Автор: Mr_VoLT
Дата сообщения: 22.10.2009 18:23
Подскажи добрый человек UpdateLayeredWindow работает с PNG если да то как
Про способ преобразования в 32 битный Bitmap я вкурсе - хочется без этого извращенства
Автор: Frodo_Torbins
Дата сообщения: 22.10.2009 19:30
Mr_VoLT
Тогда не работает.
Автор: delover
Дата сообщения: 22.10.2009 22:13
По поводу потоков можно заметить что ими пользуются либо редко, либо это уже настолько пройденый этап, что на безопасность становится пофиг, так же как и на Resume. На сколько я понимаю, можно 200 раз сходить на конференции по безопасности и не понять, что человек с которым ты туда ходишь может разогнать всех слоников, например в Борланд так, что будет новая фирма. И так же загнать обратно. Это я чтобы мысль была более доходчива - какая на иксиксикс безопасность? По русски же рекомендовано - TThread должны юзать профи и точка.
Автор: Ktf
Дата сообщения: 23.10.2009 11:57
А кто-нибудь знает как снести BlackfishSQL Server? Ну или хотя бы с чем он поставился? Давно глаза мозолит, один фиг я его не собираюсь юзать.
Автор: X11
Дата сообщения: 23.10.2009 12:04
В службах винды отключи его.
Автор: Ktf
Дата сообщения: 23.10.2009 12:10
Вопрос стоит не отключить, а снести.
Автор: X11
Дата сообщения: 23.10.2009 12:20
И из реестра удали ссылки
Автор: Ktf
Дата сообщения: 23.10.2009 12:41
Вот, нашел на форумах Embarcadero:

Цитата:
Bin\BSQLServer.exe -remove
del Bin\BSQLServer.exe
del bin\BSQLServer.exe.config
del bin\BSQLServer.InstallLog
del bin\BSQLServer.InstallState
del bin\BSQLServer.BlackfishSQL.Install.log
del bin\BSQLServer.BlackfishSQL.UnInstall.log

Это конечно не окончательное решение, но уже что-то...

Добавлено:
выполнил BSQLServer -remove BSQLServer
это остановило и снесло службу, но файлы остались
без указания имени службы remove не срабатывал
Автор: Medium
Дата сообщения: 23.10.2009 15:51
Подскажите, плз, кто сталкивался.
В D2007 следующий код работает на ура:

Цитата:
wPNGImage := TPNGObject.Create
ResStream := TResourceStream.CreateFromID(HandleLib, AIndex, RT_RCDATA);
wPNGImage.LoadFromStream(ResStream);
APicture.Bitmap.Assign(wPNGImage);
ilMain.AddMasked(APicture.Bitmap, clWhite);

В D2010 в ilMain добавляются изображения без прозрачности с черным фоном.
Отличие только одно: в D2010 TPNGObject, согласно рекомендации разработчика, заменен на TPNGImage.
Если в 2010 в качестве фона при AddMasked для определения прозрачности указать clBlack - изображение прозрачные, но с черным ореолом.
Может стоит иначе загружать PNG, ваше мнение

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: Установка копоненты ZipTV


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