| Autor |
Beitrag |
Thunder
      
Beiträge: 145
WinXP
D6 Pers
|
Verfasst: Mi 10.12.03 18:24
Moin,
Hab ne Autostart-Prozedur die einfach net funzt.
Kommt immer "Error in module..AutoHG.exe...read 0000000"
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| procedure Autostart; var s1,s2: String; begin If FileExists(ExtractFilePath(ParamStr(0)) + 'start.ini') then begin try Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'start.ini'); for i := 0 to Anzahl Do Dateien.Add(Ini.ReadString('Bilder', 'Bild' + IntToStr(i), '')); Zufall := Ini.ReadBool('Optionen', 'Zufall', True); If Zufall = True then Repeat i := Random(Dateien.Count) Until i <> Ini.ReadInteger('Bilder', 'LetztesBild', 0) Else i := Ini.ReadInteger('Bilder', 'LetztesBild', 0) + 1; SetBackground(Dateien[i]); Ini.WriteInteger('Bilder', 'LetztesBild', i); finally Ini.Free; end; end Else begin s1 := 'Die Datei mit den Informationen zum automatischen Wechsel beim Windows-Start (start.ini) wurde nicht gefunden.'; s2 := 'Bitte stellen Sie sicher, dass die Datei im Stammverzeichnis von AutoHG ist oder führen Sie die entsprechenden Einstellungen in AutoHG erneut aus um die Datei durch AutoHG erstellen zu lassen.'; Application.Messagebox(PChar(s1 + #13 + #13 + s2), 'Informationsdatei nicht gefunden', 0+16); Application.Terminate; end; end; |
WO IS DER GOTTVERDAMMTE FEHLER?
die Start.ini sieht so aus:
Quelltext 1: 2: 3: 4: 5: 6: 7:
| [Bilder] Anzahl=2 Bild0=C:\Bilder\1.bmp Bild1=C:\Bilder\2.bmp Bild2=C:\Bilder\3.bmp [Optionen] Zufall=0 |
Moderiert von Peter Lustig: Code- durch Delphi-Tags ersetzt
Zuletzt bearbeitet von Thunder am Mi 10.12.03 19:52, insgesamt 1-mal bearbeitet
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mi 10.12.03 20:05
In welcher Zeile tritt der Fehler denn auf?
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 10.12.03 20:20
| Thunder hat folgendes geschrieben: | Delphi-Quelltext 1: 2:
| try Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'start.ini'); | |
Üblich ist, dass das TIniFile-Objekt vor dem try erzeugt wurde.
| Zitat: | Delphi-Quelltext 1: 2:
| for i := 0 to Anzahl Do Dateien.Add(Ini.ReadString('Bilder', 'Bild' + IntToStr(i), '')); | |
Und wo wird die "Anzahl" ermittelt? So wie ich das sehe, ist das auch ein Eintrag in deiner INI. Nur du liest ihn nicht aus - jedenfalls nicht in dieser Prozedur.
| Zitat: | Zufall := Ini.ReadBool('Optionen', 'Zufall', True);
If Zufall = True then |
Ein simples
Delphi-Quelltext 1:
| if Ini.ReadBool('Optionen','Zufall',true) then |
würde es auch tun.
Die beiden String-Variablen "s1" und "s2" kannst du auch weglassen, wenn du den Text direkt an die MessageBox übergibst. Ob das nun deine Probleme löst, weiß ich nicht, aber:
| Zitat: | | WO IS DER GOTTVERDAMMTE FEHLER? |
Fluchen hat noch nie was gebracht.
|
|
Thunder 
      
Beiträge: 145
WinXP
D6 Pers
|
Verfasst: Mi 10.12.03 21:26
stimmt. mit Anzahl könnte der fehler sein.
und das mit s1 und s2 muss sein, da ich ja noch #13 verwende für zeilenumbruch und der text is für PChar zulang und PChar akzeptiert das #13 net...
|
|
CenBells
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: Do 11.12.03 00:10
hallo,
dennoch benötigst du nur eine der beiden variablen s1 und s2. Du kannst den gesammten text in die eine Variable schreiben und zusätzlich ausserhalb der Hochkommata #13#10 einfügen.
Beispiel Delphi-Quelltext 1:
| s1 := 'Dies ist die erste Zeile'#13#10'Dies ist die zweite Zeile'; |
Gruß
Ken
_________________ Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 11.12.03 08:43
Wenn Thunder den Text fest im Programm einbaut, benötigt er gar keine der String-Variablen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| Application.Messagebox( pChar('Die Datei mit den Informationen zum automatischen Wechsel ' + 'beim Windows-Start (start.ini) wurde nicht gefunden.' + #13#10 + 'Bitte stellen Sie sicher, dass die Datei im Stammverzeichnis von ' + 'AutoHG ist oder führen Sie die entsprechenden Einstellungen in ' + 'AutoHG erneut aus um die Datei durch AutoHG erstellen zu lassen.'), 'Informationsdatei nicht gefunden', MB_OK or MB_ICONERROR); |
@Thunder:
Delphi-Quelltext
ist aussagekräftiger und auch in absehbarer Zukunft noch verständlicher als
0 + 16.
Nur wenn er das Programm vielleicht übersetzbar machen will, bzw. wenn er generell alle Meldungen an einem bestimmten Punkt im Programm haben möchte (so mache ich das), dann empfiehlt sich entweder eine Konstante bzw. (für die Übersetzung) ein Ressourcestring, der nach dem gleichen Muster oben längenmäßig so aufgeteilt werden kann, dass Delphi nicht meckert.
|
|
Thunder 
      
Beiträge: 145
WinXP
D6 Pers
|
Verfasst: Do 11.12.03 16:29
ok.
aber die prozedur funzt immernoch net...
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 11.12.03 18:10
Ich geh mal davon aus, dass dieses AutoHG-Programm das Hintergrundbild von Windows automatisch wechseln soll? Wenn du Interesse hast, poste ich ein nonVCL-Beispiel. Kompiliert, glaube ich, ~20k groß. Da wählst du einen Ordner mit Pics aus, und das Programm wählt dann zufällig eins davon.
Funktioniert mit und ohne Active Desktop, und es basiert auf einem Freeware/Open-Source-Programm in der DP.
|
|
Thunder 
      
Beiträge: 145
WinXP
D6 Pers
|
Verfasst: Fr 12.12.03 19:27
alter dafür hab ich mir nich die arbeit gemacht..
hab aber jetz den fehler... Dateien.Add funzte net so irgendwie...hab aus TStrings TStringList gemacht und jetz gehts.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 12.12.03 21:20
Na ja,  , falls du deine Meinung mal änderst: Hintergrundbild ändern. Irgendwo in dem Beitrag steckt ein Posting + Anhang von mir.
|
|