Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

Как добавить к компоненту TColorDialog кнопку TButton?   Найти похожие ветки 

 
ColD.Handle   (2006-03-10 00:43) [0]

Я пробовал так

VAR ColD:TColorDialog;

RESBUTTON:=TButton.CreateParented(ColD.Handle);

Но у TColorDialog хендл=0

Как быть?


 
Defunct ©   (2006-03-10 00:55) [1]

а просто кинуть TColorDialog на форму не пробовали?
в обработчике кнопки:

if ColorDialog1.Execute then
begin
 ..
end;


 
ColD.Handle   (2006-03-10 01:02) [2]

>а просто кинуть TColorDialog на форму не пробовали?
Попробовал, так тоже  хендл = 0.


 
Defunct ©   (2006-03-10 02:15) [3]

Наконец-то понял ваш вопрос. Кнопку к диалогу прикрутить не удастся, т.к. TColorDialog это "вещь в себе" и окно диалога создается динамически при вызове execute.


 
Германн ©   (2006-03-10 02:37) [4]


> ColD.Handle   (10.03.06 00:43)

А кто или что мешает написать наследника TColorDialog с новой кнопкой и с её обработчиком?


 
Джо ©   (2006-03-10 02:53) [5]

procedure TForm1.Button1Click(Sender: TObject);
begin
 if ColorDialog1.Execute then
   /// blabla
end;

// OnShow event
procedure TForm1.ColorDialog1Show(Sender: TObject);
begin
 Windows.SetParent(Button2.Handle,ColorDialog1.Handle);
 // тут выбираем место для кнопки
 Button2.Left := 100;
 Button2.Top := 0;
end;

// OnClose event
procedure TForm1.ColorDialog1Close(Sender: TObject);
begin
 Windows.SetParent(Button2.Handle,Handle);
end;

Только, разумеется, нажатие на эту кнопку ни к чему не приведет, да это в вопросе и не требовалось :-)


 
Германн ©   (2006-03-10 03:02) [6]


> Только, разумеется, нажатие на эту кнопку ни к чему не приведет,
>  да это в вопросе и не требовалось :-)


:-)


 
Джо ©   (2006-03-10 03:09) [7]

> Но у TColorDialog хендл=0
>
> Как быть?

Прочитать несколько куцых предложений из Справки по поводу Handle. Я прочитал (минут 20 назад), в результате родил код из [5] :)


 
Defunct ©   (2006-03-10 05:25) [8]


> Прочитать несколько куцых предложений из Справки по поводу
> Handle. Я прочитал (минут 20 назад), в результате родил
> код из [5] :)

А я не читал, и родил диалог такой же как в фотошопе ;>
вывод - лишнее знание иногда вредит ;>


 
Джо ©   (2006-03-10 05:31) [9]

> [8] Defunct ©   (10.03.06 05:25)
> А я не читал, и родил диалог такой же как в фотошопе ;>

Такой как в Фотошопе, за минуту не родишь :P Одну пантоновскую таблицу набить чего стоит :)


 
Defunct ©   (2006-03-10 05:45) [10]

не за минуту, конечно, часов 8 отняло, зато функционально, красиво и на долго ;>


 
ColD.Handle   (2006-03-10 17:39) [11]

Спасибо, вот сделал:

type
 TForm1 = class(TForm)
//
   procedure cl(Sender: TObject);
 private
 public
end;

var   Form1: TForm1;  TNotifyEvent;
TP:TPanel; B:TButton;  cl:TNotifyEvent;

procedure TForm1.cl;
BEGIN
 beep;
END;

procedure TForm1.ColorDialog1Show(Sender: TObject);
begin
   TP:=TPanel.CreateParented(ColorDialog1.Handle);
   Windows.SetParent(TP.Handle,ColorDialog1.Handle);
   TP.Parent:=self;
   TP.top:=270;TP.Left:=150;  TP.Height:=24; TP.Width:=65;
   B:=TButton.Create(self);
   B.Parent:=TP;
   B.Caption:="Default"; B.Width:=65;B.Height:=23;
   B.OnClick:=cl;
end;

procedure TForm1.ColorDialog1Close(Sender: TObject);
begin
 B.Free;TP.Free;
end;



Пришлось кноку на панель ставить.



Страницы: 1 вся ветка

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.048 c
2-1141708089
rainy_
2006-03-07 08:08
2006.03.26
String это тип или класс?


2-1141676889
mrAndersen
2006-03-06 23:28
2006.03.26
text


2-1141979103
Гость111
2006-03-10 11:25
2006.03.26
Как запустить windows-кий калькулятор из программы.


2-1141732156
VitV
2006-03-07 14:49
2006.03.26
DBCtrlGri - существует замена?


4-1136275989
dust
2006-01-03 11:13
2006.03.26
Получить параметры железа