Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE2 (Pulsar)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Открыть новую тему     Написать ответ в эту тему

data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаем новые возможности и баги
Просьба писать только про Embarcadero RAD Studio XE2 (Pulsar) - по остальным версиям есть соответствующие темы.

Вопросы вареза здесь не обсуждаются !!!
См. также:


Из слишком часто повторяемых вопросов:
  1. Почему EXE такие большие - перевод статьи от Andy тут, оригинал на страницу назад.
  2. Что случилось c авто-увеличением Build Number - Объяснение на англ.. Можно отключить встроенную функцию и добавить плагин, в котором есть "старый" авто-инкремент. Например DDevExtensions от Andy. У него так же есть хороший плагин IDE FixPack

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 23:54 27-07-2011 | Исправлено: Arioch1, 16:08 25-04-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1
а вы, однако, настырный... Ещё раз: решения там нет, иначе я не задавал бы здесь свой вопрос. Там есть слова о том, что автор вопроса удалил файлы, а вот какие именно - он написать не удосужился. Но без этих самых подробностей остальные его слова - всего лишь слова, а не само решение. И это очень легко проверить. Вот вы сами (т.е. я вас, как говорится, за язык не тянул) сказали это:

Цитата:
Человек как смог написал, что тщательно поискал, и нашел файлы от старого Инди, которые пропустил раньше.

Что ж, ок, а теперь будьте так добры - перечислите, пожалуйста, эти самые "файлы от старого Инди", которые он у себя якобы удалил. Вы же утверждаете, что в его словах вы видите решение. В чём оно заключается? Какие конкретно файлы удалять? Откуда именно?
 
   
 
Полный список...
 
 
 
 
 
 
 
jFobos
по вашему рецепту на 4-м шаге (установка dclIndyCore160.dpk) у меня теперь не "[DCC Fatal Error] IdDsnPropEdBindingVCL.pas(80): F1026 File not found: 'IdIDN.dcu'", а сразу такое:
 
   
 
после закрытия оного выходит это:
 

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 14:11 13-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Во-первых, в его форуме описано решение ЕГО проблемы.  
 
Во-вторых - я бы запустил Process Monitor и смотрел где какие файлы используются при сборке и при загрузке.  
 
В третьих я бы не ставил Дельфи в Program files - еще мне геморроя с клонированием файлов в Virtual Stоrage не хватало. Впрочем, я UAC не отключаю.
 
В четвертых я бы удалил Инди через стандартное удаление программ в панели управления. И новый Инди и старый.
Потом зачистил бы все файлы - вообще все, особенно DCP и DCU и BPL
Потом бы скачал новый Инди и убедился, что он единственный на компе.
 
Вот то что ты фобосу пишешь типично, когда DCP при компиляции используется от одной версии, а BPL другой. Я такие радости испытывал при ручной пересборке DevEx.  
Для каждого пакета должен быть только один DCP и только один BPL
Причем от SVN-версии Инди похоже, а не от 10.0.52
 

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 14:28 13-01-2013
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip
 
Проблема с точкой входа в процедуру и загрузкой bpl - это от нескольких версий bpl. Грузится какая-то старая.
 
Второе: студию лучше всего ставить не в program files, а в c:\dev (или любой иной путь без пробелов). Пробелы в пути к файлам периодически вымораживают c++ builder ну и в самой студии случаются глюки.
 
П.С. Инструкция от jFobos хорошая, похожа на рабочий вариант) Впрочем, именнт так и надо делать при обновлении ЛЮБОГО компонента: полностью удаляем старый, и ставим новый. Приличные компоненты содержат инсталлер, который это все делает за нас.

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 10:06 14-01-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Короче... Удалил старую версию Indy и установил новую (10.5.9.4910), и хотя процесс обновления, как оказалось, совсем не такой, как мне тут говорили, главное - результат (всё работает, и даже старые проекты, несмотря на многочисленные предупреждения знающих, завелись без единого warning'а). Ну и, разумеется, остался какой-никакой опыт.
 
 
Теперь новая порция: даже после обновления Indy чужой простой пример всё равно отказывался компилироваться. После вдумчивого чтения умных книжек и различных советов, многострадальный код был мутирован подправлен до такого состояния:
 

Код:
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  const AData: TBytes; ABinding: TIdSocketHandle);
var
  d: TStringStream;
  s: String;
