BEST1306

Forum Replies Created

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • BEST1306
    Participant

    Спасибо всем за, помощь. Я сделал ка писал выше.

    BEST1306
    Participant

    QUOTE (Torbins @ Apr 9 2010, 03:11 PM) <{POST_SNAPBACK}>
    Ответьте на все вопросы и нажмите кнопку “Проверить”. Будут подсчитаны правильные ответы, а также к каждому вопросу появятся пояснения.


    Да я это сделал, но я не пойму как мне надо изменить программу. Мне, что код из процедуры кнопки написать в OnPaint, а в процедуре кнопки вызывать OnPaint.

    BEST1306
    Participant

    QUOTE (Torbins @ Apr 8 2010, 08:19 PM) <{POST_SNAPBACK}>
    BEST1306
    Participant

    QUOTE (Support @ Apr 8 2010, 08:33 AM) <{POST_SNAPBACK}>
    Спасибо. Не залилось на форум потому что у всех стоит ограничение 10Мб, иначе не хватит места на хосте.

    Насчет демки, там есть одна проблема, которая будет наблюдаться и без скинов тоже.
    Увидеть можно если закрыть чем-то форму, она не перерисует картинку после этого.
    Чтобы форма знала что рисовать если нужно обновить содержимое, нужно использовать событие OnPaint. Сами разберетесь с этим или помощь нужна?

    Еще одним вариантом является рисование на графическом компоненте, лежащем на форме, например TImage… Он будет сам себя перерисовывать.

    PS. Для перерисовки формы лучше использовать sSkinProvider1.SkinData.Invalidate, этой одной процедуры достаточно.
    UpdateSkin загружает скин с диска или из памяти, обновляет его и потом перерисовывает все формы с анимацией, если она включена.


    Про событие OnPaint я немного не понял, если не трудно объясните.
    Вариант с TImage у меня был, только у меня почему на секунду появлялось всё нарисованное , и потом на всю площадь послдня картинка.
    Если бы черз TImage можно было бы сделать скролл, а не минять размер формы.

    Большое спасибо, за то чтчо тратите на меня свое время.

    BEST1306
    Participant

    Да, есть такая возможность.
    В атач что-то не грузиться залил на Депозит

    BEST1306
    Participant

    QUOTE (Support @ Apr 2 2010, 07:54 AM) <{POST_SNAPBACK}>
    Попробуйте при рисовании установить sSkinProvider1.SkinData.BGChanged := True, это сбросит кэш.
    Дело в том, что картинка скорее всего берется из кэша для вывода, поэтому не меняется.


    К сожалению это не помогает. Может, я не правильно вставил в свой код:

    CODE
    procedure TForm1.sB_transClick(Sender: TObject);
    var i:byte; Fname,name1:string; x,y:integer;
    begin

    sSkinManager1.UpdateSkin;
    x:=50;
    y:=50;
    name1:=sE_Name.Text;
    Form1.ClientHeight:=150+(50*Length(name1));
    sSkinProvider1.SkinData.BGChanged := True;
    For i:=1 to Length(name1) do
    begin
    If ord(name1)<>32 then
    begin
    Fname:=name1
    +'.bmp';
    pic_Letter.LoadFromFile('Letters' +Fname);
    Canvas.Draw(x,y,pic_Letter);
    y:=y+pic_Letter.Height;
    end;
    end;
    if sRB_man.Checked then pic_Letter.LoadFromFile('Lettersman.bmp')
    else pic_Letter.LoadFromFile('Letterswoman.bmp');

    Canvas.Draw(x,y,pic_Letter);

    y:=y+pic_Letter.Height;
    Canvas.Brush.Style:=bsClear;
    Canvas.Pen.Width:=3;
    Canvas.RoundRect(x-10,40,x+(pic_Letter.Width+10),y+10,80,80);
    Form1.ClientHeight:=150+(50*Length(name1));

    end;

Viewing 6 posts - 1 through 6 (of 6 total)