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

Вниз

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

Наверх




Память: 0.48 MB
Время: 0.043 c
8-1089180064
Tahion2
2004-07-07 10:01
2004.10.03
Отобразить картинку в оттенках определенного цвета (Colorize)


14-1095151477
Dmitriy O.
2004-09-14 12:44
2004.10.03
Лысина - это полянка, вытоптанная мыслями.


14-1095317193
080D:07BBh
2004-09-16 10:46
2004.10.03
Intel vs AMD


1-1095604621
volser
2004-09-19 18:37
2004.10.03
Выравнивание в ячейке таблицы (MsWord)


14-1095418547
}|{yk
2004-09-17 14:55
2004.10.03
Кто знает, как зайти на ftp сервер с полными правами, если





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