AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Prism Ist es möglich das Aussehen der CheckedListBox zu ändern?
Thema durchsuchen
Ansicht
Themen-Optionen

Ist es möglich das Aussehen der CheckedListBox zu ändern?

Ein Thema von zenith · begonnen am 17. Jan 2007 · letzter Beitrag vom 19. Jan 2007
Antwort Antwort
zenith

Registriert seit: 17. Jan 2007
5 Beiträge
 
#1

Ist es möglich das Aussehen der CheckedListBox zu ändern?

  Alt 17. Jan 2007, 14:39
Hallo Leute,

helft mir bitte die CheckedListBox-Darstellung anzupassen...

ich muss ein paar Einträge in fetter Schrift darstellen können.

Leider hab ich keine Möglichkeit gefunden die DrawItem-Methode (wie bei ListBox)
abzufangen, wird im Objektinspektor garnicht angezeigt

hat einer nen Tipp oder Idee?

PS: ich nutze "Turbo Delphi für .NET Explorer Edition"

mfg, zenith
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: Ist es möglich das Aussehen der CheckedListBox zu ändern

  Alt 17. Jan 2007, 14:56
Du musst du Methode OnDrawItem überschreiben. Am Besten kopierst du den gesamten Quelltext aus dem Reflector (oder Rotor) und änderst die wichtigen Stellen.

Achja, herzlich Willkommen in der DP .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
zenith

Registriert seit: 17. Jan 2007
5 Beiträge
 
#3

Re: Ist es möglich das Aussehen der CheckedListBox zu ändern

  Alt 18. Jan 2007, 15:15
Danke für deine Antwort.

Leider hab ich ja keine Möglichkeit gefunden diese Methode zu überschreiben...
die ist nicht in dem Objektinspektor aufgelistet. Oder verstehe ich was falsch,
bzw. suche an der falschen Stelle?
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Ist es möglich das Aussehen der CheckedListBox zu ändern

  Alt 18. Jan 2007, 15:24
Eine Methode zu überschreiben bedeutet, eine Ableitung der CheckListBox Klasse zu machen und darin die Methode OnDrawItem neu zu implementieren mit deinen Änderungen. Bei der Deklaration der Methode müsstest du dann mit Override angeben, dass du diese überschrieben möchtest. Diese neue Komponente dann noch installieren und bei dir auf die Form ablegen und konfigurieren.
  Mit Zitat antworten Zitat
zenith

Registriert seit: 17. Jan 2007
5 Beiträge
 
#5

Re: Ist es möglich das Aussehen der CheckedListBox zu ändern

  Alt 18. Jan 2007, 16:02
Danke, hab volgendes gemacht:

hier definiere ich meine eigene Klasse
Delphi-Quellcode:
type TMyCLB = class(System.Windows.Forms.CheckedListBox)
  procedure OnDrawItem(e: DrawItemEventArgs); override;
end;
mein Formular hat eine Komponente Namens "newCB"
newCB: WinForm.TMyCLB; diese wird auch initialisiert mit:
Self.newCB := WinForm.TMyCLB.Create; der Rest ist unverändert...

die Methode hab ich zum Testen folgendermassen überschrieben:
Delphi-Quellcode:
procedure TMyCLB.OnDrawItem(e: DrawItemEventArgs);
begin
  inherited OnDrawItem(e);
  e.Graphics.DrawLine(Pen.Create(Color.Red), 0, 0, 10, 20);
end;
die rote Linie wird auch gezeichnet... das ist schon mal was


leider weis ich nicht wie ich an den original-Quellcode komme,
um ihn in meiner Methode einzufügen. Das Reflection-Tool liefert mir
keinen Quellcode

mfg
zenith
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: Ist es möglich das Aussehen der CheckedListBox zu ändern

  Alt 18. Jan 2007, 16:23
Reflector
=> http://www.aisto.com/roeder/dotnet/
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
zenith

Registriert seit: 17. Jan 2007
5 Beiträge
 
#7

Re: Ist es möglich das Aussehen der CheckedListBox zu ändern

  Alt 18. Jan 2007, 17:34
Danke,

leider kann ich den Quellcode nicht einfach einfügen

es verwendet Methoden und Klassen, die mein .NET nicht hergibt

z.B.:
Application.RenderWithVisualStyles
self.UseCompatibleTextRendering
self.idealCheckSize
UseCustomTabOffsets
System.Windows.Forms.TextFormatFlags

und noch paar Sachen mehr...

auch kann ich nichts anfangen mit:
Delphi-Quellcode:
  ...
  ...
    endgoto Label_049B
  ...

Label_049B:
  ...
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#8

Re: Ist es möglich das Aussehen der CheckedListBox zu ändern

  Alt 18. Jan 2007, 19:27
Wortwörtlich wird es nicht funktionieren, da musst du schon selbst Hand anlegen.
So viel verrate ich aber schon einmal:
Zitat:
Application.RenderWithVisualStyles
uses-Eintrag vergessen?
Zitat:
self.UseCompatibleTextRendering
UseCustomTabOffsets
Sind öffentliche Eigenschaften, sollte kein Problem sein.
Zitat:
System.Windows.Forms.TextFormatFlags
Da Delphi Enumwerte immer noch als Konstanten behandelt, solltest du statt TextFormatFlags.XYZ einfach XYZ schreiben können.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
zenith

Registriert seit: 17. Jan 2007
5 Beiträge
 
#9

Re: Ist es möglich das Aussehen der CheckedListBox zu ändern

  Alt 19. Jan 2007, 09:56
Ok, ich danke euch Leute... ich hab es hinbekommen.

zuerst hatte ich dem Reflector die Assemblies der Version 2.0 angegeben,
damit konnte ich nicht viel anfangen, denn die uses-Einträge waren da.

dann habe ich den Reflector mit Assemblies v1.1.4322 gefüttert...
diesen quellcode konnte ich schneller und leichter lauffähig machen.

auch kann ich jetzt meine gewünschten Zeilen fett darstellen.


Danke also noch mal für die Hilfe!

Gruß, zenith
  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:27 Uhr.
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