AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm stürzt bei OpenDialog ab

Ein Thema von Thor500 · begonnen am 11. Mär 2013 · letzter Beitrag vom 12. Mär 2013
Antwort Antwort
Seite 1 von 3  1 23      
Thor500

Registriert seit: 26. Aug 2010
13 Beiträge
 
#1

Programm stürzt bei OpenDialog ab

  Alt 11. Mär 2013, 10:27
Hallo Leute,

ich habe ein kleines Problem mit dem OpenDialog bei Lazarus. Und zwar habe ich, testweise, nur ein Formular genommen, dort einen OpenDialog1 platziert und einen Button1, auch nicht umbenannt. Dann habe ich beim Ereignis Button1.Click folgenden Code eingefügt:

OpenDialog1.Execute;

Führe ich dies in der IDE aus, kann funktioniert alles Super, auch die Zugriff auf die Windows 7 Bibliotheken unter den Favoriten (auch außerhalb der IDE). Wenn ich die erzeugte exe nun auf einem anderen Windows 7 ausführe, außerhalb der IDE, weil ich die dort nicht installieren kann, dann stürzt das Programm beim Zugriff auf die Win7 Bibliotheken ab. Ohne Fehlermeldung.

Beide Rechner haben Windows 7 Enterprise 64 Bit. Habt Ihr da noch eine Idee, warum das so passiert und wie ich das Lösen kann? Ich habe bei dem Programm, welches ich entwickle erst mal so gelöst das Initial-Dir auf C:\ zu stellen, damit das Programm nicht abstürzt, sollte OpenDialog in einer Bibliothek initialisiert werden, denn dann würde das Programm abstürzen.

Grüße
Florian
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#2

AW: Programm stürzt bei OpenDialog ab

  Alt 11. Mär 2013, 11:41
Ich vermute mal, dass irgendein Preview Handler Probleme macht. Ich konnte dieses Problem mal lösen, in dem ich das Benutzerprofil einfach neu angelegt habe...
  Mit Zitat antworten Zitat
Thor500

Registriert seit: 26. Aug 2010
13 Beiträge
 
#3

AW: Programm stürzt bei OpenDialog ab

  Alt 11. Mär 2013, 11:57
Hallo,

danke für die Info. Allerdings wurde dies, wenngleich aus einem anderen Grund, bereits getan. Das Profil ist niegel nagel neu. Aber danke für die Idee.

Hast du ggf. noch weitere Ideen? Eine Möglichkeit die Bibliotheken auszublenden gibt es ja nicht, oder?

Grüße
Florian
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Programm stürzt bei OpenDialog ab

  Alt 11. Mär 2013, 11:59
HI

Bin zwar selber noch ein Anfänger aber vielleicht könnte es ja an so etwas liegen:

- Zu wenig Benutzerrechte der Delphi Anwendung? (Daher funktioniert es evt nur in der IDE)
- Könnte es sein, wenn der Windows Bibliotheken andere Pfade zugewiesen wurde als standartmässig voreingestellt waren (zB anstatt c:/user/pictures zu: F:/Bilder)?
- Hilft es / macht es einen Unterschied, wenn du den Opendialog aufruf in einem Try / Except schreibst?
- Ich rufe den Opendialog immer so auf:
Delphi-Quellcode:
If opendialog1.execute=true then begin
edit1.text:=opendialog1.filename);
end;
Keine Ahnung ob etwas helfen könnte. Aber wer weis...
Robert
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#5

AW: Programm stürzt bei OpenDialog ab

  Alt 11. Mär 2013, 12:03
Ich gehe immer so vor, dass ich mir den ProcessMonitor downloade / starte. Das Programm spuckt dir alle möglichen I/O Zugriffe durch das Betriebssystem aus.
Dort setze ich einen entsprechenden Filter für mein Programm.
Dann führe ich in dem Programm die Problemstelle durch und schaue, was genau Windows an dieser Stelle alles so macht... Dort werden zwar immer noch sehr viele Einträge stehen (z.B. die von Windows' drwatson usw.) aber irgendwann müsste auch das Problemkind auftauchen.

Einen Versuch ist's wert.
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#6

AW: Programm stürzt bei OpenDialog ab

  Alt 11. Mär 2013, 12:07
OT:

- Ich rufe den Opendialog immer so auf:
Delphi-Quellcode:
If opendialog1.execute=true then begin
edit1.text:=opendialog1.filename);
end;
Viel besser wäre allerdings

