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

Вниз

TSpeedButton.visible не работает....   Найти похожие ветки 

 
xn0bys   (2003-01-30 14:39) [0]

Есть така промблема:
вот кусок...

type
TSmallDBNavigator = class(TCustomPanel)//class(TCustomPanel)
private
...
protected
{ Protected declarations }
Buttons : Array [0..8] of TSpeedButton;
...
end;

...
//Create
FPanel:=TPanel.Create(self);
...
For i:=8 downto 0 do
begin
Buttons[i]:=TSpeedButton.Create(FPanel);
Buttons[i].Parent:=FPanel;
Buttons[i].Caption:="";
Buttons[i].Flat:=True;
Buttons[i].Tag:=i;
Buttons[i].OnClick:=ButClick;
Buttons[i].Name:=TNames[i];
Buttons[i].Glyph.LoadFromResourceName(HInstance, UpperCase(TNames[i]));
Buttons[i].NumGlyphs:=2;
Buttons[i].Transparent:=False;
Buttons[i].Visible:=False;
end;
...
For k:=8 downto 0 do
begin
If CheckVisible(k) then
begin
Buttons[k].Visible:=True;
Buttons[k].Enabled:=CheckEnabled(k);
Buttons[k].Width:=FBWidth;
Buttons[k].Height:=FBHeight;
Buttons[k].Top:=border;
If Fpanel.BorderStyle=bsSingle
then Buttons[k].Left:=FPanel.Width-m*FBWidth-border-4
else Buttons[k].Left:=FPanel.Width-m*FBWidth-border;
inc(m);
end
else Buttons[k].Visible:=False;
end;
...
function TSmallDBNavigator.CheckEnabled(Value:Integer):Boolean;
begin
Case Value of
0: Result:=(bFirst in FEnabledButtons);
1: Result:=(bPrevious in FEnabledButtons);
2: Result:=(bNext in FEnabledButtons);
3: Result:=(bLast in FEnabledButtons);
4: Result:=(bInsert in FEnabledButtons);
5: Result:=(bDelete in FEnabledButtons);
6: Result:=(bEdit in FEnabledButtons);
7: Result:=(bPost in FEnabledButtons);
8: Result:=(bCancel in FEnabledButtons);
else Result:=False;
end;
end;

function TSmallDBNavigator.CheckVisible(Value:Integer):Boolean;
begin
Case Value of
0: Result:=(bFirst in FVisibleButtons);
1: Result:=(bPrevious in FVisibleButtons);
2: Result:=(bNext in FVisibleButtons);
3: Result:=(bLast in FVisibleButtons);
4: Result:=(bInsert in FVisibleButtons);
5: Result:=(bDelete in FVisibleButtons);
6: Result:=(bEdit in FVisibleButtons);
7: Result:=(bPost in FVisibleButtons);
8: Result:=(bCancel in FVisibleButtons);
else Result:=False;
end;
end;

Проблема вот в чём: В DesignTime почему-то свойство Buttons[i].Visible не действуте, т.е. кнопки всё равно видны, в РунТайме всё нормально.
Что тут может быть?


 
Романов Р.В.   (2003-01-30 14:43) [1]

Потому что так они сделаны.


 
xn0bys   (2003-01-30 14:49) [2]


> Романов Р.В. © (30.01.03 14:43)
> Потому что так они сделаны.

Что это значит?


 
xn0bys   (2003-01-30 14:53) [3]

jack128

procedure TSmallDBNavigator.SetVisibleButtons(Value : TButtonSet);
begin
If Value<>FVisibleButtons then
begin
FVisibleButtons:=Value;
Invalidate;
//Repaint;
// AutoPosition;
end;
end;

Procedure TSmallDBNavigator.Paint;
begin
Inherited Paint;
AutoPosition;
end;

Кусок

For k:=8 downto 0 do
begin
If CheckVisible(k) then
...

расположен в AutoPosition;



 
ZeroDivide   (2003-01-30 14:55) [4]

to [xn0bys]
Ну.. ты кода выкинул.
Интересно зачем это тебе в DesignTime ?
Вообще я такого никогда не пробовал. Но думаю надо у этих буттонов перекрыть Paint так

MyButton.Paint;
begin
if not (csDesignTime in ComponentState) then
inherited;
end;

Мм.. Интересно.. Получится расскажешь :)


 
ZeroDivide   (2003-01-30 14:56) [5]

Пока читал и разбирался... уже понаписали :)


 
Романов Р.В.   (2003-01-30 15:01) [6]

procedure TControl.CMVisibleChanged(var Message: TMessage);
begin
if not ( csDesigning in ComponentState) or
( csNoDesignVisible in ControlStyle) then
InvalidateControl(True, FVisible and (csOpaque in ControlStyle));
end;



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

Форум: "Основная";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
8-28945
MiS
2002-10-22 19:40
2003.02.10
Графика, Tcolor, Palette


1-28889
dtm
2003-01-30 13:16
2003.02.10
Обрамление наскольких ячеек в MS Excel при позднем связывании.


1-28693
edell
2003-01-29 22:09
2003.02.10
блокировка клавы


1-28793
tv
2003-01-30 10:11
2003.02.10
Смена кодировеки в TWebBrowser


3-28593
Chris
2003-01-24 15:14
2003.02.10
Уровень таблицы TableLevel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский