AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit SelStart

Offene Frage von "himitsu"
Ein Thema von Hazebukelar · begonnen am 28. Jan 2010 · letzter Beitrag vom 31. Mär 2020
Antwort Antwort
Seite 1 von 2  1 2      
Hazebukelar

Registriert seit: 28. Sep 2009
Ort: Nähe Bodensee
22 Beiträge
 
#1

Problem mit SelStart

  Alt 28. Jan 2010, 17:20
Hallo,

ich stelle fest dass sich SelStart in einem TRichedit in Delphi7 und Delphi2010 unterschiedlich verhält.
Folgender Code liefert in Delphi 2010 nicht das gewünschte Ergebis.

Delphi-Quellcode:
Memo.SetFocus;
Memo.SelStart:=50;
Memo.SelLength:=Length(SearchString); // Search String ist "di"
In 2010 wird der selektierte Text zwei Zeichen zu weit hinten markiert.
Ich habe zwei Screenshots angehängt.

Hat sich da was geändert?
Miniaturansicht angehängter Grafiken
d2010_145.jpg  
Angehängte Grafiken
Dateityp: jpg d7_165.jpg (139,1 KB, 15x aufgerufen)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem mit SelStart

  Alt 28. Jan 2010, 17:35
Welchen Typ hat SearchString?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
 
Delphi 12 Athens
 
#3

Re: Problem mit SelStart

  Alt 28. Jan 2010, 17:39
Das Length scheint ja zu stimmen (oder hast du auch schonmal versucht es über einen Zeilenumbruch hinweg zu markieren? )

nur der Anfang (SelStart( stimmt eben nicht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

Re: Problem mit SelStart

  Alt 28. Jan 2010, 17:41
Schon mal den Text analysiert, der im RichEdit steht? Hast du vielleicht irgendwo zwei Leerzeichen zu viel oder zu wenig? Wie sieht das Ergebnis denn aus, wenn du die Zeilenumbrüche mal entfernst?

Edit: ich hasse dich, du roter Kasten...
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Hazebukelar

Registriert seit: 28. Sep 2009
Ort: Nähe Bodensee
22 Beiträge
 
#5

Re: Problem mit SelStart

  Alt 28. Jan 2010, 17:55
SearchString ist ein Unicode und wird direkt im TFinddialog eingegeben.

Leerzeichen sind keine drin - es ist 100% derselbe Text im Richedit drin,
auch im Buffer sieht's identisch aus, also Zeilenumbrüche usw.

Wenn ich die Zeilenumbrüche rausmache kommt das gleiche Ergebnis raus, damit
könnte es was zu tun haben

Der Wert für SelStart kommt übrigens im "Echtbetrieb" aus einer Suchroutine und ist in
den unterschiedlichen Delphi Versionen identisch.

Lediglich die Markierung wird in D2010 falsch gesetzt.

Es sieht fast so aus als würden die Zeilenumbrüche #13 #10 von SelStart in D2010 anders (falsch?) gezählt.

Ich such schon den ganzen Tag......

Wie verhält sich das denn bei Euch (unverschämte Frage)?
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

Re: Problem mit SelStart

  Alt 28. Jan 2010, 17:59
Hm... Ich denke eher dass es an Unicode liegt. War mein erster Gedanke, aber ich vermute das halt nur Ich wüsste nicht, woran ich das nun festmachen könnte...

Zitat:
Wenn ich die Zeilenumbrüche rausmache kommt das gleiche Ergebnis raus, damit
könnte es was zu tun haben
Lass dir viel mal Character für Character ausgeben, also in D7 und D2010. Vielleicht kommt da ja was anderes raus.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Problem mit SelStart

  Alt 28. Jan 2010, 18:02
Ja, dass es an den Zeilenumbrüchen liegt, hatte ich auch schon vermutet, als ich vor zwei Tagen diese (ähnliche) Frage gelesen habe:
http://forum.delphi-treff.de/showthread.php?t=28282
(Leider kann ich es im Moment nicht testen.)
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Hazebukelar

Registriert seit: 28. Sep 2009
Ort: Nähe Bodensee
22 Beiträge
 
#8

Re: Problem mit SelStart

  Alt 28. Jan 2010, 18:07
An Unicode habe ich auch gedacht, aber auch ich finde da absolut keinen Ansatz.

Wenn's ein Unicode Problem wäre dann wäre SelStart aus meiner Suchroutine falsch - ist aber identisch.

Die Zeichen habe ich eins zu eins verglichen - identisch.

Auch mal in ein leeres Memofeld manuell die selben Zeichen reingetippt - auch keine Änderung.

Sobald Umbrüche drin sind verschiebt sich der markierte Text immer mehr nach hinten, je mehr Umbrüche
desto größer der Versatz.

Da mangelts wirklich an Ideen......
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#9

Re: Problem mit SelStart

  Alt 28. Jan 2010, 18:08
Nutzt du dir Methode zur Positionsbestimmung, oder? Und da kommen die gleichen Wert raus? wenn das wirklich so ist, dann würde ich wahrlich an der TRichEdit zweifeln. Entweder, dass da ein Problem mit Unicode vorliegt, oder dass sich dadurch vielleicht intern etwas geändert hat. Total strange...
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
 
Delphi 12 Athens
 
#10

Re: Problem mit SelStart

  Alt 28. Jan 2010, 18:10
Delphi-Quellcode:
RichEdit1.Text := '12345'#13#10'abcdefgh';
RichEdit1.SelStart := 9;
RichEdit1.SelLength := 3;
Dieser Code selektiert in D4, D7 und D2006 "cde"
und in D2009, sowie D2010 ist es "def".

[add]
Die Zeilenumbrüche scheinen OK
Hab sie grad mal via SendMessage direkt ausgelesen.


[edit]
SelStart und SelLengt arbeiten wirklich nur mit einem Byte als Zeilenumbruch
Das Memo arbeitet aber noch richtig
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 10:51 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