AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Warum AccessViolation?

Ein Thema von moin339 · begonnen am 8. Aug 2003 · letzter Beitrag vom 12. Aug 2003
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von moin339
moin339

Registriert seit: 23. Sep 2002
Ort: Hamburg
136 Beiträge
 
#11

Re: Warum AccessViolation?

  Alt 8. Aug 2003, 21:00
die endlosschleife war hier nur ein beispiel. übrigens habe ich keine prozessor-Belastung von 100%.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Warum AccessViolation?

  Alt 9. Aug 2003, 10:32
Zitat von Keldorn:
außerdem, wenn du das application.processmessages so inder schleife drinläßt, wird dein CPU-Belastung auf 100% gehen. wenn schobn, dann setzt ein sleep mit rein
Bei einem Konsolenprogramm, das gar keine Nachrichtenschleife hat, müssen auch keine Nachrichten abgearbeitet werden. Deswegen macht das auch nichts aus.

Wenn du die Konsole mittels einer Endlosschlkeife am Laufen lassen willst, kannst du auch einen extra Thread benutzen.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von moin339
moin339

Registriert seit: 23. Sep 2002
Ort: Hamburg
136 Beiträge
 
#13

Re: Warum AccessViolation?

  Alt 9. Aug 2003, 10:41
argh. ihr versteht mich nicht oder könnt nicht lesen . Ich möchte eine GUI für ein FREMDES Consolen-Programm schreiben. In meinem Delphiprogramm prüfe ich in einer schleife, die erst verlassen wird wenn das FREMDE Consolen-Programm beendet ist, ob in der Console neue Ausgaben stehen.

ciao, moin339
  Mit Zitat antworten Zitat
Pascal

Registriert seit: 10. Aug 2003
22 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Warum AccessViolation?

  Alt 11. Aug 2003, 22:45
Du möchtest Create so lange aufrufen, bis dein fremdes Programm fertig ist, wenn ich das richtig verstanden habe.
Erstens: Wenn du bei klick Button1 dein Objekt kreierst und danach direkt wieder frei gibst, exisitiert dies natürlich auch nicht mehr, also weg damit.

Zweitens: Wenn du in deinen Construktor eine Endlosschleife einbaust, wird dein Objekt nie vollständig kreiert und somit kannst du auch nicht auf das Objekt zugreifen.
Dein Konsolenprogramm wird aber irgend wann mal fertig sein, dann wird das Objekt kreiert und dann kannst du auch auf dein Objekt zugreifen.

Am besten schmeiß diese Abfrage aus Create und schreibe eine neue Funktion. Dann ist dein Objekt auf jeden Fall mal da --> keine Zugriffsverletzung mehr!
Dann baue einfach mal eine Schleife, die auch fertig wird, dann kommst du deiner späteren Anwendung schon näher.

Gruß Pascal
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#15

Re: Warum AccessViolation?

  Alt 12. Aug 2003, 07:20
Delphi-Quellcode:
  TTest = class
  private
    TestString : string;
  public
    constructor create;
    procedure DoSomething;
    procedure ShowString;
  end;

var
  Form1 : TForm1;
  test : TTest;

implementation

{$R *.dfm}

constructor TTest.create;
begin
  inherited;
  TestString := 'Hallo';
end;

procedure TTest.DoSomething;
begin
  while true do
  begin
    Application.ProcessMessages;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  test := TTest.create;
  test.DoSomething;
  test.free;
end;

procedure TTest.ShowString;
begin
  ShowMessage(TestString); // Exception: EAccessViolation
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  test.ShowString;
end;
In deine alten wurde die Instance noch nihct freigegeben so schon.

Schon mal was von TThread's gehört?
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz