AGB  ·  Datenschutz  ·  Impressum  







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

Trichedit BUG seit D2009

Ein Thema von RoBu · begonnen am 22. Jan 2009 · letzter Beitrag vom 22. Jan 2009
Antwort Antwort
RoBu

Registriert seit: 22. Jan 2009
4 Beiträge
 
Delphi 2009 Enterprise
 
#1

Trichedit BUG seit D2009

  Alt 22. Jan 2009, 12:56
Hallo,

ich habe ein Problem mit TRichEdit und SelStart. Mit SelStart bestimme ich die Cursorposition und setzte auch den Cursor. Seit der D2009-Version werden vermutlich die Zeilenumbrüche <lf><cr> nicht mehr mit der Länge 2 gezählt, sondern nur noch mit 1.

Probleme kommen dann auch bei den Funktionen length, pos, insert und copy auf.


Gibt es eine einfache Lösung dafür?

Kleines Beispiel: D7-->okay D2009-->falsch
siehe Anhang

Delphi-Quellcode:
unit bug;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  richedit1.SetFocus;
  richedit1.text:='Hello world';
  richedit1.SelStart:=length(richedit1.text);
  label2.Caption:=inttostr(richedit1.SelStart);
  label3.Caption:=inttostr(length(richedit1.Text));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  richedit1.Text:=richedit1.Text+#13+#10+'Hello world';
  richedit1.SelStart:=length(richedit1.text);
  label2.Caption:=inttostr(richedit1.SelStart);
  label3.Caption:=inttostr(length(richedit1.Text));
end;

end.
Angehängte Dateien
Dateityp: zip bug_131.zip (475,7 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Trichedit BUG seit D2009

  Alt 22. Jan 2009, 13:03
prüf mal, ob Length(sLineBreak) zufällig 1 ist.

Wenn ja, dann kannst du über Length(sLineBreak) den Zeilenumbruch entsprechend einberechnen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
RoBu

Registriert seit: 22. Jan 2009
4 Beiträge
 
Delphi 2009 Enterprise
 
#3

Re: Trichedit BUG seit D2009

  Alt 22. Jan 2009, 23:32
sorry, die Konstante ist als #13#10 definiert und hat die Länge 2.

Die wichtigste Änderung mit D2009 ist die Unterstützung von unicode. Ist die Komponente vieleicht nicht sauber zu unicode portiert?

Meine Migration von D2007 zu D2009 hat mich viel Zeit gekostet. Langsam habe ich das Gefühl, das Delphi mit Gewalt an die Wand gefahren wird. Ausser das der Objektinspektor die Eigenschaften wieder alphabetisch sortiert macht der Umstieg nur Probleme.

grüsse RoBu
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Trichedit BUG seit D2009

  Alt 22. Jan 2009, 23:44
Zitat von RoBu:
Langsam habe ich das Gefühl, das Delphi mit Gewalt an die Wand gefahren wird.
Mit Sicherheit ist D2009 kein "Gegen die Wand fahren" (Kann man eher von D8/2005 sagen). Der Unicod-Port ist ein zwingende größere Anpassung will man auch mal auf Win64 wechseln. Leider ist ein solch großer Port auf VCL-Seite nicht fehlerfrei, noch sind viele Programm überhaupt darauf vorbereitet das SizeOf(Char) = 2 ist (um es vereinfacht zu schreiben).
Windows Vista - Eine neue Erfahrung in Fehlern.
  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 02:18 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