![]() |
EAccess Violation Fehler
Liste der Anhänge anzeigen (Anzahl: 2)
hab schon wieder nen prob und es nich in der suche verständlich erklärt gefunden,
nen bild von dem fehler und der anzeige bei welcher stelle es sein soll hab ich mit rangehangen, und noch ein bissl quelltext - ich raff den fehlker einfach nich
Code:
und von der stelle wo die unit3 aufgerufen wird
unit Unit3;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, jpeg; type TStrassenInfo = class(TForm) Panel1: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage; procedure FormActivate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var StrassenInfo: TStrassenInfo; k,m:byte; implementation uses Unit1; {$R *.DFM} procedure TStrassenInfo.FormActivate(Sender: TObject); var x:byte; begin For x:=1 to 4 do (Findcomponent('Image'+intToStr(x))as TImage).visible:=false; k:=Unit1.k; (Findcomponent('Image'+intToStr(k+1))as TImage).visible:=true; For x:=1 to 28 do If Unit1.Strasse[x].nr = Unit1.Spiela[k].stand then m:=x; Panel1.Caption:=(Unit1.Strasse[m].Name); If Unit1.Strasse[m].verkauft = 0 then BitBtn1.enabled:=true; end; procedure TStrassenInfo.BitBtn1Click(Sender: TObject); begin (Form1.Findcomponent('combobox'+intToStr(Unit1.k))as Tcombobox).items.add(Unit1.Strasse[m].Name); Unit1.Spiela[k].Guthaben:=(Unit1.Spiela[k].Guthaben)-(Unit1.Strasse[m].Wert); (Form1.Findcomponent('panel'+intToStr(6+k))as TPanel).caption:=floattostr(Spiela[k].Guthaben); BitBtn1.enabled:=false; Unit1.Strasse[m].verkauft:=1; end; procedure TStrassenInfo.BitBtn2Click(Sender: TObject); begin Strasseninfo.close; end; end.
Code:
Form3 hab ich Strasseninfo genannt
procedure stehen(var p,q,k:byte);
var x:byte; begin . . . For x:=1 to 4 do begin If k <> x then If Spiela[k].stand = Spiela[x].stand then begin p:=p+5; q:=q+5; end; end; For x:=1 to 28 do If Strasse[x].nr = Spiela[k].stand then StrassenInfo.show; end; |
Re: EAccess Violation Fehler
unit3 in die Uses List aufnehmen
|
Re: EAccess Violation Fehler
is sie schon
|
Re: EAccess Violation Fehler
Wie ist Spiela definiert?
|
Re: EAccess Violation Fehler
Hier ist gefährlicher Code:
Delphi-Quellcode:
Es könnte ja sein, dass es Image4 nicht gibt; dann Zugriffsverletzung.
For x:=1 to 4 do
(Findcomponent('Image'+intToStr(x))as TImage).visible:=false; so wird die Sache entschärft:
Delphi-Quellcode:
var
c : TComponent; ... For x:=1 to 4 do begin c := Findcomponent('Image'+intToStr(x)); Assert(Assigned(c)); (c as TImage).visible:=false; end; |
Re: EAccess Violation Fehler
gute idee, habe jetze die stelle entschärft und der fehler kommt nich mehr so zeitig,
allerdings is jetze einer 100%ig hier an der stelle:
Delphi-Quellcode:
sobald ich diesen button drücke verabschiedet sich delphi^^
procedure TStrassenInfo.BitBtn1Click(Sender: TObject);
begin (Form1.Findcomponent('combobox'+intToStr(Unit1.k))as Tcombobox).items.add(Unit1.Strasse[m].Name); Unit1.Spiela[k].Guthaben:=(Unit1.Spiela[k].Guthaben)-(Unit1.Strasse[m].Wert); (Form1.Findcomponent('panel'+intToStr(6+k))as TPanel).caption:=floattostr(Spiela[k].Guthaben); BitBtn1.enabled:=false; Unit1.Strasse[m].verkauft:=1; end; |
Re: EAccess Violation Fehler
hab die zeile, is die hier:
Delphi-Quellcode:
aber warum??
(Form1.Findcomponent('combobox'+intToStr(Unit1.k))as Tcombobox).items.add(Unit1.Strasse[m].Name);
|
Re: EAccess Violation Fehler
Das ist doch dasselbe in grün.
|
Re: EAccess Violation Fehler
was is mit grün??
|
Re: EAccess Violation Fehler
Ich meinte damit, Du kannst den Code von shmia doch hierher übertragen.
|
Re: EAccess Violation Fehler
das is aber ne komplett andere stelle (häh???)
|
Re: EAccess Violation Fehler
Das hat doch mit der Stelle nichts zu tun. Wenn es z.B. die ComboBox4 nicht gibt, knallt es. Also wieder prüfen, wie shmia demonstriert hat.
|
Re: EAccess Violation Fehler
Ja, aber das Prinzip ist das Selbe.
Was war Dein Problem am Anfang? Das Du versucht hast auf ein Image zuzugreifen, daß nicht existiert. Wie wurde es entschärft? Indem man nicht einfach blind versucht zuzugreifen, sondern erstmal via Assigned schaut ob das Objekt überhaupt existiert. Jetzt übertrag dieses Vorgehen, auf deinen jetzigen Fehler. Und ja, das solltest Du selbst machen. Sonst werden immer Leute in Foren für Dich programmieren und niemals Du selbst. |
Re: EAccess Violation Fehler
@wido: :thumb: , das war auch mein Gedanke.
|
Re: EAccess Violation Fehler
ich hatte es nich so entschärft wie er es vorgegeben hatte^^,
ich wusste zwar was er meinte aber war damit für mein prog nich zufrieden, habs jetze anders gemacht und läuft auch stabil bis auf ein paar kleinigkeiten aber das lässt sich auch beheben trotzdem danke lg Bx3 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 Uhr. |
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