AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Zugriffsverletzung durch neues Formular-Objekt
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung durch neues Formular-Objekt

Ein Thema von SebE · begonnen am 10. Jan 2009 · letzter Beitrag vom 13. Jan 2009
Antwort Antwort
Seite 3 von 4     123 4      
nahpets
(Gast)

n/a Beiträge
 
#21

Re: Zugriffsverletzung durch neues Formular-Objekt

  Alt 12. Jan 2009, 16:31
Hallo,

@SebE

bei meinem Delphi 7 funktioniert das Toolbutton1.Enabled := True ohne Probleme.
Du schreibst, Du hättest den Toolbutton auf die Toolbar gezogen, wie geht das? Habe meine Toolbuttons per Rechtsklick und Menüeintrag erstellt. Gibt es da eventuell einen Unterschied zwischen TToolbutton?
Kann mich schwach erinnern, so ein Problem vor längerer Zeit auch mal gehabt zu haben und das die Toolbuttons nur dann funktionierten, wenn ich sie über Rechtsklick auf die Toolbar und Neuer Schalter hinzugefügt hatte.

Lass Dir doch malShowMessage(Sender.ClassName); beim Klick auf den Button anzeigen, eventuell kommst Du so ja dahinter, was da für ein Objekt im Sender steht.
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#22

Re: Zugriffsverletzung durch neues Formular-Objekt

  Alt 12. Jan 2009, 16:38
Ich hab herausgefunden, dass es nicht nur bei ToolButtons passiert, sondern bei allen neuen Objekte, die nicht schon vorhanden sind.

"Draufgezogen" heißt natürlich Rechtsklick -> "Neuer Schalter".

Ich weiß, dass es das richtige Objekt ist, da "TToolButton(Sender).Enabled := false" funktioniert.
Sebastian
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#23

Re: Zugriffsverletzung durch neues Formular-Objekt

  Alt 12. Jan 2009, 17:01
Hallo,
Zitat von SebE:
Ich hab herausgefunden, dass es nicht nur bei ToolButtons passiert, sondern bei allen neuen Objekte, die nicht schon vorhanden sind.

"Draufgezogen" heißt natürlich Rechtsklick -> "Neuer Schalter".

Ich weiß, dass es das richtige Objekt ist, da "TToolButton(Sender).Enabled := false" funktioniert.
so sicher ist das Wissen nicht, auch das (man mag es nicht glauben)
Delphi-Quellcode:
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
  TLabel(Sender).Enabled := False;
  ShowMessage(Sender.ClassName);
end;
funktioniert ohne Exception. Beide haben eine Eigenschaft Enabled und daher funktioniert das.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.273 Beiträge
 
Delphi 10.4 Sydney
 
#24

Re: Zugriffsverletzung durch neues Formular-Objekt

  Alt 12. Jan 2009, 18:50
Hallo,

Delphi-Quellcode:
procedure TfmMain.ToolButton1Click(Sender: TObject);
begin
  ToolButton1.Enabled := true
end;
Wie kannst du auf ToolButton1 klicken,
und dann den gleichen Toolbutton enablen.
Dann muss er ja vorher disabled gewesen sein.

Lösch mal im Object-Inspector das OnClick-Ereignis die Zeile raus.

Vielleicht hast du ja ToolButton1 kopiert incl. dem OnClick Event.
Durch Löschen und erneutem Doppelklick wird ein neues OnClick erzeugt (ToolButton2OnClick z.B.)


Heiko
Heiko
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#25

Re: Zugriffsverletzung durch neues Formular-Objekt

  Alt 12. Jan 2009, 19:26
Zitat:
so sicher ist das Wissen nicht, auch das (man mag es nicht glauben)
Ich werd ja wohl noch erkennen, dass sich die Eigenschaft Enabled des besagten Buttons ändert!

Mein Problem:
Ich kann in meinem bestehenden Projekt keine NEUEN Objekte hinzufügen (egal ob TButton, TToolButton, oder ein Eintrag ins MainMenu).

Ich suche jemanden, der diesen Fehler schon kennt und wie man das Problem lösen kann.

Antworten wie:
Zitat:
Wie kannst du auf ToolButton1 klicken,
und dann den gleichen Toolbutton enablen.
, die mir meine Programmierkenntnisse in Frage stellen, helfen mir überhaupt nicht.
Sebastian
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.273 Beiträge
 
Delphi 10.4 Sydney
 
#26

Re: Zugriffsverletzung durch neues Formular-Objekt

  Alt 13. Jan 2009, 05:55
Hallo,

> Wie kannst du auf ToolButton1 klicken, <
> und dann den gleichen Toolbutton enablen. <

Das sollte kein Angriff auf deine Progtrammierkenntnsse sein.
Dieser Code kommt meistens vom Kopieren einer Komponente,
wobei das OnClick-Event natürlich mit kopiert wird.

Was mich nur gewundert hat, war, dass OnToolBar1Click aufgerufen wird,
und der gerade angeklickte Button aktiviert wird,
d.h. vorher war er deaktiviert, konnte aber trotzdem angeklickt werden.


So ...
Nun zum Problem ...

Schau dir mal deine DFM-Datei an,
vergleiche Sie mit einem anderen Formular
und suche nach Auffälligkeiten.

Vielleicht ist dort ja was schiefgegangen.

Ansonsten solltest du mal sämtlichen Code auskommentieen,
vielleicht machst du ja irgendwas im Speicher der VCL kaputt -> FastMM4


Heiko
Heiko
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#27

Re: Zugriffsverletzung durch neues Formular-Objekt

  Alt 13. Jan 2009, 06:01
Das Ergebnis von ...

Delphi-Quellcode:
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
  ShowMessage(Sender.ClassName);
end;
... wäre ja sicher mal ganz interessant.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#28

Re: Zugriffsverletzung durch neues Formular-Objekt

  Alt 13. Jan 2009, 09:09
Hallo,
Zitat von nuclearping:
Das Ergebnis von ...

Delphi-Quellcode:
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
  ShowMessage(Sender.ClassName);
end;
... wäre ja sicher mal ganz interessant.
bitte Teile uns mal dieses Ergebnis mit, ich weiß aus Erfahrung, dass da schonmal was schief geht, mein entsprechender Vorschlag kam nicht, weil ich an Deinen Fähigkeiten zweifle, sondern weil ich mir an ähnlichen Problemen schon 'nen Wolf gesucht habe.

Was eventuell helfen könnte:

Wenn die DFM als Text gespeichert ist:

In Delphi alle Projekte/Dateien schließen, so dass nur noch das reine Delphi geöffnet ist,
Delphi schließen,
Eine Sicherungskopie der DFM machen,
DFM-Datei in Notepad oder ähnlichem öffnen,
alles markieren und in die Zwischenablage kopieren,
neue Textdatei erstellen,
Zwischenablage dort hineinkopieren,
Speichern unter dem Namen der DFM,
Delphi öffnen,
Projekt öffnen,
prüfen, ob das Problem nun behoben ist.

Es kann schonmal passieren, dass in 'ner DFM irgendwelche Steuerzeichen sind, die man im Editor nicht sieht, die aber beim Kopieren über die Zwischenablage "verschwinden". Habe zugegebenermaßen keine Ahnung, was da dann wirklich passiert.
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#29

Re: Zugriffsverletzung durch neues Formular-Objekt

  Alt 13. Jan 2009, 12:11
Danke für eure Vorschläge...das Mit dem Editor klingt einleuchtend (leider hat's nicht geholfen).
Achso:
ShowMessage(Sender.ClassName); ergibt "TToolBar"
Edit: ergibt "TToolButton"

showmessage(toolbutton1.ClassName) funktioniert ja nicht

EDIT: ES FUNKTIONIERT!!!

Da der Button das letzte Objekt ist, was hinzugefügt wurde, kommt er natürlich ans Ende der Deklarationen...aus Spaß zum Vorletzten Objekt gemacht (um eine Zeile nach oben kopiert) ==> Es läuft.

Aber warum das???
(ihr könnt jetzt an meinen Programmier-Kenntnissen zweifeln )
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.797 Beiträge
 
Delphi 12 Athens
 
#30

Re: Zugriffsverletzung durch neues Formular-Objekt

  Alt 13. Jan 2009, 12:22
Hat das mit den Umlauten Delphi gemacht? Oder warst du das?
Delphi-Quellcode:
    object btOeffnen: TToolButton
      Left = 23
      Top = 0
      Hint = 'Datei '#246'ffnen...'
      Caption = #214'&ffnen'
      ImageIndex = 1
      OnClick = miOeffnenClick
    end
Edit: Mein D7 macht sowas nicht.

Sherlock
Oliver
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 02:25 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