AGB  ·  Datenschutz  ·  Impressum  







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

seltext in trichedit imitieren

Ein Thema von DrUArn · begonnen am 25. Mai 2011 · letzter Beitrag vom 1. Jun 2011
Antwort Antwort
DrUArn

Registriert seit: 20. Mär 2003
130 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: seltext in trichedit imitieren

  Alt 31. Mai 2011, 15:52
Danke erst mal allen für die Ideen!

Habe für mich selbst noch keine Lösung gefunden - muß wohl noch etwas brüten!

Eigentlich wollte ich ja nur das Verhalten von Trichedit bei shift+ende (Markierung von selstart bis Zeilenende incl. Zeilenumbruch) ändern, so daß der Zeilenumbruch nicht mitmarkiert wird (wie in tmemo)- die Berechnugen dazu sind einfach - aber die Beeinflussung der key-Routinen nicht so.

Auch eine Änderung von key in vk_left und shift in [ssshift,ssctrl] (im trichedit wird dann bis zum Zeilenende OHNE Zeilenumbruch markiert) hilft nicht - dann wird nur Zeichenweise markiert.

Delphi-Quellcode:
  procedure keyup(var Key: Word; Shift: TShiftState);override;

procedure TRichEditTab_ua.keydown(var Key: Word; Shift: TShiftState);
begin
 case key of
 VK_END: if (shift=[ssshift]) then begin shift:=ssshift,ssctrl];key:=VK_RIGHT;end;
 end;
 inherited;
end;
Vielleicht darf man auf diese weise die Variablen nicht ändern - oder liegt's an shift - keine Variable?

MfG
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#2

AW: seltext in trichedit imitieren

  Alt 31. Mai 2011, 22:12
hmmmm, man muss ja nicht alles verstehen
... Ich würde dieses Verhalten gerne genauso simulieren, kann mir aber keinen Algorithums vorstellen, ...
...Eigentlich wollte ich ja nur das Verhalten von Trichedit bei shift+ende (Markierung von selstart bis Zeilenende incl. Zeilenumbruch) ändern
was möchtest Du denn nun? nachbauen oder ändern?

So wird das letzte Zeichen wieder aus der Markierung herrausgenommen:
Delphi-Quellcode:
case key of
  VK_END: if ssShift in Shift then
            RichEdit.SelLength := RichEdit.SelLength -1;
  end;
(alternativ auf das erste #10 nach Selstart prüfen und entsprechend markieren)
... aber ob das dein Ziel ist
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
DrUArn

Registriert seit: 20. Mär 2003
130 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: seltext in trichedit imitieren

  Alt 1. Jun 2011, 10:03
Danke Lannes,

zu Deiner Anmerkung: nachbauen wäre mir lieber - das sind eben solche Probleme, die einem nicht aus dem Kopf gehen - man möchte wissen, wie's geht!

zu Deinem Beispiel der Verkürzung von sellength um 1: geht, wenn man's in keyup unterbringt
Delphi-Quellcode:
procedure TRichEditTab_ua.keyup(var Key: Word;Shift: TShiftState);
begin
  case key of
     VK_END: if (shift=[ssshift]) then begin sellength:=SelLength-1;{key:=0;}end;
  end;

 inherited;
end;
Sieht zwar etwas lustig aus - in keydown wird ja erst die Berechnung incl. Zeilenumbruch ausgeführt - und das sieht man - und danach nehme ich wieder eine Verkürzung um 1 vor. Aber so geht's.
Gerade probiert: In keyup muß man key:=0 auch nicht mehr einfügen.

MfG
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#4

AW: seltext in trichedit imitieren

  Alt 1. Jun 2011, 20:17
Sieht zwar etwas lustig aus - in keydown wird ja erst die Berechnung incl. Zeilenumbruch ausgeführt - und das sieht man - und danach nehme ich wieder eine Verkürzung um 1 vor.
deshalb der Alternativvorschlag:

(alternativ auf das erste #10 nach Selstart prüfen und entsprechend markieren)
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:36 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-2025 by Thomas Breitkreuz