begin
  d:=TStringStream.Create;
  d.Write(AData[0], Length(AData));
  s:=d.DataString;
  s:=BytesToString(AData, TEncoding.UTF8);
  Label1.Caption:=s;
  d.Free;
end;

В итоге код стал работать нормально, а после добавления "TEncoding.UTF8" и вовсе перестал беспокоить (ушли "?????" вместо кириллических символов). Но появилось одно-единственное "НО" - с таким кодом при каждой процедуре компиляции/сохранения проекта стало выходить сообщение:
 
   
 
Понимаю, что это, видимо, как-то связано с тем, что я изменил

Код:
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  const AData: TIdDynByteArray; ABinding: TIdSocketHandle);

на

Код:
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  const AData: TBytes; ABinding: TIdSocketHandle);

 
Что можно/нужно делать в таких случаях?

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 14:21 16-01-2013 | Исправлено: reenoip, 14:23 16-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вместо скриншота лучше текст вставлять IMHO.
 
попробуй в тексте формы поменять описание на то, которое в Indy
 
Дизайнер Дельфи тупой, иногда это помогает, но вот в таких случаях - задалбывает.
 
 
Добавлено:
А вообще передавать вот так запросто данные через UDP - это как-то стрёмно.
 
И еще, за товремя, какое ты Indy курощаешь - м.б. быстрее было бы в Синапсе разобраться ?

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 14:27 16-01-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1
данных как таковых нет, поэтому нестрашно терять то, что не критично, нужно просто раз в несколько часов broadcast'ить несколько слов. Кто поймал их - тому повезло, кто не поймал - тот опоздал. То, что UDP без каких-либо гарантий доставки - я в курсе, конкретно в данном проекте эти гарантии и не требуются: если хотя бы десяток-полтора из пары сотен клиентов поймают broadcast - уже отлично. Такое вот январское извращение.
 
Добавлено:

Цитата:
попробуй в тексте формы поменять описание на то, которое в Indy

а теперь по-русски, пожалуйста.

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 14:46 16-01-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это хорошо, если пакет не дойдет. А если дойдет начало и конец с вырезанной серединой ?
 
верни тип procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;  
   const AData: TIdDynByteArray; ABinding: TIdSocketHandle);

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 18:23 16-01-2013
vez



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Код:
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  const AData: TIdDynByteArray; ABinding: TIdSocketHandle);
 
на
 
Код:
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  const AData: TBytes; ABinding: TIdSocketHandle);
 
 
Что можно/нужно делать в таких случаях?

 
Это известная бага среды в инди,  но они так до сих пор не исправили (разрабы инди и делфи/билдера)
В QC она есть.

Всего записей: 561 | Зарегистр. 02-06-2003 | Отправлено: 19:17 16-01-2013 | Исправлено: vez, 19:17 16-01-2013
jFobos



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip, вы вот написали что процесс обновления, совсем не такой, как вам тут говорили. Не удосужитесь написать какой именно? И чем он отличается от предложенного варианта?  
 
А то получается аналогично той темы, на которую вы так ругались раньше. http://forum.ru-board.com/topic.cgi?forum=33&topic=11977&start=1040#4
 
Добавлено:
Ах да, чуть не забыл. Наконец добрался до делфи.
http://img547.imageshack.us/img547/125/screenshotyi.png
На скрине отмечена версия инди и результат компиляции. Забросил на форму компонент IdUDPServer1. Двойной клик по событию OnUDPRead. Никаких манипуляций с исходным кодом инди не поводил. Использую делфи ХЕ2 U4 HF1. Что я делаю не так?  
 
