AGB  ·  Datenschutz  ·  Impressum  







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

Auf ToolButton zeichnen

Ein Thema von Reddog · begonnen am 4. Okt 2004 · letzter Beitrag vom 5. Okt 2004
Antwort Antwort
Benutzerbild von Reddog
Reddog

Registriert seit: 18. Jul 2004
Ort: Würzburg
56 Beiträge
 
#1

Auf ToolButton zeichnen

  Alt 4. Okt 2004, 13:28
Hallo,

ich habe eine Komponente von TToolBar abgeleitet. Funktioniert soweit alles ganz gut, aber ich möchte auf dem ersten ToolButton der erstellt wird ein kleines Dreieck zeichnen. TToolButton hat zwar eine Canvas-property vom TGraphicControl, aber leider protected, sodass ich nicht darauf zugreiffen kann. Weiß jemand einen Ausweg?

Danke,
Reddog.
All prime numbers are odd with the exception of two, which is an odd prime
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Auf ToolButton zeichnen

  Alt 4. Okt 2004, 14:13
Dann leide halt auch noch die TToolbutton, um eine TToolbuttonMitKleinenDreieck-Klasse ab.
Oder verkleiner deiner Toolbar-Klasse die Child-Area, so das sie Toolbuttons nicht gleich ganz links anliegen. Dann solltest Du auf dem Toolbar-Canvas zeichnen können.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Reddog
Reddog

Registriert seit: 18. Jul 2004
Ort: Würzburg
56 Beiträge
 
#3

Re: Auf ToolButton zeichnen

  Alt 4. Okt 2004, 14:32
Ich hab ja probiert von TToolButton ne eigene Klasse abzuleiten. Aber wie kann ich die Komponente dazu veranlassen ihre ToolButtons statt als TToolButton als TToolButtonMitDreieck zu erstellen?
Das wäre natürlich die beste Lösung, wenn's irgendwie geht.
All prime numbers are odd with the exception of two, which is an odd prime
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Auf ToolButton zeichnen

  Alt 5. Okt 2004, 07:06
Du wirst dafür sehr viel mehr Funktionen von TToolbar überschreiben müssen. Überall wo TToolbar ein TToolButton erzeugt musst Du stattdessen ein TMyToolButton erzeugen. Ist jedoch nicht gerade trivial (Sine nicht gerade kurze Funktionen in ComCtrls.pas, welche Du überschreiben müsstest).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Reddog
Reddog

Registriert seit: 18. Jul 2004
Ort: Würzburg
56 Beiträge
 
#5

Re: Auf ToolButton zeichnen

  Alt 5. Okt 2004, 11:23
Das ist ja auch der Grund, warum ich hier diese Frage gestellt habe.
Ich hab mir TToolBar angeschaut, und ich find nicht mal die Funktion, wo es die ToolButtons erzeugt. Das ist irgendwie sehr durcheinander. Ich hab mal ein TreeView verändert, und da war das perfekt einfach gemacht, man musste nur an einer Stelle in einer Funktion den Typ der erzeugten Kinder verändern. Tja mir ist bis jetzt nichts besseres eingefallen als:
Delphi-Quellcode:
var
  MyCanvas: TControlCanvas;
begin
  MyCanvas:= TControlCanvas.Create;
  MyCanvas.Control:= ToolButton; // auf dem ich zeichnen will
Dann verwende ich dieses Canvas um zu zeichnen. Es klappt, aber ich weiß nicht, ob das jetzt korrekt ist und keine Probleme verursacht. Und dann habe ich noch ein Problem damit, wann es das Dreieck draufzeichnen soll, weil ich irgendwie kein passendes Ereignis finde. Und eine procedur mit message WM_PAINT für die Komponente(abgeleitet von TToolBar) macht bei mir seltsamerweise einen Fehler. Naja, so sieht's aus.

Aber trotzdem danke für die Antwort.
Reddog.
All prime numbers are odd with the exception of two, which is an odd prime
  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 18:34 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