Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно подключить обьект или в чем ошибка?...


Страницы:   1 2

Andrewtitoff ©   (2008-03-20 10:37:00) 

Здравствуйте!, нагублил я тут вроде как полезную вещь для обработки ошибок под названием TgsCatcher
( http://www.codenet.ru/progr/delphi/stat/errors.php)
использовал этот вариант:
( http://www.delphikingdom.com/asp/answer.asp?IDAnswer=58915)
Тока ничего немогу понять Создал я в своей проге новый юнит, засунул туда все это дело, все замечательно откомпилировалось, после чего его вроде как и написано в статье подключил т.е. описал обьект "ааа" класса TgsCatcher после чего установил его св-во enabled в true, как и написанно в статье, вот только после этого появилась ошибка "Access violation at address 0048C7A1 in module Project_Lift.exe"....
выделяет эту строку:

procedure TgsCatcher.SetEnabled(const Value: boolean);
begin
 FEnabled := Value;
^^^^^^^^^^^^^^^^^^
end;


Что не так я делаю?, подскажите пожалуйста!...


unit Unit_FormMain;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, AccessXP, OleServer, StdCtrls, Buttons, ExtCtrls, ImgList,
 Printers, Unit_My,Unit_New,Unit_VViezda,Unit_Form_PPEdit,Unit_VPuska,Unit_Password, mmsystem, Menus, Unit2,gsCatcher;

type
 TFormMain = class(TForm)
   Exit: TBitBtn;
   ...    
  procedure FormCreate(Sender: TObject);
  ...    
 private

 public
   { Public declarations }
 end;

 var
 FormMain : TFormMain;
 ...
 aaa : TgsCatcher;

   implementation

uses Unit_FormShow, Unit_New_menu, Unit_Message, Unit_FormEditSP,
 Unit_FormSkPEdit, Unit_FormDemo;

{$R *.dfm}

procedure TFormMain.FormCreate(Sender: TObject);
begin
aaa.Enabled:=true;
...
end;


Kolan   (2008-03-20 16:00:00) [1]

Удалено модератором


Andrewtitoff   (2008-03-20 15:39:00) [2]

2 Сергей М.
Не поможешь?, пожалуйста... =)))
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1206014820&n=18


{RASkov}   (2008-03-20 14:28:00) [3]

> [35] Andrewtitoff ©   (20.03.08 14:21)
> у меня в прграмме есть одна форма, которая убрана из автосоздаваемых...

> Ну почему сразу так?,

Если не умеешь создавать(уничтожать) объекты сам, то рано тебе еще убирать формы из автосоздаваемых ;)


Andrewtitoff   (2008-03-20 14:21:00) [4]

Ну почему сразу так?, у меня в прграмме есть одна форма, которая убрана из автосоздаваемых..., правда остальные неубраны...


{RASkov}   (2008-03-20 13:43:00) [5]

Я не думаю, что автор формы поубирал из автосоздаваемых и создает(или не создает) их динамически...
Я вот к ответам Коляна присоединяюсь :)

> [33] Andrewtitoff ©   (20.03.08 13:33)

Что, все уже?)


Andrewtitoff   (2008-03-20 13:33:00) [6]

Ясно..., в очередной раз всех утомил...  =))))


Сергей М.   (2008-03-20 13:33:00) [7]


> Andrewtitoff ©   (20.03.08 13:28) [30]


Ладно, проехали.

Работает оно себе и работает, возвеселись и возрадуйся)


Andrewtitoff   (2008-03-20 13:30:00) [8]

2 2 Сергей М.
Это я проверяю работу TgsCatcher:
TFileStream.create(MD+'\x.lft',fmOpenReadWrite);


Andrewtitoff   (2008-03-20 13:28:00) [9]

2 Сергей М.
В смысле?


procedure TFormMain.NewClick(Sender: TObject);
begin
TFileStream.create(MD+'\x.lft',fmOpenReadWrite);
Form_New.ShowModal;
//Form_New.Show;
end;

procedure TForm_New.FormShow(Sender: TObject);
var
//  ix : integer;
 fT : textFile;
 sr : string;
 begin
//
 Form_New.top:=260;
 Form_New.left:=107;
