AGB  ·  Datenschutz  ·  Impressum  







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

In Edit Feld künstlich einen Teil markieren

Offene Frage von "rainerkunze124"
Ein Thema von rainerkunze124 · begonnen am 14. Mär 2005 · letzter Beitrag vom 15. Mär 2005
Antwort Antwort
rainerkunze124

Registriert seit: 1. Okt 2004
Ort: SH
56 Beiträge
 
#1

In Edit Feld künstlich einen Teil markieren

  Alt 14. Mär 2005, 18:11
Hab mal zwei Frage:

Kann ich in einem Edit Feld einen bestimmten Textbereich künstlich markieren lassen (wie als wenn ich ihn mit der Maus markieren würde)? So dass ich sagen kann: von der 3. Stelle an bis zur 6.? (Ihr kennt doch sicherlich das ähnliche Festure von Excel wenn es Sachen bereits kennt, dass dann der bekannte und zur Auswahl stehende Textteil markiert wird, ohne dass man ihn markiert hat)

Und wie kann ich den Cursor im Editfeld umsetzen (vom Programm her)?
Delphi 7 Enterprise - Jedi JCL & JVCL - Indy 10
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: In Edit Feld künstlich einen Teil markieren

  Alt 14. Mär 2005, 18:13
Delphi-Referenz durchsuchenSetFocus
Delphi-Referenz durchsuchenSelStart
Delphi-Referenz durchsuchenSelLength
  Mit Zitat antworten Zitat
rainerkunze124

Registriert seit: 1. Okt 2004
Ort: SH
56 Beiträge
 
#3

Re: In Edit Feld künstlich einen Teil markieren

  Alt 14. Mär 2005, 18:18
Danke für die schnelle Antwort , die letzten beiden Sachen hatte ich auch, aber ich wusste nicht, dass man den Focus auf das Teil setzen muss

Aber nach der Selektion möchte ich gerne den Cursor automatisch vor die Selektion packen und wenn ich dann wieder SelStart benutze, dann verschwindet die Selektion. Womit setze ich den Cursor zurück?
Delphi 7 Enterprise - Jedi JCL & JVCL - Indy 10
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#4

Re: In Edit Feld künstlich einen Teil markieren

  Alt 14. Mär 2005, 18:24
Zitat von rainerkunze124:
Danke für die schnelle Antwort , die letzten beiden Sachen hatte ich auch, aber ich wusste nicht, dass man den Focus auf das Teil setzen muss

Aber nach der Selektion möchte ich gerne den Cursor automatisch vor die Selektion packen und wenn ich dann wieder SelStart benutze, dann verschwindet die Selektion. Womit setze ich den Cursor zurück?
Du willst den Coursor VOR den markierten Teil setzen? Das geht IMHO mit Selstart und SelLength nicht!


mfg
  Mit Zitat antworten Zitat
rainerkunze124

Registriert seit: 1. Okt 2004
Ort: SH
56 Beiträge
 
#5

Re: In Edit Feld künstlich einen Teil markieren

  Alt 14. Mär 2005, 18:32
Zitat:
Das geht IMHO mit Selstart und SelLength nicht!
Und womit dann
Delphi 7 Enterprise - Jedi JCL & JVCL - Indy 10
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#6

Re: In Edit Feld künstlich einen Teil markieren

  Alt 14. Mär 2005, 18:37
Zitat von rainerkunze124:
Zitat:
Das geht IMHO mit Selstart und SelLength nicht!
Und womit dann
Weis ich nicht! Ich habs versucht mit
Delphi-Quellcode:
selStart:=5;
selLength:=-2;
So rum gehts nicht. Man kann auch nicht erst markieren und dann den Coursor verschieben. Ansonsten fällt mir auch kein Trick mehr ein!

mfg
  Mit Zitat antworten Zitat
rainerkunze124

Registriert seit: 1. Okt 2004
Ort: SH
56 Beiträge
 
#7

Re: In Edit Feld künstlich einen Teil markieren

  Alt 14. Mär 2005, 18:47
Hat sonst noch einer ne Idee
Also manuell kann ich das Problem lösen, in dem ich einfach von rechts nach links markiere, aber Delphi interpretiert dieses Verhalten falsch (wie mr47 auch festgestellt hat).
Delphi 7 Enterprise - Jedi JCL & JVCL - Indy 10
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#8

Re: In Edit Feld künstlich einen Teil markieren

  Alt 14. Mär 2005, 20:11
Wozu brauchst du denn das? Vielleicht kann man ja ne Alternative / andere Lösung finden!
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

Re: In Edit Feld künstlich einen Teil markieren

  Alt 15. Mär 2005, 08:32
Tja, das ist mal kein Delphi-Problem, sondern eins der API.
Die MSDN schrieb zu EM_SETSEL
The start value can be greater than the end value. The lower of the two values specifies the character position of the first character in the selection. The higher value specifies the position of the first character beyond the selection.
The start value is the anchor point of the selection, and the end value is the active end. If the user uses the SHIFT key to adjust the size of the selection, the active end can move but the anchor point remains the same.


P.S.: Ich hab da mal was gebastelt:
Delphi-Quellcode:
procedure SetSel(Edit: TEdit; Start, Stop: Integer);
var
  i: Integer;
  KeyboardState: TKeyboardState;
begin
  Edit.Perform(EM_SETSEL, Start, Start);
  GetKeyboardState(KeyboardState);
  KeyboardState[VK_SHIFT] := $80;
  SetKeyboardState(KeyboardState);
  if Start > Stop then
  for i := Start downto Succ(Stop) do
  begin
    Edit.Perform(WM_KEYDOWN, VK_LEFT, 0);
    Edit.Perform(WM_KEYUP, VK_LEFT, 0);
  end;
  if Start < Stop then
  for i := Start to Pred(Stop) do
  begin
    Edit.Perform(WM_KEYDOWN, VK_RIGHT, 0);
    Edit.Perform(WM_KEYUP, VK_RIGHT, 0);
  end;
  SetKeyboardState(KeyboardState);
end;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  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 23:37 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