Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Zugriffsverletzung durch neues Formular-Objekt (https://www.delphipraxis.net/127303-zugriffsverletzung-durch-neues-formular-objekt.html)

TBx 12. Jan 2009 13:33

Re: Zugriffsverletzung durch neues Formular-Objekt
 
Hallo SebE,

[quote="SebE"]
Delphi-Quellcode:
NeuerButton.Enabled := <Boolscher Ausdruck>
[quote]
Zitat:

Zitat von SebE
"Ungültiger Ausdruck im Evaluator"?

ich würd mal darauf tippen, dass Dein <Boolscher Ausdruck> fehlerhaft ist.
Hast DU den mal durch ein True oder False ersetzt und dann mal getestet?

Gruß

TBx

hoika 12. Jan 2009 14:17

Re: Zugriffsverletzung durch neues Formular-Objekt
 
Hallo,

0. mehr Quellcode

1.
Hast du vielleicht in der Routine sowas stehen ?

Delphi-Quellcode:
procedure TFirm1.Bla;
var
  ToolButton1: TToolButton;
begin
  ToolButton1.Enabled:= False;
end;
2.
Klingt schon merkwürdig, das ein neuer ToolButton von der IDE ToolButton1 heisst,
und nicht ToolButton2 oder so.

3. weise deinen Bool-Code mal einer lokalen Variablen zu,
und schau dir an, ob es dort schon kracht.

Delphi-Quellcode:
var
  bBool: Boolean;
begin
  bBool:= bla; <- Breakpoint und watchpoint auf ToolButton1.Name
  ToolButton1.bEnabled:= bBool;

Heiko

SebE 12. Jan 2009 14:52

Re: Zugriffsverletzung durch neues Formular-Objekt
 
Danke für eure Antworten.

Wie ich schon geschrieben habe: Ich habe alles gelöscht.
Ich habe die Anweisung in einer Routine (testweise), in der nichts anderes steht
Und mein Boolscher Ausdruck ist (wieder testweise) TRUE oder FALSE.

Es wird vorher nichts anderes Aufgerufen...Es verhält sich so, als ob das Object nur teilweise erstellt wird.

Das Objekt heißt Toolbutton1, weil ich den anderen schon (vor längerem) sinnvolle Namen gegeben habe.

Bin echt am verzweifeln...will aber nicht die gesamte Oberfläche neu erstellen.
Es muss doch eine Ursache geben.

SebE 12. Jan 2009 14:56

Re: Zugriffsverletzung durch neues Formular-Objekt
 
Vergessen zu erwähnen: Ich kann auch nicht lesend darauf zugreifen.

Delphi-Quellcode:
myBool := ToolButton1.Enabled

SebE 12. Jan 2009 15:04

Re: Zugriffsverletzung durch neues Formular-Objekt
 
Hab das Problem nochmal einkreisen können:

So kracht's:
Delphi-Quellcode:
procedure TfmMain.ToolButton1Click(Sender: TObject);
begin
ToolButton1.Enabled := true
end;
Und so läuft's:
Delphi-Quellcode:
procedure TfmMain.ToolButton1Click(Sender: TObject);
begin
ttoolbutton(sender).Enabled := true
end;
Kann es sein, dass der Name "Toolbutton1" falsch zugewiesen wird?

Uwe Raabe 12. Jan 2009 15:07

Re: Zugriffsverletzung durch neues Formular-Objekt
 
Zitat:

Zitat von SebE
Überwachte Ausdrücke:
"ToolButton1" ergibt "([], $6A00A345)"

Also bei mir steht da schon wesentlich mehr:

([csInheritable], False, (0, 0), (11, 11), (0, 0), 0, 0, 23, 22, $A383E0)

Aber ohne etwas mehr von deinem Code kann man da gar nichts sagen.

DeddyH 12. Jan 2009 15:07

Re: Zugriffsverletzung durch neues Formular-Objekt
 
Wirf doch mal einen Blick in die Klassendefinition Deines Formulars sowie dessen *.dfm. Irgendetwas muss da ja komisch sein.

TBx 12. Jan 2009 15:12

Re: Zugriffsverletzung durch neues Formular-Objekt
 
mal davon abgesehen, dass der Code niemals ausgeführt wird (einen disabled Button kann man nicht klicken) sieht mir das ganz so aus, als hieße die Komponente eben nicht Toolbutton1.
Laß Dir doch mal den Namen ausgeben:

Delphi-Quellcode:
procedure TfmMain.ToolButton1Click(Sender: TObject);
begin
  showmessage (TToolButton(sender).name);
end;
Bei der Gelegenheit siehst Du dann auch mal, wie oft die procedure aufgerufen wird und von wem. Es muß ja nicht unbedingt an dem Toolbutton liegen.

Ansonsten gib uns einfach mal ein bisserl mehr Code, ich hab bei den Klaskugelwerken gerade kein Guthaben mehr ;-)

Gruß

Thomas

DeddyH 12. Jan 2009 15:14

Re: Zugriffsverletzung durch neues Formular-Objekt
 
[OT] Thomas, nanu? Namen ändern lassen oder Zweitaccount? ;) [/OT]

SebE 12. Jan 2009 15:16

Re: Zugriffsverletzung durch neues Formular-Objekt
 
Also Klassendefinition meiner TForm ist korrent...alles vorhanden.
In der *.dfm ist auch alles drin.

@TBx:

bei

Delphi-Quellcode:
procedure TfmMain.ToolButton1Click(Sender: TObject);
begin
ttoolbutton(sender).Enabled := true
end;
ist der Button NACH dem klicken nicht mehr "klickbar"...also es funktioniert

EDIT: Es funktioniert auch bei anderen NEUEN Objekten nicht...egal was ich hinzufüge.
(Aber NUR im Hauptformular)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 Uhr.
Seite 2 von 4     12 34      

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