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

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

Автор: reenoip
Дата сообщения: 02.02.2013 08:34
Извиняюсь за долгий ответ - не мониторил топик после сообщения vez'a.


Цитата:
reenoip, вы вот написали что процесс обновления, совсем не такой, как вам тут говорили. Не удосужитесь написать какой именно? И чем он отличается от предложенного варианта?
А то получается аналогично той темы, на которую вы так ругались раньше.

Секрет прост: выборочное (внимание: вы-бо-роч-ное, а не полное) удаление файлов, относящихся к Indy. Бездумное поголовное удаление всего (как мне тут советовали), что хоть как-то связано с Indy и/или содержит в своём названии 4 заветных буквы "indy", - и было причиной моей проблемы. Когда начал косить файлы поштучно - проблему решил. Да, это долго, муторно, и вообще неэффективно, зато следующее обновление обойдётся без лишних вопросов.











Цитата:
Что я делаю не так?

jFobos
вы либо читаете мои сообщения с определённым заранее настроением, либо читаете их тупо через строку... Весь сыр-бор, вообще-то, начался не с пустой компиляции (как на вашем скриншоте), а в компиляции уже готового решения, а именно:


Код: procedure TForm1.FormCreate(Sender: TObject);
begin
IdUDPClient1.Port:=7000;
IdUDPClient1.BroadcastEnabled:=True;
IdUDPClient1.Active:=True;

IdUDPServer1.BroadcastEnabled:=True;
IdUDPServer1.DefaultPort:=7000;
IdUDPServer1.Active:=True;
end;

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
Var
d : TStringStream;
data : String;
begin
d := TStringStream.Create("");
d.CopyFrom(AData, AData.Size);
data:= D.DataString;
d.Free;
Memo1.Lines.Add(Data);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
IdUDPClient1.Send(EDit1.Text);
end;
Автор: jFobos
Дата сообщения: 08.02.2013 12:51

Цитата:
Секрет прост: выборочное (внимание: вы-бо-роч-ное, а не полное) удаление файлов, относящихся к Indy.

Так в моем сообщении и не написано удалять все файлы, написаны конкретные имена.
Автор: vez
Дата сообщения: 08.02.2013 18:55

Цитата:
vez, в общем багу исправили, если верить svn-у инди, то в сентябре 2012, но в пакет ХЕ2 U4 HF1 фикс так и не вошел.

Они её исправили в последнем ХЕ3, т.к. она вылезла в С++64, я бета-тестировал и посылал им, как оказалось и разработчик ИНДИ их тоже пинал
Автор: reenoip
Дата сообщения: 12.02.2013 06:56

Цитата:
Так в моем сообщении и не написано удалять все файлы, написаны конкретные имена.


jFobos
см. вторую половину моего ответа на ваше сообщение.
Автор: jFobos
Дата сообщения: 12.02.2013 08:32
reenoip, прочел. Я не писал что надо удалять IdIDN.dcu. У меня четко написано что удалить.


Цитата:
IndySystem*.*
IndyCore*.*
IndyProtocols*.*
dclIndyCore*.*
dclIndyProtocols*.*


А ошибка явно говорит, что файл dclIndyCore160.bpl вы не удалили, хотя должны были.

ps: хотя какая разница, главное что поставилось.
Автор: reenoip
Дата сообщения: 12.02.2013 08:48
jFobos
хз, грохал по маске в соответствии с вашим рецептом. Сейчас уже точно не помню перечень файлов, так что и доказывать ничего не могу.




vez
а есть надежда, что они всё-таки исправят это в очередном update для XE2? Или XE2 авторами больше не обслуживается?
Автор: jFobos
Дата сообщения: 12.02.2013 10:58
Разработчики инди багу исправили, на ХЕ2 с обновленным инди все работает. Если не верите могу даже скрин сделать
Автор: reenoip
Дата сообщения: 18.02.2013 16:52
Спасибо, с Indy всё более-менее ясно.


Новая задача: пользователи частенько переименовывают исполняемый файл, отчего webupdater от TMS перестаёт работать (ибо ищет updater по имени файла, а имя файла напрямую зависит от степени извращённости фантазии пользователя, т.е. имя файла угадать не представляется возможным).
Отсюда вопрос: после старта программы нужно проверять и при необходимости возвращать файлу оригинальное имя, чтобы webupdater не сходил с ума. Как это можно реализовать?
Автор: XPerformer
Дата сообщения: 18.02.2013 17:01
reenoip
if GetModuleName(0) <> 'myprog.exe' then begin
ShowMessage('Нехорошо портить чужие имена');
Halt;
end;
Пусть сами вернут на место
Автор: reenoip
Дата сообщения: 18.02.2013 17:24
XPerformer
так в том-то всё и дело, что каждый в этом зоопарке наломает дров, а потом виновных не найти, поэтому и хотелось бы всё в принудительном порядке делать, не просить их ни о чём, а делать именно так, как нужно тебе, а не им. Иначе потом ни они работать не могут, ни ты.
Автор: XPerformer
Дата сообщения: 18.02.2013 17:35
так я и предлагаю - сделать так чтобы они не могли работать
В критичных случаях можно проверять crc исполняемого файла, не совпало - до свидания. Так они докатятся до того, что будут dll-ки переименовывать, таблицы в базах данных.
Автор: reenoip
Дата сообщения: 18.02.2013 17:44
Ну, что-то типа того. Чуть-чуть дописал, в итоге получилось так, как мне и надо:


