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

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

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

ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lerthe61
это может и хорошо, если среда одна, а если нужно на несколько IDE компилить? скажем на Дельфи 7 и Дельфи 2009? Потом, хотелось бы и пути автоматически прописывать.

Всего записей: 3145 | Зарегистр. 29-09-2005 | Отправлено: 15:00 23-01-2009 | Исправлено: DmitryKz, 15:16 23-01-2009
Maks150988



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

Код:
procedure DisplayControlGrid(DC: HDC);
var
  w: Integer;
  h: Integer;
begin
  SetPixel(DC, 0, 0, RGB(0, 0, 0));
  SetPixel(DC, 1, 0, RGB(0, 0, 0));
  SetPixel(DC, 1, 10, RGB(0, 0, 0));
  SetPixel(DC, 0, 12, RGB(0, 0, 0));
  SetPixel(DC, 1, 12, RGB(0, 0, 0));
  SetPixel(DC, 1, 14, RGB(0, 0, 0));
  SetPixel(DC, 0, 24, RGB(0, 0, 0));
  SetPixel(DC, 1, 24, RGB(0, 0, 0));
  for h := 0 to (iSpecHeight - 3) do
    if not Odd(h) then
      SetPixel(DC, 2, h, RGB(0, 0, 0));
  for h := 0 to (iSpecHeight - 3) do
    if not Odd(h) then
      SetPixel(DC, iSpecWidth - 3, h, RGB(0, 0, 0));
  SetPixel(DC, iSpecWidth - 1, 0, RGB(0, 0, 0));
  SetPixel(DC, iSpecWidth - 2, 0, RGB(0, 0, 0));
  SetPixel(DC, iSpecWidth - 2, 10, RGB(0, 0, 0));
  SetPixel(DC, iSpecWidth - 1, 12, RGB(0, 0, 0));
  SetPixel(DC, iSpecWidth - 2, 12, RGB(0, 0, 0));
  SetPixel(DC, iSpecWidth - 2, 14, RGB(0, 0, 0));
  SetPixel(DC, iSpecWidth - 1, 24, RGB(0, 0, 0));
  SetPixel(DC, iSpecWidth - 2, 24, RGB(0, 0, 0));
  for w := 2 to (iSpecWidth - 3) do
    if not Odd(w) then
      SetPixel(DC, w, iSpecHeight - 3, RGB(0, 0, 0));
  SetPixel(DC, 10, iSpecHeight - 2, RGB(0, 0, 0));
  SetPixel(DC, 10, iSpecHeight - 1, RGB(0, 0, 0));
  SetPixel(DC, 18, iSpecHeight - 2, RGB(0, 0, 0));
  SetPixel(DC, 26, iSpecHeight - 2, RGB(0, 0, 0));
  SetPixel(DC, 34, iSpecHeight - 2, RGB(0, 0, 0));
  SetPixel(DC, 44, iSpecHeight - 2, RGB(0, 0, 0));
  SetPixel(DC, 44, iSpecHeight - 1, RGB(0, 0, 0));
  SetPixel(DC, 54, iSpecHeight - 2, RGB(0, 0, 0));
  SetPixel(DC, 62, iSpecHeight - 2, RGB(0, 0, 0));
  SetPixel(DC, 70, iSpecHeight - 2, RGB(0, 0, 0));
  SetPixel(DC, 78, iSpecHeight - 2, RGB(0, 0, 0));
  SetPixel(DC, 78, iSpecHeight - 1, RGB(0, 0, 0));
end;

 
А то я не знаю, можно ли просто линией рисовать через точку пиксели. Пришлось через SetPixel. =)

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 16:43 23-01-2009
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
привет всем!
 
кто может направить в следующей ситуации...
 
есть прикладная софтина, коннектится к Firebird. При старте традиционно спрашивает user name/password.  
 
возможно ли прикрутить аутентификацию "средствами windows"? то есть без ввода имени пользователя и праоля в прикладной программе, чтобы имя пользователя и пароль использовались доменные, для текущего пользователя.
 
данная фича опциональна, но прикольно было бы реализовать.  
 
где рыть инфу? что смотреть? может есть компоненты в помосч? как настроить - любые идеи веллкам!

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 17:26 23-01-2009
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
Для этих дел используется Delphi\bin\make
 
Добавлено:
Maks150988
Да не надо Вам оптимизировать. Вам вес наращивать нужно. Если файл программы меньше 10 мегабайт, то сразу понятно, что она приносит  эстетическое удовольствие программисту и не вызывает никакого удовольствия у юзеров. Добавляйте графику - это у Вас восхитительно получается. sbrlprof.zip я выкладывал то ли на рапидшару или на ифолдер для Вас.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 17:35 23-01-2009
Maks150988



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