//
{  with Screen do
   for ix := 0 to FormCount-1 do
     if Forms[ix] <> Form_New then
     Forms[ix].Enabled := false;
{}
     ClearForm;

street.Clear;
AssignFile(fT,MD+'\System\Street.lft');
reset(ft);
repeat
Readln(ft,sr);
street.items.add(sr);
until eof(ft);
CloseFile(Ft);

   Prichina.Clear;

AssignFile(fT,MD+'\System\NP.lft');
reset(ft);
repeat
Readln(ft,sr);
Prichina.items.add(sr);
until eof(ft);
CloseFile(Ft);

end;

Или Вы про что?


Andrewtitoff   (2008-03-20 13:24:00) [10]

2 Ega23
А что не так то?....


Сергей М.   (2008-03-20 13:17:00) [11]


> Это просто еще одна форма моего приложения


Это не форма, это переменная.

Где и какона получает значение в ходе работы твоего программного шедевра ?)


Ega23   (2008-03-20 13:17:00) [12]


> Так же правильно будет?


Может хватит гадать, а?
Синтаксически - всё правильно. Логически - нет.


Andrewtitoff   (2008-03-20 13:16:00) [13]

2 Сергей М

Вот так вроде как все работает:

aaa := TgsCatcher.Create(FormMain);
try
aaa.Enabled:=true;
except
aaa.Free;
end;

Так же правильно будет?


Andrewtitoff   (2008-03-20 13:14:00) [14]

2 Сергей М.
Это просто еще одна форма моего приложения

unit Unit_New;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Unit_My, Unit_New_menu,Unit_FormShow,  Buttons, ExtCtrls;

type
 TForm_New = class(TForm)
   Street: TComboBox;
   HOUSE: TComboBox;
   Prichina: TComboBox;
   Zapisati: TBitBtn;
   Nazad: TBitBtn;
   VPost: TLabel;
   Label1: TLabel;
   CORP: TComboBox;
   PARNUM: TComboBox;
   Etaz: TComboBox;
   Zayavitel: TEdit;
   Image1: TImage;
   procedure FormHide(Sender: TObject);
   procedure FormShow(Sender: TObject);
   procedure ZapisatiClick(Sender: TObject);
   procedure StreetChange(Sender: TObject);
   procedure NazadClick(Sender: TObject);
 private
   {Для перемещения формы вне заголовка объявляем процедуру}
   procedure WMNCHitTest(var M:TWMNCHitTest);message wm_NCHitTest;
 public
   { Public declarations }
 end;

var
 Form_New : TForm_New;
       Fn : TFileStream;
  Fstring : myString;
        n : integer;
        cs : string;
implementation

uses Unit_FormMain;

{$R *.dfm}


Сергей М.   (2008-03-20 13:04:00) [15]


> А по русски можно?


Можно и по-русски, если расскажешь, что такое "form_New")


Andrewtitoff   (2008-03-20 13:04:00) [16]

2 Kolan
А вот так правильно же будет? :

aaa := TgsCatcher.Create(FormMain);
try
aaa.Enabled:=true;
except
aaa.Free;
end;


Ega23   (2008-03-20 13:01:00) [17]


> А по русски можно?, какая еще религия?, в чем тут дело то?
>  =))))


Может всё-таки лопату?


Andrewtitoff   (2008-03-20 12:59:00) [18]

2 Kolan
Аааа..., а куда это писать то зачем сразу обьект?, мне же надо что бы это все дело работало на протяжении всей работы программы...

2 Сергей М
>см. [16]
А по русски можно?, какая еще религия?, в чем тут дело то? =))))


Сергей М.   (2008-03-20 11:58:00) [19]


> непонимаю уже ничего при чем тут эта сторока


см. [16]


> Сейчас вот так пробовал


> как я понял можно так


Нельзя. Ни так ни так. Потому что aaa - это не переменная типа TConponentClass.


Kolan   (2008-03-20 11:58:00) [20]

> Ega23 ©   (20.03.08 11:46)

Не сработал телепатор твой :)

> aaa.Create(nil);
> aaa.Enabled:=true;

Andrewtitoff, дело в том, что ты вызываешь метод Create у еще не созданного aaa, и соотв получаешь AV.

Коструктор вызывают обращаясь к классу. Правильно написать так:

aaa := TgsCatcher.Create(nil); //Создание
try
 aaa.Enabled:=true; // Использование
finally
 aaa.Free;  //Удаление объекта.
end;


ЗЫ
 С такими знаниями тебе этот компонент не нужен. Возьми Тейкстру и Пачеко и подучи язык.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо