![]() |
Moin Luckie,
Zitat:
Zitat:
|
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
also das teilen hat geklappt und ging auch sehr schnell. nur beim wieder zusammenfügen hatte ich nen Fehler (s.Anhang) Fehler 6 ist "Das Handle ist ungültig" EDIT: Das lag wohl daran, dass dein Programm irgendwie den Pfad "D:\\SplinterCellManual.pdf" gewählt hat. Das 2te "\" muss natürlich weg. Wenn ich den Pfad manuell auf diesen Setze (also D:\SplinterCellManual.pdf), dann gehts. mfG mirage228 |
Ist ein nettes Programm. Klein und vorallem schnell. Ein kleiner Kritikpunkt, ist, dass man das Verzeichnis nicht einfach von Hand eingeben kann oder die Zieldatei. Außerdem wird die Zeile bei einem langen Verzeichnispfad einfach gebrochen und man sieht den Rest nicht mehr. Also würde ich dir eine Editbox ans Herz legen.
Wenn ich "Teile löschen" anklicke, hat das trotzdem keine Wirkung: Die Teile bleiben erhalten. Wenn man schon eine Datei gesplittet hat und dann eine andere öffnet, wird das Label, in dem die Anzahl der Teile steht, nicht geupdatet. Erst wenn man die Teilzahl verändert oder neu eintippt. Vielleicht könntest du auch noch eine Drag & Drop funktion einbauen. Und noch ein kleiner Kritikpunkt: Der große weiße Balken oben bei der Form wirkt ein wenig, hmm, öde. Das erinnert mich immer an die alten "Ignorieren, Abbrechen"-Fehler in Win98. Ansonsten gefällt das Design. |
Ähh, nur so als Anmerkung, ich habe ihm auch gesagt, daß er lieber eine Abfrage nach Windows-Version (nicht Compiler!!!) machen sollte, aber nachdem es anscheinend auch unter 2k und XP läuft, weiß ich nicht genau, wie gravierend ein auf die Art und Weise verkürzter Rekord sich auswirken wird.
Und die Begründung liegt nicht in der Delphi-Version, aber nur indirekt. D5 verwendet nämlich mit an Sicherheit grenzender Wahrscheinlichkeit noch die alte Deklaration, während D6 das nicht mehr tut (deswegen hat auch ein Neukompilieren bie mir nichts gebracht). Die neue Deklaration sieht wie folgt aus (Quelle: PSDK, Danke Luckie, sonst hätte ich auch noch das alte *g*):
Code:
(man beachte unbedingt die beiden IFDEFs!!!)
typedef struct tagOFN {
// [...] #if (_WIN32_WINNT >= 0x0500) void * pvReserved; DWORD dwReserved; DWORD FlagsEx; #endif // (_WIN32_WINNT >= 0x0500) } OPENFILENAME, *LPOPENFILENAME; Macht man also die Abfrage nach der Version genauso wie hier in den IFDEFs, dürfte es keine Probleme geben; nie. Im Prinzip ist es also die reine Unzulänglichkeit Seitens Delphi5, daß MathiasSimmacks selbstkompilierte Version unter Win98 läuft und reiner Zufall, das sie es noch unter NT5 (also Win2k) tut. |
Zitat:
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
Ich denke, du weißt wohl selbst, warum es so funktioniert hat - Es ist der Quellcode! Kompiliert Luckie den mit seinem Delphi 6, dann wird bei ihm das erweiterte Record benutzt, und es funktioniert. Kompiliere ich den selben Quellcode mit meinem Delphi 5, dann wird bei mir das alte Record benutzt. Da aber hier noch nichts gekürzt wurde, funktioniert es logischerweise bei mir auch.
ofn.lStructSize := SizeOf(TOpenFilename);
Von Unzulänglichkeiten oder gar Zufällen kann also nicht die Rede sein. |
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
Noch ein PS:
Zitat:
Delphi-Quellcode:
ja ebenfalls der Recordgröße ohne die neuen 12 Bytes, da dieser Wert fest im Programm kompiliert und nicht erst zur Laufzeit anhand des OS bestimmt wird. (Compiler <> Interpreter :wink:) Und weil sich 2000 und XP nicht darüber beschweren, wenn du die kürzere Struktur benutzt, werden hier auch die Dialoge angezeigt. :)
sizeof(TOpenFileName)
|
Zitat:
Zitat:
Zitat:
Zitat:
|
Zitat:
Zitat:
Im Prinzip sind es die veralteten Header von Delphi5. würde man die windows.pas (oder in welcher Unit auch immer TOpenFilename stehen mag, bin zu faul zum nachgucken) entsprechend ändern und neu kompilieren, würde es auch so klappen. Es ist also nicht direkt das Delphi dran schuld, sondern nur die veralteten, vorhandenen Header (man beachte das Wort "veraltet", es ist hier vollkommen zurecht am Platze und wird später noch mal genutzt werden) Zitat:
Genauso sieht es mit Win2k und XP aus. Ich weiß nicht, wozu Windows intern die Stukturgrößen nochmal als Parameter übergeben haben will und was es damit anstellt, aber es könnte unter irgendwelchen Umständen mit dieser (zu kleinen!) Strukturgröße zu Fehlern kommen, die mit der richtigen Strukturgröße eben nciht geschehen sind. Es ist also auch reiner Zufall, daß es mit der kleinen (und alten) Struktur auch unter Windows2k und WindowsXP funktioniert, die beiden könnten sich genausogut als untoleranter erweisen. Zitat:
Fakt ist nunmal, daß etwas, was ich unter D5 normalerweise als Einschränkung oder Fehler bezeichnen würde, dem Programm dazu verhilft, unter Win98 zu laufen. |
Moin tommie-lie,
Zitat:
Zitat:
Ich vermute mal, leider kann ich's nicht ausprobieren, das der Aufruf von GetOpenFilename mit der neuen Struktur unter eine älteren Windows Version mit False zurückkehrt und GetLastError 87 liefert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz