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

Вниз

ссылка на TStatusBar.Panel   Найти похожие ветки [0]

 
ser   (2004-09-16 11:07) [0]

Привет!

Паскаль знаю плохо, сильно не ругайте :)
Есть TStatusBar с двумя панелями.
Нужно объявить константную ссылку на панели.
Что-то типа
const
  PanelOne := StatusBar1.Panel[0];
  PanelTwo := StatusBar1.Panel[1];

Как это можно сделать?


 
Ega23 ©   (2004-09-16 11:08) [1]

Зачем? Да и не получится, ИМХО...


 
Рамиль ©   (2004-09-16 11:12) [2]

Откуда компилятор может знать какие значения указателей будут?...


 
PVOzerski ©   (2004-09-16 11:14) [3]

Не выйдет, потому что константных экземпляров класса не бывает (конструктор-то вызывать надо). Делайте переменные и присваивайте им соответствующие значения на подходящих этапах работы программы.


 
NAlexey ©   (2004-09-16 11:40) [4]


const
 PanelOne: Pointer = nil;

procedure TForm1.Button1Click(Sender: TObject);
begin
 PanelOne := Pointer(StatusBar1.Panels[0]);
 TStatusPanel(PanelOne).Text := "Я здесь.";
end;


 
NAlexey ©   (2004-09-16 11:46) [5]

А еще лучше даже так:

const
 PanelOne: ^TStatusPanel = nil;

procedure TForm1.Button1Click(Sender: TObject);
var
 Panel: TStatusPanel;
begin
 Panel := StatusBar1.Panels[0];
 PanelOne := @Panel;
 PanelOne.Text := "Я здесь.";
end;


 
Ega23 ©   (2004-09-16 11:51) [6]

NAlexey ©   (16.09.04 11:40) [4]
NAlexey ©   (16.09.04 11:46) [5]

А теперь вопрос: А нафига?


 
NAlexey ©   (2004-09-16 11:53) [7]

>Ega23 ©   (16.09.04 11:51) [6]
Да просто...


 
Ega23 ©   (2004-09-16 11:59) [8]

"Просто - только кошки родятся!" (С)


 
begin...end ©   (2004-09-16 12:01) [9]


> [5] NAlexey ©   (16.09.04 11:46)

А ещё лучше - так:

const
PanelOne: TStatusPanel = nil;

procedure TForm1.Button1Click(Sender: TObject);
begin
PanelOne := StatusBar1.Panel[0];
PanelOne.Text := "Я здесь.";
end;


:-)


 
NAlexey ©   (2004-09-16 12:02) [10]

Ega23 ©   (16.09.04 11:59) [8]
Да ладно, кошки очень непросто родятся.


 
NAlexey ©   (2004-09-16 12:04) [11]

>begin...end ©   (16.09.04 12:01) [9]
О да, так еще гораздо лучше...


 
Ega23 ©   (2004-09-16 12:04) [12]

NAlexey ©   (16.09.04 12:02) [10]

Это не ко мне:
1. Цитата из "12 стульев"
2. Я кошек ненавижу.


 
NAlexey ©   (2004-09-16 12:15) [13]

>Ega23 ©   (16.09.04 12:04) [12]
>2. Я кошек ненавижу.
Потомучто они ссут в тапочки?


 
begin...end ©   (2004-09-16 12:17) [14]

Если вам кто-то нассал в тапочки, то это не означает, что это была кошка.

P.S. Не знаю, зачем я это сказал.


 
ser   (2004-09-16 12:19) [15]

Цель такая : мне неохота писать каждый раз
StatusBar.Panel[0].Text := "123";

По мне, так лучше писать Panel0.Text := "123"
Но самая главная причина того что я не хочу писать StatusBar.Panel[0].Text та что
в случае смены мест панелей на СтатусБаре, во всех местах  прийдется исправлять индексы.  А это лишняя работа. Намного легче исправить константы в одном месте.


 
PVOzerski ©   (2004-09-16 12:50) [16]

with StatusBar do
begin
 ....
 Panel[0].Text:="123".;
 ....
end;

Не подойдет?


 
Ega23 ©   (2004-09-16 12:57) [17]

2 ser   (16.09.04 12:19) [15]  :


TForm1=clacc(TForm)
 ......
private
 function GetPanel0Text:String;
 procedure SetPanel0Text(const Value:String);
public
 property Panel0Text:String Read GetPanel0Text Write SetPanel0Text;
end;

function TForm1.GetPanel0Text:String;
begin
Result:=StatusBar.Panel[0].Text;
end;

procedure TForm1.SetPanel0Text(const Value:String);
begin
StatusBar.Panel[0].Text:=Value;
end;


?


 
begin...end ©   (2004-09-16 13:04) [18]


> [17] Ega23 ©   (16.09.04 12:57)

Он же сказал в [15], что у него панели меняются местами.

В смысле, индекс панели, текст которой он хочет менять, не остаётся постоянным.


 
Ega23 ©   (2004-09-16 13:05) [19]

begin...end ©   (16.09.04 13:04) [18]

Ну и исправить индекс в SetTExt и GetText


 
ser   (2004-09-16 13:30) [20]

2Ega23:
 Интересное предложение. В виде функций-оберток. Возьму на заметку.



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

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

Наверх




Память: 0.51 MB
Время: 0.039 c
4-1093524522
OSokin
2004-08-26 16:48
2004.10.03
Как добавить к пункту меню процедуру клика


1-1095147167
denisww
2004-09-14 11:32
2004.10.03
Вопрос по ListView


3-1094105109
top
2004-09-02 10:05
2004.10.03
Литература по проектированию баз данных


4-1093055871
DelphiN!
2004-08-21 06:37
2004.10.03
Как получить время, не связанное с временем Windows?


3-1094487730
Arnold
2004-09-06 20:22
2004.10.03
Как можно зайти в БД без запуска сервера SYSDBA этой базы данных