vez, в общем багу исправили, если верить svn-у инди, то в сентябре 2012, но в пакет ХЕ2 U4 HF1 фикс так и не вошел.  

Всего записей: 452 | Зарегистр. 03-12-2007 | Отправлено: 23:03 17-01-2013 | Исправлено: jFobos, 00:28 18-01-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извиняюсь за долгий ответ - не мониторил топик после сообщения 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;

 
Но сейчас это уже вообще не важно: обе проблемы (и с установкой Indy, и непосредственно с компиляцией проекта) решены, поэтому мои вопросы можно закрыть...
 
 
 
 
 
 
 
У меня сейчас назрела другая проблема, которую мирным путём решить никак не получается...

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 10:34 02-02-2013 | Исправлено: reenoip, 10:36 02-02-2013
jFobos



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

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

Всего записей: 452 | Зарегистр. 03-12-2007 | Отправлено: 14:51 08-02-2013
vez



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

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

Всего записей: 561 | Зарегистр. 02-06-2003 | Отправлено: 20:55 08-02-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

 
jFobos
см. вторую половину моего ответа на ваше сообщение.

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 08:56 12-02-2013
jFobos



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip, прочел. Я не писал что надо удалять IdIDN.dcu. У меня четко написано что удалить.
 

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

 
А ошибка явно говорит, что файл dclIndyCore160.bpl вы не удалили, хотя должны были.
 
ps: хотя какая разница, главное что поставилось.

Всего записей: 452 | Зарегистр. 03-12-2007 | Отправлено: 10:32 12-02-2013 | Исправлено: jFobos, 10:52 12-02-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jFobos
хз, грохал по маске в соответствии с вашим рецептом. Сейчас уже точно не помню перечень файлов, так что и доказывать ничего не могу.
 
 
 
 
vez
а есть надежда, что они всё-таки исправят это в очередном update для XE2? Или XE2 авторами больше не обслуживается?

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 10:48 12-02-2013 | Исправлено: reenoip, 10:53 12-02-2013
jFobos



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Разработчики инди багу исправили, на ХЕ2 с обновленным инди все работает. Если не верите могу даже скрин сделать

Всего записей: 452 | Зарегистр. 03-12-2007 | Отправлено: 12:58 12-02-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, с Indy всё более-менее ясно.
 
 
Новая задача: пользователи частенько переименовывают исполняемый файл, отчего webupdater от TMS перестаёт работать (ибо ищет updater по имени файла, а имя файла напрямую зависит от степени извращённости фантазии пользователя, т.е. имя файла угадать не представляется возможным).
Отсюда вопрос: после старта программы нужно проверять и при необходимости возвращать файлу оригинальное имя, чтобы webupdater не сходил с ума. Как это можно реализовать?

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 18:52 18-02-2013
XPerformer



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip
if GetModuleName(0) <> 'myprog.exe' then begin
  ShowMessage('Нехорошо портить чужие имена');
  Halt;
end;
Пусть сами вернут на место

Всего записей: 2536 | Зарегистр. 20-06-2011 | Отправлено: 19:01 18-02-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XPerformer
так в том-то всё и дело, что каждый в этом зоопарке наломает дров, а потом виновных не найти, поэтому и хотелось бы всё в принудительном порядке делать, не просить их ни о чём, а делать именно так, как нужно тебе, а не им. Иначе потом ни они работать не могут, ни ты.

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 19:24 18-02-2013
XPerformer



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
так я и предлагаю - сделать так чтобы они не могли работать
В критичных случаях можно проверять crc исполняемого файла, не совпало - до свидания. Так они докатятся до того, что будут dll-ки переименовывать, таблицы в базах данных.

Всего записей: 2536 | Зарегистр. 20-06-2011 | Отправлено: 19:35 18-02-2013 | Исправлено: XPerformer, 19:35 18-02-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE2 (Pulsar)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru