Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Помогите решить проблему...


Автор: timself 24.9.2008, 09:54
Не могу сообразить как сделать. Возможно там всё элементарно, а я просто туплю, но тем не менее...
Для наглядности я всё изобразил на скриншоте. Там вид окна, код и суть вопроса.

Скриншот тут:  http://mail.ngs.ru/~timself/x-temp-scr-01.gif

Прошу взглянуть, если не затруднит.


M
Alexeis
Модератор: Название темы должно отражать ее суть!

Автор: pseud 24.9.2008, 10:03
Страница не найдена

Автор: timself 25.9.2008, 02:35
ИЗВИНЯЮСЬ. СКРИНШОТ ПЕРЕЗАЛИЛ.

Скриншот:  http://www.ljplus.ru/img4/f/a/fatherlander/vopros-01.gif

Автор: skyboy 25.9.2008, 08:46
Page Load Error.

Добавлено через 17 секунд
а все потому, что не умеем задавать вопросы.

Автор: Louken 25.9.2008, 08:53
(Sender as TPanel).Color := ColorPicker.SelColor;
Что то типа этого

Автор: timself 26.9.2008, 01:15
Цитата

(Sender as TPanel).Color := ColorPicker.SelColor;

Этот метод не работает !!! (проверено)
Нужно что-то другое... но что?

Автор: pseud 26.9.2008, 09:53
Ну, во-первых, ColorPicker.Height - можешь убрать совсем (т.к. ты ведь на самом деле не хочешь, чтоб он стал размеров панельки типа 64х64).
Во-вторых тебе надо хранить переменную кликнутой панели.
код будет приблизительно такой (TColorPicker - нет в наличии)
Код

type
  TForm1 = class(TForm)
  ...
  private
    FSelectedPanel: TPanel
  end;


procedure TForm1.Panel1Click(Sender: TObject);
begin
  FSelectedPanel := TPanel(Sender);
  ColorPicker1.Left := FSelectedPanel.Left;
  ColorPicker1.Top := FSelectedPanel.Top;
  ColorPicker1.DroppedDown := True;
end; 

procedure TForm1.ColorPicker1<OnColorChange>(Sender: TObject);
begin
  FSelectedPanel.Color := ColorPicker1.<SelColor>;
  FSelectedPanel := nil;
end;


Автор: timself 26.9.2008, 23:12
Благодарю. Проблема решена.
Сделал так:
Код

...
ColorPicker: TColorPickerButton;
...
var
  Form1: TForm1;
  pan: HWND;
...
procedure TForm1.SetPicker(Sender: TObject);
begin
  pan:= (Sender as TPanel).Handle;
  ColorPicker.Height:=(Sender as TPanel).Height;
  ColorPicker.Left:=(Sender as TPanel).Left;
  ColorPicker.Top:=(Sender as TPanel).Top;
  ColorPicker.DroppedDown:= True;
end;
...
// обшее OnClick для всех панелей...
procedure TForm1.Panel1Click(Sender: TObject);
begin
  SetPicker(Sender);
end;
...
procedure TForm1.ColorPickerChange(Sender: TObject);
begin
  (FindControl(pan) as TPanel).Color:= ColorPicker.SelectionColor;
end;
...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)