Код: if GetModuleName(0) <> 'myprog.exe' then
begin
RenameFile(GetModuleName(0), 'myprog.exe');
end;
Автор: Man_Without_Face
Дата сообщения: 06.03.2013 15:26
Клиент - серверное приложение на DataSnap. В TSQLConnection задаю динамически или статически свойство ConnectTimeout - не в том и не в другом случае не работает. По умолчанию 15 секунд, после их окончания получаем заветную ошибку. Что делаю не так или сервер DataSnap не поддерживает ConnectTimeout?
Автор: deks
Дата сообщения: 21.03.2013 11:07
Хорошая статья по поводу unit scope names в XE2: _http://wiert.me/2013/03/21/porting-to-delphi-xe2-delphi-xe2-unit-scope-names-not-always-right/

Может, ее в шапку?
Автор: mdid
Дата сообщения: 09.04.2013 14:41
помогите разобраться с такой фигней. Дет пару недель назад начался прикол, когда при создании главной формы
Код: Application.CreateForm(TfmMain, fmMain);
Автор: X11
Дата сообщения: 09.04.2013 15:03

Цитата:
вываливается AV, даже не доходя до OnCreate.


Событие OnCreate наступает только после создания всех компонентов формы.
А это значит, что AV вываливается при создании какого-нибудь компонента. Или у компонента есть событие, компонент создается и в событии компонента код вызывает AV.
Смотри, что происходит в событиях компонентов формы.
Автор: Arioch1
Дата сообщения: 09.04.2013 15:20
Use debug DCU и какой-нибудь модуль для трассировки стэка - и смотришь где это AV случилось
Автор: mdid
Дата сообщения: 09.04.2013 15:21

Цитата:
Событие OnCreate наступает только после создания всех компонентов формы.

10 лет на делфи, а новости продолжают поступать)) спасибо. Но теперь новость куда хуже, проект то здоровенький((
Автор: X11
Дата сообщения: 09.04.2013 15:38
это уже давно
то ли в D7, то ли в D2007 ввели

но есть свойство oldcreate у формы
если включить в инспекторе свойств, то событие создания формы будет наступать до создания всех компонентов
но это не выход

цепляй эврику или мадэксцепт и смотри стек вызовов
Автор: Arioch1
Дата сообщения: 09.04.2013 16:05
в D4 как минимум, а то и D3

Добавлено:
или хотя бы Jedi CodeLib
Автор: mdid
Дата сообщения: 23.04.2013 09:45
у меня время от времени среда вываливается с ошибкой, что путь к компоненту не найден, хотя путь 100% правильный. И это не первый раз и тянется довольно долго. Как это лечить, и что является причиной такого диковинного поведения среды? То есть причина это установка нового компонента, обычно после этого начинаются проблемы, но почему?
Автор: LadyOfWood
Дата сообщения: 23.04.2013 15:26

Цитата:
цепляй эврику или мадэксцепт и смотри стек вызовов

+1. EurekaLog неполохо справляется с данной задачей.
Цитата:
у меня время от времени среда вываливается с ошибкой, что путь к компоненту не найден,

А какой полный текст ощибки?
Автор: Arioch1
Дата сообщения: 23.04.2013 15:34

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


Потому что в компоненте неловленые ошибки, приводящие к разрушению памяти
Автор: LadyOfWood
Дата сообщения: 23.04.2013 15:40

Цитата:
Потому что в компоненте неловленые ошибки, приводящие к разрушению памяти

Компонент чей? Если свой то вполне возможный вариант (да и чужой тоже только шансов меньше). Самое главное если даже оштбку исправили этого мало, надо пакеты пересобрать.
Автор: G787
Дата сообщения: 10.06.2013 01:56
МужЫки, поставил на XE2 IDEFixPackXE2Reg53, CnPack ластовый девбилдовый, девок 2.6 , а потом заметил что пропали в ObjectInspector-e квадратики цветовых свойств, которые типа как превью Шо делать куда звонить??
Автор: Vo1T
Дата сообщения: 15.06.2013 22:20
G787
Усё нормально, проблем нет
Автор: G787
Дата сообщения: 28.06.2013 15:01
Vo1T
Видимо чудеса ....


Ctrl+Click не всегда открывает либы/юниты в чем может быть дело ?
Автор: Buldozer_and_Co
Дата сообщения: 04.08.2013 21:06
Решил все таки переехать на XE2 с D7
два последних проекта адаптировал, нашел используемые компоненты, и т.д.
все классно.
Но попытался создать новый проект и...
1. TImageList невозможно добавить в TDateModule
2. Не могу на редактирование открыть файл dpr, только в стороннем редакторе
3. При открытии проекта отображается только основная форма, остальные надо вытаскивать из списка...

Это пока только что нашел за первый час использования, подскажите у кого как??...
Автор: A_V
Дата сообщения: 04.08.2013 21:50
Buldozer_and_Co
1. попробуй удалить из .pas файла датамодуля строчку
{%CLASSGROUP 'System.Classes.TPersistent'}
2. Project->view source
3. ты об авто-сохранении открытых форм? Project->Options->Environment Options->Project desktop
Автор: Buldozer_and_Co
Дата сообщения: 05.08.2013 08:46
A_V
Спасибо! по 1,2 пунктам все получилось, а в третьем я имел ввиду, при открытии проекта открывается только основная форма, а остальные надо открывать ручками, то есть IDE не восстанавливает все открытые формы проекта, может это дело привычки с D7.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738

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


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