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

Вниз

Begin end.   Найти похожие ветки 

 
Вячеслав Бессонов   (2006-02-05 16:45) [0]

Опять ламерская проблема.
В Turbo Pascal сначала описывались процедуры затем шли операторные скобки begin end. В Delphi также? Пробовал, но возникает ошибка, объекты не декларированны, хотя они спокойно прописаны в type.


 
Джо ©   (2006-02-05 16:47) [1]

> В Delphi также?

Так же.


 
Gero ©   (2006-02-05 16:48) [2]

Показывай код.


 
Вячеслав Бессонов   (2006-02-05 16:55) [3]

implementation

{$R *.DFM}

begin
if (ed1.Text<>"") and (ed3.Text<>"") and (ed3.Text<>"") then bt1.Visible:=True;
end.


 
Gero ©   (2006-02-05 17:18) [4]

> Вячеслав Бессонов   (05.02.06 16:55)

В приведенном коде ршибок нет, при условии, что переменные edt1, ed3 и bt1 обьявлены и имеют соответствующие свойства.


 
Desdechado ©   (2006-02-05 17:19) [5]

begin-end без указания принадлежности может бытьтолько один в проекте - он у тебя уже есть в .dpr
остальные должны относиться либо к методам класса, лобо к простым функциям


 
Gero ©   (2006-02-05 17:25) [6]

> begin-end без указания принадлежности может бытьтолько один
> в проекте - он у тебя уже есть в .dpr

В любом модуле может быть.


 
Вячеслав Бессонов   (2006-02-05 17:27) [7]

Они объявлены, но выдается ошибка, что они не объявлены.


 
Gero ©   (2006-02-05 17:28) [8]

> Вячеслав Бессонов   (05.02.06 17:27)
> Они объявлены, но выдается ошибка, что они не объявлены.

Значит они не обьявлены.
По крайней мере, в приведенном коде обьявления не видно.


 
Desdechado ©   (2006-02-05 17:31) [9]

Gero ©   (05.02.06 17:25) [6]
> В любом модуле может быть.
ну-ка, просвети


 
Gero ©   (2006-02-05 17:33) [10]

> Desdechado ©   (05.02.06 17:31)

Что за тон?
Просветиться можешь самостоятельно, проверив на практике.


 
Кефир87 ©   (2006-02-05 17:36) [11]

Может Form1.ed1.Text


 
Вячеслав Бессонов   (2006-02-05 17:41) [12]

unit Unit2;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, ExtCtrls, Buttons;

type
 Tfm2 = class(TForm)
   pnl1: TPanel;
   ed1: TEdit;
   ed2: TEdit;
   ed3: TEdit;
   ed4: TEdit;
   ll1: TLabel;
   ll2: TLabel;
   ll3: TLabel;
   ll4: TLabel;
   ll5: TLabel;
   ll6: TLabel;
   ed5: TEdit;
   ed6: TEdit;
   bbt1: TBitBtn;
   bt1: TButton;
   llp: TLabel;
   procedure bt1Click(Sender: TObject);
   
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 fm2: Tfm2;

implementation

uses Unit1;

{$R *.DFM}

procedure Tfm2.bt1Click(Sender: TObject);
begin
fmG.mm.Lines.Add(ed1.Text);
fmG.mm.Lines.Add(ed3.Text);
fmG.mm.Lines.Add(ed2.Text);
end;

begin
if (fm2.ed1.Text<>"") and (fm2.ed2.Text<>"") and (fm2.ed3.Text<>"") then fm2.bt1.Visible:=True;
end.
при таком варианте выдается ошибка.


 
Gero ©   (2006-02-05 17:44) [13]

> begin
> if (fm2.ed1.Text<>"") and (fm2.ed2.Text<>"") and (fm2.ed3.Text<>"")
> then fm2.bt1.Visible:=True;
> end.

Этот код выполнится при инницализации модуля, еще до создания формы. Соответственно, форма не создана, а происходят попытки к ней обратиться. Отсюда и ошибка.

Когда, по твоей задумке, должен выполниться этот код?


 
Вячеслав Бессонов   (2006-02-05 17:50) [14]

У меня были такие подозрения. Я хочу выполнить до процедур, не использую
их
как В Паскале


 
Gero ©   (2006-02-05 17:52) [15]

> Я хочу выполнить до процедур

До каких процедур ты хочешь это выполнить?


 
Desdechado ©   (2006-02-05 17:54) [16]

> Этот код выполнится при инницализации модуля
для инициализации предназначена секция initialization
а для чего тогда бессмысленный беззаголовочный begin-end?


 
Gero ©   (2006-02-05 17:55) [17]

> а для чего тогда бессмысленный беззаголовочный begin-end?

Для совместимости с Turbo Pascal.


 
Desdechado ©   (2006-02-05 17:56) [18]

бр, эти обратные совместимости только путают людей, что автора сабжа, что меня...


 
Вячеслав Бессонов   (2006-02-05 18:17) [19]

Мне не нужна совместимостимость с Турбо Паскалем.
Я хочу выполнить эти строки, не использую процедуры и объекты(кнопки и т.д.)


 
Кефир87 ©   (2006-02-05 18:19) [20]

Когда выполнить надо?


 
Desdechado ©   (2006-02-05 18:20) [21]

ты не путайся
винда - система событийная, в ней все происходит в реакцию на какое-то событие
поэтому "просто выполнить" нельзя, надо определить, в каком случае ты хочешь это выполнить


 
Вячеслав Бессонов   (2006-02-05 18:22) [22]

тогда как?
обязательно кнопку или что-то в этом роде?


 
Desdechado ©   (2006-02-05 18:25) [23]

ЕЩЕ РАЗ - в каком случае должен выполниться код?


 
Вячеслав Бессонов   (2006-02-05 18:30) [24]

Появляется форма, человек что-то пишет в Edit"ах
затем выполняется код


 
Desdechado ©   (2006-02-05 18:35) [25]

теперь - как программа должна узнать, что человек ЗАКОНЧИЛ писать в эдитах?


 
Gero ©   (2006-02-05 18:39) [26]

TEdit.OnChange


 
Вячеслав Бессонов   (2006-02-05 18:46) [27]

Уже сделал. Спасибо тебе, Gero.


 
TUser ©   (2006-02-06 06:41) [28]

Вообще, подозреваю, что надо Form1.edt1, а правильнее все это - в OnCreate, т.к. при выполнении секции initialization Form1 еще не создана и будет AV.



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

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

Наверх




Память: 0.53 MB
Время: 0.033 c
2-1139250325
TimScorp
2006-02-06 21:25
2006.02.26
EConvertError


2-1139835151
13
2006-02-13 15:52
2006.02.26
2 вопроса по SpinEdit


15-1139233884
PARUS
2006-02-06 16:51
2006.02.26
Нету спама!(Дуратский вопрос)


9-1125895759
!Trinix
2005-09-05 08:49
2006.02.26
Включение эффектов


3-1135776468
VICTOR_MV
2005-12-28 16:27
2006.02.26
BDE. Два разных ПО не могут одновременно работать.