Ugnetatel
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Спасибочки огромное, Вы просто СУПЕРРРРРРРРРРРРР!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Только как сделать когда доходит до 6 или до 1 и продолжаешь жать в том же направлении, то перескакивает с 1 сразу на 6(даёт круг), т.е. меньше 1 и больше 6 жать нельзя. Добавлено: Ясно, а как сделать тоже самое только для AlphaControls, там уже sGroupBox идет, я пробовал по вашему примеру дописывать s, но что-то не работает, пробовал перебором по разному. Заранее спасибо за ответ. Добавлено: Переделал под AlphaConrols, всё работает: Код: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, sGroupBox, sButton, sSkinManager; type TForm1 = class(TForm) sButton1: TsButton; sButton2: TsButton; sGroupBox1: TsGroupBox; sGroupBox2: TsGroupBox; sGroupBox3: TsGroupBox; sGroupBox4: TsGroupBox; sGroupBox5: TsGroupBox; sGroupBox6: TsGroupBox; sSkinManager1: TsSkinManager; procedure sButton2Click(Sender: TObject); procedure sButton1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Const MaxGroupBoxNum = 6; PrefixGroupBox = 'sGroupBox'; var Form1: TForm1; ActiveGroupBox: Word = 1; implementation {$R *.dfm} procedure TForm1.sButton2Click(Sender: TObject); Var GroupBox: TComponent; begin GroupBox := FindComponent(PrefixGroupBox + IntToStr(ActiveGroupBox)); (GroupBox as TsGroupBox).Visible := False; If ActiveGroupBox = MaxGroupBoxNum then ActiveGroupBox := 1 else Inc(ActiveGroupBox); GroupBox := FindComponent(PrefixGroupBox + IntToStr(ActiveGroupBox)); (GroupBox as TGroupBox).Visible := True; end; procedure TForm1.sButton1Click(Sender: TObject); Var GroupBox: TComponent; begin GroupBox := FindComponent(PrefixGroupBox + IntToStr(ActiveGroupBox)); (GroupBox as TsGroupBox).Visible := False; If ActiveGroupBox = 1 then ActiveGroupBox := MaxGroupBoxNum else Dec(ActiveGroupBox); GroupBox := FindComponent(PrefixGroupBox + IntToStr(ActiveGroupBox)); (GroupBox as TGroupBox).Visible := True; end; end. | Поправьте если есть где ошибки под AlphaControls. IJCuper подскажи как убрать пролистывание с 6на1 и с1на6 (круг). И говори свой электронный кош., денежку кину за помощь. выручил, класс. Добавлено: Исправьте Код: (GroupBox as TGroupBox).Visible := True; на (GroupBox as TsGroupBox).Visible := True; | Не заметил. Возникла другая проблема: у меня 10 sGroupBox наложенных друг на друга, т.е. Код: Const MaxGroupBoxNum = 10; | И происходит мерцание при смене false на true, как избежать этого? Решение нашел использовать Brig To Front и отказаться полностью от false на true(все по умолчанию показаны, перекрываются друг другом). Помогите с примером, пожалуйста, используется sButton и sGroupBox. Как переделать этот пример под Brig To Front (без Visible := True и Visible := Falce). Заранее преогромнейшее спасибо. ![](http://forum.ru-board.com/board/s/beer.gif) |