Delphi-Quellcode:
If (opendialog1.execute) then begin
  edit1.text := opendialog1.filename);
end;
execute gibt bereits einen Boolean-Typ zurück. Nochmals auf true zu überprüfen, wäre "doppelt gemoppelt" und auch aus anderen Gründen nicht zu empfelen...
wenn man die ganze Sache dann weiterspinnt, könnte man auch schreiben
Delphi-Quellcode:
If ((((opendialog1.execute=true)=true)=true)=true) then begin
edit1.text:=opendialog1.filename);
end;
Macht wenig Sinn, oder?
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Programm stürzt bei OpenDialog ab

  Alt 11. Mär 2013, 12:10
Aha Danke. Muss ich gleich bei mir ändern

OT:

- Ich rufe den Opendialog immer so auf:
Delphi-Quellcode:
If opendialog1.execute=true then begin
edit1.text:=opendialog1.filename);
end;
Viel besser wäre allerdings

Delphi-Quellcode:
If (opendialog1.execute) then begin
  edit1.text := opendialog1.filename);
end;
execute gibt bereits einen Boolean-Typ zurück. Nochmals auf true zu überprüfen, wäre "doppelt gemoppelt" und auch aus anderen Gründen nicht zu empfelen...
wenn man die ganze Sache dann weiterspinnt, könnte man auch schreiben
Delphi-Quellcode:
If ((((opendialog1.execute=true)=true)=true)=true) then begin
edit1.text:=opendialog1.filename);
end;
Macht wenig Sinn, oder?
Robert
  Mit Zitat antworten Zitat
Thor500

Registriert seit: 26. Aug 2010
13 Beiträge
 
#8

AW: Programm stürzt bei OpenDialog ab

  Alt 11. Mär 2013, 12:10
- Zu wenig Benutzerrechte der Delphi Anwendung? (Daher funktioniert es evt nur in der IDE)
Beide Rechner haben nur Benutzerrechte, keine Administratorrechte.

- Könnte es sein, wenn der Windows Bibliotheken andere Pfade zugewiesen wurde als standartmässig voreingestellt waren (zB anstatt c:/user/pictures zu: F:/Bilder)?
Die Pfade sind bei beiden Rechner die Standardmäßigen von Windows

- Hilft es / macht es einen Unterschied, wenn du den Opendialog aufruf in einem Try / Except schreibst?
Ein Try/Except habe ich noch nicht probiert, werde es mal machen

- Ich rufe den Opendialog immer so auf:
Delphi-Quellcode:
If opendialog1.execute=true then begin
edit1.text:=opendialog1.filename);
end;
IMHO habe ich keine Aktion in meinem Testprogramm, welche sich auf den FileName bezieht. Außerdem tritt die Exception schon auf, bevor von opendialog1 irgendwas zurückgegeben wird.



Delphi-Quellcode:
If (opendialog1.execute) then begin
  edit1.text := opendialog1.filename);
end;
Zumal da auch eine Klammer zu vel ist, doer?

@Morphie:
Werde das mal auspropieren, mal sehen inwieweit meine Userrechte da ausreichen
  Mit Zitat antworten Zitat
Thor500

Registriert seit: 26. Aug 2010
13 Beiträge
 
#9

AW: Programm stürzt bei OpenDialog ab

  Alt 11. Mär 2013, 12:16
Jap, wie ich es mir schon gedacht habe, kann ich ohne Adminrechte mit dem ProcessMonitor nichts anfangen, da gibt es sicherlich auch keine Möglichkeit das ohne Adminrechte zu machen?!
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#10

AW: Programm stürzt bei OpenDialog ab

  Alt 11. Mär 2013, 12:18
Nein, der ProcessMonitor braucht Administrator Rechte.
Gibt es dort keinen Admin, der dich dabei unterstützen könnte?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 09:53 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