Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Клуб профессиональных программистов :: Выпуск #111


Клуб профессиональных программистов «Весельчак У»
Информационная рассылка сайта и форума.  Выпуск 111.  9 апреля 2011 г.

Здравствуйте, уважаемые читатели!

Сегодня предлагаем вам подборку тем форума.


Приятного чтения!




  • Программирование :: Общий
  • Доброго времени суток. Чертовски сильно хочется почитать о поведении стэка приложения во время падения (как в винде, так и в *nix). Гугление ничего полезного пока не дало (не умею искать?), так что прошу помощи в подборе литературы. Заранее спасибо)
  • если в дизайнере положить на форму элемент QComboBox, то его содержимое можно настроить правой кнопкой -> изменить элементы. Так вот, имеется некий класс контрола


    Код:
    class A : QObject 
    {
       ....
       
        QComboBox* m_CBX;
    };
    контрол добавлен в дизайнер, на нём виден дочерний комбобокс

    Как сделать так, чтобы щелчком по контролу A можно было бы выбрать тот самый пункт меню с настройкой комбобокса (то есть нужна полная аналогия настройки содержимого одиночного QComboBox )
    ?
  • Программирование :: .NET технология от и до
  • хотелось бы наиболее простым способом получить значение из открытого файла в Excel значение в заданной ячейке.
  • Как в treeview динамически создавать список? Хочу написать программу типа проводника, но незнаю как правильно сформировать динамическое создание списка.
    Код: (C++)
    System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) 
    {
        this->listView1->FullRowSelect = true;
        array<DriveInfo^>^ driver = DriveInfo::GetDrives();
        for each( DriveInfo^ drinfo in driver )
        {
            String^ str = drinfo->Name;
            array<wchar_t>^ wch = gcnew array<wchar_t>(999);
            for ( int i = 0; i < str->Length; i++)
                wch[i] = str[i];
            str = gcnew String( wch, 0, str->Length - 1);         //получаю букву диска
            DirectoryInfo^ dire = gcnew DirectoryInfo(drinfo->Name);
            System::Windows::Forms::TreeNode^ node = gcnew System::Windows::Forms::TreeNode;
            array<DirectoryInfo^>^ dir = dire->GetDirectories();
            node->Text = str;
            for each( DirectoryInfo^ di in dir )           
            {
                node->Nodes->Add( di->Name );
            }
            this->treeView1->Nodes->Add(node);
        }
        this->label2->Text = L"";
    }

    System::Void treeView1_AfterExpand(System::Object^  sender, System::Windows::Forms::TreeViewEventArgs^  e)
    {
        e->Node->Nodes->Clear();
        DirectoryInfo^ dirinf;
        dirinf = gcnew DirectoryInfo(e->Node->FullPath + L"\\");
        array<DirectoryInfo^>^ ardir = dirinf->GetDirectories();
        for ( int i = 0; i < ardir->Length; i++)
        {
            DirectoryInfo^ dirinff = gcnew DirectoryInfo(ardir[i]->FullName + L"\\");
            if ( dirinff->Attributes != System::IO::FileAttributes::Directory)
            {
                e->Node->Nodes->Add( ardir[i]->Name);
                continue;
            }
            array<DirectoryInfo^>^ aardir = dirinff->GetDirectories();
            TreeNode^ nod = gcnew TreeNode();
            if ( aardir->Length == 0 )
            {
                e->Node->Nodes->Add( ardir[i]->Name);
                continue;
            }
            else
            {
                nod->Text = ardir[i]->Name;
                nod->Nodes->Add(aardir[0]->Name);
                e->Node->Nodes->Add(nod);
            }
        }
    }
  • Добрый день.

    Существует ли в Сш тип коллекции, позволяющий записать элемент по индексу, когда заранее неизвестно максимальное значение этого индекса?

    Спасибо.
  • VS 2010 .NET 3.5

    Что неправильно?

    Код: (CSharp)
      private T GetKeyValue<T>(string key, T defaultValue)
    {
    object value = defaultValue;
    var subKey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\MySoft\Test1\");
    if (subKey != null)
    {
    value = subKey.GetValue(key);
    subKey.Close();
    }
    var converter = TypeDescriptor.GetConverter(typeof(T));
    return (T)converter.ConvertFrom(value);
    }

    Если ключ в реестре существует, то всё работает замечательно, для типов string и bool. А вот если subKey = NULL, то string работает, а вот с bool проблемы:

    Код: (CSharp)
       GetKeyValue<bool>("Val1", false);

    выбрасывает исключение при конвертировании (используется defaultValue):
                    
    Код: (CSharp)
                      converter.ConvertFrom(value);

    Тест для Т = bool:

    Код: (CSharp)
                      var buf = converter.CanConvertFrom(typeof(T));

    тоже не проходит.
  • Как в listview заполнить несколько колонок и как получить системные иконки для файлов и папок?
  • Программирование :: С/С++ :: ANSI С/С++
  • Доброго времени суток!
    Нужен арабский алфавит в кодировках ANSI и UNICODE. В UNICODE  есть в стандартах арабский алфавит, в ANSI  ничего не нашлось.
    Может кто-нить может помочь по данному вопросу?  :confused:
  • Программирование :: С/С++ :: WinAPI & Visual C++
  • Объясните начинающему... Хочу создать класс, в котором будет диалог созданный с помощью CreateDialog. Функции класса будут функции работы с полем РичЕдит в этом диалоге, а также приватные поля...
    [expand=(Собственно кусок код)]
    Код: (C++)
    class MyClass
    {
    HWND hwndWin;
    HINSTANCE hInst;

    BOOL CALLBACK GoToProc(HWND, UINT, WPARAM, LPARAM);
    int ChooseColor();

    public:
    MyClass(HINSTANCE);
    ~MyClass();
    int Put(char *);
    };


    MyClass::MyClass(HINSTANCE hInstance)
    {
    hInst = hInstance;
    char lpszBuf[80];

    if (!IsWindow(hwndWin))
    {
    hwndWin = CreateDialog( hInst, "IDD_DLG", NULL, (DLGPROC)GoToProc );
    if (!hwndWin)
    {
    FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM,NULL,GetLastError(),LANG_SYSTEM_DEFAULT,lpszBuf,80,NULL );
    MessageBox( NULL, lpszBuf, "Ошибка", MB_OK | MB_ICONWARNING );
    }
    }
    };

    MyClass::~MyClass()
    {
    DestroyWindow(hwndWin);
    hwndWin = NULL;
    };

    BOOL CALLBACK MyClass::GoToProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    {
    switch (message)
    {
    case WM_INITDIALOG:
    {
    ShowWindow( hDlg, SW_SHOW );
    return TRUE;
    }
    case WM_COMMAND:
    switch ( LOWORD(wParam) )
    {
    case IDCANCEL:
    ShowWindow( hDlg, FALSE );
    return FALSE;
    case IDB_TLIGHT:
    ChooseColor();
    return FALSE;
    }
    return FALSE;
    }
    return FALSE;
    };

    int MyClass::ChooseColor() {return 0};

    int MyClass::Put(char *st)
    {
    SETTEXTEX param;
    param.flags = ST_DEFAULT | ST_SELECTION;
    param.codepage = CP_ACP;
    if (!SendMessage(GetDlgItem(hwndWin, IDC_REDIT1), EM_SETTEXTEX, (WPARAM)&param, (LPARAM)st));
    return 0;
    }
    [/expand]

    А теперь вопросы:
    1. Как создать класс не используя статическую CALLBACK функцию диалога, что бы можно было создавать несколько экземпляров данного класса?
    2. Если я создаю статическую CALLBACK функцию диалогового окна в классе (иначе если CALLBACK функция мембер - CreateDialog ругается "приведение типов: невозможно преобразовать 'overloaded-function' в 'DLGPROC'"), диалог создается, но при попытке обратиться из CALLBACK функции к другому члену класса, ругается "MyClass::ChooseColorA: недопустимый вызов нестатической функции-члена". Почему так и как это решить?

    P.S. Выслушаю любую критику и советы, но хотелось бы получить ответы на свои вопросы.  :idea3:
  • Программирование :: Delphi
  • Здравствуйте. Вопрос от делитанта: как при внедрении в OleContainer Word'овского документа убрать его тулбар, т.е. загрузить документ лишь для просмотра и со скролингом
  • Программирование :: VisualBasic :: Visual Basic for Applications
  • Close и Save документа Word, не могу в них врубиться
    'сохраняет документ не спрашивая об этом
    'Dialogs(wdDialogFileSaveAs).Execute
    а как будет не сохранять документ не спрашивая об этом
    поясню, предполагается, что пользователь в документе своими руками ничего делать не будет и закрывая документ ему и нужна инструкция не сохранять документ не спрашивая об этом. Затруднения вызывает то что в этом документе есть Комбобокс и по открытию документа в него прога сама закидывала строки
    Спасибо
  • Есть шаблон, 104.dot, в чём его хитрость или что ???
    Почему создавая на его основе документ строки кода выполняю

    Код:
    Dim Имя_шаблона As Variant
    Имя_шаблона = ActiveDocument.AttachedTemplate
    и Имя_шаблона <> 104, а = Нормал.дот

  • Программирование :: Ассемблер
  • Здравствуйте  помогите понять где у меня закралась ошибка или что я не правильно понимаю

    у меня задание такое  "   Сформировать массив из 10 двухбайтных чисел. Переписать во второй массив все положительный числа."

    я его разбил  не  более простые  задание что бы разобраться 
    дня начало я хотел  просто  записать  числа из памяти в регистр   

    Код:
    V1 dw 9999h,8888h,777h,6666h,5555h,4444h,3333h,2222h,1111h,1000h
    V2 dw 10 DUP(?)
    n dw 0
    .code
    mov ax,@data
    mov ds,ax
    mov cx,10 ;число циклов(количесво элиментов)
    mov bx,0 ;индекс
    next:
    clc
    mov ax,v1[bx]
    add bx,2
    loop next



    это всё работает хорошо    но вот  когда я заменил  8888h на  -8888h
    Код:
    V1 dw 9999h,8888h,777h,6666h,5555h,4444h,3333h,2222h,1111h,1000h
    то вот тут  почему-то  он не записывает в регистр  число  8888 а пишет    7778 
    подскажите что   неправильно
  • Программирование :: Программирование 1С :: 1С 7.x
  • Пожалуйста подскажите как автоматически заполнить подчиненный справочник элементами справочника владельца по условию.
    Например:
    Справочник ТМЦ - владелец
    Справочник Состав - подчиненный

    элемент справочникаТМЦ(А) состоит с  справочникаТМЦ(Б) и справочникаТМЦ(В)


    Выборка проходит по условию: Элемент А является комплектом с Элементов Б и В. В названии элементов А, Б, и В разница в 1 слово. если в названии элемента Б и В одинаковое название с элементом А тогда подчиненному справочнику присвоить значение элементов Б и В.



    Помогите пожалуйста с кодом.... Я в 1с очень недавно. Знаю только алгоритмику, а синтаксис 1с токо учу. А код нужно срочно, ПОМОГИТЕ ПЛЗ.
  • Программирование :: Программирование 1С :: 1С 8.x
  • Доброго времени суток. Есть следующая ситуация: есть 1 фискальный регистратор (FPrint-88K), который подключен только к одному компу, возникла необходимость, чтобы с ним работали одновременно два кассира. Установил драйвер (6.11.2.51.04 Атоловский) на второй комп, указал в нем сетевой путь на фискальник, попробовал снять отчет без гашения из драйвера, работает. Настроил в 1С 8.2 (УПП 1.3.10.1) торговое обородувание, начинаю снимать с 1С отчет без гашения, а связи нет, но с драйвера работает все отлично. Кто-нибудь может подсказать в чем может быть причина что 1С на втором компе не определяет его?
  • Доброго ночи всем !
    Имеется запрос:
    Код:
    ВЫБРАТЬ
    ЗаправкаГСМОстаткиГСМ.ГСМ КАК ГСМ,
    ПлотностьГСМ.Плотность КАК Плотность
    ИЗ
    Документ.ЗаправкаГСМ.ОстаткиГСМ КАК ЗаправкаГСМОстаткиГСМ
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПлотностьГСМ КАК ПлотностьГСМ
    ПО ЗаправкаГСМОстаткиГСМ.ГСМ = ПлотностьГСМ.ГСМ
    ГДЕ
    ЗаправкаГСМОстаткиГСМ.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

    У РегистрСведений.ПлотностьГСМ есть поле Период.

    Как можно выбрать ПлотностьГСМ на дату документа ЗаправкаГСМ ?
  • Подскажите пожалуйста как установить свой логотип в прайс?
    Версия софта 8мая.. и если можно по подробнее.. просто я новичок в этом деле :)
  • Программирование :: Программирование 1С :: 1С 8.2: Управляемое приложение
  • Собственно есть ресурс с описанием: http://v8.1c.ru/edi/edi_stnd/131/
    Но там описан только принцип работы

    Собственно задача заключается в обмене данными с сайтом(на платформе 1С-БИТРИКС)

    Собственно интересует как отправить XML файлы на обработку сайту(и какая структура XML должна быть) и как получить XML с сайта для формирования заказов клиента.

    Я не могу понять как это реализовать в 1С, прошу вашей помощи
  • Операционные системы :: Встраиваемые системы
  • Есть устройство на Windows CE 5.0
    Есть необходимость менять значение ячейки памяти за заданное каждый раз при загрузке.
    Как это делать правильно?
  • Не секрет, что при всем изобилии книг по программированию подавляющее большинство из них - просто хлам, не дающий читателю ни малейшего понятия о том, как на самом деле проектируются, реализуются и сопровождаются программы промышленного объема и промышленного уровня качества. Ситуация с литературой по программированию микропроцессоров и микроконтроллеров еще на порядок хуже - почти вся она сводится к передиранию описания системы команд МК из datasheet'а, после чего следует пара примитивных программ типа "помигать светодиодиком". Для самых начинающих, безусловно, это будет познавательно. Но что делать дальше, когда медитировать, глядя на мигающий светодиод, уже надоело? Увы, большинство книг на этом заканчивается.

    Поэтому весьма ценным будет обмен столь дефицитной литературой по сабжу. Прочитали что-то стоящее - не сочтите за труд черкнуть несколько строчек в данной теме. Решили, что книга не стоит затраченного времени/денег - тоже напишите, чтобы другие не наступили на те же грабли.

    Приводить здесь ссылки на скачивание сканов излишне - это не вполне законно, а взрослые люди сами знают, как их найти. В крайнем случае - вопросы в личку. Гораздо ценнее будет снабдить сообщение краткой аннотацией, которая позволит остальным определить лично для себя ценность данной книги.
  • Операционные системы :: Встраиваемые системы :: Микроконтроллеры
  • Кто-нибудь пользовался такими? Например, AT86RF231. Интересно впечатление. У меня оно пока на уровне мануала, но весьма понравилось.
  • Направления программирования :: Drivers
  • День добрый! В очередной раз огорчившись тем как winlirc отваливается при запуске высокоприоритетных процессов вроде видеоплейера я решил  написать дровинку, которая будет собирать статистику с СОМ порта более оперативно, чем WaitForCommEvent. Приемник ИК подсоединен к DCD пину COM порта, соотвественно надо перехватить прерывание от порта и проанализировать состояние пина - сложить в массив временную метку и состояние линии, дернуть евент для юзермода - типа пусть вычитывает. Проблема возникла с подсоединением прерывания, вот такой код проваливается:
    Код:
    KIRQL     kIrql;
    KAFFINITY kAffinity;

    ULONG kVector = HalGetInterruptVector(PCIBus, 0, COM_PORT_IRQ, COM_PORT_IRQ,
                         &kIrql,    &kAffinity);
    status = IoConnectInterrupt (
                &dx->pIntObj,
                Isr,      
                dx,  
                NULL,    
                kVector,  
                kIrql,     // DIRQL
                kIrql,     // DIRQL
                LevelSensitive,  
                TRUE,  
                kAffinity,
                FALSE );
    Irq=4 не аттачится, функция возвращает  STATUS_INVALID_PARAMETER. Вычитал про регистрацию ресурсов В\В пробовал так:
    Код:
    CM_RESOURCE_LIST rlist;
    rlist.Count = 1;
    rlist.List[1].InterfaceType = Isa;
    rlist.List[1].BusNumber = -1;
    rlist.List[1].PartialResourceList.Version = 1;
    rlist.List[1].PartialResourceList.Revision = 1;
    rlist.List[1].PartialResourceList.Count = 1;
    rlist.List[1].PartialResourceList.PartialDescriptors[1].Type = CmResourceTypeInterrupt;
    rlist.List[1].PartialResourceList.PartialDescriptors[1].ShareDisposition = CmResourceShareShared;
    rlist.List[1].PartialResourceList.PartialDescriptors[1].Flags = CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE;
    rlist.List[1].PartialResourceList.PartialDescriptors[1].u.Interrupt.Level = kIrql;
    rlist.List[1].PartialResourceList.PartialDescriptors[1].u.Interrupt.Vector= kVector;
    rlist.List[1].PartialResourceList.PartialDescriptors[1].u.Interrupt.Affinity = kAffinity;

    BOOLEAN bConflict;
    status = IoReportResourceForDetection(
    DriverObject,
    &rlist,
    sizeof(rlist),
    NULL,
    NULL,
    0,
    &bConflict
    );

    Конфликтов не обнаруживается, но после этого тоже самое. Попытка зарегистрировать девайс проваливается:
    Код:
    status = IoCreateDevice(DriverObject,
                                sizeof(EXAMPLE_DEVICE_EXTENSION),
                                &devName, // ìîæåò áûòü è NULL
                                FILE_DEVICE_UNKNOWN,
                                0,
                                FALSE, // áåç ýêñêëþçèâíîãî äîñòóïà
                                &fdo);
    if(!NT_SUCCESS(status)) return status;

    status = IoReportDetectedDevice( //FAIL
    DriverObject,
    Isa,
    -1,
    -1,
    &rlist,
    NULL,
    TRUE,
    &fdo
    );
    возвращается код STATUS_NO_SUCH_DEVICE. Не знаю что делать  что не так. Помогите пожалуйста! OS-WinXP SP2
  • Направления программирования :: Web :: Серверные скрипты
  • Выдаётся сообщение об ошибке (Parse error: syntax error, unexpected '<' in Z:\home\localhost\www\indexxx.php on line 27) в этой строке:
    Код:
    <a href="addartform.php?id_page=<?echo $_GET['id_page'];?>">Добавить новую статью на выбранную страницу</a>
    Как исправить эту ошибку?Заранее спасибо.
  • Практические разделы :: Базы данных
  • таблица
    Код:
    id  time   name

    1  100001 track1
    2  100002 track1
    3  100003 track1
    4  100004 track1
    5  100005 track1

    6  100006 track2
    7  100007 track2
    8  100008 track2
    9  100009 track2
    10 100010 track2

    11 100011 track3
    12 100012 track3
    13 100013 track3
    14 100014 track3
    15 100015 track3

    16 100016 track1
    17 100017 track1
    18 100018 track1
    19 100019 track1
    20 100020 track1

    21 100021 track4
    22 100022 track4
    23 100023 track4
    24 100024 track4
    25 100025 track4

    Рабочий код
    Код:
    select min(`time_query`) as mintime, max(`time_query`) as maxtime ,`name_track`
    from stat
    where `time_query` > $period
    GROUP BY `name_track` ORDER BY max(`time_query`) ASC

    Но...

    Код:
    select min(`time_query`) as mintime, max(`time_query`) as maxtime ,`name_track`
    from stat
    where `time_query` > 100003
    GROUP BY `name_track` ORDER BY max(`time_query`) ASC

    100006   100010 track2
    100011   100015 track3
    100004   100020 track1
    100021   100025 track4
     
    Как написать правильный запрос чтобы min и мах шли без прерывания.

    Есть предложение о перепроектировании таблицы, но выкладывать не буду, чтобы не навязывать свое мнение



А теперь прощаемся с Вами до следующего выпуска.


С уважением, команда Клуба.


В избранное