Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#10
  Alt 22. Feb 2003, 11:13
Meine Vermutung ist, dass sich -durch deine ganzen Erweiterungen/Änderungen/usw.- Stellen im Programmcode befinden, die zwar keine Fehler verursachen, sich aber gegenseitig behindern. Eine andere Möglichkeit gibt es eigentlich nicht, denn wenn ich an meine Programme denke: HED, UIS und EFlagsEd verfügen auch über Listview, Toolbar und Statuszeile. Prinzipiell also die selben Elemente wie in deiner Datenbank, nur dass ich eben auch mit ENTER die Listview-Items aufrufen kann (bzw. den Dialog, der dann erscheinen soll).
Ich habe mir mal den Quellcode des Programms angesehen, und meine ehrliche Meinung ist: wenn du mal Zeit und Muße hast, dann solltest du es von Grund auf neu schreiben!

Dinge, die mir besonders aufgefallen sind:
  • Du hast einen Dialog als Hauptfenster. In dem Dialog steckt aber nur die Listview, alles andere wird im Programm erzeugt. Ich hätte diesen Schritt übersprungen und Fenster und Listview auch gleich im Programm erstellt; also ohne Dialogressource.
  • Der Quellcode ist für meinen Geschmack zu unübersichtlich. Du hast zwar räumliche Trennungen (durch mehrzeilige Kommentare), aber manchmal stecken Prozeduren in "Sparten", in denen sie, IMHO, eigentlich nichts zu suchen haben.
  • Was mir ebenfalls nicht sonderlich gefällt (persönliche Meinung!), ist das Deklarieren von Variablen an zentraler Stelle. Das mache ich nur bei Texten (Konstanten), die man z.B. übersetzen können soll. Variablen deklariere ich erst dann, wenn sie gebraucht werden; die ganzen Fenster-Handles z.B. erst vor der "WndProc", usw.
    Benötige ich so ein Handle dann doch vor seiner Deklaration, dann übergebe ich es der Prozedur (die es braucht) als Parameter. Erst wenn ich das Handle in verschiedenen Prozeduren benötige, ziehe ich es weiter nach vorn.
  • Schau dir mal bitte den Teil mit dem Dropdown-Menü für den "Drucken"-Button an. Solltest du mal einen Button davor einfügen, oder solltest du evtl. die Toolbar-Anpassung ausprobieren, bei der der Anwender entscheiden kann, welche Buttons er wo sehen will, dann erscheint das Menü unter Garantie unter dem falschen Button.
  • Es gibt einige Optimierungsmöglichkeiten im Code. Als Beispiel sei das Umschalten der Listview-Ansicht (Icon, Report, Liste) genannt. Das ist immer das selbe. Eine Prozedur, aufgerufen mit dem gewünschten Stilattribut (wie im Tutorial), würde den Code verkürzen und die Exe auch wieder ein Stückchen kleiner machen.
  • Die Konstante "DATFILE" konnte ich übrigens auskommentieren, ohne dass das Auswirkungen gehabt hätte.
  • Na gut, die Namen von bestimmten Parametern würde ich nicht als Fehler ansehen. Ich persönlich (!) bevorzuge nur eben das "richtige" Casten und vermeide daher Variablennamen, die mit irgendwelchen Typen identisch sind (HWND, WPARAM, LPARAM, HBITMAP, ...) - obwohl letztlich auch bloß LONGINTS usw. hinter solchen Typen stecken.
  Mit Zitat antworten Zitat