Autor Beitrag
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: So 13.07.08 13:46 
user profile iconBlawen 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: So 13.07.08 13:52 
user profile iconZeitGeist87 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: So 13.07.08 13:59 
user profile iconBlawen 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: So 13.07.08 14:01 
user profile iconBlawen hat folgendes geschrieben:
user profile iconZeitGeist87 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 460



BeitragVerfasst: Mo 14.07.08 08:39 
Also habs jetzt mal so probiert:
ausblenden 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 220
Erhaltene Danke: 1

Win XP, VISTA, WIndows 7
Delphi 2007/2010 Prof
BeitragVerfasst: 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