AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit TListview-OnDrawItem

Ein Thema von Alexander · begonnen am 28. Dez 2003 · letzter Beitrag vom 28. Dez 2003
Antwort Antwort
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#1

Problem mit TListview-OnDrawItem

  Alt 28. Dez 2003, 10:10
Hi,
ich versuche gerade einzelne Items der Listview zu im Stil zu verändern.
Ich versuche das so:
Ich habe ein kleines Record, in dem ich den stil (z.B. fsbold oder was auch immer) eintragen kann. Wenn ich nun ein Item hinzufüge, dann füge ich per AddObject als erstes SubItem praktisch einen Pointer auf das Object, also auf das Record.
Das funktioniert auch soweit.
Nur versuche ich jetzt dementsprechend zu "malen". Doch das wiederum klappt nicht so ganz :Sad:
Ich mal das Record und die OnDraw-Methode der Listview:
Delphi-Quellcode:
  TToDo = record
    Style: TFontStyle;
   end;
  PToDo = ^TToDo;

{ Ein Item hinzufügen: }
procedure TEditorWND.Button2Click(Sender: TObject);
var
 ToDo1 : PToDo;
begin
  new(ToDo1);
  Item := MainForm.EDIT_ToDo.Items.Add;
  Item.Caption := Editor.Text;
  Item.SubItems.AddObject(Editor.Text, TObject(ToDo1))
end;
{...}
procedure TMainForm.Edit_ToDoDrawItem(Sender: TCustomListView;
  Item: TListItem; Rect: TRect; State: TOwnerDrawState);
begin
 with Sender as TListview do
  begin
   Canvas.Brush.Color := clYellow;
   Canvas.FillRect(Rect);
   Canvas.Font.Style := [PToDo(Item.SubItems.Objects[0])^.Style];
   Canvas.TextOut(Rect.Left + 2, Rect.Top, Item.Caption);
  end;
end;
Ich glaube das war alles. Es gibt auch keine Fehler bis auf, dass halt nicht funktioniert...
Ich hoffe ihr könnt mir helfen
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit TListview-OnDrawItem

  Alt 28. Dez 2003, 10:12
was genau funktioniert nicht?? Werden nur die Einstellungen aus dem Record nicht verwendet oder wird auch gelb nicht gesetzt??
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#3

Re: Problem mit TListview-OnDrawItem

  Alt 28. Dez 2003, 10:15
Also wie gesagt gibt es keine Fehler, das eintragen ins Record klappt auch wunderbar, nur das ändern des Styles, klappt nicht
Wäre nett wenn du mir helfen könntest.
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Problem mit TListview-OnDrawItem

  Alt 28. Dez 2003, 10:22
laut deiner Anweisung sieht es so aus als ob du den hintergrund vom Item gelb machen willst?!
wenn ich in die Ereignisprocedure "ListView1CustomDrawItem" bekommt das Item auch den entsprechenden Hintergrund und Style
Delphi-Quellcode:
  with Sender as TListview do
  begin
    Canvas.Brush.Color := clGreen;
    Canvas.Font.Style := [fsItalic];
  end;
wenn ich allerdings was in OnDrawItem schreibe wird das komplett ignoriert... probiers also mal mit "ListView1CustomDrawItem"
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#5

Re: Problem mit TListview-OnDrawItem

  Alt 28. Dez 2003, 10:37
Jupp, du hast recht. Danke
Alexander
  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 10:40 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