![]() |
Umbruch im Label-> Pfad(1 langer string ohne leerzeichen)
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:
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?
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; 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! |
Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic
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:
DoDrawText wird zum Zeichnen und zur Berechnung der Größe verwendet ... wenn du dieses überschreibst, dann sollte sich was machen lassen.
TCustomLabel = class(TGraphicControl)
protected procedure DoDrawText(var Rect: TRect; Flags: Longint); dynamic; und es werden standardmäßig nur Leerzeichen und Tabulatoren beachtet. |
Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic
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?
|
Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic
Für ~ siehe
![]() ![]() 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 |
Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic
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 ! :P |
Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic
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. ![]() und falls man nicht weiß, wie es geht > ![]() |
Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic
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 :wall:
|
Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic
Mach einfach nur PChar und nutze String, sowie nur die Funktionen ohne A bzw. W am Ende.
|
Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic
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? :spin2:
|
Re: Umbruch im Label-> Pfad(1 langer string ohne leerzeic
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz