AGB  ·  Datenschutz  ·  Impressum  







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

memo.caretpos liefert falsche ergebnisse

Ein Thema von freejay · begonnen am 7. Mär 2005 · letzter Beitrag vom 8. Mär 2005
Antwort Antwort
freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
269 Beiträge
 
Delphi 11 Alexandria
 
#1

memo.caretpos liefert falsche ergebnisse

  Alt 7. Mär 2005, 10:06
Hallo,

die Methode Memo.CaretPos liefert mir nur bis zum 65.536-sten Zeichen (64*1024) korrekte Werte. Danach beginnen die Y-Werte wieder mit 0 und die X-Werte werden negativ(?)!

Ist das ein bekannter Bug? Kann man das irgendwie um gehen (außer Zeile und Spalte mit eigenem Code zu bestimmen...)?

Gruß

freejay
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: memo.caretpos liefert falsche ergebnisse

  Alt 7. Mär 2005, 10:10
Von welchem Typ ist denn die Variable, in der du den Wert speicherst?
Ich habe deine Angaben zwar nicht geprüft, kann mir aber nicht vorstellen, dass das bei der Grenze vom Typ Word enden sollte.
Falls doch ist die Reaktion des Programms völlig korrekt.
Peter
  Mit Zitat antworten Zitat
freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
269 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: memo.caretpos liefert falsche ergebnisse

  Alt 7. Mär 2005, 13:01
Ich speichere die Werte in einer Integer-Variable.

Das Problem tritt ja auch nicht nach der 65.536sten Zeile oder Spalte auf, sondern z.B. schon in der 1800sten Zeile wenn ich da im Text schon hinter dem 65.536sten Zeichen bin.

Kann das jemand nachvollziehen?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: memo.caretpos liefert falsche ergebnisse

  Alt 7. Mär 2005, 23:41
Moin freejay,

ich kann das Problem nachvollziehen.
Schau doch mal in den VCL-Sourcen, wie GetCaretPos in D7 implementiert ist.
Bei mir (D5), wird leider der Rückgabewert von EM_GETSEL als Initialwert genommen, was zu diesem Fehler führt.
Vermutlich hat sich dies in D7 nicht geändert.

So geht's:

Delphi-Quellcode:
  SendMessage(Memo1.Handle, EM_GETSEL, wParam(@lCol), 0);
  lLine := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, lCol, 0);
  lCol := lCol - SendMessage(Memo1.Handle, EM_LINEINDEX, -1, 0);
lCol entspricht dem y-, lLine dem x-Wert von CaretPos.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
269 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: memo.caretpos liefert falsche ergebnisse

  Alt 8. Mär 2005, 08:49
Danke Chris!
  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 09:19 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