Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ...verhindern, dass es unter XP eine Zugriffsverletzung mit (https://www.delphipraxis.net/2362-verhindern-dass-es-unter-xp-eine-zugriffsverletzung-mit.html)

Scorpion 19. Jan 2003 20:34


...verhindern, dass es unter XP eine Zugriffsverletzung mit
 
Hi,

http://www.swissdelphicenter.ch/de/showcode.php?id=1117

schaut euch doch mal bitte den Link an. Irgendwie geht das bei mir net, was muss ich denn genau machen, dass es klappt?

Gruss
Nico

Luckie 19. Jan 2003 20:59

Wo ist das Problem? Da steht doch genau, was du machen mußt.

Scorpion 19. Jan 2003 21:12

Ja, schon, aber genau das bewirkt bei mir nichts. Es geht immer noch nicht...

Gruss
Nico

Daniel B 19. Jan 2003 21:32

Und warum wendest Du Dich nichts ans SwissDelphiCenter?
Soviel ich weiss, gab es bei denen noch nie Probleme mit Einträgen in der FAQ.
Also, entweder machst Du was Falsch, oder Du wendest Dich an die Falschen Leute.
Vielleicht hast Du auch die falsche Komponente installiert. Oder es gab einen Fehler beim installieren.
Den das XWManifest, worum es hier geht, ist bei Delphi 7 Prof. dabei. Du bist noch bei D5. Somit musst DU es nachträglich installiert haben.

Daher, entweder fehler beim installieren, oder die falsche Kompo. Den es gibt sehr viele XP-Style Komponenten, die vom Namen her sehr ähnlich sind. Also, nochmals überprüfen.

Grüsse, Daniel :hi:

MathiasSimmack 20. Jan 2003 08:45

So´n Quark, Daniel B. Nichts für ungut, dennoch.

Der Fehler bezieht sich darauf, dass bestimmte "Common Controls" der älteren Delphi-Versionen (bis einschließlich D6, würde ich mal behaupten) unter bestimmten Umständen Fehler verursachen, wenn man sie mit der Manifest-Datei von WinXP im neuen Glanz "erstrahlen" lassen will. Im Fall der Listview wäre das im "vsReport"-Modus.

Die mir bekannten XP-Komponenten funktionieren alle nach dem selben Prinzip: sie stellen dem Programm die besagte XML-Manifest-Datei zur Verfügung; ob nun extern oder in den Resourcen.

Da erst Delphi 7 offiziell mit einer kompletten WinXP-Unterstützung ausgewiesen wurde, müssen IMHO also alle älteren Versionen manuell fit gemacht werden. Das hat mit den Komponenten, wenn es denn um den LUNA-Stil von WinXP geht, nichts zu tun.


@Scorpion: Keine Ahnung, wo dein Fehler liegt, aber prinzipiell steht alles im Kommentar drin. Unit "ComCtrl.pas" öffnen -> die genannte Prozedur suchen -> die auskommentierte Zeile suchen, auskommtentieren und dann das reinschreiben, was die Schweizer angeben -> die Unit kompilieren und das Programm mit einer Listview testen ...
Vielleicht hätte man besser die komplette Prozedur zeigen sollen; nicht nur den Auszug, das könnte ein Grund für die Verwirrung sein. Meine sieht übrigens so aus:
Code:
procedure TCustomListView.UpdateColumn(AnIndex: Integer);
const IAlignment: array[Boolean, TAlignment] of LongInt =
  ((LVCFMT_LEFT, LVCFMT_RIGHT, LVCFMT_CENTER),
   (LVCFMT_RIGHT, LVCFMT_LEFT, LVCFMT_CENTER));
var
  Column: TLVColumn;
  AAlignment: TAlignment;
begin
  if HandleAllocated then
    with Column, Columns.Items[AnIndex] do
    begin
      mask := LVCF_TEXT or LVCF_FMT or LVCF_IMAGE;
      iImage := FImageIndex;
      pszText := PChar(Caption);
      AAlignment := Alignment;
      if Index <> 0 then
        fmt := IAlignment[UseRightToLeftAlignment, AAlignment]
      else fmt := LVCFMT_LEFT;
      if FImageIndex <> -1 then
        fmt := fmt or LVCFMT_IMAGE or LVCFMT_COL_HAS_IMAGES
// WinXP patch
      else
        mask := mask and not (LVCF_IMAGE);
      if WidthType > ColumnTextWidth then
      begin
        mask := mask or LVCF_WIDTH;
        cx := FWidth;
        ListView_SetColumn(Handle, Columns[AnIndex].FOrderTag, Column);
      end
      else begin
        ListView_SetColumn(Handle, Columns[AnIndex].FOrderTag, Column);
      if ViewStyle = vsList then
          ListView_SetColumnWidth(Handle, -1, WidthType)
      else if (ViewStyle = vsReport) and not OwnerData then
          ListView_SetColumnWidth(Handle, Columns[AnIndex].FOrderTag, WidthType);
      end;
    end;
end;

Scorpion 21. Jan 2003 12:47

@ All,

danke für eure tips jetzt gehts...

Gruss
Nico


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:55 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 by Thomas Breitkreuz