Цитата:
Добавляйте графику - это у Вас восхитительно получается.

То есть? Вы видели мои программы?
 
Насчет sbrlprof.zip, да, было вроде. Надо поискать на диске. =)
 
А оптимизация мне действительно нужна. Даже прорисовка в потоке и то не помогает, то ли GDI такой...
Project.rar.html
Кидаете mp3 файл на диалог и любуетесь как рисуются элементы управления. Слишком много ЦП кушает, вот я и хочу оптимизировать. Если нужно - могу исходный код модулей для этих контролов выложить. Буду рад любой помощи. =)

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 18:00 23-01-2009
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
Silverpoint MultiInstaller попробуйте.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 18:03 23-01-2009
delover

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

Цитата:
То есть? Вы видели мои программы?  

Я видел то, что Вы действительно понимаете в это вопросе.
 

Цитата:
А оптимизация мне действительно нужна.  

Пишите на C++ там есть макро... Я Ваши программы скачивал и видел. У меня ещё не было времени проверить Ваши идеи, но они мне понравились. Вычихвостить добрую половину сюстем, удовольствие для гурманов.
 
DmitryKz
Мистер Бин, однако.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 18:37 23-01-2009 | Исправлено: delover, 18:38 23-01-2009
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так, у меня такой вопросик. Например требуется сделать автоапдейтер. Опыт в этом есть. Но хочется сделать через динамическую библиотеку. Неясно пока одно, то есть...
Загружу я библиотеку (неважно статически или динамически) и вызову из нее функции. Значит она скачает файл с сервера, позырит циферки в этом файле, вытянет версию обновляемого файла и сравнит, если число меньше - начнет загружать новый файл с сервера. Проблема как потом выполнить подмену скачанного файла. Ведь это ж получается завершение процесса, который грузанул обновлялку в виде библиотеки. А если завершается такой процесс - значит и мой автоапдейтер с ним же завершиться должен, так как по логике если библиотека не используется - она выгружается. Это как нужно в данном случае поступать?

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 22:34 23-01-2009
Tantos



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988
Запускать другое приложение, котороое завершит программу, произведет копирование и снова запустит программу.

Всего записей: 1038 | Зарегистр. 31-05-2005 | Отправлено: 08:55 24-01-2009
BSUacad

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно выгрузить библиотеку из памяти, заменить ее и загрузить снова.  
А можно попользовать компонент  TmxWebUpdate - http://www.maxcomponents.net/index.php?id=1&page=1

Всего записей: 25 | Зарегистр. 07-09-2005 | Отправлено: 08:58 24-01-2009 | Исправлено: BSUacad, 09:00 24-01-2009
ShIvADeSt



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

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

Убивал бы за такие автоапдейтеры. Нельзя скачивать программу с сайта полностью. Трафик учитывать надо. Делается след образом, По определенному запросу сайт возврашает строку с версией программы на сайте, а далее апдейтер анализирует, надо ли обновлять. Скачиваем обновление, чтобы его поставить, запускаем отдельный ехешник, который
1. Завершает основную программу (например посылает ей бродкаст QUIT, получив который программа предупреждает пользователя и выходит)
2. Заменяет исполняемый модуль (библиотеки).
3. Завершает свою работу.
Примерно так я вижу работу автоапдейтера.

Цитата:
Кидаете mp3 файл на диалог и любуетесь как рисуются элементы управления. Слишком много ЦП кушает, вот я и хочу оптимизировать. Если нужно - могу исходный код модулей для этих контролов выложить. Буду рад любой помощи. =)

Загруз проца не постоянный, а скачкообразный. Не думаю, что виноваты контролы. Я отключил отрисовку визуализации - один фиг проц переодически до 37% (раз в 15-20 сек) нагружается. Здесь что то не связаное с визуализацией. Вариант - либа басс.длл подгружает процесс, попробуй ее в отдельном приложении подгрузить и воспроизвести мп3. Уверен - будет загруз. Либо попробуй визуализацию погонять без загрузки либы (случайно рисуй че нить). Насчет оптимизации - RGB(0,0,0) замени на константу - лишним не будет.
 
Добавлено:
Кстати, тут еще немного посмотрел программу, а использование стольких статиков для отрисовки графики не слишком ли? Может все рисовать на контексте окна в WM_PAINT? Надо только разобраться как в нем отрисовывать только необходимые области, чтобы все окно не рисовать. Попробуй в эту сторону копать.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 12:28 24-01-2009 | Исправлено: ShIvADeSt, 12:37 24-01-2009
Frodo_Torbins

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

