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



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

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



eNose
...
Рейтинг: 0 / 0
Подключение компонент
    #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
Подключение компонент
    #32299424
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Странно... Попробую поставить.




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



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


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