AGB  ·  Datenschutz  ·  Impressum  







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

Stringgrid autosize

Ein Thema von youuu · begonnen am 26. Mai 2009 · letzter Beitrag vom 26. Mai 2009
Antwort Antwort
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#1

Stringgrid autosize

  Alt 26. Mai 2009, 22:10
Hi,

wie kann man es bewergstelligen, das stringgrid sich automatisch der größe der Wörter anpasst?
Steven
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Stringgrid autosize

  Alt 26. Mai 2009, 22:19
Schau dir mal Canvas.TextHeight() an

Edit:
Sieht dann ungefähr so aus:
Delphi-Quellcode:
procedure TForm4.StringGrid1GetEditText(Sender: TObject; ACol, ARow: Integer;
  var Value: string);
begin
  if StringGrid1.Cells[ACol, ARow] <> 'then
    StringGrid1.RowHeights[ARow] := Canvas.TextHeight(StringGrid1.Cells[ACol, ARow]);
end;
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Stringgrid autosize

  Alt 26. Mai 2009, 22:31
Zitat von quendolineDD:
Schau dir mal Canvas.TextHeight() an

Edit:
Sieht dann ungefähr so aus:
Delphi-Quellcode:
procedure TForm4.StringGrid1GetEditText(Sender: TObject; ACol, ARow: Integer;
  var Value: string);
begin
  if StringGrid1.Cells[ACol, ARow] <> 'then
    StringGrid1.RowHeights[ARow] := Canvas.TextHeight(StringGrid1.Cells[ACol, ARow]);
end;
Ich brauch nicht die Höhe sondern die "weite" logischerweise

Allerdings klappt

StringGridKunden.ColWidths[2] := canvas.TextWidth(StringGridKunden.Cells[2,i+1]); nicht.

Um genau zu sein wird trotzdem der letzte Buchstabe nicht angezeigt, wie kann das sein?
Steven
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Stringgrid autosize

  Alt 26. Mai 2009, 22:35
Was meinst du mit "klappt nicht"?
Markus Kinzler
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Stringgrid autosize

  Alt 26. Mai 2009, 22:38
Zitat von mkinzler:
Was meinst du mit "klappt nicht"?
Habe Editiert

StringGridKunden.ColWidths[3] := canvas.TextWidth(StringGridKunden.Cells[3,0]) + 10; Muss ich machen damit das komplette Wort sichtbar ist
Steven
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Stringgrid autosize

  Alt 26. Mai 2009, 22:41
Dir fehlen 10 Pixel?

Wird wohl daran liegen, das die Textausgabe innerhalb der Zelle ist und dadurch die "Ränder" der Zelle zu ColWiths dazugezählt werden muss. Also Zellenbreite <> Breite der Ausgabefläche.
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Stringgrid autosize

  Alt 26. Mai 2009, 22:41
Ah ok dann wird es das gewesen sein.

Danke
Steven
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Stringgrid autosize

  Alt 26. Mai 2009, 22:46
Eine Sache funktioniert leider aber immernoch nicht.

Wenn ich im Event "FormPaint" die Größe abtesten und einstelle, dann allerdings später Daten eintrage und wieder die Größe abtaste
ändert sich die Cellen Weite nicht mehr.

Delphi-Quellcode:
  for i:=0 to RowCustomer - 1 do
  begin
    StringGridKunden.Cells[0,i+1] := UTF8ToString(QueryCustomer.FieldByName('title').AsString);
      if StringGridKunden.ColWidths[0] < canvas.TextWidth(StringGridKunden.Cells[0,i+1]) + 10 then
        StringGridKunden.ColWidths[0] := canvas.TextWidth(StringGridKunden.Cells[0,i+1]) + 10;
  end;
Delphi übernimmt lediglich die Größenänderung im "FormPaint" Event
Steven
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

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

Re: Stringgrid autosize

  Alt 26. Mai 2009, 22:50
Da gibt's schon was in der Code-Library:
http://www.delphipraxis.net/internal...ct.php?t=29223
  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 08:13 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