| Autor |
Beitrag |
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: So 13.07.08 13:39
existiert das formular zum zeitpunkt vom speichern?
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: So 13.07.08 13:46
Blawen hat folgendes geschrieben: | Vielleicht übersehe ich ja was, aber irgendwie passt da etwas nicht ganz zusammen:
| Zitat: | | ini:=TIniFile.Create(ExtractFilePath(FDllPath)+'Options.ini'); |
| Zitat: | Mach mal showmessage(FDllpath);!!
--> Pfad: C:\Programme\QIP Infium\Plugins\DBox2\DBox2.dll |
Irgendwie kommt aktuell bei dieser Variante "C:\Programme\QIP Infium\Plugins\DBox2\DBox2.dllOptions.ini" zustande... |
Falsch!
Wenn du dir ExtractFilePath einmal anschaust, wirst du feststellen, dass es den Pfad bist zum letzten Delimiter ausgibt!
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
Blawen
      
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: So 13.07.08 13:52
ZeitGeist87 hat folgendes geschrieben: | Falsch!
Wenn du dir ExtractFilePath einmal anschaust, wirst du feststellen, dass es den Pfad bist zum letzten Delimiter ausgibt! |
Ist mir schon klar!
Aber wieso enthält FDllpath "DBox2.dll"? (--> Antwort auf Deine Nachfrage)
| Zitat: | Pfad:
C:\Programme\QIP Infium\Plugins\DBox2\DBox2.dll |
_________________ Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: So 13.07.08 13:59
Blawen hat folgendes geschrieben: | Ist mir schon klar!
Aber wieso enthält FDllpath "DBox2.dll"? (--> Antwort auf Deine Nachfrage)
| Zitat: | Pfad:
C:\Programme\QIP Infium\Plugins\DBox2\DBox2.dll |
|
weil er nur geschrieben hat showmessage(FDLLPath) und nicht Showmessage(ExtractFilePath(FDllPath));
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: So 13.07.08 14:01
Blawen hat folgendes geschrieben: | ZeitGeist87 hat folgendes geschrieben: | Falsch!
Wenn du dir ExtractFilePath einmal anschaust, wirst du feststellen, dass es den Pfad bist zum letzten Delimiter ausgibt! |
Ist mir schon klar!
Aber wieso enthält FDllpath "DBox2.dll"? (--> Antwort auf Deine Nachfrage)
| Zitat: | Pfad:
C:\Programme\QIP Infium\Plugins\DBox2\DBox2.dll |
|
Wenn du die Posting weiter oben beachtest wirst du auf showmessage(FDLLpath); stossen.
Auf das hat sich die komplette Angabe des Pfades bezogen 
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
DiamondDog 
      
Beiträge: 460
|
Verfasst: Mo 14.07.08 08:39
Also habs jetzt mal so probiert:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Button2Click(Sender: TObject); var ini:TIniFile; begin showmessage(FDllpath+'\Options.ini'); ini:=TIniFile.Create(ExtractFilePath(FDllPath)+'\Options1.ini'); ini.WriteString('main','Ip',Edit2.Text); ini.Free; end; | dann oben in options hab ich unter private eingefügt:
Delphi-Quelltext 1:
| FDllPath : WideString; | also so funktioniert das, aber Problem dabei ist das er die ini direct auf c:\ erstellt. Mach ich den Pafd wieder zur dll dann kommt wieder die Zugriffsverletzung.
Hab auch mal den Ordner auf Schreibschutzgeprüft hat er aber nicht genausowenig wie die ini.
|
|
uko
      
Beiträge: 220
Erhaltene Danke: 1
Win XP, VISTA, WIndows 7
Delphi 2007/2010 Prof
|
Verfasst: Mo 14.07.08 09:01
Guten Morgen,
Frage: hast Du denn FDLLPath auch irgendwo mal gesetzt? Ausserdem: wieso WideString? Um auf die Schutzverletzung zurückzukommen: Ursprünglich hast Du ja die die INI aus einer TQipPlugin Methode schreiben wollen. Ist in dieser denn die Form überhaupt bekannt und vorallem zum Zeitpunkt des Speicherns noch gültig?
Jetzt bau's mal wieder so um, bist Du bei der Schutzverletzung bist und dann nimm den Debugger und step mal durch. Dann schau Dir an, an welcher Stelle die Exception geworfen wird: schon beim Erzeugen der TIniFile Instanz oder erst beim ersten Schreibzugriff. Wenn beim Schreibzugriff: speicher den Wert, den Du schreiben willst in eine temporäre Variable und schreib diese in die INI. Auf diese Weise kannst Du nämlich schon sehen, ob Du überhaupt einen Wert zum Speichern hast, wenn Du mit dem Debugger dann drübergehst.
Grüße,
Uli
|
|
|