Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.031 Beiträge
 
Delphi 12 Athens
 
#51

Re: Manifest-Creator

  Alt 25. Mai 2010, 10:46
Zitat von taveuni:
Ab dem Zeitpunkt wenn ein Icon geladen wird reagiert dein Programm sehr träge.
(Keine Rückmeldung für ca. 10-15 Sekunden).
Insbesondere das laden selbst, danach ein Klick auf einen anderen Node im Treeview.
Ebenfalls das speichern und laden der Ini (wobei dies verschmerzbar ist).
Ist das nur bei mir so?
Also bei mir merke ich keinerlei Verzögerung, gegenüber der vorhergehenden Version.

Obwohl zwar das Icon intern als Text verwerwaltet wird, sollte es recht schnell geehn.
- beim Speichern/Erstellen der RC wird direkt der Text eingefügt.
- und ansonsten wird nur beim Einfügen des Icons und beim Laden der INI eine String<>Icon-Umwandlung vorgenommen (das Icon wird ja in viele Integer zerlegt, bzw. daraus zusammengesetzt)
- beim Umschalten der TreeNodes sollte dieses aber keinerlei Auswirkungen zeigen, da dort absolut nix mit dem Icon in Berührung kommt.

Mit welchem System arbeitest du denn? (welches Windows, wieviel RAM, CPU, ...)

Leider läßt sich der aktuelle Code nicht mehr direkt mit Delphi 2007 debuggen/kompilieren, sonst hättest du eventuell mal versuchen können selber nachzusehn, wo es hängt.



Zitat von taveuni:
Dann das speichern der *.rc Datei: Es wird ein Name verlangt beim Speichern.
In der *.cmd Datei wird dann aber immer Manifest.rc gesucht. Das war früher anders?
Ups, da hat die geänderte Fehlerbehandlung böse zugeschlagen.

Beim Zuweisen des Dateinamens, z.B. an Edit5.Text, werden über das OnChange die Dateien (mit den neuen Dateinamen) neu erstellt.
Nun hatte ich jetzt diese Zuweisung ans Ende verschoben, damit bei einem Fehler der alte Namen erhalten bleibt.
(z.B. Exception durch fehlende Schreibrechte beim Speichern)

Heißt also, nun wurde erst gespeichert und dann erst der Name geändert.

Die Kurzfassung:
Delphi-Quellcode:
// alt
If SaveDialog1.Execute Then Begin
  Edit5.Text := SaveDialog1.Filename;
  Memo1.Lines.SaveToFile(Edit5.Text);
End;

// neuer (das mit dem Fehler)
If SaveDialog1.Execute Then Begin
  Memo1.Lines.SaveToFile(SaveDialog1.Filename);
  Edit5.Text := SaveDialog1.Filename;
End;

// jetzt sieht es etwa so aus :)
If SaveDialog1.Execute Then Begin
  N := Edit5.Text;
  Try
    Edit5.Text := SaveDialog1.Filename;
    Memo1.Lines.SaveToFile(Edit5.Text);
  Except
    Edit5.Text := N;
    Raise;
  End;
End;
[add]
Ach ja, dem TreeView wurde vorhin noch ein Kontextmenü verpaßt:
- alles ausklappen
- alles zusammenklappen
- Eintag auswählen (das Selbe, wie bei einem Doppelklick oder beim Benutzen der [Enter]-Taste)

[info] aktuelle Dateien wieder in Beitrag #48
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat