AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vista OpenFileDialog

Ein Thema von Willie1 · begonnen am 28. Feb 2011 · letzter Beitrag vom 2. Mai 2011
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#1

AW: Vista OpenFileDialog

  Alt 2. Mai 2011, 07:44
Hallo Emil,

Zitat:
lStructSize := SizeOf(TOpenFileName);
Bist Du sicher, dass das so richtig ist? Ich habe weder nachgesehen noch es ausprobiert, aber möglicherweise ergibt SizeOf nur die Größe des Pointers auf den String. Sicherer wäre es IMO so:
lStructSize := Length(TOpenFileName) * SizeOf(Char);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Vista OpenFileDialog

  Alt 2. Mai 2011, 07:51
SizeOf(TOpenFileName) ist schon richtig.
Und nein, es gibt kein Flag. (man kann höchsten hoffen, daß der Compilerschalter "UNICODE" gesetzt wurde)

Aber
Zitat:
 nMaxFile := SizeOf(szFile);
Laut MSDN gehört da die Anzahl der Zeichen und nicht die Größe in Byte hin.

Wobei: was ist szFile?
Wenn das ein PChar ist, dann stimmt SizeOf sowieso nicht, denn das ist die Größe des Zeigers und nicht des Inhalts.

Ab Delphi 2009 ist String, Char, PChar und die dynamische WinAPI immer auf Unicode eingestellt. (es sei denn jemand hat Mist gebaut oder von der API existiert nur eine der beiden Ansi/Unicode-Versionen)

Tipp: Falls man nicht unbedingt viel Ahnung von der WinAPI hat, dann könnte man natürlich notfalls auch die entsprechenden VCL-Kapselungen verwenden, wie z.B. Delphi-Referenz durchsuchenTFileOpenDialog (nicht zu verwechseln mit Delphi-Referenz durchsuchenTOpenDialog).

[edit]
Wann wurde eigentlich der neue Vista-Dilaog TFileOpenDialog in Delphi eingeführt?
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 2. Mai 2011 um 08:00 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Vista OpenFileDialog

  Alt 2. Mai 2011, 16:26
Hallo Emil,

Zitat:
lStructSize := SizeOf(TOpenFileName);
Bist Du sicher, dass das so richtig ist? Ich habe weder nachgesehen noch es ausprobiert, aber möglicherweise ergibt SizeOf nur die Größe des Pointers auf den String. Sicherer wäre es IMO so:
lStructSize := Length(TOpenFileName) * SizeOf(Char);
Also ich habe nur versucht das zu D2009 kompatibel zu machen.
So wie ich gesehen habe has tdu diesen ja geschrieben bzw von der Schweizer Delphi Seite erweitert.

Zitat:
Und nein, es gibt kein Flag. (man kann höchsten hoffen, daß der Compilerschalter "UNICODE" gesetzt wurde)
Macht das D2009 selbst ?
Oder muss ich mich darum kümmern.

Zitat:
Falls man nicht unbedingt viel Ahnung von der WinAPI hat
Davon habe ich on masse ..
Was nichts damit zu tun hat ob ich unter Delphi die richtigen Unicode Variablen
Verwende oder nicht.


Mein Frage wäre aber
Wie kann ich die Speicherlecks beseitigen.
Bei einigen kann man ja sehen wo unter umständen das Problem liegt solange
man im Block irgendwelche Pfade angezeigt bekommt.

Aber bei Unknow?
Wie soll man das identifizieren um den Fehler zu beseitigen.
Raten? Siehe http://www.delphipraxis.net/1098135-post15.html
Wie eingrenzen..


gruss

Geändert von EWeiss ( 2. Mai 2011 um 16:58 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 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