Конференция "Компоненты" » =class(TLabel)
 
  • ByakaBuka (23.04.07 10:34) [20]

    > Ну опять... вот смотри: если стоит стиль vsImage, а FBitMap=nil(Empty),
    >  то что - твоя метка ничего не покажет?(т.е будет пустой).
    >  Ну если ты так задумал, то ладно.

    Имменно, если vsImage, то caption не должен отображаться. Отображам BitMap, ну а если он пустой.....


    > Ну здесь однозначно напрашиваются тройка свойств, типа:
    > HotTrack: Boolean и TextColor1, TextColor2: TColor(названия
    > только поэлегантней придумай).
    > И также добавить OnMouseEnter(Leave) события.:
    > procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    >
    > procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
    >

    Это уже после :)


    > ЗЫ ByakaBuka - А почему не iXT? :)


    Одна машина в нете (на работе) много людей, желающих написать сюда :)


    > DimaBr ©   (23.04.07 08:38) [19]


    В данном случае не рационально. Не должны меняться ни размеря (с момента создания), ни рисовать на нем никто не собирается, хотя если рисовать на Bitmap, а не на Canvas объекта, то вроде все и так хорошо :)

    Вот не понял одну фишку:

    system.pas

    TObject.Destroy;
    begin
    end;



    Это как понимать?

    и должен ли после Free => TFLabel = nil
  • DimaBr © (23.04.07 11:34) [21]

    >  Не должны меняться ни размеря (с момента создания), ни рисовать на нем никто не собирается

    Если бы все так думали VCL была бы в 1000 раз меньше.
  • ByakaBuka (23.04.07 12:40) [22]
    Ну это только в данном случае, т.к. потомка пишу не для всех :) А так ничего против пяти копеек не имею.
  • DimaBr © (23.04.07 13:26) [23]
    Хорошо, тогда могу высказаться подробнее.
    Замечания:
    1. Нет необходимости писать методы доступа если ничего кроме чтения/присвоениея они не делают.
    2. Если вы описали свойство с default, то как минимум его нужно задать в конструкторе.
    3. При уничтожении компонента нет смысла его перерисовывать.
    4. При изменении свойств от которых зависит изображение нужно бы перерисоватся
    5. Вообще, весь ваш компонент на данном этапе больше похож на TImage.
  • ByakaBuka (23.04.07 14:41) [24]
    5. В принципе это и хотелось TLabel + TImage
    4. Согласен, просто в данном контексте он не должен изменяться с момента его создания, до сомой смерти
    3. Да, косяк :)
    2. ?
    1. ?

    и самое главное (сейчас)

    system.pas

    TObject.Destroy;
    begin
    end;


    Это как понимать?

    и должен ли после Free => TFLabel = nil
  • DimaBr © (23.04.07 15:12) [25]

    > и должен ли после Free => TFLabel = nil

    Нет не должен, если вы самостоятельно не установите или не воспользуетесь  процеруриной FreeAndNill().


    > Это как понимать?

    Всё правильно, а что вы желали увидеть ???

    2.

    property ViewStyle: TViewStyle read GetViewStyle write SetViewStyle default vsText;

    constructor TFlabel.Create(AOwner: TComponent);
    begin
    inherited Create(AOwner);
    BitMap:=TBitmap.Create;
    fViewStyle := vsText;
    end;



    1.

    property Number: Integer read GetNumber write SetNumber;
    property Number: Integer read fNumber write fNumber;



    На мой взгляд проще унаследоваться от TImage, открыть свойство Caption и отрисовать его в зависимости от ViewStyle.
  • ByakaBuka (23.04.07 15:45) [26]
    Thenks!


    > На мой взгляд проще унаследоваться от TImage, открыть свойство
    > Caption и отрисовать его в зависимости от ViewStyle.


    У ТLabel есть еще много свойств. И в основном используется он, ни иногда, надо еще и картиночку отрисовывать :)
    Вот с WorldWrap отрисовывать гараздо сложнее придется, хотя тут уже кому как и что вкуснее :)

    Еще раз Спасибо!
  • DimaBr © (23.04.07 16:15) [27]

    > Вот с WorldWrap отрисовывать гараздо сложнее придется

    Это вам только кажется, если внимательно присмотрется к DrawText то всё окажется намного проще.
 
Конференция "Компоненты" » =class(TLabel)
Есть новые Нет новых   [134427   +34][b:0][p:0.001]