![]() |
Re: Zugriffsverletzung durch neues Formular-Objekt
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 mal
Delphi-Quellcode:
beim Klick auf den Button anzeigen, eventuell kommst Du so ja dahinter, was da für ein Objekt im Sender steht.
ShowMessage(Sender.ClassName);
|
Re: Zugriffsverletzung durch neues Formular-Objekt
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. |
Re: Zugriffsverletzung durch neues Formular-Objekt
Hallo,
Zitat:
Delphi-Quellcode:
funktioniert ohne Exception. Beide haben eine Eigenschaft Enabled und daher funktioniert das.
procedure TForm1.ToolButton1Click(Sender: TObject);
begin TLabel(Sender).Enabled := False; ShowMessage(Sender.ClassName); end; |
Re: Zugriffsverletzung durch neues Formular-Objekt
Hallo,
Delphi-Quellcode:
Wie kannst du auf ToolButton1 klicken,
procedure TfmMain.ToolButton1Click(Sender: TObject);
begin ToolButton1.Enabled := true end; 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 |
Re: Zugriffsverletzung durch neues Formular-Objekt
Zitat:
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:
|
Re: Zugriffsverletzung durch neues Formular-Objekt
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 |
Re: Zugriffsverletzung durch neues Formular-Objekt
Das Ergebnis von ...
Delphi-Quellcode:
... wäre ja sicher mal ganz interessant. ;)
procedure TForm1.ToolButton1Click(Sender: TObject);
begin ShowMessage(Sender.ClassName); end; |
Re: Zugriffsverletzung durch neues Formular-Objekt
Hallo,
Zitat:
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. |
Re: Zugriffsverletzung durch neues Formular-Objekt
Danke für eure Vorschläge...das Mit dem Editor klingt einleuchtend (leider hat's nicht geholfen).
Achso:
Delphi-Quellcode:
ergibt "TToolBar"
ShowMessage(Sender.ClassName);
Edit: ergibt "TToolButton"
Delphi-Quellcode:
funktioniert ja nicht
showmessage(toolbutton1.ClassName)
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 :wink: ) |
Re: Zugriffsverletzung durch neues Formular-Objekt
Hat das mit den Umlauten Delphi gemacht? Oder warst du das?
Delphi-Quellcode:
Edit: Mein D7 macht sowas nicht.
object btOeffnen: TToolButton
Left = 23 Top = 0 Hint = 'Datei '#246'ffnen...' Caption = #214'&ffnen' ImageIndex = 1 OnClick = miOeffnenClick end Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:31 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