AGB  ·  Datenschutz  ·  Impressum  







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

Komplizierte suche in Memo ! Hilfe

Offene Frage von "Nitron"
Ein Thema von Nitron · begonnen am 18. Nov 2008 · letzter Beitrag vom 21. Nov 2008
 
Benutzerbild von Sir Rufo
Sir Rufo

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

Re: Komplizierte suche in Memo ! Hilfe

  Alt 21. Nov 2008, 11:30
Zitat von Nitron:
muss auch nicht unbedingt mit edit arbeiten bzw mit edit feldern !
dann nimm doch nicht die edit-felder und übergib die parameter direkt

hab mal deinen code geupdated

Delphi-Quellcode:
unit Dialog_u; { Projekt DIALOG * Herwig Reidlinger }

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, Menus, StdCtrls;

type
  TFormDialog = class(TForm)
    Memo1: TMemo;
    OpenDialog: TOpenDialog;
    SaveDialog: TSaveDialog;
    MainMenu: TMainMenu;
    Menu_Datei: TMenuItem;
    MenuLaden: TMenuItem;
    MenuSpeichern: TMenuItem;
    N1: TMenuItem;
    MenuBeenden: TMenuItem;
    Suche1: TMenuItem;
    WeiterSuchen1: TMenuItem;
    Edit1: TEdit;
    Edit2: TEdit;
    N2: TMenuItem;
    selectline1: TMenuItem;
    procedure MenuLadenClick(Sender: TObject);
    procedure MenuSpeichernClick(Sender: TObject);
    procedure MenuBeendenClick(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure Suche1Click(Sender: TObject);
    procedure WeiterSuchen1Click(Sender: TObject);


  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FormDialog: TFormDialog;
  x: Integer;
  find: Boolean = False;

  // Globale Variable oder Klassen-Variable deklarieren

  MyLastFindLine : integer;

implementation

{$R *.DFM}

procedure TFormDialog.MenuLadenClick(Sender: TObject);
begin
  if OpenDialog.Execute then
     TRY
        Memo1.Lines.Loadfromfile(OpenDialog.Filename);
     EXCEPT
        ShowMessage ('Fehler beim Laden der Datei!');
     END;
end;

procedure TFormDialog.MenuSpeichernClick(Sender: TObject);
begin
  if SaveDialog.Execute then
     TRY
        Memo1.Lines.SavetoFile(SaveDialog.Filename);
     EXCEPT
        ShowMessage ('Fehler beim Speichern der Datei!');
     END;
end;

procedure TFormDialog.MenuBeendenClick(Sender: TObject);
begin
   FormDialog.Close;
end;

procedure TFormDialog.FormResize(Sender: TObject);
begin
   Memo1.width := FormDialog.clientwidth;
   Memo1.height := FormDialog.clientheight;
end;

procedure SelectLine (Memo: TMemo; index: integer);
var
  i: integer;
  start, fin: integer;

begin
  start:= 0;
  fin:= length(Memo.lines[index]);
  for i:= 0 to index -1 do begin
    start:= start + length(Memo.Lines[i]) + 2;
  end;
  memo.SetFocus;
  Memo.SelStart:= start;
  Memo.SelLength:= fin;
  ShowMessage(memo.SelText);
end;

function SuchenInMemo( Memo : TMemo; FindenStr, NichtFindenStr : string; LastFindLine : integer = -1 ) : integer;
var
  LineIdx : integer;
begin
  LineIdx := LastFindLine + 1;
  Result := 0;
  while
    ( LineIdx < Memo.Lines.Count ) and
    ( Result = 0 )
  do
    begin
      if
        ( Pos( FindenStr, Memo.Lines[ LineIdx ] ) > 0 ) and
        ( Pos( NichtFindenStr, Memo.Lines[ LineIdx ] ) = 0 )
      then
        begin
          Result := LineIdx;
          SelectLine( Memo, LineIdx );
        end
      else
        Inc( LineIdx );
    end;
end;


procedure TFormDialog.Suche1Click(Sender: TObject);
begin


  // Wenn Du die Edit-Felder nicht willst, dann schreib es doch einfach da rein

  // MyLastFindLine := SuchenInMemo( Memo1, Edit1.Text, Edit2.Text );

  MyLastFindLine := SuchenInMemo( Memo1, '*', 'far' );

end;





procedure TFormDialog.WeiterSuchen1Click(Sender: TObject);
begin

  // Wenn Du die Edit-Felder nicht willst, dann schreib es doch einfach da rein

  // MyLastFindLine := SuchenInMemo( Memo1, Edit1.Text, Edit2.Text, MyLastFindLine )

  MyLastFindLine := SuchenInMemo( Memo1, '*', 'far', MyLastFindLine )
end;

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
 


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 17:48 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