AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

RichEdit Texteinzug

Ein Thema von Dunkelbunt27 · begonnen am 2. Okt 2010 · letzter Beitrag vom 5. Okt 2010
Antwort Antwort
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#1

RichEdit Texteinzug

  Alt 2. Okt 2010, 22:08
Hallo liebe Delphi Praxis,
ich arbeite an einem kleinen Textbearbeitungsprogramm und habe ein paar wichtige Fragen.
Ich hoffe irgendjemand weiß eine Antwort.
(Bitte antwortet verständlich und möglichst mit Quelltextschnipseln

1) Texteinzug setzen
um bei einem 'Dokument' nicht links am Rand anzufangen habe ich folgenden Quelltext:
Delphi-Quellcode:
with Editor do begin
    Paragraph.FirstIndent := i;

    Paragraph.Tab[0] := 150;
    Paragraph.Tab[1] := 250;
    Paragraph.Tab[2] := 320;
    Paragraph.Tab[3] := 450;
    Paragraph.Tab[4] := 550;
  end;
end;
Hierbei ist Editor mein RichEdit1.
Das ganze funktioniert in sofern, dass ich nach 150pxls Platz anfange zu schreiben, was auch so sein soll.
Ich habe es in die RicheEdit OnClick geschoben, da mir nichts besseres eingefallen ist. Wo wär es besser aufgehoben?

Wie kann ich festlegen, dass ich erst nach 2 Zeilen Platz für z.B. Ein Kopfzeile anfange zu schreiben?
(Und wie kann man eine Kopfzeile definieren um darin zu schreiben?)

2) Wenn ich die Tab-Taste im gestarteten Programm drücke soll der Texteinzug weiterspringen, wie man das gewöhnt ist, also um die 4 Leerzeichen Platz gelassen werden.
Da die Tab Taste jedoch eine Steuerfunktion hat, schaltet sie statt einen Tab zu machen zwischen den Komponeten der Unit durch.
Wie kann ich das umgehen, bzw. Die Taste zwingen in der RichEdit zu bleiben und nich andere Buttons anzusteuern?

Ich freue mich auf die Antworten,
Liebe Grüße Dunkelbunt
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#2

AW: RichEdit Texteinzug

  Alt 2. Okt 2010, 22:34
Nicht push

Geändert von Dunkelbunt27 ( 2. Okt 2010 um 22:57 Uhr)
  Mit Zitat antworten Zitat
Bernerbaer
(Gast)

n/a Beiträge
 
#3

AW: RichEdit Texteinzug

  Alt 2. Okt 2010, 22:41
Mit dem pushen innerhalb eines Tages machst du dich hier nicht besonders beliebt!

Zeilen einfügen am Begin: richedit1.lines.insert(0,'');

tab: property wanttabs auf true setzen

Kopf- und Fusszeile: RIchedit unterstützt in Delphi keine Kopf- und Fusszeilen, also entweder selber malen oder auf ein externes Control ausweichen.

Geändert von Bernerbaer ( 2. Okt 2010 um 22:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: RichEdit Texteinzug

  Alt 2. Okt 2010, 22:45
nach 26 Minuten schon pushen ... was rauchst du denn gerade ... stell mal auf auf was ruhigeres um
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#5

AW: RichEdit Texteinzug

  Alt 2. Okt 2010, 23:04
'Tschuldigung!

Danke für die Antwort, das mit Wanttabs ist klasse.
Jetz nochmal die Frage, wo ist die gesamte Texteinzugsprozedur am besten aufgehoben?
OnClick ist eher unpassend...

Edit1:
Ich habe bei der RichEdit folgende Property entdeckt:
Border Width. Wenn man den Wert auf etwa 50 festlegt ist der Abstand des Textes zum Rand größer.
Dadurch hat man etwa den selben effekt...
Nachteil ist das der Platz, also die Border (Grenze) unbeschreibbar ist.

Geändert von Dunkelbunt27 ( 2. Okt 2010 um 23:14 Uhr)
  Mit Zitat antworten Zitat
Bernerbaer
(Gast)

n/a Beiträge
 
#6

AW: RichEdit Texteinzug

  Alt 2. Okt 2010, 23:18
Wo du die Texteinzugsprozedur einfügst hängt von deiner Anwendung ab.

Es gibt verschiedene Möglichkeiten:
- im Formcreate
- in einem Menü oder Button, wenn es der Benutzer zur Laufzeit festlegen soll

Zu dem Rand:

Nein, das ist nicht der gleiche Effekt! Ein Einzug gilt für einen Paragraph, und kann somit für unterschiedliche Absätze unterschiedlich gesetzt werden. Wenn also ein Blatt mit einem fixen Rand gesetzt werden soll verwende ich jeweils folgende Prozedur:
Delphi-Quellcode:
procedure TForm1.SetMargin(RE: TRichEdit; L,R,T,B : Integer);
// Linken, Rechten, Oberen und Unteren Rand setzen
var Rect :TRect;
begin
  SendMessage(RE.Handle,EM_GETRECT,0,LongInt(@Rect));
  Rect.Left := Rect.Left + L;
  Rect.Right := Rect.Right - R;
  Rect.Top := Rect.Top + T;
  Rect.Bottom := Rect.Bottom - B;
  SendMessage(RE.Handle,EM_SETRECT,0,LongInt(@Rect));
end;
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#7

AW: RichEdit Texteinzug

  Alt 2. Okt 2010, 23:29
Delphi erkennt die SetMargin nicht.
Muss ich irgendetwas bestimmtes einbinden oder beachten?
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:44 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