Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
2-1169983925
SerJaNT
2007-01-28 14:32
2007.02.18
Проиграть звук


3-1164567203
SyncMaster795DF
2006-11-26 21:53
2007.02.18
Условия в хранимой процедуре


15-1170012791
Неудачнег
2007-01-28 22:33
2007.02.18
GetIfTable()


15-1169742840
apak
2007-01-25 19:34
2007.02.18
А что будет если


15-1169790289
Andrey_andrey
2007-01-26 08:44
2007.02.18
Отпугивание мышей- ультразвук.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский