Autor Beitrag
Thunder
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 145

WinXP
D6 Pers
BeitragVerfasst: Mi 10.12.03 18:24 
Moin,

Hab ne Autostart-Prozedur die einfach net funzt.

Kommt immer "Error in module..AutoHG.exe...read 0000000"

ausblenden volle Höhe Delphi-Quelltext
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:
//Autostart-Prozedur
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:
ausblenden 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 user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt


Zuletzt bearbeitet von Thunder am Mi 10.12.03 19:52, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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



BeitragVerfasst: Mi 10.12.03 20:20 
Thunder hat folgendes geschrieben:
ausblenden 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:
ausblenden 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
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 145

WinXP
D6 Pers
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: 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
ausblenden 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



BeitragVerfasst: Do 11.12.03 08:43 
Wenn Thunder den Text fest im Programm einbaut, benötigt er gar keine der String-Variablen:
ausblenden 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:
ausblenden Delphi-Quelltext
1:
MB_OK or MB_ICONERROR					

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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 145

WinXP
D6 Pers
BeitragVerfasst: Do 11.12.03 16:29 
ok.

aber die prozedur funzt immernoch net...
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 145

WinXP
D6 Pers
BeitragVerfasst: 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



BeitragVerfasst: 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.