Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Подключение компонент / 15 сообщений из 15, страница 1 из 1
21.10.2003, 10:16
    #32299369
bjohny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
Привет. Есть компонент.
Инсталляю. ошибок не выдает(компилируется прекрастно), но не подключается... В чем может быть прабл????
...
Рейтинг: 0 / 0
21.10.2003, 10:22
    #32299378
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
В каком смысле "не подключается"?
Нету на палитре или не компилится проект?



eNose
...
Рейтинг: 0 / 0
21.10.2003, 10:25
    #32299381
bjohny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
Нет в палитре(вообще нет, проверял)...
При компиляции сообщения о том что он установлен не возникает...
...
Рейтинг: 0 / 0
21.10.2003, 10:38
    #32299388
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
Опиши, что именно делаешь (как устанавливаешь). Подробно опиши.

Да, вот еще: а что за компонент-то?



eNose
...
Рейтинг: 0 / 0
21.10.2003, 10:45
    #32299394
bjohny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
Вот компонент
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
unit CheckboxX;

interface

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

const
  fRBoxWidth : Integer =  13 ;
  fRBoxHeight : Integer =  13 ;

type
  TState = (cbUnchecked,cbChecked,cbGrayed);
  TType = (cbCross,cbMark,cbBullet,cbDiamond,cbRect);
  TMouseState = (msMouseUp,msMouseDown);
  TAlignment = (taRightJustify,taLeftJustify);

  TCheckboxX = class(TCustomControl)

  private
    { Private declarations }
    fChecked : Boolean;
    fCaption : string;
    fColor : TColor;
    fState : TState;
    fFont : TFont;
    fAllowGrayed : Boolean;
    fFocus : Boolean;
    fType : TType;
    fMouseState : TMouseState;
    fAlignment : TAlignment;
    fTextTop : Integer;
    fTextLeft : Integer;
    fBoxTop : Integer;
    fBoxLeft : Integer;

    procedure fSetChecked(Bo : Boolean);
    procedure fSetCaption(S : string);
    procedure fSetColor(C : TColor);
    procedure fSetState(cbState : TState);
    procedure fSetFont(cbFont : TFont);
    procedure fSetAllowGrayed(Bo : Boolean);
    procedure fSetType(T : TType);
    procedure fSetAlignment(A : TAlignment);

  protected
    { Protected declarations }
    procedure Paint; override;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
    X, Y: Integer); override;
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
    X, Y: Integer); override;
    procedure WMKillFocus(var message : TWMKillFocus); message WM_KILLFOCUS;
    procedure WMSetFocus(var message : TWMSetFocus); message WM_SETFOCUS;
    procedure KeyDown(var Key : Word; Shift : TShiftState); override;
    procedure KeyUp(var Key : Word; Shift : TShiftState); override;

  public
    { Public declarations }
    constructor Create(AOwner : TComponent); override;
    destructor Destroy; override;

  published
    { Published declarations }
    property Action;
    property Alignment : TAlignment
    read fAlignment write fSetAlignment;
    property AllowGrayed : Boolean
    read fAllowGrayed write fSetAllowGrayed;
    property Anchors;
    property BiDiMode;
    property Caption : string
    read fCaption write fSetCaption;
    property CheckBoxType : TType
    read fType write fSetType;
    property Checked : Boolean
    read fChecked write fSetChecked;
    property Color : TColor
    read fColor write fSetColor;
    property Constraints;
    property Cursor;
    property DragCursor;
    property DragKind;
    property DragMode;
    property Enabled;
    property Font : TFont
    read fFont write fSetFont;
    property HelpContext;
    property Hint;
    property Left;
    property name;
    property ParentColor;
    property ParentFont;
    property ParentShowHint;
    property ShowHint;
    property State : TState
    read fState write fSetState;
    property TabOrder;
    property TabStop;
    property Tag;
    property Top;
    property Visible;

    property OnClick;
    property OnContextPopup;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDock;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnStartDock;
    property OnStartDrag;
end;

procedure register;

implementation

procedure TCheckboxX.KeyDown(var Key : Word; Shift : TShiftState);
begin
  if fFocus then
    if Shift = [] then
      if Key =  0032  then
      begin
        fMouseState := msMouseDown;
        if fState <> cbGrayed then
        begin
          SetFocus;
          fFocus := True;
          Invalidate;
        end;
      end;
  inherited KeyDown(Key,Shift);
end;

procedure TCheckboxX.KeyUp(var Key : Word; Shift : TShiftState);
begin
  if fFocus then
    if Shift = [] then
      if Key =  0032  then
      begin
        if fState <> cbGrayed then
          fSetChecked(not fChecked);
        fMouseState := msMouseUp;
      end;
  inherited KeyUp(Key,Shift);
end;

procedure TCheckboxX.WMSetFocus(var message : TWMSetFocus);
begin
  fFocus := True;
  Invalidate;
end;

procedure TCheckboxX.WMKillFocus(var message : TWMKillFocus);
begin
  fFocus := False;
  Invalidate;
end;

procedure TCheckboxX.fSetAlignment(A : TAlignment);
begin
  if A <> fAlignment then
  begin
    fAlignment := A;
    Invalidate;
  end;
end;

procedure TCheckboxX.fSetType(T : TType);
begin
  if fType <> T then
  begin
    fType := T;
    Invalidate;
  end;
end;

procedure TCheckboxX.fSetFont(cbFont : TFont);
var
  FontChanged : Boolean;
begin
  FontChanged := False;

  if fFont.Style <> cbFont.Style then
  begin
    fFont.Style := cbFont.Style;
    FontChanged := True;
  end;

  if fFont.CharSet <> cbFont.Charset then
  begin
    fFont.Charset := cbFont.Charset;
    FontChanged := True;
  end;

  if fFont.Size <> cbFont.Size then
  begin
    fFont.Size := cbFont.Size;
    FontChanged := True;
  end;

  if fFont.name <> cbFont.name then
  begin
    fFont.name := cbFont.name;
    FontChanged := True;
  end;

  if fFont.Color <> cbFont.Color then
  begin
    fFont.Color := cbFont.Color;
    FontChanged := True;
  end;

  if FontChanged then
    Invalidate;
end;

procedure TCheckboxX.MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
begin
  inherited MouseDown(Button, Shift, X, Y);
  fMouseState := msMouseDown;
  if fState <> cbGrayed then
  begin
    SetFocus;
    fFocus := True;
    Invalidate;
  end;
end;

procedure TCheckboxX.MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
begin
  inherited MouseUp(Button, Shift, X, Y);
  if fState <> cbGrayed then
    fSetChecked(not fChecked);
  fMouseState := msMouseUp;
end;

procedure TCheckboxX.fSetAllowGrayed(Bo : Boolean);
begin
  if fAllowGrayed <> Bo then
  begin
    fAllowGrayed := Bo;
    if not fAllowGrayed then
      if fState = cbGrayed then
      begin
        if fChecked then
          fState := cbChecked
        else
          fState := cbUnChecked;
      end;
    Invalidate;
  end;
end;

procedure TCheckboxX.fSetState(cbState : TState);
begin
  if fState <> cbState then
  begin
    fState := cbState;
    if (fState = cbChecked) then
      fChecked := True;

    if (fState = cbGrayed) then
      fAllowGrayed := True;

    if fState = cbUnChecked then
      fChecked := False;

    Invalidate;
  end;
end;

procedure TCheckboxX.fSetColor(C : TColor);
begin
  if fColor <> C then
  begin
    fColor := C;
    Invalidate;
  end;
end;

procedure TCheckboxX.fSetCaption(S : string);
begin
  if fCaption <> S then
  begin
    fCaption := S;
    Invalidate;
  end;
end;

procedure TCheckboxX.fSetChecked(Bo : Boolean);
begin
  if fChecked <> Bo then
  begin
    fChecked := Bo;
    if fState <> cbGrayed then
    begin
      if fChecked then
        fState := cbChecked
      else
        fState := cbUnChecked;
    end;
    Invalidate;
  end;
end;

procedure TCheckboxX.Paint;
var
  Buffer : array[ 0 .. 127 ] of Char;
  I : Integer;
  fTextWidth,fTextHeight : Integer;