Цитата:
Проблема как потом выполнить подмену скачанного файла.

Файл еще работающего процесса нельзя удалить, но вполне можно переименовать

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 13:11 24-01-2009
ShIvADeSt



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

Цитата:
Файл еще работающего процесса нельзя удалить, но вполне можно переименовать  

Только на NTFS, на FAT32 такой фокус не пройдет.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 15:03 24-01-2009
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Короче вот исходный код всего проекта. Работа продвигается в свободное время. Оптимизирую/делаю код как знаю. =)
http://webdrive.avtograd.ru/Download/Explorer/sources/stream_radio_player_src.zip
 
Насчет обновления, подумывал пдменять через bat файл. Но это слишком примитивно и тупо и шаловливые руки пользователя захотят как-нибудь исковеркать такой способ.
 
Еще такая ошибка интерсеная. Бывает запустишь через компиляторный отладчик и нужно будет закрыть программу. И бац она зависает. Стандартно 15 потоков в рабочем состоянии, а тут остаются 8. Вероятно я серьезно напутал код, либо хэндлы пересекаются каким-то образом. Непонятно...
 
Насчет загрузки. Знакомый тестировал, когда я специально отриосвывал только по одному элементу. Говорит что загрузка чуть ли не нулевая, а когда все элементы вместе - грузит хорошо. Но я не думаю, ведь тут перерисовка то вроде небольшая, с чего бы так нагружать. Просто у меня двухядерный коре 2.53 и все по нулям, разве что показывает 2-3% в редких случаях, да и то сам Винамп больше грузит иногда тоже. Поэтому задумался об оптимизации. И первоначально вообще хотел создать как свой класс нового элемента, но потом как-то просто засабклассил.
 
Еще хотелось как-то переделать скроллер. Иногда он мелькает. Вроде в потоке проверяю текст из окна и если он меняется - только тогда пересоздаю временный битмап для отрисовки. Хотя может что напутал, но вроде все должно быть верно... =)
 
ShIvADeSt
Не, я про другое. Скачали например то же ини файл. Прочитали в нем строку и все. А если например вообще сайт на том же народе или обычном хостинге - как тогда надо обновлять?

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 16:32 24-01-2009
ZEQUALITY

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 deks
 
Trusted Authentication, начиная с FB 2.1
http://www.ibase.ru/ibfaq.htm#ta и Release Notes

Всего записей: 19 | Зарегистр. 30-11-2008 | Отправлено: 20:03 24-01-2009
shadow user777



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да простят меня модеры. Позволю себе продублировать месагу.
Господа, требуется помощь.  
Нужны исходники программы для составления подобия Электронного журнала учета заявок и их исполнения.  
С возможностью поиска по таблице, вывода на печать, выгрузки таблицы в тхт или xls.  
Т.е. небольшая база данных по учету заявок и контролю за их исполнением.  
Если у кого-либо есть что-то подобное, поделитесь плиз.  
Заранее спасибо за помощь.

Всего записей: 1454 | Зарегистр. 31-07-2005 | Отправлено: 21:15 24-01-2009
Andrey_Kil

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Соорудил прогу для подсчета времени нахождения в инете. Она работает (в  общем).  Теперь поблема: нужно чтобы она автоматически начинала подсчет времени, после подключения (у меня диалап), и заканчивала подсчет после отключеня, и сохраняла время нахождения в инете в файле. Напишите код (если не трудно- весь).  
заранее благодарен.

Всего записей: 9 | Зарегистр. 03-08-2008 | Отправлено: 14:59 25-01-2009
RSoFT1978

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andrey_Kil
Если тебе нужна готовая программа, то скачай себе DialUp Monitor (или аналогичную) и не мучайся. А если тебе нужно написать свою программу, то просьба написать код (весь) выглядит по меньшей мере странно после упоминания, что программа работает.

Всего записей: 34 | Зарегистр. 19-05-2007 | Отправлено: 19:54 25-01-2009
Tantos



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988
Информация к размышлению: Live Update в X-стиле.

Всего записей: 1038 | Зарегистр. 31-05-2005 | Отправлено: 03:16 26-01-2009
Andrey_Kil

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне нужна только часть кода -как запустить отсчет. (его не хватает)  
Мож знаете где готовый взять (хотя бы похожий). А там я переделаю.

Всего записей: 9 | Зарегистр. 03-08-2008 | Отправлено: 10:23 26-01-2009
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 4
ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru