Avatar billede zity Nybegynder
22. december 2002 - 10:47 Der er 4 kommentarer og
1 løsning

find ord i richedit og opret en button knap

hvis ordet Label findes i richedit skal der oprettes en Label på formen, ved hjælp af et tryk på en button knap. hvordan gør man det...

//Zity
Avatar billede morten_s Nybegynder
22. december 2002 - 11:18 #1
Det gør du sådan her:

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  btn: TButton;
begin
  for i:= 0 to RichEdit1.Lines.Count-1 do
    if pos('Label',RichEdit1.Lines.Strings[i]) >0 then
    begin
      btn:= TButton.Create(Form1);
      btn.Parent:= Form1;
      btn.Left:= 50;
      btn.Top:= 50;
      btn.Width:= 150;
      btn.Caption:= 'Der står Label i linie: '+IntToStr(i);
    end;
end;
Avatar billede morten_s Nybegynder
22. december 2002 - 11:19 #2
Bemærk ovenstående tager ikke hensyn til små og store bogstaver Label skal altså være med stort L og resten små
Avatar billede dkn Nybegynder
22. december 2002 - 11:43 #3
Men den her kan du se hvad der blev klikket på. Og den er ikke casesensitive.


unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure CreatedButtonClick(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  btn: Tbutton;
const
  sogord: Pchar = 'label';
begin
  if pos(sogord, lowercase(RichEdit1.Lines.Text)) <> 0 then
  begin
    btn := Tbutton.Create(Form1);
    with btn do
    begin
      Parent := Form1;
      Tag := Longint(Pchar(sogord));
      Top := 50;
      Left := 50;
      Width := 200;
      Height := 25;
      OnClick := CreatedButtonClick;
      Caption := 'Test';
    end;
  end;
end;

procedure TForm1.CreatedButtonClick(Sender: TObject);
var
  but: TButton;
begin
  but := pointer(sender);
  showmessage('Der blev klikket på knappen som søgte efter: ' + Pchar(but.Tag));
end;

end.
Avatar billede martinlind Nybegynder
22. december 2002 - 13:44 #4
TRichEdit har faktisk en Find() function som måske er lidt bedre en Pos()

/Martin
Avatar billede dkn Nybegynder
22. december 2002 - 13:54 #5
ok hvis du ønsker at bruge trichedits find method skal du rette:
  if pos(sogord, lowercase(RichEdit1.Lines.Text)) <> 0 then
til
  if RichEdit1.FindText(sogord, 0, length(RichEdit1.Lines.Text), []) <> -1 then

Glædelig Jul :)
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