Текущий архив: 2005.07.11;
Скачать: CL | DM;
ВнизНаследование в МСК Найти похожие ветки
← →
stranger_2004 © (2004-12-09 18:22) [0]Понаследовался от TKOLMemo, компонент на форме отображается нормально,
При компиляции выдает ошибку TKOLLogger Undeclared Identifier
Вот код компоненты:
unit KOLLogger;
interface
{$I KOLDEF.INC}
uses
KOL,mirror,Classes,Controls,objects,mckCtrls,FastStrList,Windows,Messages,Graphics;
type
PUpDownEvent = ^TUpDownEvent;
TUpDownEvent = procedure (Sender: TObject;Button: TMouseButton; Shift: DWORD; X, Y: Integer) of object;
PLogger = ^TKOLLogger;
TKOLLogger = class(TKOLMemo)
private
JustChanged,
AutoScroll: Boolean;
FLines: PFastStrListEx;
FCharWidth, FCharHeight,
FCols, FRows,
FX, FY: Integer;
FC: Boolean;
b: TBitmap;
FColor: TColor;
fMouseDown:TUpDownEvent;
fMouseUp:TUpDownEvent;
procedure WMSetFocus(var M: TMessage); message WM_SetFocus;
procedure WMKillFocus(var M: TMessage); message WM_KillFocus;
procedure SetLines(V: PFastStrListEx);
procedure SetColor(c: TColor);
procedure WMGetDlgCode(var Msg: TWMGetDlgCode); message WM_GETDLGCODE;
published
property Align;
property Font;
property ParentFont;
property TabOrder;
property TabStop;
property OnMouseDown:TUpDownEvent read fMouseDown write fMouseDown;
property OnMouseUp:TUpDownEvent read fMouseUp write fMouseUp;
public
// procedure KeyDown(Sender: PControl; var Key: Longint; Shift: DWORD); override;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function CalcBounds: Boolean;
property Lines: PFastStrListEx read FLines write SetLines;
property Color: TColor read FColor write SetColor;
procedure DoPaint(sil: boolean);
{
Здесь возникает вопрос:
я так понимаю что нижесл. метод перекрывает VCL - овский
procedure CreateParams(var Params: TCreateParams); override;
От сюда и пляшу
Если нет, то поправьте pls.
}
procedure CreateSubClass(var Params: TCreateParams; ControlClassName: PChar);
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents("KOL-MyAppUtils-comps",[TKOLLogger]);
end;
{ TKOLLogger }
function TKOLLogger.CalcBounds: Boolean;
begin
Result := False;
if FCharWidth = 0 then Exit;
FCols := (FX+FCharWidth-1) div FCharWidth;
FRows := (FY+FCharHeight-1) div FCharHeight;
end;
constructor TKOLLogger.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ControlStyle := ControlStyle + [csOpaque];
TabStop := True;
b := TBitmap.Create;
FColor := clBtnFace
end;
procedure TKOLLogger.CreateSubClass(var Params: TCreateParams;
ControlClassName: PChar);
begin
inherited ;
with Params do
begin
ExStyle := ExStyle or WS_EX_CLIENTEDGE;
end;
end;
destructor TKOLLogger.Destroy;
begin
b.FreeImage;
b.Free;
b := nil;
inherited Destroy;
end;
procedure TKOLLogger.DoPaint(sil: boolean);
begin
if FLines <> nil then
begin
Text.Text := FLines^.Text;
Perform(em_linescroll,0,FLines.Count);
end;
end;
procedure TKOLLogger.SetColor(c: TColor);
begin
FColor:=c;
FC:=true;
end;
procedure TKOLLogger.SetLines(V: PFastStrListEx);
begin
if FLines = V then Exit;
FLines := V;
if (FLines <> nil) then
begin
Text.Text := FLines^.Text;
Perform(em_linescroll,0,FLines.Count);
end;
AutoScroll := True;
JustChanged := True;
Invalidate;
end;
procedure TKOLLogger.WMGetDlgCode(var Msg: TWMGetDlgCode);
begin
Msg.Result := DLGC_WANTARROWS;
end;
procedure TKOLLogger.WMKillFocus(var M: TMessage);
begin
inherited;
AutoScroll := True;
Invalidate;
end;
procedure TKOLLogger.WMSetFocus(var M: TMessage);
begin
inherited;
AutoScroll := False;
Invalidate;
end;
end.
← →
Gandalf © (2004-12-09 20:03) [1]Это MCK, строку PLogger не понял... Мы берем указатель от KOL класса, а не от MCK. А как ты его используешь? Где function AdditionalUnits: string; override;? Где Setup***?
← →
stranger_2004 © (2004-12-10 07:11) [2]Уже вроде разобрался, mck классы - это как я понял только зеркало для VCL, для нормальной работы первоначально нужно слепить KOL класс в чистом виде и как ты сказал от него наследоваться :-). Вчера до ночи в исходниках колы разбирался, Сегодня переделывать буду.
Для чего использую:
Переделываю сервер приложений (2 звено) для трехзвенки, нужно для фрейма отображения событий.
← →
Gandalf © (2004-12-10 15:19) [3]MCK - угу зеркала, design-only. В exe от них ни капли не попадает.
Страницы: 1 вся ветка
Текущий архив: 2005.07.11;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.036 c