Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2011, 20:50   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А код вашего объекта можно выложить? Хотя бы в части того, как вы Parent переопределяете.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.06.2011, 20:54   #12
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Я непереопределяю Parent, я же сказал! Мне нужно, чтобы NE.Parent было TWinControl, а не TWidgetControl, которым оно почему-то является!
Код в предыдущем посте, цитирую:
Код:
unit QNameEdit;

interface

uses
  SysUtils, Classes, QControls, QStdCtrls;

const
      RUSSIAN = 'RUSSIAN';
      ENGLISH = 'ENGLISH';

type
  NameEdit = class(TEdit)
  private
    { Private declarations }
    OnlyRussian : Boolean;
    OnlyEnglish : Boolean;
  protected
    { Protected declarations }
    procedure KeyPress(Var Key : Char);override;
  public
    { Public declarations }
    constructor Create(AOwner : TComponent);override;
    procedure SetLanguage(Lang : String);
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('SocialNetwork', [NameEdit]);
end;

constructor NameEdit.Create(AOwner : TComponent);
begin
      Inherited Create(AOwner);
      OnlyRussian:=True;
end;

procedure NameEdit.KeyPress(Var Key : Char);
begin
      If OnlyRussian Then
      Begin
            If not (UpCase(Key) in ['À'..'ß']) Then
            Begin
                  Key:=#0;
            End;
      End;
      If OnlyEnglish Then
      Begin
            If not (UpCase(Key) in ['A'..'Z']) Then
            Begin
                  Key:=#0;
            End;
      End;
      Inherited KeyPress(Key);
end;

procedure NameEdit.SetLanguage(Lang : String);
begin
      If AnsiUpperCase(Lang) = RUSSIAN Then
      Begin
            OnlyRussian:=True;
            OnlyEnglish:=False;
      End;
      If AnsiUpperCase(Lang) = ENGLISH Then
      Begin
            OnlyRussian:=False;
            OnlyEnglish:=True;
      End;
end;


end.
_-Re@l-_ вне форума Ответить с цитированием
Старый 01.06.2011, 20:58   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А типа NameEdit нет случайно в uses-ах:
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QAgeEdit;
Возможно он есть там и программа берет не то что вы думаете?

PS - дошло - ваш TEdit из QStdCtrls, отсюда ноги растут
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 01.06.2011 в 21:05.
Аватар вне форума Ответить с цитированием
Старый 02.06.2011, 07:47   #14
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Вот-вот, вчера когда уже спать лёг, понял, что из-за этого Но всё равно спасибо.
_-Re@l-_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц