AGB  ·  Datenschutz  ·  Impressum  







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

Pfeil-Up oder Down in Text

Ein Thema von neutrino · begonnen am 17. Apr 2009 · letzter Beitrag vom 15. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2      
neutrino

Registriert seit: 17. Apr 2009
6 Beiträge
 
Delphi 5 Professional
 
#1

Pfeil-Up oder Down in Text

  Alt 17. Apr 2009, 14:39
Hi,
ich möchte in einem StringGrid durch Click auf die Headerrow sortieren. Dabei soll neben dem Cell-Inhalt ein Pfil Rauf bzw runter erscheinen. Wie bekomme ich diese Zeichen in den Text?
Danke und Bitte um entschuldigung, falls diese Frage schon ein paar 100 male gestellt wurde
mfg
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#2

Re: Pfeil-Up oder Down in Text

  Alt 17. Apr 2009, 14:45
Moin, Moin.
Typischerweise fügt man die nicht in den Text ein, sondern zeichnet im OnDrawCell() ein kleines Dreieck hinter den Text.

PS : Ein herzliches Willkommen in der DP!
Ralph
  Mit Zitat antworten Zitat
neutrino

Registriert seit: 17. Apr 2009
6 Beiträge
 
Delphi 5 Professional
 
#3

Re: Pfeil-Up oder Down in Text

  Alt 17. Apr 2009, 14:58
Danke schön! Und Danke für die Begrüßung.
Noch eine Frage: Wie mache ich die Dreiecke (ASCII - ANSI??)
mfg
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#4

Re: Pfeil-Up oder Down in Text

  Alt 17. Apr 2009, 15:41
Wir reden wohl noch ein wenig aneinander vorbei.
Wenn ich schreibe ".. zeichnet im OnDrawCell() ..", dann meine ich tatsächlich zeichnen, d.h. man ermittelt mit Canvas.TextWidth() die Länge des Textes in Pixeln und zeichnet (sofern die Spaltenbreite es zulässt) z.B. mit PolyLine() ein kleines Dreieck mit Schatteneffekt.
Ralph
  Mit Zitat antworten Zitat
neutrino

Registriert seit: 17. Apr 2009
6 Beiträge
 
Delphi 5 Professional
 
#5

Re: Pfeil-Up oder Down in Text

  Alt 17. Apr 2009, 15:52
Danke! hab schon gehofft, es gäbe eine ganz ganz einfache methode
mfg
neutrino
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Pfeil-Up oder Down in Text

  Alt 17. Apr 2009, 15:58
Das muss ja nicht unbedingt mittels einer "manuellen" Methode wie PolyLine() geschehen. Meiner Meinung nach ist es am einfachsten den Pfeil als fertige Grafik mit Canvas.Draw() an die richtige Stelle zu zeichnen. Die Grafik kannst du beispielsweise aus einer ImageList herausholen.
Ralf Kaiser
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#7

Re: Pfeil-Up oder Down in Text

  Alt 17. Apr 2009, 16:09
Hallo Ralf - mit f.
Das ist natürlich richtig, aber das Polyline() ist eigentlich nicht der besondere Aufwand. Normalerweise sortiert man ja mit Klick auf die oberste Zeile, da gilt es dann noch einiges mehr zu beachten. Außerdem, ich hatte es angedeutet, wenn die Spaltenbreite verändert wird, muss ggf. das Dreieck entfernt oder neu gezeichnet werden...
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Pfeil-Up oder Down in Text

  Alt 17. Apr 2009, 17:35
Hallo Ralph - mit ph.

Das ist schon richtig. Aber ich erstelle mir für solche Situationen meistens eine Methode der ich z.B. nur einen ImageIndex einer ImageList übergeben muss um das korrekte Symbol zu zeichnen. Auf diese Weise kann man nicht nur "Pfeil-Dreiecke" sondern eigentlich jedes beliebige Symbol als Statusanzeige im Spaltenkopf zeichnen.

So eine Routine, inklusive des Tests auf eine bestimmte Breite ist doch höchstens 10-15 Zeilen lang (je nach Formatierung)

Für "grössere" Programme verwende ich dann sowieso ein erweitertes Grid, wie z.B. TAdvStringGrid von TMS. Da sind solche Sachen, meistens ebenfalls mit ImageListen bereits fertig gekapselt. Allerdings lohnt sich für ein kleines Tool meistens ein solch "Riesen-Control" nicht, zumindest nicht wenn man nur eine Statusanzeige in den Header zeichnen will.

Ich wollte ja auch nicht sagen, dass deine Methode mit PolyLine() falsch sei, sie ist einfach nur anders. Viele Wege führen eben nach Rom zum Sortierpfeil.
Ralf Kaiser
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#9

Re: Pfeil-Up oder Down in Text

  Alt 17. Apr 2009, 18:28
Hallo Ralf - mit f,
so hatte ich dich auch verstanden.

Zitat:
Viele Wege führen eben nach Rom zum Sortierpfeil.
- guter Spruch!
Ralph
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Pfeil-Up oder Down in Text

  Alt 17. Apr 2009, 21:34
Falls Image (= Datei), dann kann es sein, dass kein Pfeil da ist. => Fehlerquelle (vergessene Datei) um 3 Zeilen einzusparen.

Delphi-Quellcode:
with StringGrid1 do begin
  if not (ACol = SortColAusgew) then // wird im OnClick gesetzt.
    Canvas.Brush.Color := $00AB8552
  else
    Canvas.Brush.Color := clLime;
  Canvas.Pen.Color := clBlack;
  Canvas.Polygon([Point(Rect.Right-9,Rect.Top+9-6-3),
                 Point(Rect.Right-3,Rect.Top+15-6-3),
                 Point(Rect.Right-15,Rect.Top+15-6-3)]);
  Canvas.Polygon([Point(Rect.Right-3,Rect.Top+9),
                 Point(Rect.Right-15,Rect.Top+9),
                 Point(Rect.Right-9,Rect.Top+15)]);
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:38 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