AGB  ·  Datenschutz  ·  Impressum  







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

ListView mit PasswordChar

Ein Thema von der_kumpel · begonnen am 8. Mai 2008 · letzter Beitrag vom 14. Sep 2013
Antwort Antwort
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

AW: ListView mit PasswordChar

  Alt 14. Sep 2013, 15:13
Ohne es zu testen würde ich vermuten, dass es an der Zeile DefaultDraw := false liegt. Das muss dann bei den anderen Spalten wieder auf true gesetzt werden wenn ich mich nicht täusche.
Erstmal Danke für die Antwort. Wenn ich das richtig verstanden habe, hätte dann folgender Code das Problem beseitigen müssen:
Delphi-Quellcode:
Procedure ...
Var
   tmpRect : TRect;
   iWidth, i : Integer;
   tmpTextOut : String;
Begin
   If (SubItem = 2) Then
   Begin
      tmpRect:=Item.DisplayRect(drBounds);
      If (cdsFocused In State) And (cdsSelected In State) Then
      Begin
         Sender.Canvas.Brush.Color := clBlue;
         Sender.Canvas.Font.Color := clWhite;
      End;

      iWidth:=0;
      For I:=0 To Pred(SubItem) Do Inc(iWidth, Sender.Column[I].Width);
      tmpTextOut:=StringOfChar('*', Length(Item.SubItems[Pred(SubItem)]));
      Sender.Canvas.TextOut(tmpRect.Left + iWidth + 1, tmpRect.Top, tmpTextOut);
   End;
   DefaultDraw:=(SubItem <> 2); // CustomDraw in Abhängigkeit von der Spalte setzen...
   // Wie empfohlen also alle außer Spalte 2 auf True gesetzt.
End;
Leider bringt das (noch) nicht das gewünschte Ergebnis.

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: ListView mit PasswordChar

  Alt 14. Sep 2013, 15:23
Dein Hinweis brachte mich aber auf die richtige Spur!
Es liegt am FontStyle, der aus unerfindlichen Gründen nicht (zurückgesetzt?) wird. Unerfindlich deshalb, weil er durch den Code - für mich ersichtlich - überhaupt nicht angefasst wurde. Folgender Code funktioniert jetzt bei mir jedenfalls:
Delphi-Quellcode:
Procedure ...
Var
   tmpRect : TRect;
   iWidth, i : Integer;
   tmpTextOut : String;
begin
   DefaultDraw:=(SubItem <> 2);
   If (SubItem = 2) Then
   Begin
      tmpRect:=Item.DisplayRect(drBounds);
      If (cdsFocused In State) And (cdsSelected In State) Then
      Begin
         Sender.Canvas.Brush.Color := clBlue;
         Sender.Canvas.Font.Color := clWhite; // Nur color nicht style wird geändert!
      End;

      iWidth:=0;
      For I:=0 To Pred(SubItem) Do Inc(iWidth, Sender.Column[I].Width);
      tmpTextOut:=StringOfChar('*', Length(Item.SubItems[Pred(SubItem)]));
      Sender.Canvas.TextOut(tmpRect.Left + iWidth + 1, tmpRect.Top, tmpTextOut);
   End
   Else
   Begin
      Sender.Canvas.Font.Style:=[fsItalic];
      Sender.Canvas.Font.Style:=[];
   End;
End;
Danke nochmal insoweit auch an die Leute von StackOverflow!

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: ListView mit PasswordChar

  Alt 14. Sep 2013, 15:27
Dann ist das ja jetzt perfekt
  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 17:15 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