Avatar billede mora Nybegynder
21. juli 2001 - 00:27 Der er 7 kommentarer og
2 løsninger

Udskift tekst

Er der en \"nem\" måde at udskifte tekst på i delphi ?

F.eks. AbC
b := B
Avatar billede ziron Nybegynder
21. juli 2001 - 00:31 #1
hvad???

/ZIRON
Avatar billede ziron Nybegynder
21. juli 2001 - 00:33 #2
er det sådan at du menre??

procedure TForm1.Button2Click(Sender: TObject);
begin
edit2.text := UpperCase(edit2.text);
end;

/ZIRON
Avatar billede mora Nybegynder
21. juli 2001 - 00:34 #3
nej, deet var bare et ekselpel ...

<rød>roed tekst</rød>
Her skal <rød> laves om til <font color=Red>
og </rød> til </font>

(f.eks)
Avatar billede ziron Nybegynder
21. juli 2001 - 00:36 #4
det kan du da godt lave hvis man sltså gider???

/ZIRON
Avatar billede mora Nybegynder
21. juli 2001 - 00:41 #5
jeg har en der søger efter <rød> og erstatter det ved at kopiere fra 0 til <
og fra tegnet efter > til slut.

men ville være nemmere hvis der var noget der bare kunne erstatte en given tekst med en anden tekst i en given string.
Avatar billede lvpvs Nybegynder
21. juli 2001 - 06:10 #6

uses
  sysutils; //funktionen length er nok her, ellers søg på den!


function changeWords(source: string; toFind: string; newWord: string): String;

{post: erstatter alle forekomster af Tofind, med stringen newword i source. }

var
    found: boolean;
    start, end: integer;
begin
    result := source;
    start := 0;
    end := start + length(toFind);

    while not (found) and
        (end < length(source)) do
        begin
            if (copy(source, start, end) = toFind) then
        begin
        found := true;
        delete(result, start, end);
        insert(result, newword, start, end);
        end   
        else start := start + 1;       
    end;
end;



Avatar billede mora Nybegynder
21. juli 2001 - 10:43 #7
end er vist reservered af delphi, men selvom jeg retter det til endt kommer der stadig fejl.

[Error] Unit1.pas(54): \')\' expected but \',\' found
[Error] Unit1.pas(56): \'END\' expected but \'ELSE\' found
[Error] Unit1.pas(58): \'.\' expected but \';\' found
[Error] Unit1.pas(63): Undeclared identifier: \'found\'
[Fatal Error] Project1.dpr(5): Could not compile used unit \'Unit1.pas\'


min unit er som følger

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


function changeWords(source: string; toFind: string; newWord: string): String;

{post: erstatter alle forekomster af Tofind, med stringen newword i source. }

var
    found: boolean;
    start, endt: integer;
begin
    result := source;
    start := 0;
    endt := start + length(toFind);

    while not (found) and
        (endt < length(source)) do
        begin
            if (copy(source, start, endt) = toFind) then
        begin
        found := true;
        delete(result, start, endt);
        insert(result, newword, start, endt);
        end
        else start := start + 1;
    end;
    end;


procedure TForm1.Button1Click(Sender: TObject);
begin
    edit4.text:=inttostr(found):=changeWords(edit1.text, edit2.text, edit3.text);
end;

end.
Avatar billede zerohero Nybegynder
22. juli 2001 - 00:14 #8
Her er en simpel kode der finder \'<rød>\' og farver teksten \'<rød>\' til rødt :-)

1. indsæt en TRichEdit og en Tbutton på din form.
2. skriv følgende under knappens onclick procedure:

var
  s : string;
  i : integer;
begin
s := \'<rød>\';
    i := pos(s,richedit1.text);
    if i > 0 then
      begin
        with richedit1 do
          begin
            setfocus;
            selstart := i-1;
            sellength := length(s);
            selattributes.color := clred; //farver teksten rød
            sellength := 0;
          end;
        i := 0;
      end
        else
          showmessage(s+\' blev ikke fundet.\');
end;

Håber det kan give inspiration nok til at komme videre...

ZeroHero
Avatar billede mora Nybegynder
22. juli 2001 - 12:12 #9
Har fattet ideen :)
Har lavet en funktion til formålet selv.

BTW: Tak til Zerohero, skulle bruge noget om TRichEdit :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester