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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)

Модерирует : 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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111

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

data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаем новые возможности и баги
Просьба писать только про Delphi 2009 и выше - по остальным версиям есть соответствующая тема.
Вопросы вареза здесь не обсуждаются !!!
См. также:
Известные важные баги Delphi 2010:

Описание________________________________________________ Исправлено Решение/Альтернатива_____________________
  1. Внимание !  Деинсталляция D2010 нарушает работу D2007 и D2009 !  
При деинсталляции удаляются CC3280MT.DLL и CC3290MT.DLL из Windows\System32,   необходимые для работы D2007 и D2009 соответственно.
Сделайте резервные копии
  2. Code Formatter не работает, если не инсталлирован пакет моделирования.   В нем также присутствует множество багов. Используйте с осторожностью.   1.   JEDI CodeFormat 2.44 SVN Snapshot (~750Kb)   Требуются JCL и JVCL  
2.GExperts with Formatter
  3. Не работает F1 в Object Inspector Update 2   IDEFixPack 2.9 от Andreas Hausladen
(dev. snapshots)
  4. Если IDE начинает падать с сообщением "Out of resources", возможно, что поврежден .res файл проекта. Удалить его, запустить IDE, открыть проект - новый .res файл будет создан автоматически.
  5. В редакторе не работает Class Completion, если в декларируемом классе есть поля с шаблонами. Перед декларированием поля добавить public или private и т.д.
  6. TTrayIcon.ShowBalloonHint() не работает на ОС ниже Vista [QC 77561] Update 2 * Установить Update 2   * ИЛИ почитать о причинах и решении проблемы на форуме embarcadero и в QC   * ИЛИ воспользоваться альтернативой, например Cooltray 4.4.0
  ...      


Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 14:28 26-08-2009 | Исправлено: data man, 18:27 06-08-2010
Man_Without_Face



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
А можно подробнее, как это реализовать в Delphi, ну или где прочитать? Спасибо.

Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 12:33 13-02-2012
R3Pa4eK



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Можно ли в Edit загрузить картинку, да так, чтобы текст в edit'е был виден при его изменении?
Решено.

Всего записей: 963 | Зарегистр. 15-01-2011 | Отправлено: 12:52 13-02-2012 | Исправлено: R3Pa4eK, 15:50 13-02-2012
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Man_Without_Face
Почитать можно в DRKB. К примеру про Mutex - он очень похож на критическую секцию, но к нему возможен доступ из разных процессов.
 
R3Pa4eK
Конкретнее, для чего это нужно?

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 12:59 13-02-2012 | Исправлено: Frodo_Torbins, 12:59 13-02-2012
perceptron

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в эдит можно иконку грузануть - (как у комбобокса слева для каждого итема)
а чтобы в эдит любую картинку... на кой ?

Всего записей: 433 | Зарегистр. 23-12-2005 | Отправлено: 14:06 13-02-2012
neznayka3

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
достался проект: в бд сотня таблиц, на клиенте постоянно сыпятся ошибки, виснет. подскажите что почитать/использовать для отладки.  до этого времени хватало showmessage. начал читать gunsmoker-a

Всего записей: 385 | Зарегистр. 07-06-2007 | Отправлено: 15:36 13-02-2012
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
neznayka3
В вашем случае самое главное дочитать до конца Правда вопросы работы с БД там совершенно не рассмотрены. Так что если у вас ошибки связанные с БД, а не всякие AV, то Блог ГанСмокера не особо поможет. Разве что общими рекомендациями.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 18:19 13-02-2012
ant0ni02004

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

Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 18:24 13-02-2012
Brahman78



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У есть кто-то кто пользовался Аудитом встроенным в Делфи?  
Судя по всему он работает как-то очень странно.  
Например его смущает запись:
 

Код:
 
var
 CurrentClassName,
 ClassName,
 AppTitle: array [0..255] of Char;
 

 
А процедуру:

Код:
 
type
TLongBinValueArray = array [0..7] of Byte;
 
procedure DisAsm64BitBackward(var buf: TLongBinValueArray; Value: int64);
var
  i: Byte;
begin
  for i := 7 downto 0 do
  begin
    buf[i] := Value and 255;
    Value  := Value shr 8;
  end;
end;
 

 
он вообще заклеймил как Index out of range

Всего записей: 8 | Зарегистр. 11-02-2007 | Отправлено: 15:23 14-02-2012
A_V

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Brahman78
ну да, кривой он - c анонимными методами например тоже не дружит

Всего записей: 770 | Зарегистр. 07-04-2002 | Отправлено: 15:50 14-02-2012
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Brahman78
У вас слишком низкоуровневый код. К примеру в этой процедуре должны бы использоваться псевдофункции Low и High, а переменную i компилятор расширит до нативных для процессора 4 байт. К тому же в случае с динамическими массивами индекс обязан быть со знаком. Сейчас то все равно, но вдруг вы через пол-года измените тип этого массива?

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 17:08 14-02-2012 | Исправлено: Frodo_Torbins, 17:12 14-02-2012
Man_Without_Face



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

Цитата:
Почитать можно в DRKB. К примеру про Mutex - он очень похож на критическую секцию, но к нему возможен доступ из разных процессов.  

Есть ли другие варианты?
К примеру писать одновременно с нескольких обращений клиентов (потоков). Получиться конечно каша, но у каждого потока будет свой идентификатор. Средствами Delphi может можно такое сделать?

Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 10:28 15-02-2012
wasilissk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Man_Without_Face
AssignFile + Append врядли.
TFileStream.Create(FileName, fmShareDenyNone) по идее должно помочь или в чем проблема-то?

Всего записей: 293 | Зарегистр. 25-12-2006 | Отправлено: 13:31 15-02-2012
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Man_Without_Face
Если вас устраивает каша (когда одна половина слова из одного процесса, а другая из другого), то объекты синхронизации можно вообще не применять.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 13:54 15-02-2012
Man_Without_Face



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

Цитата:
TFileStream.Create(FileName, fmShareDenyNone) по идее должно помочь или в чем проблема-то?

Если так:
Подробнее...
то получается бред Подробнее...
 

Цитата:
Если вас устраивает каша

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

Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 17:26 15-02-2012
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Man_Without_Face
У вас ведь юникодная делфя, поэтому вам нужно либо правильно вычислять длину строки, либо изменить тип переменной Msg, либо использовать TStringStream.

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

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 18:17 15-02-2012
wasilissk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Man_Without_Face
Собственно код который я привел, призван избавить от ошибки при повторном открытии уже открытого файла. Которая неизбежно возникнет в случае использования AssignFile. Ничего более.  
Чтобы избавиться от каши, как уже несколько раз написали, необходимо использовать синхронизацию.
Процесс записи порции информации должен быть атомарен - стартуете критическую секцию записываете то, что нужно, критическую секцию освобождаете.

Всего записей: 293 | Зарегистр. 25-12-2006 | Отправлено: 18:22 15-02-2012
Man_Without_Face



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
wasilissk
Спасибо, сделал ansistring, вроде все нормально.
 
Есть еще вопрос: моя функция возвращает массив из классов.
Как организовать систему кодов ошибок. Т.е. если все отработало возвращаю заполненный массив, если нет код ошибки.
 
TContractNumber = class(TRemotable)
 
TContractNumberArray = array of TContractNumber;
 
 

Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 12:44 16-02-2012
wasilissk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Man_Without_Face
1. Возвращать в функции либо код ошибки, либо булево значение успеха. Массив передавать по ссылке и заполнять в функции. В клиентском коде анализировать возвращаемое значение функции, если успех, то работаетм с массивом.
2. Также возвращать массив как и есть сейчас. Но внутри функции устанвливать SetLastError(ваш код ошибки). В клиентском коде анализировать GetLastError.

Всего записей: 293 | Зарегистр. 25-12-2006 | Отправлено: 14:07 16-02-2012
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Man_Without_Face
По поводу записи логов: думаю к идее синхронизации вам со временем придется вернутся, так что оставьте в коде комментарий с упоминанием mutex-а.
По поводу ошибок: еще возможен вариант с возбуждением исключения: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1392

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 00:15 17-02-2012
Man_Without_Face



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Соап сервер загружает экземпляр на каждый запрос, выполняется и завершается (если в это время будут стоять в очереди, в крит. секции записи в лог, они уничтожаться). Критич. секции (синхронизация потоков) или mutex (синхронизация приложений) мне не подойдут. Вроде так.
 
 
Добавлено:
еще иногда возникает ошибка
received content of invflid Content-type: text/html - Soap expects "text/xml"

Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 09:20 17-02-2012 | Исправлено: Man_Without_Face, 10:40 17-02-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru