Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi line an bestimmter position des memos einfügen (https://www.delphipraxis.net/111532-line-bestimmter-position-des-memos-einfuegen.html)

fealXX 4. Apr 2008 21:45


line an bestimmter position des memos einfügen
 
also ich versuche grade #urls# durch url(s) zu ersetzen

das ist mein ansatz:

Delphi-Quellcode:
urlpos:=pos(memo3.lines.text,'#urls#');
memo3.lines.Text:=stringreplace(memo3.lines.text,'#urls#','',[rfReplaceAll,rfIgnoreCase]);
memo3.Cursor:=urlpos;
for I := 0 to Listbox2.Count - 1 do
begin
memo3.Lines.Add('[URL]'+listbox2.items[I]+'[/URL]');
end;
aber das funktioniert garnich ^^

die lines kommen weiterhin ans ende des memos unten dran -.-

hoffe mir kann jemand helfen =(

(auch eine willkürliche auswahl von urlpos bringt des gleiche ergebnis)

dajuhsa 4. Apr 2008 21:53

Re: line an bestimmter position des memos einfügen
 
versuch mal folgendes
erst speicherst du alle deine urls in einen string
Delphi-Quellcode:
for I := 0 to Listbox2.Count - 1 do
begin
s := s + '[URL]' + listbox2.items[I] + '[/URL] ';
end;
dann ersetzst du #url# direkt durch diesen string
Delphi-Quellcode:
memo3.lines.Text:=stringreplace(memo3.lines.text,'#urls#',s,[rfReplaceAll,rfIgnoreCase]);
mfG,
dajuhsa

fealXX 4. Apr 2008 22:32

Re: line an bestimmter position des memos einfügen
 
ahh auf die idee bin ich garnich gekommen xD
danke ^^

und falls mal jemand in dieses thema guckt und über einen zeilenrücklauf dazwischen nachdenkt, ein einfaches +#13+ hilft ^^
Delphi-Quellcode:
s := s + '[URL]' + #13 + listbox2.items[I] + '[/URL] ';

marabu 5. Apr 2008 07:39

Re: line an bestimmter position des memos einfügen
 
Herzlich willkommen in der Delphi-PRAXiS, fealXX.

Der Zeilentrenner unter Windows ist sLineBreak - und dahinter steckt #13#10.

Du betrachtest den Text in deinem Memo (Memo3.Lines.Text) bereits als einen einzigen String. So erhältst du beim Suchen nach deinem Platzhalter (#urls#) natürlich das Offset des ersten Zeichens von diesem String. Über Memo3.Cursor steuerst du nicht die Einfügestelle an, sondern da regelst du die visuelle Erscheinung des Cursors, wenn er sich über dem Memo3 befindet. Steht dein Platzhalter nicht sowieso in einer eigenen Zeile?

Delphi-Quellcode:
procedure InsertLinks(
  markup,                // Aufnehmende StringList
  links: TStrings;       // Liste mit den URLs
  index: Integer;        // Zeilenindex für das Einfügen
  bbcTag: string = 'URL' // Tagname für BB-Code
);
var
  i: Integer;
begin
  markup.BeginUpdate;
  try
    for i := Pred(links.Count) downto 0 do
      markup.Insert(index, Format('[%s]%s[/%s]', [bbcTag, links[i], bbcTag]));
  finally
    markup.EndUpdate;
  end;
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
const
  PLACE_HOLDER = '#urls#';
var
  index: Integer;
begin
  index := Memo.Lines.IndexOf(PLACE_HOLDER);
  if index < 0
    then index := Memo.Lines.Count
    else Memo.Lines.Delete(index);
  InsertLinks(Memo.Lines, ListBox.Items, index);
end;
Freundliche Grüße vom marabu

fealXX 5. Apr 2008 15:24

Re: line an bestimmter position des memos einfügen
 
danke danke =)

dajuhsas lösung eignet sich aber besser für mich =)

aber mal zu dem cursor ^^
weise ich da eine ICO datei zu oder was?

edit: sehe grad im objectinspector (crArrow usw.)
aber kann ich trotzdem ne ico zuweisen?

marabu 5. Apr 2008 22:09

Re: line an bestimmter position des memos einfügen
 
Hi,

Zitat:

Zitat von fealXX
... dajuhsas lösung eignet sich aber besser für mich ...

das glaube ich dir aufs Wort.

Zitat:

Zitat von fealXX
... aber kann ich trotzdem ne ico zuweisen? ...

Natürlich nicht. Aber du kannst deinem Programm weitere Cursor hinzufügen. Schau dir dazu mal die Dokumentation der Eigenschaft Cursors von TScreen an.

Gute Nacht


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 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