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

Вниз

Странная ошибка при выполнении   Найти похожие ветки 

 
Okolobaxa   (2007-07-03 00:17) [0]

Пишу элементарный код, допустим Form1.Label1.Caption:="anystring"
Компиляция проходит нормально, а при выполнении вылазиет такая ошибка:"Debugger Exception Notification Project Project1.exe raised exception class EAccessWiolation with message "Access violation at address 0044F501 in module "Project1.exe". Read of address 000002FC". Process stopped. Use Step or Run to continue."
Пробовал и переустанавливать Delphi и переустанавливать систему и разные версии пробовал(7,2005,BDS2006). В чём проблема? Посоветуйте...


 
Германн ©   (2007-07-03 00:38) [1]


> Пробовал и переустанавливать Delphi и переустанавливать
> систему и разные версии пробовал(7,2005,BDS2006). В чём
> проблема? Посоветуйте...

Смени ещё и сам компьютер.
:)


 
ЮЮ ©   (2007-07-03 03:48) [2]

> Form1.Label1.Caption:="anystring"

поставь брекпоинт и убедись, что к данному моменту  Form1 = nil и, следовательно, Form1.Label1 тождественен "Access violation"


> Пишу элементарный код, допустим Form1.Label1.Caption:="anystring"

Элементарный код, который здесь имеет смысл приводить, должен начинаться с заглоовка метода, в котором он имеет место быть.


 
Anatoly Podgoretsky ©   (2007-07-03 08:37) [3]

> ЮЮ  (03.07.2007 03:48:02)  [2]

А смысл, и так ясно, что Form1 не создано или наоборот обнуленою


 
Okolobaxa   (2007-07-03 15:09) [4]

Код обыкновенный, стандартный шаблон. Невозможно поменять свойства вообше любых визуальных обьектов, будь то лейбл или чекбокс. при проверке чекбокса на отмеченность вылетает такая же байда. Если это делать в отработчике событий то всё норм.


unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Label1: TLabel;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

begin
 form1.Label1.Caption:="anytext";
end.



 
Инс ©   (2007-07-03 15:17) [5]


> Код обыкновенный, стандартный шаблон.


И где же ты вычитал, что данный код обыкновенный?  Ссылочку, плииз! А проблема в том, что этот код выполняется ДО того как создается экземпляр формы form1.


 
Однокамушкин   (2007-07-03 15:21) [6]

form1 создаётся в основной программе - секции begin..end dpr-файла, а ваша секция begin..end выполняется раньше, когда form1 имеет ещё значение nil...

Кстати, не знал, что в unit-ах можно вот так вот писать begin..end, а проверил - можно... Интересно, это где-нибудь документировано? В справке Delphi об этом ничего не нашёл...


 
Плохиш ©   (2007-07-03 15:44) [7]


> Okolobaxa   (03.07.07 15:09) [4]

Рекомендую всё-таки для начала узнать, что же это такое объектно-ориентированное программирование.


 
Johnmen ©   (2007-07-03 16:13) [8]


> Однокамушкин   (03.07.07 15:21) [6]

Ищи в справке по Pascal"ю.


 
clickmaker ©   (2007-07-03 16:56) [9]


>
> begin
>  form1.Label1.Caption:="anytext";
> end.

хм... а в чем смысл сего действа?



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
2-1183459889
zapis
2007-07-03 14:51
2007.07.29
Добавление записей в БД


1-1179726841
bss
2007-05-21 09:54
2007.07.29
Горизонтальная полоса прокруки в ListBox


15-1183358074
Чародей
2007-07-02 10:34
2007.07.29
DirectX срочно


15-1182861256
de.
2007-06-26 16:34
2007.07.29
О Delphimaster


15-1183170285
Ино
2007-06-30 06:24
2007.07.29
Что означает такая запись? Зачем она используется?