begin
  GetTextBuf(Buffer,SizeOf(Buffer));
  if Buffer <> '' then
    fCaption := Buffer;

  Canvas.Font.Size := Font.Size;
  Canvas.Font.Style := Font.Style;
  Canvas.Font.Color := Font.Color;
  Canvas.Font.Charset := Font.CharSet;

  fTextWidth := Canvas.TextWidth(fCaption);
  fTextHeight := Canvas.TextHeight('Q');

  if fAlignment = taRightJustify then
  begin
    fBoxTop := (Height - fRBoxHeight) div  2 ;
    fBoxLeft :=  0 ;
    fTextTop := (Height - fTextHeight) div  2 ;
    fTextLeft := fBoxLeft + fRBoxWidth +  4 ;
  end
  else
  begin
    fBoxTop := (Height - fRBoxHeight) div  2 ;
    fBoxLeft := Width - fRBoxWidth;
    fTextTop := (Height - fTextHeight) div  2 ;
    fTextLeft :=  1 ;
  end;

  Canvas.Pen.Color := fFont.Color;
  Canvas.Brush.Color := fColor;
  Canvas.TextOut(fTextLeft,fTextTop,fCaption);

  if fFocus = True then
    Canvas.DrawFocusRect(Rect(fTextLeft -  1 ,
    fTextTop -  2 , fTextLeft + fTextWidth +  1 , fTextTop + fTextHeight +  2 ));

  if (fState = cbChecked) then
    Canvas.Brush.Color := clWindow;

  if (fState = cbUnChecked) then
    Canvas.Brush.Color := clWindow;

  if (fState = cbGrayed) then
  begin
    fAllowGrayed := True;
    Canvas.Brush.Color := clBtnFace;
  end;

  if fMouseState = msMouseDown then
    Canvas.Brush.Color := clBtnFace;

  Canvas.FillRect(Rect(fBoxLeft +  2 ,
  fBoxTop +  2 ,
  fBoxLeft + fRBoxWidth -  2 ,
  fBoxTop + fRBoxHeight -  2 ));

  Canvas.Brush.Color := clBtnFace;
  Canvas.Pen.Color := clGray;
  Canvas.MoveTo(fBoxLeft + fRBoxWidth -  1 ,fBoxTop);
  Canvas.LineTo(fBoxLeft,fBoxTop);
  Canvas.LineTo(fBoxLeft,fBoxTop + fRBoxHeight);

  Canvas.Pen.Color := clWhite;
  Canvas.MoveTo(fBoxLeft + fRBoxWidth -  1 ,fBoxTop);
  Canvas.LineTo(fBoxLeft + fRBoxWidth -  1 ,
  fBoxTop + fRBoxHeight -  1 );
  Canvas.LineTo(fBoxLeft -  1 ,fBoxTop + fRBoxHeight -  1 );

  Canvas.Pen.Color := clBlack;
  Canvas.MoveTo(fBoxLeft + fRBoxWidth -  3 ,fBoxTop +  1 );
  Canvas.LineTo(fBoxLeft +  1 ,fBoxTop +  1 );
  Canvas.LineTo(fBoxLeft +  1 ,fBoxTop + fRBoxHeight -  2 );

  Canvas.Pen.Color := clBtnFace;
  Canvas.MoveTo(fBoxLeft + fRBoxWidth -  2 ,fBoxTop +  1 );
  Canvas.LineTo(fBoxLeft + fRBoxWidth -  2 ,
  fBoxTop + fRBoxHeight -  2 );
  Canvas.LineTo(fBoxLeft,fBoxTop + fRBoxHeight -  2 );


  if fChecked then
  begin
    Canvas.Pen.Color := clBlack;
    Canvas.Brush.Color := clBlack;

    if fType = cbRect then
    begin
      Canvas.FillRect(Rect(fBoxLeft +  4 ,fBoxTop +  4 ,
      fBoxLeft + fRBoxWidth -  4 ,fBoxTop + fRBoxHeight -  4 ));
    end;

    if fType = cbBullet then
    begin
      Canvas.Ellipse(fBoxLeft +  4 ,fBoxTop +  4 ,
      fBoxLeft + fRBoxWidth -  4 ,fBoxTop + fRBoxHeight -  4 );
    end;

    if fType = cbCross then
    begin
      Canvas.MoveTo(fBoxLeft + fRBoxWidth -  5 ,fBoxTop +  3 );
      Canvas.LineTo(fBoxLeft +  2 ,fBoxTop + fRBoxHeight -  4 );
      Canvas.MoveTo(fBoxLeft + fRBoxWidth -  4 ,fBoxTop +  3 );
      Canvas.LineTo(fBoxLeft +  2 ,fBoxTop + fRBoxHeight -  3 );
      Canvas.MoveTo(fBoxLeft + fRBoxWidth -  4 ,fBoxTop +  4 );
      Canvas.LineTo(fBoxLeft +  3 ,fBoxTop + fRBoxHeight -  3 );

      Canvas.MoveTo(fBoxLeft +  3 ,fBoxTop +  4 );
      Canvas.LineTo(fBoxLeft + fRBoxWidth -  4 ,
      fBoxTop + fRBoxHeight -  3 );
      Canvas.MoveTo(fBoxLeft +  3 ,fBoxTop +  3 );
      Canvas.LineTo(fBoxLeft + fRBoxWidth -  3 ,
      fBoxTop + fRBoxHeight -  3 );
      Canvas.MoveTo(fBoxLeft +  4 ,fBoxTop +  3 );
      Canvas.LineTo(fBoxLeft + fRBoxWidth -  3 ,
      fBoxTop + fRBoxHeight -  4 );
    end;

    if fType = cbMark then
      for I :=  0  to  2  do
      begin

        Canvas.MoveTo(fBoxLeft +  3 ,fBoxTop +  5  + I);
        Canvas.LineTo(fBoxLeft +  6 ,fBoxTop +  8  + I);

        Canvas.MoveTo(fBoxLeft +  6 ,fBoxTop +  6  + I);
        Canvas.LineTo(fBoxLeft +  10 ,fBoxTop +  2  + I);
      end;


    if fType = cbDiamond then
    begin
      Canvas.Pixels[fBoxLeft +  06 ,fBoxTop +  03 ] := clBlack;
      Canvas.Pixels[fBoxLeft +  06 ,fBoxTop +  09 ] := clBlack;

      Canvas.MoveTo(fBoxLeft +  05 ,fBoxTop +  04 );
      Canvas.LineTo(fBoxLeft +  08 ,fBoxTop +  04 );

      Canvas.MoveTo(fBoxLeft +  05 ,fBoxTop +  08 );
      Canvas.LineTo(fBoxLeft +  08 ,fBoxTop +  08 );

      Canvas.MoveTo(fBoxLeft +  04 ,fBoxTop +  05 );
      Canvas.LineTo(fBoxLeft +  09 ,fBoxTop +  05 );

      Canvas.MoveTo(fBoxLeft +  04 ,fBoxTop +  07 );
      Canvas.LineTo(fBoxLeft +  09 ,fBoxTop +  07 );

      Canvas.MoveTo(fBoxLeft +  03 ,fBoxTop +  06 );
      Canvas.LineTo(fBoxLeft +  10 ,fBoxTop +  06 );
    end;
  end;
