-
evgenij (26.02.09 15:09) [0]Доброго времени суток, мастера!
Помогите , плиз, ссылочкой или примером...Проблемка вот в чем:
делаю первые шаги в написании компонент - решил изменить поведение ComboBox, а именно чтоб при OnExit выполнялся мой код, вот собственно текст модуля. Не судите строго...спасибо.
unit MyComboBox;
interface
uses
SysUtils, Classes, Controls, StdCtrls,Dialogs;
type
TMyComboBox = class(TComboBox)
private
procedure Exit(Sender: TObject);
{ Private declarations }
protected
{ Protected declarations }
public
constructor Create(AOwner:TComponent);override;
{ Public declarations }
published
{ Published declarations }
end;
procedure Register;
implementation
constructor TMyComboBox.Create(AOwner: TComponent);
var Cb :TComboBox;
begin
Cb := TComboBox.Create(self);
Cb.OnExit := Exit;
end;
procedure TMyComboBox.Exit;
begin
inherited;
ShowMessage('OK');
end;
procedure Register;
begin
RegisterComponents('Standard', [TMyComboBox]);
end;
end. -
DimaBr © (26.02.09 15:37) [1]А вопрос где ?
-
DimaBr © (26.02.09 15:39) [2]правильнее было бы так
TMyComboBox = class(TComboBox)
protected
procedure DoExit; override;
end;
procedure TMyComboBox.DoExit;
begin
inherited;
// мой код
end;
-
DimaBr © (26.02.09 15:40) [3]Зачем в ComboBox-e создавать ещё один ???constructor TMyComboBox.Create(AOwner: TComponent);
var Cb :TComboBox;
begin
Cb := TComboBox.Create(self);
Cb.OnExit := Exit;
end; -
evgenij (26.02.09 15:45) [4]да ,сорри, забыл дописать....я этот компонент на форму положить не могу Access Violation.....
-
DimaBr © (26.02.09 15:53) [5]Прежде чем компонент проинсталировать, его немешало бы отладить.
Создайте его динамически -
evgenij (26.02.09 16:12) [6]ок.спасибо.
-
{RASkov} © (26.02.09 19:12) [7]> Зачем в ComboBox-e создавать ещё один ???
Да еще это и утечка ресурсов... это к коду в [0] и + к [3]