Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi bekomme EAccessViolation wenn ich boolean ändern möchte (https://www.delphipraxis.net/83385-bekomme-eaccessviolation-wenn-ich-boolean-aendern-moechte.html)

gandime 1. Jan 2007 20:39


bekomme EAccessViolation wenn ich boolean ändern möchte
 
hi,
ich hab ein ganz komisches problem
ich kann ein booleanwert nicht zu begin zuweisen oder mit einem timer ändern oder mit der create procedure starten

nähere beschreibung:
Delphi-Quellcode:
unit unt_sockets;

interface

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

type
  ...
  private
    { Private declarations }
  public
    ...
  end;

var
  frm_sockets: Tfrm_sockets;
  ...
  ...,b_dl_up_finished:boolean;
  ...
//  b_dl_up_finished:boolean=true; <-- das funktioniert z.b. nicht

implementation

{$R *.dfm}
...
die unit wird von anderen units benutzt und der booleanwert wird von ihnen geändert (dieses geht aber auch nicht am anfang oder mit einem timer)

genaue fehlermeldung:
Zitat:

First chance exception at $7C812A5B. Exception class EAccessViolation with message 'Access violation at address 0047915F in module 'Project1.exe'. Read of address 00000028'. Process Project1.exe (2280)
kann mir da jemand helfen?

mkinzler 1. Jan 2007 20:42

Re: bekomme EAccessViolation wenn ich boolean ändern möchte
 
Du hastja noch ne 2. Chance :mrgreen:

Hast du mal versucht, die Vorbelegung später durchzuführen?

gandime 1. Jan 2007 23:02

Re: bekomme EAccessViolation wenn ich boolean ändern möchte
 
wie die vorbelegung später?
wie meinst du das?/wie mache ich das?

mkinzler 1. Jan 2007 23:04

Re: bekomme EAccessViolation wenn ich boolean ändern möchte
 
z.B. im Initialisierungsteil der Unit.

Cyberbob 2. Jan 2007 03:17

Re: bekomme EAccessViolation wenn ich boolean ändern möchte
 
Wenn du Variabeln anlegst und global in deinem Programm verwenden willst, kannst du sie auch unter public schreiben.

Muetze1 2. Jan 2007 14:45

Re: bekomme EAccessViolation wenn ich boolean ändern möchte
 
Zitat:

Zitat von Cyberbob
Wenn du Variabeln anlegst und global in deinem Programm verwenden willst, kannst du sie auch unter public schreiben.

Aber nur, wenn er die Klassen-Unit überall in seinem Programm einbindet und immer Zugriff auf die richtige Instanz hat. Wenn er mehrere Instanzen der Klasse hat, dann ist die große Frage welche Instanz seine (von dir propagandierte) "globale Variable" hat.

Ich finde die Aussage daher irreführend und im Endeffekt falsch.

gandime 6. Jan 2007 15:10

Re: bekomme EAccessViolation wenn ich boolean ändern möchte
 
soo ich hab das problem jetzt anders gelöst, da ich eure vorschläge nicht so recht verstanden habe...
naja egal trotzdem danke :)

juergen 6. Jan 2007 15:14

Re: bekomme EAccessViolation wenn ich boolean ändern möchte
 
Hallo gandim,
was die anderen meinten war wohl nachfolgendes:
Delphi-Quellcode:
unit unt_sockets;

interface

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

type
  ...
    private
    { Private declarations }

  public
  var
  frm_sockets: Tfrm_sockets;
  b_dl_up_finished: boolean;
  ...

implementation

{$R *.dfm}

  ....
  b_dl_up_finished := true;

Cyberbob 6. Jan 2007 16:49

Re: bekomme EAccessViolation wenn ich boolean ändern möchte
 
Dann aber ohne Var. Oder mache ich die Ganz Zeit was falsch? Wenn ich Var im Private oder Publicteil verwende, kommt ne Fehlermeldung.

SirThornberry 6. Jan 2007 16:54

Re: bekomme EAccessViolation wenn ich boolean ändern möchte
 
und was für eine Fehlermeldung?????


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz