Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Listview, CustomDrawSubItem, Text wird schwarz (https://www.delphipraxis.net/163949-listview-customdrawsubitem-text-wird-schwarz.html)

DCoderHH 24. Mai 2018 14:09

AW: Listview, CustomDrawSubItem, Text wird schwarz
 
Zitat:

Zitat von Luckie (Beitrag 1402867)
Das ist nicht pixelig und fett, das ist eine andere Schriftart.

OK, aber warum ist es eine andere Schriftart und wie verhindere ich, dass diese für die Darstellung ausgewählt wird?

KodeZwerg 24. Mai 2018 14:41

AW: Listview, CustomDrawSubItem, Text wird schwarz
 
Ich habe alles was nicht zum Projekt gehört gelöscht so das nurnoch
Delphi-Quellcode:
Projekt1.dpr, Project1.res, Unit1.dfm, Unit1.pas
übrig blieb.
Delphi Tokyo mit der .dpr gestartet, auf Release gestellt, kompiliert, alles hat die gleiche Schrift. Ich kann Fehler nicht reproduzieren.

DCoderHH 24. Mai 2018 14:47

AW: Listview, CustomDrawSubItem, Text wird schwarz
 
Zitat:

Zitat von KodeZwerg (Beitrag 1402873)
Ich habe alles was nicht zum Projekt gehört gelöscht so das nurnoch
Delphi-Quellcode:
Projekt1.dpr, Project1.res, Unit1.dfm, Unit1.pas
übrig blieb.
Delphi Tokyo mit der .dpr gestartet, auf Release gestellt, kompiliert, alles hat die gleiche Schrift. Ich kann Fehler nicht reproduzieren.

Hab ich eben auch gemacht. Fehler ist trotzdem da. Die Windows-Version und Themes scheinen den Fehler zu beeinflussen, sagt eine Google-Recherche. Ich nutze Windows 10 mit der Standard-GUI, wie Windows ausgeliefert wird.

KodeZwerg 24. Mai 2018 14:48

AW: Listview, CustomDrawSubItem, Text wird schwarz
 
Ahh ok, ich nutze Windows Version 7. Ich schau mal im Code wegen Custom-Font setzen.

edit
Jetzt habe ich Deine .exe mal gestartet. Da erscheint der Fehler wie auf dem Bild.

himitsu 24. Mai 2018 15:10

AW: Listview, CustomDrawSubItem, Text wird schwarz
 
Delphi-Quellcode:
Sender.Canvas.Font.Assign(Sender.Font);
könntest du mal ausprobieren, ob es was ändert. (beim DefaultDraw=True)

Sowas wie SetBkMode an der VCL vorbei und nicht wieder zurücksetzen.
Das kann auch Probleme bereiten.

Sich nicht auf einwas zu einigen und dann abwechselnd Sender.Canvas oder PlanView.Canvas zu nutzen bereitet oftmals keine großen Probleme, aber ist dennoch keine gute Idee.

KodeZwerg 24. Mai 2018 15:16

AW: Listview, CustomDrawSubItem, Text wird schwarz
 
Ich habe ein wenig gelesen und das hier soll wohl helfen, da ich Fehler nicht habe kann ichs nicht testen.
Delphi-Quellcode:
procedure TForm1.PlanViewCustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer;
  State: TCustomDrawState; var DefaultDraw: Boolean);
var
  r: TRect;
  i: Integer;
begin
  PlanView.Canvas.Font.Style := [fsItalic];
  PlanView.Canvas.Font.Style := [];
//ab hier wie im Original weiter
Ps: Zweimal damit eine Veränderung eintritt.

EWeiss 24. Mai 2018 15:22

AW: Listview, CustomDrawSubItem, Text wird schwarz
 
Zitat:

Ich habe ein wenig gelesen und das hier soll wohl helfen, da ich Fehler nicht habe kann ichs nicht testen.
Wenn man den Font Assigned muss man ihn nicht extra nochmal zuweisen.

siehe..@himitsu
Delphi-Quellcode:
Sender.Canvas.Font.Assign(Sender.Font);
Zitat:

Jetzt habe ich Deine .exe mal gestartet. Da erscheint der Fehler wie auf dem Bild.
Ja was denn nu ist er da oder nicht?
Zitat:

da ich Fehler nicht habe kann ichs nicht testen.

Aber verstehe nicht was du da machst.
Du möchtest selbst die Schrift zeichnen mit OwnerDraw?
Wenn dem so ist warum wurde OwnerDraw nicht aktiviert.

So.. Und wenn du es aktivierst dann bist du für das zeichnen der Schrift Font etc.. selbst verantwortlich.

Da scheint mir ein mismatch zwischen OwnerDraw und zeichnen der eigenen Komponente zu sein.

gruss

KodeZwerg 24. Mai 2018 15:29

AW: Listview, CustomDrawSubItem, Text wird schwarz
 
@EWeiss: Wenn ich sein 10mb Kompilat aus dem Anhang starte ist Font "verändert", wenn ich beiliegenden Source selbst kompiliere, auf Release eine 2mb Datei, da erscheint alles ohne Probleme.

EWeiss 24. Mai 2018 16:01

AW: Listview, CustomDrawSubItem, Text wird schwarz
 
Zitat:

Zitat von KodeZwerg (Beitrag 1402881)
@EWeiss: Wenn ich sein 10mb Kompilat aus dem Anhang starte ist Font "verändert", wenn ich beiliegenden Source selbst kompiliere, auf Release eine 2mb Datei, da erscheint alles ohne Probleme.

Na ok.. hab kein Tokyo daher bin ich raus.

gruss

KodeZwerg 24. Mai 2018 17:25

AW: Listview, CustomDrawSubItem, Text wird schwarz
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von KodeZwerg (Beitrag 1402879)
Ich habe ein wenig gelesen und das hier soll wohl helfen, da ich Fehler nicht habe kann ichs nicht testen.
Delphi-Quellcode:
procedure TForm1.PlanViewCustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer;
  State: TCustomDrawState; var DefaultDraw: Boolean);
var
  r: TRect;
  i: Integer;
begin
  PlanView.Canvas.Font.Style := [fsItalic];
  PlanView.Canvas.Font.Style := [];
//ab hier wie im Original weiter
Ps: Zweimal damit eine Veränderung eintritt.

Das ist die Lösung auch wenn Ihr dagegen seid. Ich habe vom TE das Projekt auf Delphi2009 Niveau gebracht, lustiger Weise mit dem Fehler vom Bild, mit himitsus Methode streikt IDE oder ich wende es falsch an, IDE sagt E2362 Auf protected-Symbol TControl.Font kann nicht zugegriffen werden

Im Anhang ist das Projekt für viele Delphis verfügbar mit gleicher Font in allen Feldern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz