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

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

Модерирует : 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 112 113 114 115 116 117 118 119 120 121 122 123 124 125

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

ShIvADeSt



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

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


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


    Некоторые "родственные" топики:
     
  • Вопросы по Delphi (версии 2009-2010 Weaver)
  • Вопросы по компонентам для Delphi, C++ Builder
  • Использование DevExpress
  • Вопросы по Ehlib
  • Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus - только Open Source
  • Коммерческие компоненты и утилиты для Delphi/BCB
  • кабак программистов :)
     
    См. также: Некоторые полезные ресурсы о Delphi
     
    И старайтесь, чтобы ваш код не попал сюда :)

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 05:13 19-05-2010 | Исправлено: akaGM, 02:33 15-07-2020
    Frodo_Torbins

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

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 19:48 18-10-2010
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет. Есть стандартный ListBox. Есть стандартное сообщение LB_SELITEMRANGE для выделения первого и последнего элемента из диапазона. У меня есть Array of Integer с индексами строчек, которые выбраны в контроле, заполняемый через сообщение LB_GETSELITEMS. Если элемент выбран, значит он > 0, вот это значение выбранного элемента в массиве. Собственно как мне извлечь из массива начальный и конечный выбранный элементы отттуда? На ум ничего не приходит.

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 19:06 19-10-2010
    ShIvADeSt



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

    Код:
     
    var
      Arr:array of integer;
      C,i:integer;
    begin
      C:=SendMessage(ListBox1.Handle,LB_GETSELCOUNT,0,0);
      SetLength(Arr,C);
      C:=SendMessage(ListBox1.Handle,LB_GETSELITEMS,C,integer(Arr));
     

    соотв Arr[0] - начальный элемент, вернее его позиция
    Arr[C-1] - конечный элемент.


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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:14 20-10-2010
    Maks150988



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

    Код:
      function GetLastItems(hWnd: THandle): TSmallPoint;
      var
        i: DWORD;
        first: DWORD;
        last: DWORD;
        count: Integer;
        ret: DWORD;
      begin
        Result.x := DWORD(-1);
        Result.y := DWORD(-1);
        first := DWORD(-1);
        last  := DWORD(-1);
        count := SendMessageW(hWnd, LB_GETCOUNT, 0, 0);
        for i := 0 to count -1 do
        begin
          ret := SendMessageW(hWnd, LB_GETSEL, i, 0);
          if (first = DWORD(-1)) and (ret > 0) then
          begin
            first := i;
            Break;
          end;
        end;
        for i := count -1 downto 0 do
        begin
          ret := SendMessageW(Wnd, LB_GETSEL, i, 0);
          if (last = DWORD(-1)) and (ret > 0) then
          begin
            last := i;
            Break;
          end;
        end;
        Result.x := first;
        Result.y := last;
      end;

     
    Тогда выходит даже легче - первый элемент будет Low(Arr), а последний - High(Arr). А потом случайно выставил стиль LBS_EXTENDEDSEL контролу и всё стало ещё шоколаднее, я весь вечер протыркался с реализацией ListBox аля ListView, а тут всё просто было.

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 06:32 20-10-2010
    DmitryKz

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как можно программным способом определить количество mip в текстуре (mip level) bmp? Интересует алгоритм в виде функции:  
    int miplevel=f(путь к bmp-текстуре).

    Всего записей: 3142 | Зарегистр. 29-09-2005 | Отправлено: 14:59 24-10-2010
    Reklats59



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Товарищи, не подскажете, как в Delphi 7 организовать с помощью библиотеки synapsis WWW аутентификацию на сайте по SSL (https://*)?  

    Всего записей: 38 | Зарегистр. 04-06-2010 | Отправлено: 17:36 24-10-2010
    Ape

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто знает, объясните что сие значит:
    Перенёс проект на другой диск. В свойствах проекта заменил пути доступа к либам.
    После этого при компиляции стало выдавать ошибку:
     
    [Pascal Fatal Error] pasall.tmp(1): File not found: 'System.pas'
     
    И открывает файл pasall.tmp с таким содержанием:
     
    program pasall;
      Uses Unit1 in 'H:\Project1\Unit1.pas'
        , Unit2 in 'H:\Project1\Unit2.pas'
        ;
    begin
    end.
     
    Проверил все пути, ошибок нет. Путь к 'System.pas' прописал тоже.

    Всего записей: 81 | Зарегистр. 06-02-2003 | Отправлено: 12:08 27-10-2010 | Исправлено: Ape, 12:10 27-10-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ape
    Попробуйте этот pasall.tmp удалить совсем, новый должен сгенериться автоматически.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 14:50 27-10-2010
    Yarynich

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет!
     
    В программе нужно реализовать клавиатуру для touchscreen-a (Delphi7). Чтобы особо не заморачиваться бросил на панель кнопки с Caption соответствующей буквы. Но вот возникла проблема - кнопка с маленькой буквой "я" не отображает букву. Перепробовал кнопки из нескольких пакетов - то же самое. А вот SpeedButton - показывает. Скорее всего что-то с кодом буквы "я", потому что в Delphi XE , буква на кнопке отображается. (Жаль, TTouchKeyboard работает неадекватно с CapsLock). Пока перейду на SpeedButton. Но возникает вопрос - почему и как с этим бороться?

    Всего записей: 38 | Зарегистр. 19-12-2005 | Отправлено: 20:19 27-10-2010
    nuker2015



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Yarynich
    Цитата:
    ...Перепробовал кнопки из нескольких пакетов - то же самое. А вот SpeedButton - показывает. Скорее всего что-то с кодом буквы "я"...

    XE Является юникодным, D7 - нет.   для версий ранее D2009  можно использовать TntUnicode,  бесплатную версию ещё можно найти в сети по адресу: http://www.silverpointdevelopment.com/sptbxlib/TntUnicodeControls.zip
    должно помочь.

    Всего записей: 132 | Зарегистр. 26-10-2005 | Отправлено: 23:32 27-10-2010
    Ape

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

    Цитата:
    Попробуйте этот pasall.tmp удалить совсем, новый должен сгенериться автоматически.

    Генерится с таким же содержанием.
     
    Если вернуть проект на прежнее место и восстановить файл проекта, проект компилится без ошибок. Видимо, что-то со структурой файла проекта связано.

    Всего записей: 81 | Зарегистр. 06-02-2003 | Отправлено: 11:32 28-10-2010
    AlexIntegral



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

    Цитата:
    Товарищи, не подскажете, как в Delphi 7 организовать с помощью библиотеки synapse WWW аутентификацию на сайте по SSL (https://*)?

     
    Вот здесь Вы можете найти нужную информацию на свой вопрос.

    Всего записей: 245 | Зарегистр. 31-05-2008 | Отправлено: 23:29 29-10-2010
    Reklats59



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlexIntegral 23:29 29-10-2010
    Цитата:
    Вот здесь Вы можете найти нужную информацию на свой вопрос.

     
    Я читал это ещё до того, как задать вопрос. Там описана простая авторизация, а мне нужна  basic\WWW\http авторизация по SSL.

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте !
    Я тут поднимал проблему по ошибке в дефкаx 53 билда, косячит именно в delphi в С говорят нормально, проектик  набросал, не возмется ли кто проверить ?

    Всего записей: 82 | Зарегистр. 14-04-2003 | Отправлено: 10:26 31-10-2010
    MikeZ

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

    Цитата:
    Если вернуть проект на прежнее место и восстановить файл проекта, проект компилится без ошибок. Видимо, что-то со структурой файла проекта связано.
    Грохните «лишние» файлы, кроме dpr, res, dfm, pas и ваших, если есть. Пути потом восстановите вручную. Если настройки проекта какие-то уж оч. тонкие, то время потратите, но должно помочь. «Не найден system.pas» - это проблема с путями в настройках проекта. Нет настроек - нет проблем  
    P.S. Забекапить не забудьте!

    Всего записей: 407 | Зарегистр. 01-02-2004 | Отправлено: 16:59 31-10-2010
    SXP



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть ListView, хочу спрятать колонку - свойство width=0, как избавиться от такого эффекта (см. скриншот)
     
       
     
    и, если избавиться от такого эффекта, будет ли возможным изменить ширину колонки, или нужно ещё код писать. Спасибо.

    Всего записей: 3755 | Зарегистр. 21-06-2002 | Отправлено: 23:58 01-11-2010
    andrewtishkin



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

    Цитата:
    или нужно ещё код писать

    http://forum.sources.ru/index.php?showtopic=139231&st=0&#entry1081025

    Всего записей: 781 | Зарегистр. 28-08-2008 | Отправлено: 00:52 02-11-2010
    GRom V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите ПЛИЗЗ!
    Есть такая тема - эмуляция нажатия ALT+TAB:
    Проблема в следующем...  Как сделать чтоб клавиша ALT осталась нажатой?
    Заранее спасибо!
     
    procedure SendAltTab;
    var
      KeyInputs: array of TInput;
      KeyInputCount: Integer;
     
      procedure KeybdInput(VKey: Byte; Flags: DWORD);
      begin
     Inc(KeyInputCount);
        SetLength(KeyInputs, KeyInputCount);
        KeyInputs[KeyInputCount - 1].Itype := INPUT_KEYBOARD;
        with  KeyInputs[KeyInputCount - 1].ki do
        begin
          wVk := VKey;
          wScan := MapVirtualKey(wVk, 0);
          dwFlags := KEYEVENTF_EXTENDEDKEY;
          dwFlags := Flags or dwFlags;
          time := 0;
          dwExtraInfo := 0;
        end;
      end;
    begin
      KeybdInput(VK_MENU, 0);                // Alt
      KeybdInput(VK_TAB, 0);                 // Tab
      KeybdInput(VK_TAB, KEYEVENTF_KEYUP);   // Tab
      KeybdInput(VK_MENU, KEYEVENTF_KEYUP); // Alt
      SendInput(KeyInputCount, KeyInputs[0], SizeOf(KeyInputs[0]));
    end;

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 14:21 03-11-2010
    MikeZ

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Закомментировать 3-ю строчку снизу:
    KeybdInput(VK_MENU, KEYEVENTF_KEYUP); // Alt

     
    или же между SendInput (2-я строчка снизу) и последним End'ом вставить нажатие:
    KeybdInput(VK_MENU, 0);                // Alt

    Всего записей: 407 | Зарегистр. 01-02-2004 | Отправлено: 19:07 03-11-2010 | Исправлено: MikeZ, 19:09 03-11-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GRom V
    а зачем тогда отпускам клавишу?

    Код:
    KeybdInput(VK_MENU, KEYEVENTF_KEYUP); // Alt  
     
    упс опередили...

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 19:29 03-11-2010 | Исправлено: greenpc, 19:30 03-11-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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

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


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru