AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Umbruch im Label-> Pfad(1 langer string ohne leerzeichen)
Thema durchsuchen
Ansicht
Themen-Optionen

Umbruch im Label-> Pfad(1 langer string ohne leerzeichen)

Ein Thema von alphanumeric · begonnen am 2. Dez 2009 · letzter Beitrag vom 3. Dez 2009
Antwort Antwort
alphanumeric

Registriert seit: 9. Nov 2009
79 Beiträge
 
Delphi 2009 Enterprise
 
#1

Umbruch im Label-> Pfad(1 langer string ohne leerzeichen)

  Alt 2. Dez 2009, 08:32
Hallo alle miteinander,

heut bin ich erneut auf ein Problem gestoßen und nachdem ich meine Foren-Suchskills ausgeschöpft hatte, wollte ich nun einfach nachfragen. Also folgendes:

effektiv befülle ich mein Label während der Laufzeit. Der Text der hineinkommt ist relativ variabel, weshalb ich dort nicht mit #13#10 arbeiten kann. WordWrap und AutoSize sind bereits umgestellt, habe sogar testweise versucht die Constraints hart reinzuhacken, brachte mich aber auch nicht weiter. Mein letzter Versuch gallt dem, den ganzen Wordwrap und Autosize Stuff einfach mal programmatisch zu setzen..immernoch nichts. Hier also mein Code:


Delphi-Quellcode:
    Falschen Code reinkopiert...Fail Number Three - heut is echt nicht mein Tag!

        _RaveSystem.OutputFileName := IncludeTrailingBackslash(GetWindowsTempFolder)+_pdfname+'.pdf';
        _raveProject.ExecuteReport('Kundenauftrag.rav');//_RaveSystem.Execute;
        _raveProject.Execute;
        label7.Caption := _raveSystem.OutputFileName;
Meine Frage nun: kann ich den String, der hier ein Pfad ist, irgendwie ohne sLinebreak umbrechen, sodass dieser zweizeilig in meinem Label angezeigt wird?(Oder wenn nötig 3 Zeilig?) Oder geht das ganze nur mit Leerzeichen dazwischen?


Gruß
alphanum


Edit: ups, falsche Kat(bitte in die richtige für D2009 verschieben, danke!)

Edit2: und Titel auch kräftig verbummelt - so jetz aber!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic

  Alt 2. Dez 2009, 08:41
Du könntest irgendwie versuchen die Line-Break-Funktion zu ersetzen ... ansonsten geht (standardmäßig) das nur mit Leerzeichen.

Ich kenn jetzt leider den Code nicht, aber es gibt ja verschiedene Leerzeichen und in D2009 sollte es dank Unicode mäglich sein.

das einfache #32 (dürfte n-width sein)
n-width
m-width
0-width

und vorallem das 0-width wäre interessant, denn dieses ist sonst nicht sichtbar, aber es müßte sich dort umbrechen lassen, falls die Standard-Line-Break-Funktion diese mit beachtet.



PS: ich nutze bei zu langen Pfaden gern mal dieses "Ellipsis" ... dann ist es zwar auch nur einzeilig, aber man kann dafür eine pasende Pfadkürzung einstellen.


[add]
Delphi-Quellcode:
TCustomLabel = class(TGraphicControl)
protected
  procedure DoDrawText(var Rect: TRect; Flags: Longint); dynamic;
DoDrawText wird zum Zeichnen und zur Berechnung der Größe verwendet ... wenn du dieses überschreibst, dann sollte sich was machen lassen.

und es werden standardmäßig nur Leerzeichen und Tabulatoren beachtet.
$2B or not $2B
  Mit Zitat antworten Zitat
alphanumeric

Registriert seit: 9. Nov 2009
79 Beiträge
 
Delphi 2009 Enterprise
 
#3

Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic

  Alt 2. Dez 2009, 08:48
die Pfadkürzung wollt ich sowieso auch nutzen, habs jetzt grad mal über nen Memo das ich so angemalt hab wie die Form ausschaut gemacht. Ellipsis kürzt also Pfade? Zudem wäre auch noch interessant ob man den Windows Temp Folder auch in Lang kriegen kann, sprich ohne ~ Abkürzungen. Das ganze find ich online meißt nur als Funktion A zum einbauen, Funktion B zum einbauen - is mir alles zuviel, gibts da ne kurze, schnelle alternative um den Windows Temp ordner eben als langen pfad zu kriegen?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic

  Alt 2. Dez 2009, 08:52
Für ~ siehe Delphi-Referenz durchsuchenExpandFileName bzw. MSDN-Library durchsuchenGetFullPathName.

ja, da kann man auch sagen wo gekürz wird.

EndEllipsis ist blöd
aber wenn ich es grad richtig im Kopf hab, dann gibt es noch PathEllipsis (dürfte mitten im Pfad was rausnehmen)
und notfalls WordEllipsis
oder irgendwie so
$2B or not $2B
  Mit Zitat antworten Zitat
alphanumeric

Registriert seit: 9. Nov 2009
79 Beiträge
 
Delphi 2009 Enterprise
 
#5

Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic

  Alt 2. Dez 2009, 10:27
so, also expandfilename bringt mir nichts, da ich nen von Windows aus verkürzten pfad habe.
Sprich der sieht so aus:

C:\DOCUME~1\ usw.
kann das jetz grad ned auswendig.

Die andere Funktion blick ich nicht: ich krieg ganze zeit Typumwandlungsfehler - Zumindest wenn ich mich codetechnisch halbwegs nach dem richte, was in der C Doku ist.


Edit: Dummheit korrigiert !
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic

  Alt 2. Dez 2009, 10:33
Tschuldschung
ExpandFileName kapselt GetFullPathName, wäre also egal was man nimmt.

Blöd nur, wenn man nicht nochmal nachsieht ... diese machen aus einem relativen Pfad einen "vollen" Absoluten.

MSDN-Library durchsuchenGetLongPathName wäre das Richtige

und falls man nicht weiß, wie es geht > Hier im Forum suchenGetLongPathName
$2B or not $2B
  Mit Zitat antworten Zitat
alphanumeric

Registriert seit: 9. Nov 2009
79 Beiträge
 
Delphi 2009 Enterprise
 
#7

Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic

  Alt 2. Dez 2009, 10:49
Wären diese ganzen PWideChars ned - der meckert da in jeder funktion rum, ich will ja den Pfad da direkt reingeben - alles inkompatibel. Bin jetzt soweit, dass ich auf Torry's Delphi krams die Deklaration mal hergeholt hat, aber funktionieren will das ganze Typenspektakel immernoch nicht
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic

  Alt 2. Dez 2009, 10:56
Mach einfach nur PChar und nutze String, sowie nur die Funktionen ohne A bzw. W am Ende.
$2B or not $2B
  Mit Zitat antworten Zitat
alphanumeric

Registriert seit: 9. Nov 2009
79 Beiträge
 
Delphi 2009 Enterprise
 
#9

Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic

  Alt 3. Dez 2009, 08:38
Also, ich hab die Funktion so deklariert und definiert wies auf torry's delphi site steht. Ding is nur: ich hab die parameter zwar als Pchar angegeben, er will unten, wenns dann praktisch wird, trotzdem jeweils pwidechars. ne ahnung was das sein könnte? was mach ich falsch?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic

  Alt 3. Dez 2009, 10:47
PChar ist mehr ein "virtueller" Typ

bis D2007: PChar = PAnsiChar
ab D2009: PChar = PWideChar

PChar paßt sich also jeweils an und der Editor zeigt den Tatsächlichen Typen, welcher verwendet wird, da PChar nur eine Umleitung und kein eigenständiger Typ ist.
$2B or not $2B
  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 14: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