Forum: Object-Pascal / Delphi-Language
by Bjoerk,
12. Nov 2014
Achso. Die SplitString schmeißt ja den Delim (hier #32) raus. Dann isses klar. Danke! :oops: :thumb:
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
12. Nov 2014
Hab ich.
Ist mit Leerzeichen.
Wieso dieses Leerzeichen? Kapier ich nich?
Edit:
Stimmt übrigens. Mega Thanx!! Aber wieso?
MMX := MMX + Canvas.TextWidth(SL + #32) / ppMM + DeltaMMX;
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
12. Nov 2014
Ok. Schau ich mir an. Vielleicht nochmal zu meinem Ansatz. Ich versteh ja wenn das mal 1 oder 2 Pixel Unterschied sind (ist bei Word ja auch) aber so ??? Ich splitte den String in eine Wortliste (übrigens mit deiner Splitspring) und drucke dann Wort für Wort. Das TextWidth jeweils dazu addiert zuzüglich der Länge Delta?
========== Bezugsbreite ==========
Test(__Delta__)Test(__Delta__)Test
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
12. Nov 2014
Wollte jetzt noch Blocksatz einbauen. Mach ich da was falsch? Der Unterschied zu rechtsbündig ist ziemlich groß?
procedure TBBCItem.JustifiedTextOut(Canvas: TCanvas; MMX, MMY, ppMM: double); // Blocksatz;
var
TextMMWidth, DeltaMMX: double;
I: integer;
SL: TStringList;
begin
SL := TStringList.Create;
try
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
11. Nov 2014
Richtig. Und DeddyH ebenso.
Deshalb hab ich's so gemacht.
FBBCParser := TBBCParser.Create;
FBBCParser.List.AddFont('_Delphi', 'Courier New', 10, clNavy, );
FBBCParser.List.AddPicture('ATHENA', 'C:\Delphi2007\Abel2007\Sonstige\ATHENA.BMP');
FSL := TStringList.Create;
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
11. Nov 2014
Gut. Machen kann man viel..
c:\...\.jpg
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
10. Nov 2014
Ok. Thanx. Ich denke aber ich habs jetzt soweit. Etwas optimiert und mit korrekter LinesOut. Man kann übrigens auch von außen (FBBCParser.List.Add..) oder auch im constructor weitere BBCodes setzen. Die werden dann automatisch berücksichtigt.
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
10. Nov 2014
Ok. Thanx. Das war ja das: StringReplace(FSL.Text, sLineBreak, '', ) :oops:
Die LinesOut (Strings) funktioniert übrigens nicht richtig. Die hab ich nochmal überarbeitet…
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
9. Nov 2014
Ich hab' den Parser jetzt doch (lieber) in "BjoerkStyle" gemacht. Tut. In diesem Zusammenhang ist bei mir eine andere Frage aufgetaucht. Ist TStringList.Text nicht dasselbe wie das Ganze in einen String aufsummiert? (Siehe auch FBBCParser.LineOut(PaintBox.Canvas, FSL.Text, ..))
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
5. Nov 2014
Thanx. Wie immer genial deine Posts. Aber, den Code hab ich fast Null verstanden. Und Generics und TStringBuilder hab ich nich.. :oops:
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
5. Nov 2014
Fast. Das ganze soll gedruckt werden. Die Quotes verstehen sich als Canvas.Font Attribute.
type
TWordInfo = record
Value: string;
Style: TFontStyles;
Color: TColor;
procedure Draw(Canvas: TCanvas; MMX, MMY: double);
end;
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
5. Nov 2014
Das ist einTest.
Wie soll ich das denn machen?
Hat jemand eine Idee wie man sowas elegant splitten kann (Pseudocode reicht völlig)? :gruebel: