Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#28
  Alt 3. Jun 2003, 08:58
btw: Natürlich funktioniert das Programm (= der Quellcode) jetzt nicht mehr, wenn man nicht Delphi 6 oder 7 hat. Ist ja auch logisch. Wie ich schon schrieb, sind die Versionen vor D6 zu alt und kennen nur das Standardrecord, und durch
ofn.lStructSize := SizeOf(TOpenFilename) - (SizeOf(DWORD) shl 1) - SizeOf(Pointer); bzw.
ofn.lStructSize := OPENFILENAME_SIZE_VERSION_400; werden nun davon noch zwei DWORDs und ein Pointer abgezogen. Damit stimmt die Originalgröße nicht mehr, und die Dialoge erscheinen bei älteren Delphi-Versionen nicht. Du musst dich also tatsächlich an die Idee aus dem Forum halten:
Delphi-Quellcode:
if(Win2k) or (WinXP) then ofn.lStructSize := sizeof(TOpenFilename)
  else ofn.lStructSize := OPENFILENAME_SIZE_VERSION_400;
oder du probierst dein Glück mal mit dem schon erwähnten "OPENFILENAME_NT4"-Record, sofern es von Borland deklariert wurde.

Ja, ich weiß: du hattest das bereits gestern (~17 Uhr) geschrieben. Ich wollte also nur noch mal sagen, dass diese Idee also schon die richtige war. Gerade in Bezug auf ältere Delphi-Versionen. Ich habe sie nur nicht berücksichtigt, weil du mir deinen Quellcode ja zwecks Fehlersuche zur Verfügung gestellt hast.

Die von tommie-lie vorgeschlagene "Lösung", pauschal (ohne Versionsprüfung) die Größe zu verringern, halte ich deswegen auch für falsch.
  Mit Zitat antworten Zitat