Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi in stringgrids pixelweise scrollen? wie? (https://www.delphipraxis.net/25355-stringgrids-pixelweise-scrollen-wie.html)

pmac 5. Jul 2004 11:41


in stringgrids pixelweise scrollen? wie?
 
hallo

ich möchte in einem stringgrid wörter ablegen, die auch viel länger als die tabelle selbst sein können.
das problem ist nun, dass das scrollen im stringgrid spaltenweise erfolgt.

fazit: alles was in dem grid nicht angezeigt wird, weil das wort zu lang ist, wird auch nicht durch srollen sichtbar, da man sofort zur nächsten spalte springt. ziemlich unschön, da man dann nicht kontrollieren kann, ob das ganze wort vollständig und richtig in der zelle sitzt.

wahrscheinlich bin ich nicht der erste, der diese unschöne erfahrung macht.

wie ist es nun möglich, in dem stringgrid PIXELWEISE zu scrollen?

danke im voraus :wall:

shmia 5. Jul 2004 13:03

Re: in stringgrids pixelweise scrollen? wie?
 
Zitat:

Zitat von pmac
ich möchte in einem stringgrid wörter ablegen, die auch viel länger als die tabelle selbst sein können.
das problem ist nun, dass das scrollen im stringgrid spaltenweise erfolgt.
wie ist es nun möglich, in dem stringgrid PIXELWEISE zu scrollen?

Da das StringGrid diese Funktionalität nicht bietet, gibt es sehr wahrscheinlich keine Chance dies durch Tricks nachzuholen.
Aber es gäbe da folgende Alternativen:
  • beim Selektieren einer Zeile wird das Property Hint auf den Zelleninhalt gesetzt.
    Damit wird der Inhalt als Hintfenster angezeigt.
  • Die Spalten des Stringgrids werden so breit gemacht, dass der gesamte Inhalt hinein passt.
    Dazu poste ich demnächst eine Unit für die Code-Library. :zwinker:
  • Der Inhalt wird mehrzeilig ausgegeben. Dazu muss ein Eventhandler für OnDrawCell geschrieben werden.
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
   s : string;
begin
   s := StringGrid1.Cells[acol, ARow];

   if gdfixed in State then
      StringGrid1.Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+2, s)
   else
   begin
      StringGrid1.Canvas.FillRect(Rect);
      Inc(Rect.Top, 2);
      Inc(Rect.Left, 2);
      DrawText(StringGrid1.Canvas.Handle, PChar(s), Length(s), Rect, DT_LEFT or DT_WORDBREAK);
   end;
end;

sakura 5. Jul 2004 13:04

Re: in stringgrids pixelweise scrollen? wie?
 
:warn: Ich bitte Dich in Zukunft Groß- und Kleinschreibung korrekt zu nutzen. Das gilt für Dich wie auch für alle anderen Forennutzer.

...:cat:...

pmac 5. Jul 2004 13:28

Re: in stringgrids pixelweise scrollen? wie?
 
Nun ja..die Spalten sind breit genug für die Wörter, aber die Tabelle ist nicht so breit, wie die Spalte. Daher will ich scrollen, um den Rest des Wortes zu sehen.

In mehrere zeilen, möchte ich es auch nicht zergliedern, da es nicht dem Sinn des Programms entspricht.

Aber als Hintfenster auszugeben, werde ich in Betracht ziehen. Danke für deine Antwort.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 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