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

Вниз

Визуальное наследование   Найти похожие ветки 

 
sergeyst ©   (2007-01-29 10:02) [0]

Здрасте.
Сделал фрейм с тулбаром. На форме какие-то кнопки работают, какие-то нет. Кенту пишет, что визуальное наследование для форм не работает, а для фреймов? Хотя, когда, для примера, делаю простые фрейм или форму - все как надо, а вот в реальной задаче - чего-то глючит. Подскажите, кто знает.


 
tesseract ©   (2007-01-29 10:18) [1]


>  Хотя, когда, для примера, делаю простые фрейм или форму
> - все как надо, а вот в реальной задаче - чего-то глючит.
>  Подскажите, кто знает.


Ошибка в 17 строке.

Код в студию скажу от какой строки она семнадцатая.


 
sergeyst ©   (2007-01-29 10:26) [2]

эти кнопки работают:
procedure TViewDocFrame.OleContainer1DragOver(Sender, Source: TObject; X,
 Y: Integer; State: TDragState; var Accept: Boolean);
var
 T: TPoint;
begin
 T:=Mouse.CursorPos;
 T:= ScrollBox1.ScreenToClient(T);
 OleContainer1.Top:=T.Y-MouseXY.Y;
 OleContainer1.Left:=T.X-MouseXY.X;
end;

procedure TViewDocFrame.Image1MouseDown(Sender: TObject;
 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 if Button = mbLeft then begin
   MouseXY.X := X;
   MouseXY.Y := Y;
   Image1.BeginDrag(True);
 end;
end;

а эти нет:
procedure TViewDocFrame.tbViewCDWClick(Sender: TObject);
begin
 Par_Code := "EGA0009";
 OleContainer1.Visible := True;
 Image1.Visible := False;
 OleContainer1.BringToFront;
 UnitProc.CDWView(OleContainer1, MainChildForm.IBQueryList.FieldByName("NMK_ID").AsInteger);
end;

procedure TViewDocFrame.tbViewSPWClick(Sender: TObject);
begin
 Par_Code := "EGA0011";
 OleContainer1.Visible := True;
 Image1.Visible := False;
 OleContainer1.BringToFront;
 UnitProc.SPWView(OleContainer1, MainChildForm.IBQueryList.FieldByName("NMK_ID").AsInteger);
end;


 
sergeyst ©   (2007-01-29 10:27) [3]

неработающие в фрейме процедуры в форме работают


 
Elen ©   (2007-01-29 10:32) [4]


> sergeyst
эти кнопки работают:
OleContainer1DragOver
Image1MouseDown

Это что за название кнопок такое?


 
sergeyst ©   (2007-01-29 10:39) [5]

Elen ©   (29.01.07 10:32) [4]
Не работает из-за названий?
На какие поменять?


 
Elen ©   (2007-01-29 10:45) [6]


> Не работает из-за названий?
> На какие поменять?

Поменять не названия, а события. если эти кода должны вызываться по клику то их и надо посадить на OnClick.


 
sergeyst ©   (2007-01-29 11:58) [7]


> Elen ©   (29.01.07 10:45) [6]

Так они на клике
tbViewSPW - это имя кнопки
tbViewSPWClick - это, я так понимаю, OnClick


 
evvcom ©   (2007-01-29 12:02) [8]

> [3] sergeyst ©   (29.01.07 10:27)
> неработающие в фрейме процедуры в форме работают

Посмотри в форме, обработчики на эти кнопки стоят? А то в фрейме они есть, а в форме ты их мог переназначить.


 
sergeyst ©   (2007-01-29 12:21) [9]

evvcom ©   (29.01.07 12:02) [8]
Дык, в том то и дело, что не переназначал


 
sergeyst ©   (2007-01-29 12:24) [10]

Ну, а вообще наследоваться-то должно? И на формах?
(в смысле наследование обработчиков для коллекций - ListView, ToolBar  и т.д.)?


 
sergeyst ©   (2007-01-29 12:24) [11]

А что означает ИМХО?


 
Elen ©   (2007-01-29 12:50) [12]


> sergeyst ©   (29.01.07 11:58) [7]
>
>
> > Elen ©   (29.01.07 10:45) [6]
>
> Так они на клике
> tbViewSPW - это имя кнопки
> tbViewSPWClick - это, я так понимаю, OnClick


Эт я понимаю. Меня просто немного удивило выражение :


> эти кнопки работают:
> procedure TViewDocFrame.OleContainer1DragOver(Sender, Source:
>  TObject; X,


 
evvcom ©   (2007-01-29 14:28) [13]

> [10] sergeyst ©   (29.01.07 12:24)

Все должно. Хотя, что ты в данном случае называешь наследованием? В дизайнтайм в D7 на форме для объекта из фрейма я не вижу в инспекторе обработчика, хотя находясь в модуле самого фрейма я его вижу.
В фрейме ты написал обработчик, он прописался в ресурсы фрейма. Этот фрейм внедряешь в форму. В рантайм он создается, все инициализируется в соответствии с ресурсами фрейма, и если ты этот обработчик в форме не переназначал, т.е. в ресурсах формы он не значится, то и в рантайм после всех этих созданий/инициализаций из ресурсов формы он никак не изменится. Поэтому должен вызваться обработчик, написанный в модуле фрейма.



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

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

Наверх




Память: 0.5 MB
Время: 0.032 c
1-1166712459
Чапаев
2006-12-21 17:47
2007.02.18
Constant expression violates subrange bounds


2-1170413046
Extar
2007-02-02 13:44
2007.02.18
Чем лучше соорудить инсталлятор для своей программы?


2-1147795287
Sphinx
2006-05-16 20:01
2007.02.18
Кнопка или панель с переносом строк


3-1163222191
Sansy
2006-11-11 08:16
2007.02.18
драйвер для BDE


15-1169702424
BorisUK
2007-01-25 08:20
2007.02.18
PL SQL задачки, упражнения, у кого есть?