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

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

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

ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы Вопросы по Delphi (до версии 2009) - часть 4

Познаем сами, помогаем другим...
Обсуждаем вопросы, не связанные с юникоидными версиями Delphi - для этого есть соответствующая тема (см. ссылки ниже).

Правила топика:
    Прежде чем спрашивать:
  1. Желательно изучить вопрос, попытаться найти ответ в прилагаемых мануалах, хелпах и анализируя исходники.
  2. Выполнить поиск по топику (открыть "Версия для печати" и поискать ответ там).
  3. Применить фильтр по разделу "Прикладное программирование". Ответы на многие старые вопросы могли быть даны в отдельных темах.
  4. Продумайте вопрос. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите.
  5. Желательно указывать версии используемого компилятора и операционной системы.
    Прежде чем отвечать:
  1. Если не можете помочь, не мешайте.
  2. Если уж вы отвечаете на вопрос, давайте ответ по сути.
  3. Если вы не уверены, так и говорите! Ошибочный, но авторитетно звучащий ответ хуже, чем отсутствие ответа.
  4. Задавайте дополнительные вопросы, чтобы получить больше информации.
  • Отсутствие ответа не равносильно игнорированию - иногда участники форума просто не знают ответ. Повторная посылка вопроса не приветствуется. Посты типа "неужели никто не знает ответа..." или "может мне все-таки кто-нибудь ответит" недопустимы.  
  • Все большие куски кода (более 5 строк) оформляем в тег [morе] дабы уменьшить размер поста. FAQ по тегу [morе].

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:09 28-06-2009 | Исправлено: psa1974, 12:00 02-02-2010
    data man



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

    Код:
    HKEY_LOCAL_MACHINE\SOFTWARE\CodeGear\BDS\<версия>\Known IDE Packages
    HKEY_LOCAL_MACHINE\SOFTWARE\CodeGear\BDS\<версия>\Known Packages
    HKEY_CURRENT_USER\Software\CodeGear\BDS\<версия>\Known IDE Packages
    HKEY_CURRENT_USER\Software\CodeGear\BDS\<версия>\Known Packages

    то поможет. Сам так не пробовал, но FAR2 рулит

    ----------
    Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
    Кекс. Антибиотики. Ламбада.

    Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 22:35 28-04-2010
    JohnSilver182



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот еще один волюнтаристский подход  что бы Пристыковать Подчиненную  форму  к  главной .  Работает криво если форма Изначально форма WsMaximized;  
     
    С Учетом screen.WorkAreaHeight
     

    Код:
    Procedure TDm.SuperResize(f:Tform);
     var l_Height:integer;
    begin
     //asdasdas
     
     l_Height:=FormMain.Top+Formmain.Height;
     if f.WindowState = wsMaximized then
     begin
       f.Top:=l_Height;
     end;
     
     if (f.WindowState = wsNormal) and  (f.Top<l_Height) then f.Top:=l_Height;
     if f.Height > screen.WorkAreaHeight- Formmain.Height then   f.Height := screen.WorkAreaHeight- Formmain.Height;
     
    end;

     
    Добавлено:
    Кажется dxBarManager1 на форму  и свойство  Form1.AutoSize=true  идет лесом ((
     
    Добавлено:
    На сайте даже есть      
     
    When add barmanager(for toolbar) component on form, my form autosize
    true property isn't work. If remove toolbar on my form, form autosize true
    property work good. Did you know this problem?

    Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 22:59 28-04-2010
    Liaders

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Раздобыл исходники нужной мне программы написанной на Delphi 3 http://rghost.ru/download/1488230/5bb41f00bcaa09044a5eb76ced9ce0283395a258/cosmosource091.zip. Открывал ее в Delphi 2010, не получается скомпилировать. Установил Toolbar97, который он просил, но он стал жаловаться на другую ошибку. Не могли вы помочь мне привести исходники в работоспособное состояние?  
    Скомпиленная программа с нужной для нее библиотекой http://rghost.ru/download/1488240/a90875bfb6ee3fd7eb6ead829cc87a476d2cf2df/cosmo091.zip

    Всего записей: 15 | Зарегистр. 28-08-2009 | Отправлено: 00:46 29-04-2010
    Ramazan



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

    ----------
    Per rectum ad...

    Всего записей: 359 | Зарегистр. 13-04-2002 | Отправлено: 06:20 29-04-2010
    psa1974



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Liaders
    Изучай материалы по переходу на Дельфи 2010
    И вообще тебе надо было писать сюда, здесь упоминание  Дельфи 2010 является оффтопом.

    ----------
    У программёра есть два состояния: "Втупляю" и "Попёрло"...

    Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 08:56 29-04-2010 | Исправлено: psa1974, 09:01 29-04-2010
    JohnSilver182



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я уже замучился . Почему я не могу изменить нормально координаты формы
    во время события ONSHOW; ONACTIVATE;
     
    Таймеры какие то делаю .
     

    Код:
    procedure TFormMoikaEdit.Timer1Timer(Sender: TObject);
    begin
      Timer1.Enabled:=false;  
      self.Left:=conf.ReadInteger('forms','box'+l_st.Values['box'],500);
    end;

    Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 10:08 29-04-2010
    JohnSilver182



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Меня никто не любит (

    Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 14:33 29-04-2010
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    А "стоит ли игра свеч". Просто у меня не такая большая вырисовка этой сетки. Я так посмотрел на такой способ, как-то труднозатратно и непонятно.

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 14:43 29-04-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maks150988
    Используйте готовые решения, тот же TBitmap к примеру. По крайней мере другого более легкого способа добится того что вы хотите я не знаю.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 14:54 29-04-2010
    YuriyRR



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ramazan
    Он хранится в реестре )
    Я разворачиваю среду на компьютерах клиента прописывая компоненты через реестр
     
    [HKEY_CURRENT_USER\SOFTWARE\Borland\Delphi\7.0\Known Packages]
     
    "$(DELPHI)\\COMP\\EXPERTS\\designplus7.bpl"="Design Plus Expert"
    "$(DELPHI)\\BIN\\vclx70.bpl"="Borland ExtComps"
    "$(DELPHI)\\BIN\\DclTee87.bpl"="TeeChart 8 Components"
    "$(DELPHI)\\BIN\\DclTeePro87.bpl"="TeeChart Pro 8 Components"
    "$(DELPHI)\\BIN\\DclTGL87.bpl"="TeeChart 8 for OpenGL"
    "$(DELPHI)\\BIN\\TeeImage87.bpl"="TeeChart Pro 8 Graphic Formats"
    "$(DELPHI)\\BIN\\FIBPlus7.bpl"="FIB Plus Components"
    ..... как напишешь так и будет

    Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 18:20 29-04-2010
    Bonivur



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    JohnSilver182
    Читал читал, так и не врубился чего именно ты хочешь сделать. Правильная постановка задачи - суть залог получения полезного совета или помощи.

    ----------
    Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

    Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 20:27 29-04-2010
    Ramazan



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuriyRR
    Блин, даже в голову не пришло! Regedit с его принудительной сортировкой все спутал!
    Спасибо!

    ----------
    Per rectum ad...

    Всего записей: 359 | Зарегистр. 13-04-2002 | Отправлено: 20:55 29-04-2010
    JohnSilver182



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

    Цитата:
    JohnSilver182
    Читал читал, так и не врубился чего именно ты хочешь сделать. Правильная постановка задачи - суть залог получения полезного совета или помощи.  

     
    Ну я вот сделал SDI интерфейс .  Форма главная это просто полостка с dxBarManager
     
    а) Есть проверенный код что бы  прицеплять подчиненные формы  к НИжнему краю главной формы ????? А то они на весь экран  раскрываются ..
     
    б) Кажется dxBarManager1 положить на форму  и свойство  Form1.AutoSize=true  идет лесом (( .  ТО есть  гланая  форма  САМА НЕ ОБРЕЗАЕТСЯ ДО ПОЛОСКИ . Это плохо.
     
    в) в КАКОМ событии формы  можно менять ее координаты ???? У меня даже на событие ONACTIVATE  координаты не меняются .  ТОлько на ONRESIZE

    Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 08:16 30-04-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JohnSilver182
    Все зависит от того, какое поведение должны иметь ваши формы. В общем случае достаточно менять позицию и размер формы по OnResize. Дополнительно можно контролировать позицию окна перехватывая WM_MOVING.
    А зачем вам вообще сдался этот AutoSize? Задайте форме нужный размер в дизайнере и BorderStyle=bsSingle.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 12:59 30-04-2010
    Ramazan



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

    ----------
    Per rectum ad...

    Всего записей: 359 | Зарегистр. 13-04-2002 | Отправлено: 13:59 30-04-2010
    svs123456789

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите пример (желательно с рус. комменами) по работе с последовательным портом?

    Всего записей: 2934 | Зарегистр. 10-04-2003 | Отправлено: 14:06 30-04-2010
    JohnSilver182



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

    Цитата:
    А зачем вам вообще сдался этот AutoSize? Задайте форме нужный размер в дизайнере и BorderStyle=bsSingle.

    Зачем  применять  фиксированный размер в век 17" до  30" мониторов ??????
     
     
     
     
     
     
    Добавлено:

    Цитата:
    Еще есть такое сообщение WM_GETMINMAXINFO

    А  это по какому  пункту вопроса ??

    Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 14:10 30-04-2010
    Ramazan



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

    ----------
    Per rectum ad...

    Всего записей: 359 | Зарегистр. 13-04-2002 | Отправлено: 15:44 30-04-2010
    Bonivur



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

    Цитата:
    б) Кажется dxBarManager1 положить на форму  и свойство  Form1.AutoSize=true  идет лесом (( .  ТО есть  гланая  форма  САМА НЕ ОБРЕЗАЕТСЯ ДО ПОЛОСКИ . Это плохо.

    Не работал с компонентом dxBarManager но может сначала кинуть на форму Panel (align - alTop) и далее на Панель уже кидать что нужно?  
     

    Цитата:
    в) в КАКОМ событии формы  можно менять ее координаты ???? У меня даже на событие ONACTIVATE  координаты не меняются .  ТОлько на ONRESIZE

    Ну если на ONRESIZE меняются, что мешает менять? И опять Вы не уточнили - Ваши дочерние формы почему на весь экран раскрываются? В design или run-time?

    Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 18:13 30-04-2010 | Исправлено: Bonivur, 18:16 30-04-2010
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    Нет, мне надо без оберток, работаю на Api. Посмотрел я что народ использует, а использует он GetDIBits или FastDib (это вообще капут для моих знаний на текущий момент). Ну значит я создал битмап через CreateDIBSection, все нормально, теперь мне нужно заменить пиксели в полученной карте пикселей. Сделал так:
     

    Код:
     
    var
      bmi : TBitmapInfo;
      bits: Array [0..MAX_WIDTH, 0..MAX_WIDTH] of TRGBTriple;
      bi  : Bitmap;
     
    //
     
      ZeroMemory(@bmi, Sizeof(TBitmapInfoHeader));
      with bmi do
      begin
        bmiHeader.biSize        := SizeOf(TBitmapInfoHeader);
        bmiHeader.biWidth       := MAX_WIDTH;
        bmiHeader.biHeight      := MAX_HEIGTH;
        bmiHeader.biPlanes      := 1;
        bmiHeader.biBitCount    := 24;
        bmiHeader.biCompression := BI_RGB;
      end;
     
      GetDIBits(pcp.hdcMem, pcp.hbmMem, 0, MAX_WIDTH, @bits, bmi, DIB_RGB_COLORS);
     
    bits[10, 0].rgbtBlue  := 0;
    bits[10, 0].rgbtGreen := 0;
    bits[10, 0].rgbtRed   := 0;
     
      SetDIBits(pcp.hdcMem, pcp.hbmMem, 0, MAX_WIDTH, @bits, bmi, DIB_RGB_COLORS);
     

    Ну точка появляется на HDC, вроде уже правильно что-то делаю, но появляется она с перепутанными координатами x-y чтоли. Высота у контрола 29, а ширина 89. Так вот если сделать bits[29, 0] - точка чуть ли не посередине контрола рисуется. Я конечно понимаю что тут нечисто дело, тем более данные о пикселах вроде задом наперед распологаются (или зеркально, ведь в некоторых примерах высоту указывают с минусом в структуре TBitmapInfo) и еще все зависит вроде бы от битности, но для меня пока такое трудновато. Так вот я бы хотел прояснить, может быть я сам массив неправильно задал в переменной или действительно надо вести пересчет координат?

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 16:20 01-05-2010 | Исправлено: Maks150988, 16:22 01-05-2010
       

    Страницы: 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 (до версии 2009) - часть 5
    ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru