AGB  ·  Datenschutz  ·  Impressum  







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

Richeditfeld auf Größe begrenzen

Ein Thema von gogi2207 · begonnen am 27. Nov 2002 · letzter Beitrag vom 30. Nov 2002
Antwort Antwort
Seite 1 von 2  1 2      
gogi2207

Registriert seit: 4. Sep 2002
3 Beiträge
 
#1

Richeditfeld auf Größe begrenzen

  Alt 27. Nov 2002, 13:32
Hi,
habe ein Richeditfeld, dieses soll in seiner Größe nicht veränderbar sein. D.h. wenn das Ende der letzten Zeile des Richeditfeldes erreicht worden ist, darf nicht einfach vorne wieder weiter gemacht werden und die erste Zeile nach oben verschoben werden. Es darf kein weiterer Eintrag mehr möglich sein. Wie kann man dieses Problem beheben? 8)
  Mit Zitat antworten Zitat
Sebastian Nintemann
(Gast)

n/a Beiträge
 
#2
  Alt 27. Nov 2002, 14:33
Hallo, vielleicht hilft dir ja die Eigenschaft MaxLength weiter, mit der kannst du auf jeden Fall schonmal die Zeichenanzahl begrenzen.

Gruß, Sebastian
  Mit Zitat antworten Zitat
gogi2207

Registriert seit: 4. Sep 2002
3 Beiträge
 
#3
  Alt 27. Nov 2002, 14:40
Maxlength bringt mir in meinem Fall wenig, da die Größe der Schrift im Richeditfeld variabel ist. Es kann also sein, dass z.B 100 Zeichen in das Richeditfeld passen oder aber nur 80.
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#4
  Alt 27. Nov 2002, 15:39
Hi,
ich frage mich, wofür das wirklich nötig ist. Ansonsten kannst du WordWrap = true und dann gucken, dass in der nächsten Zeile wirklich nichts mehr steht...

Chris
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 27. Nov 2002, 17:44
Moin Gogi,

nur mal so als Idee (ungetestet):

Prüfe im OnChange Ereignis, den Wert der maximalen Zeilenzahl und lösche alle darüber liegenden Zeilen.

Beispiel:

Delphi-Quellcode:
procedure TForm1.RichEdit1Change(Sender: TObject);

const
  _iMaxLines = 5;

begin
  if RichEdit1.Lines.Count > _iMaxLines then
  begin
    while (RichEdit1.Lines.Count) > _iMaxLines do
    begin
      RichEdit1.Lines.Delete(RichEdit1.Lines.Count-1);
    end;
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von RomanK
RomanK

Registriert seit: 7. Jun 2002
Ort: Kirchheim unter Teck
1.036 Beiträge
 
Delphi 7 Personal
 
#6
  Alt 27. Nov 2002, 18:04
Ja, aber wie kommt man dann auf die Anzahl der Linien ???
Ich habs mit
richedit1.height / richedit1.Font.height und mit
richedit1.height / richedit1.Font.size versucht, aber beide Werte ergeben nicht die Anzahl der Linien die gesucht ist !!!
Kann ich es mit der Schriftgröße machen ??? Wenn ja, wie dann ??
Roman Keller
Krieg ist Gottes Art den Amerikanern Geographie beizubringen!
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#7
  Alt 27. Nov 2002, 18:50
Um meinen Vorschlag von oben etwas zu verdeutlichen:
Delphi-Quellcode:
RichEdit1.WordWrap := true;
{ ... }
procedure TForm1.RichEdit1Change(Sender: TObject);
begin
  if RichEdit1.Lines.Count > 1 then begin
    RichEdit1.ReadOnly := true; // eine Möglichkeit...
    RichEdit1.Lines.Delete(1);
  end;
end;
Um das zu erklären: Du guckst, ob die Anzahl der Zeilen größer als 1 ist, und wenn ja löscht du die 2. Zeile (Delphi fängt bei 0 an).

Chris
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 27. Nov 2002, 22:56
Moin Chris,

dabei übersiehst Du nur, dass jemand auch per Copy&Paste etwas einfügen könnte, so dass es durch aus Sinn macht alle Zeilen, die über die gewünschte Anzahl hinausgehen zu löschen.
Sicher ist sicher
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von RomanK
RomanK

Registriert seit: 7. Jun 2002
Ort: Kirchheim unter Teck
1.036 Beiträge
 
Delphi 7 Personal
 
#9
  Alt 27. Nov 2002, 23:03
Jetzt haben wir aber immernoch nicht gelöst wie man auf die Zeilenanzahl kommt ! Hat keiner von euch eine Idee?
Roman Keller
Krieg ist Gottes Art den Amerikanern Geographie beizubringen!
  Mit Zitat antworten Zitat
Marco Haffner
(Gast)

n/a Beiträge
 
#10
  Alt 28. Nov 2002, 00:59
Hiermit solltest Du die möliche Anzahl der Zeilen erhalten:

Delphi-Quellcode:
var
  MaxLines: Word;
begin
  with RichEdit1 do
  begin
    Canvas.Font := Font;
    MaxLines := (Height div Canvas.TextHeight('Wg'));
  end;

  {...}
end;
  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 22:58 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