AGB  ·  Datenschutz  ·  Impressum  







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

nicht nur erstes Vorkommnis in Memo markieren

Ein Thema von lkz633 · begonnen am 16. Okt 2003 · letzter Beitrag vom 17. Okt 2003
Antwort Antwort
Seite 2 von 2     12   
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#11

Re: nicht nur erstes Vorkommnis in Memo markieren

  Alt 17. Okt 2003, 13:41
Hi,

verstehje leider gerade nur Bahnhof.

Wiso kann ich in einem Memo nichts markieren? Was bedeuten die Kommentare "nur um zu zeigen dass es geht".

Also bei mir wird jetzt gar nichts markeirt.

Gruss lkz633
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: nicht nur erstes Vorkommnis in Memo markieren

  Alt 17. Okt 2003, 13:58
Moin lkz,

in dem Beispiel ersetze ich alle Fundstellen, durch 9en, um diese kenntlich zu machen, da man in einem Memo nichts markieren kann. In einem Memo kann man nicht mit verschiedenen Farben arbeiten.
Deshalb der Kommentar.

Nimmst Du statt eines Memos ein RichEdit, könntest Du hinter dieser Zeile:

Memo1.SelLength := iSearchLen; mal die Zeile

RichEdit1.SelAttributes.Color := clRed; eintragen (alle Memo1 natürlich gegen RichEdit1 austauschen).
Dann würden alle Fundstellen durch rote Schrift markiert.

Dann noch die '9' durch #00 ersetzen, und die Zuweisung
Memo1.Lines.Text := sText; weglassen.

Bei einem RichEdit könntest Du allerdings statt so einer Routine auch FindText nehmen, wie weiter oben schon gesagt.
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
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#13

Re: nicht nur erstes Vorkommnis in Memo markieren

  Alt 17. Okt 2003, 14:24
Super, danke fuer deine Hilfe.

Der Code funktioiert noch nicht so 100%, sind bei mehreren Vorkommnissen doch um mehrere Stellen verrutscht.

Sehe aber den Fehler nicht, kann jemand helfen?

Welchen Befehl muss ich ausserdem benutzen, um alle Markierungen wieder aufzuheben?

Herzlichen Dank und Gruss
lkz633
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: nicht nur erstes Vorkommnis in Memo markieren

  Alt 17. Okt 2003, 14:40
Moin lkz,

Zitat von lkz633:
sind bei mehreren Vorkommnissen doch um mehrere Stellen verrutscht.


das hatte ich soweit schon getestet...

Kannst Du mal einen Beispieltext anhängen, bei dem es nicht geht?
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
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#15

Re: nicht nur erstes Vorkommnis in Memo markieren

  Alt 17. Okt 2003, 14:50
Jup, hier ist der gesamte Quellcode+php-Datei zum Testen, manchmal wird anscheinend "willkuerlich" byw um mehrere <Stellen falsch markiert

Danke fuer deine Hilfe

lkz633
Angehängte Dateien
Dateityp: zip php.zip (243,5 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: nicht nur erstes Vorkommnis in Memo markieren

  Alt 17. Okt 2003, 15:18
Moin lkz,

danke für den Source.

Das liegt an den Tabulatoren in der Datei. Wenn ich die testeshalber mal durch #32 (Blank) ersetze, klappt's.
Wieso das passiert, bzw. wie das zu berücksichtigen ist, weiss ich allerdings (noch) nicht

Übrigens nur so als Idee:
Wenn ein anderes Element ausgewählt werden solltest Du die Markierung des zuletzt gewählten wieder zurücksetzen.
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
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#17

Re: nicht nur erstes Vorkommnis in Memo markieren

  Alt 17. Okt 2003, 15:25
Zitat von Christian Seehase:
Wenn ein anderes Element ausgewählt werden solltest Du die Markierung des zuletzt gewählten wieder zurücksetzen.
siehe vorhergegangene Frage bzw Kommentar im Code

Weisst du auch dafuer eine Loesung?

Zitat von Christian Seehase:
noch nicht
Da hab ich ja den richtigen erwischt , danke!

Gruss lkz633
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: nicht nur erstes Vorkommnis in Memo markieren

  Alt 17. Okt 2003, 15:35
Moin lkz,

für das Zurücksetzen der Markierungen fallen mir zwei Wege ein.
Entweder Du merkst Dir, was zuletzt ausgewählt wurde (beim ersten durchlauf eben nichts), und durchläufst die Schleife zweimal, das erste Mal mit dem alten Begriff, wobei die Markierungsfarbe auf schwarz gesetzt, oder Du markierst alles mit SelectAll und setzt die Farbe global auf schwarz zurück. Mit einem BeginUpdate/EndUpdate sieht man auch nichts von der Markierung

Nur das mit den Tabulatoren macht mir Kopfzerbrechen (noch )
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
Christian Seehase
(Co-Admin)

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

Re: nicht nur erstes Vorkommnis in Memo markieren

  Alt 17. Okt 2003, 16:02
Moin lkz,

ich hab' ja gleich gesagt: FindText

Delphi-Quellcode:
  if not node.HasChildren then begin
  Memo.Lines.BeginUpdate;
  try
    Memo.SelectAll;
    Memo.SelAttributes.Color := clBlack;
    sSearch := node.Text;
    iSearchLen := length(sSearch);
    iLen := length(Memo.Lines.Text);
    iPos := Memo.FindText(node.Text,1,iLen,[]);
    while iPos <> -1 do begin
      Memo.SelStart := iPos;
      Memo.SelLength := iSearchLen;
      Memo.SelAttributes.Color:= clred;
      iPos := Memo.FindText(node.Text,iPos+iSearchLen,iLen,[]);
    end;
  finally
    Memo.SelLength := 0;
    Memo.Lines.EndUpdate;
  end;
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
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#20

Re: nicht nur erstes Vorkommnis in Memo markieren

  Alt 17. Okt 2003, 16:27
Vielen vielen Dank fuer die tolle Unterstuetzung, so klappt es einwandfrei
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 08:16 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