Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ссылка на TStatusBar.Panel[0]


ser ©   (2004-09-16 11:07:00) 

Привет!

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

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


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

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


Ega23   (2004-09-16 13:05:00) [2]

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

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


begin...end   (2004-09-16 13:04:00) [3]


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

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

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


Ega23   (2004-09-16 12:57:00) [4]

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;


?


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

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

Не подойдет?


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

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

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


begin...end   (2004-09-16 12:17:00) [7]

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

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


NAlexey   (2004-09-16 12:15:00) [8]

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


NAlexey   (2004-09-16 12:04:00) [9]

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


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

NAlexey ©   (16.09.04 12:02) [10]

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


NAlexey   (2004-09-16 12:02:00) [11]

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


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


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

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

const
PanelOne: TStatusPanel = nil;

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


:-)


Ega23   (2004-09-16 11:59:00) [13]

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


NAlexey   (2004-09-16 11:53:00) [14]

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


Ega23   (2004-09-16 11:51:00) [15]

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

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


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

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

const
 PanelOne: ^TStatusPanel = nil;

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


NAlexey   (2004-09-16 11:40:00) [17]


const
 PanelOne: Pointer = nil;

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


PVOzerski   (2004-09-16 11:14:00) [18]

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


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

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


Ega23   (2004-09-16 11:08:00) [20]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо