Autor Beitrag
Mike19
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Mo 11.05.09 16:27 
Hallo an alle,

ich habe folgendes Problem:

bei der Einbindung einer DLL zur Laufzeit wird mir immer der Fehler gebracht, dass er eine schreibgeschützte Datei nicht öffnen kann.

wenn ich mir dann die Eigenschaften des Ordners ansehe steht tatsächlich, dass Alle Dateien schreibschutz haben. Entferne ich diesen(selbst als Admin) und drücke auf übernehmen ist der Schreibschutz weg. Wenn ich auf "OK" drücke und dann wieder auf Eigenschaften gehe, ist der Schreibschutz wieder da.

Hab auch schon versucht die Dateien auf einem anderen Laufwerk zu speichern, kommt aber der der gleiche Fehler.

An was kann das liegen ?

Danke schon im Voraus

Micha
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 11.05.09 16:32 
Das kam bei mir unter XP und insbesondere Vista durchaus einmal vor. Von einer Parallelinstallation aus klappte es dann (jeweils von Vista oder XP umgekehrt aus), mit Windows 7 geht es absolut problemlos.

Das Problem war bei mir, dass ich irgendwie nicht die vollen Rechte hatte trotz Adminbestätigung. Unter Vista ging nicht einmal die Übernahme des Besitzers. Eine Lösung im selben System habe ich weder bei XP noch bei Vista gefunden.
Mike19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Mo 11.05.09 16:35 
Danke,

es könnte sein, weil ich neben Vista die Windows 7 installiert habe
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 11.05.09 16:42 
Dann wechsele zu Windows 7 und setze doch volle Rechte für "Jeder". Wenn du die Dateien dort erstellt hast, hat dein Vista-Account daran keine Rechte.
Mike19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Mo 11.05.09 17:22 
Nun habe ich windows 7 entfernt, aber immer noch der gleiche Fehler

"[Pascal Error] ustar.pas(40): E2129 Cannot assign to a read-only property"
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mo 11.05.09 17:24 
Äh.. der Fehler besagt, dass du versuchst, eine Eigenschaft zu schreiben, die nur zum Lesen gedacht ist.
Das ganze hat nichts mit einer schreibgeschützen DLL zu tun.

In welcher Zeile / Prozedur taucht der Fehler denn auf?

_________________
PROGRAMMER: A device for converting coffee into software.
Mike19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Mo 11.05.09 17:27 
ausblenden Delphi-Quelltext
1:
Handle:=Loadlibrary(Pchar('Dienstplan.dll'));					
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mo 11.05.09 17:29 
Benenn Handle mal um.

Erklärung: Das Formular (in dem du dich wahrscheinlich befindest) hat bereits eine Eigenschaft Handle, die man allerdings nicht verändern kann (daher der Fehler).
Wenn du nun noch eine eigene Variable mit diesem Namen hast, weiß Delphi nicht, welche es nehmen soll, und versucht es erstmal mit dem vom Formular -> Fehler.

_________________
PROGRAMMER: A device for converting coffee into software.
Mike19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Mo 11.05.09 17:35 
Begreif ich aber nicht, Handle ist eine Variable THandle und so habe ich es schon oft gemacht und es gab keine Fehler. Der eigentlich von Windows kommt. Die Datei ist ja schreibgeschützt und das Attribut lässt sich nicht ändern.
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mo 11.05.09 17:50 
user profile iconMike19 hat folgendes geschrieben Zum zitierten Posting springen:
"[Pascal Error] ustar.pas(40): E2129 Cannot assign to a read-only property"

Diese Fehlermeldung kommt vom Compiler, also von Delphi.
Da ist Windows, und somit die eigentliche DLL noch gar nicht im Spiel, somit ist es auch egal ob diese Schreibgeschützt ist oder nicht.

Außerdem wüsste ich gerade nicht, was an einer schreibgeschützten DLL schlimm sein soll - du willst die doch nur verwenden, also lesen.

Alternative zum umbenennen wäre, dass du daraus eine Prozedur machst, und keine Methode des Formulars.

_________________
PROGRAMMER: A device for converting coffee into software.
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Mo 11.05.09 18:10 
Also ich würde mich dann mal an dieser Methode probieren, ob Du den Schreibschutz damit nicht ganz rausbekommst.
Mike19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Mo 11.05.09 19:14 
Zitat:
Diese Fehlermeldung kommt vom Compiler, also von Delphi.
Da ist Windows, und somit die eigentliche DLL noch gar nicht im Spiel, somit ist es auch egal ob diese Schreibgeschützt ist oder nicht.


ist mir schon klar, aber warum diese Meldung und warum kann die Rechte der Ordner selbst als admin nicht ändern ?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 11.05.09 19:20 
user profile iconffgorcky hat folgendes geschrieben Zum zitierten Posting springen:
Also ich würde mich dann mal an dieser Methode probieren, ob Du den Schreibschutz damit nicht ganz rausbekommst.
Nochmal: Der Fehler hat rein gar nichts mit der DLL zu tun, siehe oben...
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 12.05.09 07:37 
Ein Formular hat die Eigenschaft Handle. Wenn du jetzt eine globale Variable Handle deklarierst und diese in einer Methode deines Formulares verwenden willst, wird sie von der gleichnamigen Eigenschaft des Formulares überdeckt. Und die Eigenschaft Handle des Formulares ist eben nur lesbar, aber nicht beschreibbar.