AGB  ·  Datenschutz  ·  Impressum  







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

Memo mit Textobjekten gesucht

Ein Thema von Opa Knack · begonnen am 22. Mai 2011 · letzter Beitrag vom 23. Mai 2011
Antwort Antwort
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.358 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Memo mit Textobjekten gesucht

  Alt 22. Mai 2011, 08:39
Ich habe mal vor 100 Jahren etwas selbst geschrieben, indem ich Adressen (also kurze Texte) zerlegt und in mehrere Panels, bzw. deren Captions geschrieben habe (für jedes Wort also ein erzeugtes Panel).
Der User konnte dann die Panels verschieben und so die Reihenfolge der Wörter ändern.
Das sollte dazu dienen, die Adressen zu überarbeiten.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Twaddler

Registriert seit: 22. Mai 2011
1 Beiträge
 
Delphi 5 Enterprise
 
#2

AW: Memo mit Textobjekten gesucht

  Alt 22. Mai 2011, 13:43
Ich denke auch, dass du das selbst implementieren musst.
An deiner Stelle würde ich eine Art "Verzeichniss" erstellen, in dem Verzeichnet ist, von welchem bis zu welchem Zeichen der Textbaustein xy geht. Mit der Cursorposition kannst du dann den Textbaustein auslesen und weiterverarbeiten. Z.b. über einen Button hinter den nächsten Baustein schieben
  Mit Zitat antworten Zitat
Opa Knack

Registriert seit: 28. Dez 2004
Ort: Köln
166 Beiträge
 
#3

AW: Memo mit Textobjekten gesucht

  Alt 23. Mai 2011, 00:19
Hallo,

die Idee mit den Captions hatte ich auch schon, habe es allerdings mit Labels umgesetzt. Da die Texte jedoch über mehrere Zeilen gehen können, wurde es ein wenig schwierig, da ständig irgendwo irgendwas neu berechnet werden musste.

Im Moment versuche ich das Ganze mithilfe des Webbrowsers umzusetzen, indem ich die Bausteine mit Kommentaren versehe und den Quelltext auslese. Wirklich zufrieden bin ich allerdings bisher auch nicht.

Falls also noch jemand eine Idee hat: Ich bin für jeden Tipp dankbar.

Gruß
Opa
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Memo mit Textobjekten gesucht

  Alt 23. Mai 2011, 01:05
Nun so schwer sollte das nicht sein mit TMemo, folgendes Konzept würde ich vorschlagen:

Das Memo-Feld darf allerdings primär nur zur Anzeige des Textes und zur Feststellung der Cursor-Position verwendet werden.
Alle Eingaben in das Memofeld müssen umgeleitet werden in die Klasse, die alle verwendeten Textbausteine enthält.

Mal ein Gedankenkonstrukt für das Einfügen eines Zeichens (ungestestet und ohne Bereichsprüfung).
Weiterhin fehlt die Behandlung von DEL/BS und der Zwischenablage (Einsetzen, Ausschneiden).

Die anderen Methoden müssten natürlich noch ausprogrammiert werden
Delphi-Quellcode:
TTextSet = class
private
  // Speicher auf die Memo-Referenz
  FMemo : TMemo;
  // Speicher für die Textbausteine
  FParts : array of string;
protected
  // Das Memofeld mit den Text-Inhalten füllen
  procedure RefreshMemo;
public
  // Das referenzierte Memo-Feld übergeben
  property Memo : TMemo read FMemo write SetMemo;
  // Ein Zeichen Key an der Stelle KeyPos einfügen
  procedure AddKey( Key : Char; KeyPos : integer );
  // einen Textbaustein verschieben
  procedure MovePart( FromIndex, ToIndex : integer );
  // Textbaustein hinzufügen
  procedure AddPart( Index : integer; const PartText : string );
  // Textbaustein entfernen
  procedure DelPart( Index : integer );
end;

procedure TTextSet.AddKey( Key : Char; KeyPos : integer );
begin

  // Textbaustein ermitteln
  idx := Low( FParts );
  tpos := 0;
  while ( tpos + Length( FParts[ idx ] < KeyPos ) do
    begin
      Inc( tpos, Length( FParts[ idx ] ) );
      Inc( idx );
    end;

  // Zeichen im Textbaustein einfügen
  Insert( Key, FParts[ idx ], KeyPos - tpos );
  
  // Das Memofeld aktualisieren
  RefreshMemo;

  // Den Cursor im Memo platzieren
  Memo.SelStart := KeyPos + 1;

end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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 18:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz