![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Странная ошибка при выполнении [D7, WinXP]
Okolobaxa © (2007-07-03 00:17:00)Пишу элементарный код, допустим 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). В чём проблема? Посоветуйте...
clickmaker (2007-07-03 16:56:00) [1]
>
> begin
> form1.Label1.Caption:='anytext';
> end.
хм... а в чем смысл сего действа?
Johnmen (2007-07-03 16:13:00) [2]
> Однокамушкин (03.07.07 15:21) [6]
Ищи в справке по Pascal'ю.
Плохиш (2007-07-03 15:44:00) [3]
> Okolobaxa (03.07.07 15:09) [4]
Рекомендую всё-таки для начала узнать, что же это такое объектно-ориентированное программирование.
Однокамушкин (2007-07-03 15:21:00) [4]form1 создаётся в основной программе - секции begin..end dpr-файла, а ваша секция begin..end выполняется раньше, когда form1 имеет ещё значение nil...
Кстати, не знал, что в unit-ах можно вот так вот писать begin..end, а проверил - можно... Интересно, это где-нибудь документировано? В справке Delphi об этом ничего не нашёл...
Инс (2007-07-03 15:17:00) [5]
> Код обыкновенный, стандартный шаблон.
И где же ты вычитал, что данный код обыкновенный? Ссылочку, плииз! А проблема в том, что этот код выполняется ДО того как создается экземпляр формы form1.
Okolobaxa (2007-07-03 15:09:00) [6]Код обыкновенный, стандартный шаблон. Невозможно поменять свойства вообше любых визуальных обьектов, будь то лейбл или чекбокс. при проверке чекбокса на отмеченность вылетает такая же байда. Если это делать в отработчике событий то всё норм.
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.
Anatoly Podgoretsky (2007-07-03 08:37:00) [7]> ЮЮ (03.07.2007 03:48:02) [2]
А смысл, и так ясно, что Form1 не создано или наоборот обнуленою
ЮЮ (2007-07-03 03:48:00) [8]> Form1.Label1.Caption:='anystring'
поставь брекпоинт и убедись, что к данному моменту Form1 = nil и, следовательно, Form1.Label1 тождественен 'Access violation'
> Пишу элементарный код, допустим Form1.Label1.Caption:='anystring'
Элементарный код, который здесь имеет смысл приводить, должен начинаться с заглоовка метода, в котором он имеет место быть.
Германн (2007-07-03 00:38:00) [9]
> Пробовал и переустанавливать Delphi и переустанавливать
> систему и разные версии пробовал(7,2005,BDS2006). В чём
> проблема? Посоветуйте...
Смени ещё и сам компьютер.
:)