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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2011, 13:01   #1
casio23
Форумчанин
 
Аватар для casio23
 
Регистрация: 29.12.2010
Сообщений: 186
Плохо Активная панель????

как сделать так, чтобы нажатия реагировали только в том месте где активная панель то есть исли панель 4 то показать 5 и т.д!и обратно с 7 по 4!!Нажатия происходят по клавишам VK_DOWN и VK_UP!
Подскажите как организовать массив?
casio23 вне форума Ответить с цитированием
Старый 06.01.2011, 15:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Какая панель? Что имеется ввиду под этим словом?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.01.2011, 17:40   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

надо делать BringToFront для следующей панели и наоборот SendToBack так для всех панелей в массиве их хоть сколько межет быть записали туда и храните номер самой верхней. VK_DOWN и VK_UP это onkeydown а в массив записываешь при создании поочереди и всё

P.S.: Фу, блин. Не, все-таки лично для меня это тяжело. Этож как стараться надо, чтобы писать не так, как говорить.
Sibedir вне форума Ответить с цитированием
Старый 06.01.2011, 17:48   #4
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Как я как всегда из твоих топиков "понял", тебе просто надо создать массив панелей, например 10 шт расположенных в вертикальный ряд, и к примеру есть какой то флаг(красный цвет панели например, а вообще что угодно, хоть фокус элементов в ней), => если панель №1 красного цвета и ты нажал VK_DOWN, то эта панель снова становиться цветом по дефолту, а та что ниже(панель 2) становится красной и тд.
Если так то напиши да... Или человекопонятным языком, что тебе нужно, безо всяких там "!!!!" и "???", а с "," и ".".
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 06.01.2011, 21:44   #5
casio23
Форумчанин
 
Аватар для casio23
 
Регистрация: 29.12.2010
Сообщений: 186
По умолчанию

да ты правильно понял!панель расположена на всю форму с верху лежат еще панели, когда нажимаешь VK_DOWN то показывает следующую панель а когда VK_UP предедущую, нужно что бы onkeydown на определенных панелях работал(4..7)!
casio23 вне форума Ответить с цитированием
Старый 07.01.2011, 08:18   #6
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Так что-ли:
Код:
var
  pa: array of TPanel;
  pi: Integer;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetLength (pa, 4);
  pa[0] := Panel4;
  pa[1] := Panel5;
  pa[2] := Panel6;
  pa[3] := Panel7;
  pi := 3;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  case Key of
    VK_UP: begin
      if pi = 0 then
        pi := Length(pa) - 1
      else
        pi := pi - 1;
    end;
    VK_DOWN: begin
      if pi = Length(pa) - 1 then
        pi := 0
      else
        pi := pi + 1;
    end;
  end;
  pa[pi].BringToFront;
end;
Sibedir вне форума Ответить с цитированием
Старый 07.01.2011, 13:04   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

По-моему все еще проще можно устроить:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    Panel2: TPanel;
    Button2: TButton;
    Panel3: TPanel;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 KeyPreview:=true;
 ActiveControl:=Panel3;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var p:TWinControl;
begin    p:=nil;
 case key of
  104:p:=FindNextControl(ActiveControl,true,false,true);
  98:p:=FindNextControl(ActiveControl,false,false,true);
 end;
 if p<>nil then begin
  p.BringToFront;
  p.SetFocus;
 end;
end;

end.
А главное - не важно сколько панелей будет, и массив не нужен
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.01.2011, 13:09   #8
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

А у панели тоже есть фокус?
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 07.01.2011, 13:36   #9
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

2 Stilet
Цитата:
нужно что бы onkeydown на определенных панелях работал(4..7)!
А вдруг их 10. У меня работает именно с 4 по 7.
Sibedir вне форума Ответить с цитированием
Старый 07.01.2011, 14:35   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
У меня работает именно с 4 по 7.
Ради бога, никто не мешает проверять индекс панели
Цитата:
А у панели тоже есть фокус?
Чего бы нет. Она - окно тоже
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Активная кнопка leo-sergio HTML и CSS 7 15.07.2010 02:11
Активная вкладка и контролы на ней... prizrak1390 Общие вопросы Delphi 3 12.11.2008 01:46
Активная БД GLAZZ БД в Delphi 2 07.10.2008 17:17
Как создать программу-панель (как панель Msoffice), чтобы была поверх всех окон Romanbl4 Общие вопросы Delphi 6 27.06.2007 17:23
Активная папка D-fens Общие вопросы Delphi 2 06.06.2007 12:45