tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
938
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    sgdiablo sgdiablo ist offline Grünschnabel
    Registriert seit
    Oct 2006
    Beiträge
    2
    Hallo

    Ich bin Anfänger in der Programmierung mit Borland Builder. Jetzt habe ich das Problem die Zeilennummer einer markierten Zeile in einem Memo zu ermitteln.
    Kann mir da jemand weiterhelfen?

    Gruß
    sgdiablo
     

  2. #2
    Supa Supa ist offline Mitglied Gold
    Registriert seit
    Jul 2004
    Ort
    Velbert
    Beiträge
    160
    Hy...

    also ich hab gerade mal geguckt und festgestellt, das es keine Methode gibt um die Zeilennummer in einem Memo geliefert zu bekommen.

    Vielleicht gibts ne Alternative. Wozu genau brauchst du die Zeilennummer, bzw. was willst du damit machen?

    Oder, wenns wirklich nicht anders geht, kannst du dir natürlich immernoch selbst ne Funktion schreiben. (--> Könntest den Text bis zum Courser kopieren und dann einfach die Gesamtzeilen zählen... dann weißt Du ja auch in welcher Zeile du dich befindest...)
     
    noch 'n bischen Werbung in eigener Sache: www.ice-only.de

  3. #3
    Registriert seit
    Mar 2004
    Beiträge
    441
    Also zum Ermitteln der Zeilennummer eines markierten Textes habe ich auch nichts Vorgefertigtes gefunden. Aber als selbstgestrickte Methode würde ich wohl so vorgehen:

    - TMemo.Lines[] durchlaufen
    - Jede einzelne TMemo.Lines[x] mit dem markierten Text vergleichen (es hieß ja, daß eine ganze Zeile markiert ist).
    - Bei Übereinstimmung: X + 1 ist die gesuchte Zeilennummer.
     

  4. #4
    Avatar von King Euro
    King Euro King Euro ist offline Mitglied Platin
    Registriert seit
    Sep 2003
    Beiträge
    582
    Ist aber problematisch wenn es mehrere Zeilen gibt die diesen Text beinhalten.
     

  5. #5
    Registriert seit
    Mar 2004
    Beiträge
    441
    Zitat Zitat von King Euro Beitrag anzeigen
    Ist aber problematisch wenn es mehrere Zeilen gibt die diesen Text beinhalten.
    Ich mag dich nicht.
    Vor allem, weil du Recht hast.
    In dem Falle bliebe dann fast nur noch, eine Wrapperkomponente über die bestehende TMemo zu basteln oder gleich eine eigene TMemo, die genau diese Funktionalität beinhaltet. Letzteres sollte eigentlich kein unlösbares Problem sein.
     

  6. #6
    sgdiablo sgdiablo ist offline Grünschnabel
    Registriert seit
    Oct 2006
    Beiträge
    2
    Hallo,

    da bei mir nie zwei Zeilen den gleichen Text enthalten, habe ich die Lösung mit dem Vergleich eingebaut. Ist zwar bestimmt nicht die eleganteste Lösung, aber immerhin funktioniert es gut.

    Gruß
    sgdiablo
     

  7. #7
    Avatar von MBDealer
    MBDealer MBDealer ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Ort
    Borken-Weseke
    Beiträge
    99
    Hallo zusammen,

    so geht es natürlich auch:

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    void __fastcall TForm1::Memo1Click(TObject *Sender)
    {
    int Zeile;
     
    Zeile = SendMessageA(Memo1->Handle, EM_LINEFROMCHAR, Memo1->SelStart, 0);
    Edit1->Text = IntToStr(Zeile+1);
    }
     
    MfG

    Rafael (MBDealer)

    | suricate-develop.de | mbdealer.de |

Ähnliche Themen

  1. Markierte Zeile in DataGridView ermitteln
    Von cuchulainn im Forum .NET Windows Forms
    Antworten: 4
    Letzter Beitrag: 13.09.10, 13:49
  2. Memo: Pro ButtonClick andere Zeile ansprechen
    Von Asix im Forum Borland CBuilder und VCL
    Antworten: 2
    Letzter Beitrag: 08.01.09, 16:28
  3. Aktuelle Zeile in Textarea ermitteln?
    Von DataFox im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 16.08.08, 00:36
  4. letzte Zeile ermitteln
    Von deen_90 im Forum Visual Basic 6.0
    Antworten: 20
    Letzter Beitrag: 22.01.08, 11:48
  5. Zeile aus Memo lesen und dann als Variable einfügen
    Von smaresh im Forum Delphi, Kylix, Pascal
    Antworten: 7
    Letzter Beitrag: 12.01.08, 04:10