end;

procedure register;
begin
  RegisterComponents('John', [TCheckBoxX]);
end;

destructor TCheckboxX.Destroy;
begin
  inherited Destroy;
end;

constructor TCheckboxX.Create(AOwner : TComponent);
begin
  inherited Create(AOwner);
  Height :=  17 ;
  Width :=  97 ;
  fChecked := False;
  fColor := clBtnFace;
  fState := cbUnChecked;
  fFont := inherited Font;
  fAllowGrayed := False;
  fFocus := False;
  fMouseState := msMouseUp;
  fAlignment := taRightJustify;
  TabStop := True; 
end;

end.


Если просто подключить модуль к проекту все работает....
А инсталяю так...
Install Component.
Выбираю файл, в пользовательский пакет. компилю....
...
Рейтинг: 0 / 0
21.10.2003, 11:05
    #32299424
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
Странно... Попробую поставить.




eNose
...
Рейтинг: 0 / 0
21.10.2003, 11:16
    #32299443
Ильшат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
А может ты его когда-то поставил для проверки, а потом нажал Hide в Environment Options->Palette?
Просто он не станет видимым, даже если ты после этого его заново поставишь
...
Рейтинг: 0 / 0
21.10.2003, 11:23
    #32299457
bjohny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
Вообще нет... Ни скрытым, ни каким...
...
Рейтинг: 0 / 0
21.10.2003, 12:39
    #32299642
bjohny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
Ну как..... :(
...
Рейтинг: 0 / 0
21.10.2003, 13:13
    #32299748
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
Не получается :-(
Чего-то там не хватает...



eNose
...
Рейтинг: 0 / 0
21.10.2003, 13:22
    #32299773
shaposh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
А ты путь-то к нему в Library Path прописал?
...
Рейтинг: 0 / 0
21.10.2003, 13:23
    #32299779
bjohny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
А как жеть.... прописал...
очьень жаль шо не получается.... :(
...
Рейтинг: 0 / 0
21.10.2003, 13:36
    #32299811
Ильшат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
исправь register на Register
...
Рейтинг: 0 / 0
21.10.2003, 13:38
    #32299820
Ильшат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
PS
Смешно. Однако, здесь видимо размер имеет значение ))))
...
Рейтинг: 0 / 0
21.10.2003, 13:46
    #32299838
bjohny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение компонент
Дамс.... Такого я от дельфи не ожидал, действительно есть разница в написании
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Подключение компонент / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]