AGB  ·  Datenschutz  ·  Impressum  







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

tabstop rechtsbündig

Ein Thema von champagner · begonnen am 2. Nov 2009 · letzter Beitrag vom 4. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2      
champagner

Registriert seit: 29. Apr 2008
46 Beiträge
 
Delphi XE6 Professional
 
#1

tabstop rechtsbündig

  Alt 2. Nov 2009, 20:23
Hallo,

ich habe folgenden Code:

Delphi-Quellcode:
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;
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).

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]
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: tabstop rechtsbündig

  Alt 2. Nov 2009, 20:39
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
MSDN-Library durchsuchenEM_SETPARAFORMAT

dort klickst du dich zum passenden Eintrag durch
http://msdn.microsoft.com/en-us/library/bb774276.aspx
da geht es dann weiter mit den Records (sind da verlinkt)
http://msdn.microsoft.com/en-us/library/bb787942.aspx

und dort steht wiederum was man wie setzen muß, damit das gewünschte passiert.
siehe rgxTabs
$2B or not $2B
  Mit Zitat antworten Zitat
champagner

Registriert seit: 29. Apr 2008
46 Beiträge
 
Delphi XE6 Professional
 
#3

Re: tabstop rechtsbündig

  Alt 2. Nov 2009, 20:46
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!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: tabstop rechtsbündig

  Alt 2. Nov 2009, 20:58
den Quellcode hast du schon
und was du genau ändern mußt, das steht im MSDN
pf2.rgxTabs[1] := 2880 or ...; ... = hier jetzt die Werte dazurechnen, welche da drüben erwähnt wurden


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:
These bits do not affect the rich edit control display for versions earlier than Rich Edit 3.0.
$2B or not $2B
  Mit Zitat antworten Zitat
champagner

Registriert seit: 29. Apr 2008
46 Beiträge
 
Delphi XE6 Professional
 
#5

Re: tabstop rechtsbündig

  Alt 2. Nov 2009, 21:10
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!
  Mit Zitat antworten Zitat
champagner

Registriert seit: 29. Apr 2008
46 Beiträge
 
Delphi XE6 Professional
 
#6

Re: tabstop rechtsbündig

  Alt 2. Nov 2009, 21:12
Ach ja, und wie genau funktioniert das mit dem 24-27 bit?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: tabstop rechtsbündig

  Alt 2. Nov 2009, 21:19
Delphi-Quellcode:
pf2.rgxTabs[1] := 2880 or (2{rechts} shl 24);

pf2.rgxTabs[1] := 2880 or $02000000;
$0x000000 = Bits 24-27
$x0000000 = Bits 28-31
$2B or not $2B
  Mit Zitat antworten Zitat
champagner

Registriert seit: 29. Apr 2008
46 Beiträge
 
Delphi XE6 Professional
 
#8

Re: tabstop rechtsbündig

  Alt 2. Nov 2009, 21:34
Vielen, vielen Dank!
  Mit Zitat antworten Zitat
champagner

Registriert seit: 29. Apr 2008
46 Beiträge
 
Delphi XE6 Professional
 
#9

Re: tabstop rechtsbündig

  Alt 3. Nov 2009, 22:30
Ich habe jetzt folgenden Quelltext entworfen:

Delphi-Quellcode:
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.
Das Setzen der Tabstops funktioniert offenbar bestens. Leider funktioniert nicht, dass das Tab [1] rechtsbündig ist.

Bitte: Was fehlt an meinem Quellcode? Mein System: Vista, Turbodelphi.

Vielen Dank!
  Mit Zitat antworten Zitat
champagner

Registriert seit: 29. Apr 2008
46 Beiträge
 
Delphi XE6 Professional
 
#10

Re: tabstop rechtsbündig

  Alt 5. Nov 2009, 20:22
Hallo,

kann mir irgendwer helfen? Danke!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:22 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