![]() |
Re: In Kombobox zeichnen
Die Klasse TWinControl kennt das Property Canvas noch nicht.
Deshalb:
Delphi-Quellcode:
Wenn deine Zeichenoperationen umfangreicher sind, lohnt es sich den Canvas in einer Variablen zu halten:
procedure TStyle.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState); begin InflateRect(Rect, -1, -1); // Rechteck schrumpfen (Control as TComboBox).Canvas.Pen.color := clRed; (control as TComboBox).Canvas.Rectangle(Rect); end;
Delphi-Quellcode:
procedure TStyle.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState); var canv : TCanvas; begin canv := (Control as TComboBox).Canvas; InflateRect(Rect, -1, -1); // Rechteck schrumpfen canv.Pen.color := clRed; canv.Canvas.Rectangle(Rect); end; |
Re: In Kombobox zeichnen
Auch bei
Delphi-Quellcode:
bleibt der Fehler der selbe:
(control as TComboBox).Canvas.Rectangle(Rect);
Zitat:
Wenn ich statt des "Rect" Zahlen einsetze erscheint keine Fehlermeldung, aber das darf ich ja nicht. Gibt es keine Möglichkeit auch das noch irgendwie hinzubiegen? |
Re: In Kombobox zeichnen
Zitat:
Gibt es keine Möglichkeit auch das noch irgendwie hinzubiegen? [/quote] Klar kann man das hinbiegen. :mrgreen: Deine (alte) Delphi-Version kann keine Methoden überladen. (Meine topmoderne D5 Version kann das.) Deshalb gilt für D5 und neuer:
Delphi-Quellcode:
Ansonsten muss man sich so behelfen:
(control as TComboBox).Canvas.Rectangle(Rect);
Delphi-Quellcode:
(control as TComboBox).Canvas.Rectangle(Rect.Left, Rect.Top, Rect.Right, Rect.Bottom);
|
Re: In Kombobox zeichnen
Liste der Anhänge anzeigen (Anzahl: 1)
Danke, shmia, Fehler kommt jetzt keiner mehr :), aber es erscheint auch kein Rechteck. Ich weiß jetzt noch nicht einmal, wonach ich frage müsste... , deshalb habe ich, in der Hoffnung, dass sich jemand die Mühe macht einfach mal das Beispiel angehägt. Es enthält die Combobox, mit dem Code.
|
Re: In Kombobox zeichnen
Du musst der Combobox einige Strings in das Property Items einfüllen, sonst gibt es nix
anzuzeigen. |
Re: In Kombobox zeichnen
Danke! Eine letzte Frage sei mir erlaubt: Wie kann ich jetzt in das 2. Feld der Combobox auch noch ein Rechteck zeichnen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:17 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