Autor Beitrag
AlexBegin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Fr 12.10.07 11:31 
Gibt es eine Möglichkeit ein Memo auf eine bestimmte Zeichen/Zeile zu beschränken? Ich habe bis jetzt nur die Option im Ojektinspektor für die maximale Zeichen im ganzen Memo gefunden. Kann mir jemand von euch mir helfen?

Bis dann
Alex
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Fr 12.10.07 11:55 
Selbstmachen ist der Programmierer Lust ;)
Der Sinn ist mir aber nicht klar. Sollte doch egal sein, wie lang eine Zeile eingegeben wird, da das Memo automatisch umbricht (wenn im OI : WordWrap = True), wenn die Zeile breiter als Memoanzeigebreite ist ?

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 12.10.07 12:14 
user profile iconzuma hat folgendes geschrieben:
Der Sinn ist mir aber nicht klar.
Ein Beispiel aus der Praxis:
Wenn das Memo später mal gedruckt werden soll und nur ein begrenzter Bereich zur Verfügung steht.

Zur Frage:
Bei jedem Tastendruck prüfen, ob die Zeile schon voll ist und dann entsprechend reagieren.
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Fr 12.10.07 13:02 
user profile iconjasocul hat folgendes geschrieben:
user profile iconzuma hat folgendes geschrieben:
Der Sinn ist mir aber nicht klar.
Ein Beispiel aus der Praxis:
Wenn das Memo später mal gedruckt werden soll und nur ein begrenzter Bereich zur Verfügung steht.


schon klar, ich habe mich ja auch auf das eingeben bezogen, nicht auf das verwenden. Unklar war mir der Sinn, das im Memo schon bei der Eingabe zu machen. Ich weiss ja nicht, wie andere das sehen, aber bei mir ist immer die Druckroutine für das Aufbereiten der zu druckenden Daten zuständig, das Memo wäre also 'nur' ein 'Datenlieferant'.

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 12.10.07 13:09 
Es kann aber notwendig sein, dass das schon bei der Eingabe berücksichtigt werden muss. Dabei können mehrere Dinge eine Rolle spielen:
- Schriftart (Feste Zeichenbreite)
- manuelle Umbrüche und Leerzeichen/Einrückungen
- Unveränderte Darstellung von Bildschirm und Druck.
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Fr 12.10.07 13:19 
user profile iconjasocul hat folgendes geschrieben:
Es kann aber notwendig sein, dass das schon bei der Eingabe berücksichtigt werden muss. Dabei können mehrere Dinge eine Rolle spielen:
- Schriftart (Feste Zeichenbreite)
- manuelle Umbrüche und Leerzeichen/Einrückungen
- Unveränderte Darstellung von Bildschirm und Druck.


Schriftart:
würd ja bedingen, das abhängig von der Schriftart eine unterschiedliche Zeilenlänge vorzugeben ist. (breite Schrift = 10 zeichen, schmale schrift = 15 zeichen oder sowas in der art). war hier aber nicht die rede von.

manuelle Umbrüche, leerzeichen
die umbrüche sind doch gespeichert, wenn man statt memo.text memo.lines nutzt ?

unveränderte Darstellung Bildschirm und Druck:
Bei memo's nie sicher zu realisieren - wenn z.b 3 zeilen sichtbar, aber 4 enthalten, darf man streng genommen nur 3 zeilen drucken, da man die 4te nicht am Bildschirm sieht .. :)
unverändert heisst auch, alle leerzeichen, einrückungen usw. so zu lassen, also nichts zu ändern - ergo am besten lines für lines printen

:) wollte nur mal bissl 'korinthen kacken' *gg*
have a nice day ;)

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
AlexBegin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Fr 12.10.07 14:05 
Wie jasocul sagt, benutze ich das Memo als Dateneingabe und diese wird dann mit einem anderem Zeichensatz ausgedruckt.

Wie soll das mit dem Überprüfen des Tastendruck und dessen Weiterverarbeitung funktionieren?

Bis dann
Alex
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Fr 12.10.07 14:52 
user profile iconAlexBegin hat folgendes geschrieben:
Wie jasocul sagt, benutze ich das Memo als Dateneingabe und diese wird dann mit einem anderem Zeichensatz ausgedruckt.

Wie soll das mit dem Überprüfen des Tastendruck und dessen Weiterverarbeitung funktionieren?

Bis dann
Alex


Ich denke mal, er meint das in etwa so:

beim onkeypress des Memo's:
zeile := memo.lines.Strings[aktuelleZeile];
if length(zeile) >= maxZeilenLaenge then
machwasmitzeile (was auch immer du machen möchtest (eingabe beenden, zeile umbrechen, etc)

else nicht nötig, da nix zu machen ist,
wenn zeile noch nicht maxZeilenlänge erreicht hat

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 12.10.07 16:32 
Hallo,

//Edit: Tipp war nicht richtig beschrieben, so ist es besser:

ich würde ein RichEdit nehmen, das Ereignis RichEdit.OnResizeRequest wird ausgelöst wenn der beschriebene Bereich vergrößert wird. Die Prozedurvariable Rect liefert Dir die koordinaten des beschriebenen Bereichs.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )