AGB  ·  Datenschutz  ·  Impressum  







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

Länge eines Strings

Ein Thema von Karsten · begonnen am 31. Okt 2003 · letzter Beitrag vom 31. Okt 2003
Antwort Antwort
Karsten

Registriert seit: 5. Sep 2003
56 Beiträge
 
Delphi 6 Personal
 
#1

Länge eines Strings

  Alt 31. Okt 2003, 00:07
Hallo,

Ich habe folgendes Problem:

Ich habe ein TLabel oder TEdit mit fest definierter größe. Darin wird ein Text-String ausgegeben was ja nichts besonderes ist.
Gerade beim TEdit interessiert es mich vorher ob der String von der Länge her in den TEdit passt.
D.h., ich benötige lediglich eine Möglichkeit festzustellen was größer ist, der String oder TEdit.

Die "Width" von TEdit habe ich ja aber wie komme ich an die "Width" von dem String ? 'Length' ist hier nicht ausreichend da es lediglich die Anzahl der character zurückgibt und

- mmmmm
- iiii

haben ja nun mal unterschiedliche Längen.

Gruß,
Karsten
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Länge eines Strings

  Alt 31. Okt 2003, 00:08
length(DeinString)

gruss
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von matthiasl
matthiasl

Registriert seit: 30. Okt 2003
Ort: Nienburg
14 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Länge eines Strings

  Alt 31. Okt 2003, 00:37
Label1.Canvas.TextWidth(Label1.Caption);

Gruß...
...Matthias
Wenn null besonders groß ist, ist es fast ein bischen eins...
  Mit Zitat antworten Zitat
Karsten

Registriert seit: 5. Sep 2003
56 Beiträge
 
Delphi 6 Personal
 
#4

Re: Länge eines Strings

  Alt 31. Okt 2003, 00:51
ja nun, aber ist es nicht so daß length() die Anzahl der character zurück gibt und der Wert 'Width' des Edit nicht umbedingt in character angegeben wird, sondern in Pixeln.

d.h., was ich benötige ist ein vergleich beider Größen.

Trotzdem danke,
Karsten
  Mit Zitat antworten Zitat
Karsten

Registriert seit: 5. Sep 2003
56 Beiträge
 
Delphi 6 Personal
 
#5

Re: Länge eines Strings

  Alt 31. Okt 2003, 00:58
Richtig, der Canvas hatte so etwas wie einen TextWidth. Werde mal sehen wie ich mir das zusammen frickel.

Interessant wieviele von Euch noch um diese Uhrzeit vor dem Rechner sitzen.

Danke,
Karsten
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#6

Re: Länge eines Strings

  Alt 31. Okt 2003, 07:49
Mit Canvas wirst du bei TEdit einige Probleme bekommen.

Daher hab ich mal schnell einige unabhänige Routinen erstellt.
Wie zu erkennen ist, muss nur der Text und der dazugehörige Font übergeben werden.
Delphi-Quellcode:
{© by Himitsu @ Delphi-PRAXiS}

Function TextLaenge(Font: TFont; Text: String): Integer;
  Var B: TBitMap;

  Begin
    B := TBitMap.Create;
    B.Canvas.Font := Font;
    Result := B.Canvas.TextWidth(Text);
    B.Free;
  End;

Function TextHoehe(Font: TFont; Text: String): Integer;
  Var B: TBitMap;

  Begin
    B := TBitMap.Create;
    B.Canvas.Font := Font;
    Result := B.Canvas.TextHeight(Text);
    B.Free;
  End;

(* Beispiel für einen Aufruf der Funktion(en) *)
Procedure TForm1.Button1Click(Sender: TObject);
  Var I: Integer;

  Begin
    (* Wichtig:                            *
    * Es muß der Font angegeben werden,    *
    * der auch für die Darstellung des    *
     * entsprechenden Textes verwendet wird *)

    I := TextLaenge(Edit1.Font, Edit1.Text);
    Label1.Caption := IntToStr(I);
  End;
Viel Spass damit,
Frank

Habe es dieses mal sogar getestet.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Karsten

Registriert seit: 5. Sep 2003
56 Beiträge
 
Delphi 6 Personal
 
#7

Re: Länge eines Strings

  Alt 31. Okt 2003, 12:18
Absolut genial .

Danke,
Karsten
  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 05:59 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