AGB  ·  Datenschutz  ·  Impressum  







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

Koordinatenangabe in Canvas.Textout

Ein Thema von Mojito · begonnen am 25. Nov 2012 · letzter Beitrag vom 25. Nov 2012
Antwort Antwort
Mojito

Registriert seit: 29. Okt 2012
39 Beiträge
 
#1

Koordinatenangabe in Canvas.Textout

  Alt 25. Nov 2012, 14:29
Hallo liebe Delphi-Freunde,

ich möchte in einen Drawgrid über Canvas.Textout in die einzelnen Zellen einen String eintragen.
DrawGridMain.Canvas.TextOut(Spalte, Zeile, output))); Nur leider wird dabei immer nur in die erste Zelle ein String eingetragen. Anscheinend kann man nicht direkt über die Spalten/Zeilennummer auf eine Zelle zugreifen? Habt ihr einen Rat?

Geändert von Mojito (25. Nov 2012 um 14:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Koordinatenangabe in Canvas.Textout

  Alt 25. Nov 2012, 14:47
Bei einem Drawgrid darf man grundsätzlich nur innerhalb des Event OnDrawCell zeichnen.
Hier ein Beispiel für die Beschriftung eines Schachbretts
Delphi-Quellcode:
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
   if ACol = 0 then
   begin
      // Beschriftung vertikal
      if ARow <> 0 then
         DrawGrid1.Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+2, IntToStr(ARow));
   end
   else if ARow = 0 then
   begin
      // Beschriftung horizontal
      DrawGrid1.Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+2, chr(Ord('A')+ACol-1));
   end
end;
  Mit Zitat antworten Zitat
Mojito

Registriert seit: 29. Okt 2012
39 Beiträge
 
#3

AW: Koordinatenangabe in Canvas.Textout

  Alt 25. Nov 2012, 15:03
Mit rect.left+2 und rect.top+2 funktioniert es danke sx2008.

Ich verstehe jedoch noch nicht, was da genau passiert. Wie ich es verstehe, wird so die Position innerhalb der Zeile/Spalte angegeben. Wenn ich rect.top+2 jedoch gegen jedoch gegen rect.bottom austausche wird mir gar nichts mehr in den Zellenangezeigt. Wieso das?
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: Koordinatenangabe in Canvas.Textout

  Alt 25. Nov 2012, 15:08
Das Grid lässt das Zeichnen nur innerhalb des übergebenen Rects zu, welches genau der Zelle entspricht, für die das Event gerade ausgelöst wurde. Du kannst in dem Event nicht ausserhalb dieser Zelle malen, und wenn die obere linke Ecke eines Textes am unteren Rand der Zelle liegt, kann der Text nur komplett ausserhalb der Zelle sein. Das Grid schneidet das weg.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Mojito

Registriert seit: 29. Okt 2012
39 Beiträge
 
#5

AW: Koordinatenangabe in Canvas.Textout

  Alt 25. Nov 2012, 15:40
Ah habs verstanden, das macht Sinn. THX
  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 19:07 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