Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Свой компонент со спец. свойствами 
V
    Опции темы
Shadowlord
  Дата 5.11.2008, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 28.11.2006

Репутация: 2
Всего: 5



Подскажите плиз направление направление куда копать
Код

В данной работе необходимо создать новый компонент, включить его в 
палитру компонент и продемонстрировать его работу на примере.

1.  Компонент, наследник  TextBox, у которого есть специальное свойство,
  обеспечивающее ввод данных в одном из трех режимов
    - стандартный
    - принудительный ввод только латинских букв
    - принудительный ввод только русских букв.
    Второй и третий режимы должны исполняться при любом состоянии
    переключателя клавиатуры.


Основная проблема это собственно сами свойства и как их
 добавить в диспетчер свойств
(по моему так называется, на всякий случай прикрутил картинку )
user posted image

Это сообщение отредактировал(а) Shadowlord - 10.11.2008, 20:55
PM MAIL   Вверх
Shadowlord
Дата 10.11.2008, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 28.11.2006

Репутация: 2
Всего: 5



В общем что  у меня пока вышло компонент создал, вроде разобрался со свойствами только вот осталось несколько вопросов: 
1)как реализовать редактор выбора из списка(редактор свойств)

2)Как  реализовать проверку  ввода и как понять "обеспечивающее ввод данных в одном из трех режимов"
не давать пользователю вводить данные не соответствующие режиму, правильно ли я это понял? 


PM MAIL   Вверх
Shadowlord
Дата 13.11.2008, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 28.11.2006

Репутация: 2
Всего: 5



Вот пытаюсь сделать для примера textBox в который можно ввести только цифры взяв решение от сюда
http://forum.vingrad.ru/forum/topic-180374/unread-1.html
не могу понять что не так.

Код

#pragma once

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Text::RegularExpressions;




namespace MyTexrBox {

    /// <summary>
    /// Summary for MyTexrBoxControl
    /// </summary>
    ///
    /// WARNING: If you change the name of this class, you will need to change the
    ///          'Resource File Name' property for the managed resource compiler tool
    ///          associated with all .resx files this class depends on.  Otherwise,
    ///          the designers will not be able to interact properly with localized
    ///          resources associated with this form.
    public ref class MyTexrBoxControl : TextBox//public System::Windows::Forms::UserControl
    {
        //Свойство
    public: String^ lang;
virtual property String^ inLang {
    String^ get (){return lang;}
    void set ( String^ value){lang=value; }

// OnTextChanged
protected:
    virtual void OnTextChanged( System::EventArgs^ e ) sealed override
{
   
     
    String^ temp = Regex.Replace(Text, @"[^0-9\s]", "");
            int iSelectionStart =SelectionStart;
            if(temp->Length != Text->Length)
            {
                Text = temp;
                SelectionStart = iSelectionStart == 0 ? 0 : iSelectionStart - 1;
            
            }  
   TextBox::OnTextChanged(e);        
}

    public:
        MyTexrBoxControl(void)
        {
            InitializeComponent();
            //
            //TODO: Add the constructor code here
            //
        }



    protected:
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        ~MyTexrBoxControl()
        {
            if (components)
            {
                delete components;
                
            }
        }
private: System::Windows::Forms::TextBox^  textBox;
    private:
        /// <summary>
        /// Required designer variable.
        /// </summary>
        System::ComponentModel::Container^ components;

#pragma region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        void InitializeComponent(void)
        {
        //    this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
        
        }
#pragma endregion
    };
}





Это сообщение отредактировал(а) Shadowlord - 13.11.2008, 21:49
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.