![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Переменная в переменную [D7, XP]
SveTTT © (2007-11-11 17:04:00)Возможно ли результат, фиксируемый переменной из одной процедуры использовать в качестве переменой в другой процедуре? Другими словами использовать в качестве переменной результат полученный в другой процедуре.
{RASkov} (2007-11-11 22:49:00) [21]> [9] SveTTT (11.11.07 22:27)
В итоге должно получится нечто такое:
var SomeText: String;
procedure TTRF_MAIN.L;
var i:integer;
a:boolean;
begin
...
if a then SomeText:='100' else SomeText:='А=False:)';
...
end;
procedure TTRF_MAIN.StatusBar2DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
if Panel = StatusBar2.Panels[0] then
begin
Panel.Width := Trunc(StatusBar2.Canvas.TextWidth(SomeText) * 1.5);
with StatusBar.Canvas do
begin
Brush.Color := clWhite;
FillRect(Rect);
Font.Name := 'Arial';
Font.Color := clRed;
// Font.Style := Font.Style + [fsItalic, fsBold];
TextRect(Rect, Rect.Left + 1, Rect.Top, SomeText);
end;
Но может нужно пересмотреть алгорит программы, например разбить на подпрограммки и вместо глобальной переменной использовать одноименную функцию строкового типа.... В общем в твоем случае варианты есть...)
> и что такое "RTFM о видимости переменных"
:) мануал, ттх, хелп, справка, помощь, F1, книги....)
SveTTT (2007-11-11 22:27:00) [22]конечно не забыла.
и что такое "RTFM о видимости переменных"
DrPass (2007-11-11 22:17:00) [23]
> Глобальной делала, только ничего не отображается.
А после того, как сделала, не забыла удалить ее отсюда?
procedure TTRF_MAIN.L;
var i:integer;
s:string;
a:boolean;
begin
SveTTT (2007-11-11 22:08:00) [24]Глобальной делала, только ничего не отображается.
Amoeba (2007-11-11 22:04:00) [25]Сделай S или глобальной переменной, или полем (можно и свойством) класса TTRF_MAIN.
RTFM о видимости переменных.
SveTTT (2007-11-11 22:01:00) [26]
> Ты кодом это продемонстрируй, а то что-то непонятно....
Определяем значение исходя из выполнения определенного условия
procedure TTRF_MAIN.L;
var i:integer;
s:string;
a:boolean;
begin
...
if a then
s:='100';
else
...
end;
используем "S" в
procedure TTRF_MAIN.StatusBar2DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
var
SomeText: string;
begin
if Panel = StatusBar2.Panels[0] then
begin
SomeText := s;
Panel.Width := Trunc(StatusBar2.Canvas.TextWidth(SomeText) * 1.5);
with StatusBar.Canvas do
begin
Brush.Color := clWhite;
FillRect(Rect);
Font.Name := 'Arial';
Font.Color := clRed;
// Font.Style := Font.Style + [fsItalic, fsBold];
TextRect(Rect, Rect.Left + 1, Rect.Top, SomeText);
end;
Так вот! Надо, чтобы при выполнении условия в первом коде, переменная S отображалась в процедуре заполнения statusBar'а.
Amoeba (2007-11-11 18:56:00) [27]
> Kolan © (11.11.07 17:17) [2]
>
> Если правильно понял то тыбе нужно использовать ф-цию:
Скорее всего, что понял неправильно. Вопрос, судя по всему, был о процедурах и их параметрах-переменных.
Zeqfreed (2007-11-11 18:47:00) [28]Может быть вопрос о
SomeFunc(AnotherFunc(...), ...)?
Kolan (2007-11-11 17:17:00) [29]Если правильно понял то тыбе нужно использовать ф-цию:
function MyFoo: string;
begin
Result := '10'; //результат, фиксируемый переменной из одной процедуры
end;
procedure MyProc;
var
S: srting;
begin
S := MyFoo; //использовать в качестве переменой в другой процедуре
ShowMessage(S);
end;
{RASkov} (2007-11-11 17:09:00) [30]> [0] SveTTT (11.11.07 17:04)
Ты кодом это продемонстрируй, а то что-то непонятно....
Может после написания куска кода у тебя и вопрос-то сам отпадет)