![]() |
tabstop rechtsbündig
Hallo,
ich habe folgenden Code:
Delphi-Quellcode:
Ich möchte, dass die Tabstops rechtsbündig sind (also nicht der Text). D.h., wenn man mit der Tab-Taste weitergeht und Text eingibt, verschiebt sich dieser nach links (s. OpenOffice Writer, auf Tabstop doppelt klicken).
procedure TAb_rechtsbuendig();
var pf2: PARAFORMAT2; begin FillChar(pf2, SizeOf(pf2), 0); pf2.cbSize := SizeOf(pf2); pf2.dwMask := PFM_Tabstops; pf2.cTabCount:=5; pf2.rgxTabs[0]:=1440; pf2.rgxTabs[1]:=2880; pf2.rgxTabs[2]:=4000; pf2.rgxTabs[3]:=5000; pf2.rgxTabs[4]:=6000; SendMessage(form1.Richedit1.Handle, EM_SETPARAFORMAT, 0, Longint(@pf2)); end; name 1 name 12 und eben nicht: name 1 name 12 Hat jemand eine Idee? Ich bin ein Newbie mit den API-Geschichten. Danke! [edit=Matze][delphi]-Tags eingefügt. MfG, Matze[/edit] |
Re: tabstop rechtsbündig
bitte benutze mal diese [delphi]...[/delphi]-Tags
sowie [code]...[/code] für dein Beispiel (die Leerzeichen sind sonst sinnlos) du kannst deinen Beitrag auch noch editieren und dieses ändern ... einfach auf [edit] klicken und für WinAPI-Sachen ![]() dort klickst du dich zum passenden Eintrag durch ![]() da geht es dann weiter mit den Records (sind da verlinkt) ![]() und dort steht wiederum was man wie setzen muß, damit das gewünschte passiert. siehe rgxTabs |
Re: tabstop rechtsbündig
Hallo,
sorry, werde mich zukünftig daran halten. Wäre es möglich, ein bisschen Quellcode zu erhalten? Ich habe nämlich leider wirklich nicht so viel Ahnung; es wäre aber wichtig für mich, dieses Problem mit den Tabstops zu lösen... VIELEN Dank! |
Re: tabstop rechtsbündig
den Quellcode hast du schon
und was du genau ändern mußt, das steht im MSDN
Delphi-Quellcode:
... = hier jetzt die Werte dazurechnen, welche da drüben erwähnt wurden
pf2.rgxTabs[1] := 2880 or ...;
Aber vermutlich hast du eh pech und es geht bei dir nicht. Du hast ja nicht erwähnt welche Delphi-Version und welches OS du nutzt. Zitat:
|
Re: tabstop rechtsbündig
Hallo,
vielen Dank. Ich habe TurboDelphi und Windows Vista. Den Wert hinter dem "or", ist das der Wert "2" für "right aligned tab"? oder muss ich dort $2000000 eintragen? Vielen Dank! |
Re: tabstop rechtsbündig
Ach ja, und wie genau funktioniert das mit dem 24-27 bit?
|
Re: tabstop rechtsbündig
Delphi-Quellcode:
$0x000000 = Bits 24-27
pf2.rgxTabs[1] := 2880 or (2{rechts} shl 24);
pf2.rgxTabs[1] := 2880 or $02000000; $x0000000 = Bits 28-31 |
Re: tabstop rechtsbündig
Vielen, vielen Dank!
|
Re: tabstop rechtsbündig
Ich habe jetzt folgenden Quelltext entworfen:
Delphi-Quellcode:
Das Setzen der Tabstops funktioniert offenbar bestens. Leider funktioniert nicht, dass das Tab [1] rechtsbündig ist.
unit Paraformat_Beispiel;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, richedit, StdCtrls, ComCtrls; type TForm1 = class(TForm) RichEdit1: TRichEdit; procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var pf2 : PARAFORMAT2; i : Integer; begin SendMessage(Richedit1.Handle, EM_GETPARAFORMAT, 0, Longint(@pf2));// brauche ich das? FillChar(pf2, SizeOf(pf2), 0); // brauche ich das? pf2.cbSize := SizeOf(pf2); pf2.dwMask := PFM_Tabstops; pf2.cTabCount :=5; pf2.rgxTabs[0]:=1440; pf2.rgxTabs[1]:=2880 or $02000000; pf2.rgxTabs[2]:=4000; pf2.rgxTabs[3]:=5000; pf2.rgxTabs[4]:=6000; SendMessage(Richedit1.Handle, EM_SETPARAFORMAT, 0, Longint(@pf2)); end; end. Bitte: Was fehlt an meinem Quellcode? Mein System: Vista, Turbodelphi. Vielen Dank! |
Re: tabstop rechtsbündig
Hallo,
kann mir irgendwer helfen? Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 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 by Thomas Breitkreuz