03. november 2003 - 02:49Der er
5 kommentarer og 3 løsninger
Erstat funktion i Memo lissom i notepad
Ja spm taler nok for sig selv ?.Altsaa at man for et ord der går igen i teksten kan erstatte ordet med et andet ord i hele teksten i en memo.Håber der er nogen der har et eksempel.
procedure TForm1.REPLACEClick(Sender: TObject); begin REPLACEDIALOG1.Execute; end;
procedure TForm1.REPLACEDIALOG1REPLACE(Sender: TObject); var CursorPos : TPoint; I, J, SkipChars, PosReturn : integer; begin if frREPLACE in REPLACEDIALOG1.Options then Memo1.SelText := REPLACEDIALOG1.REPLACEText else if frREPLACEAll in REPLACEDIALOG1.Options then begin CursorPos := Memo1.CaretPos; for I := CursorPos.Y + 1 to Memo1.Lines.Count do begin PosReturn := Pos(REPLACEDIALOG1.FindText,Memo1.Lines[I]); if PosReturn <> 0 then begin SkipChars := 0; for J := 0 to I - 1 do SkipChars := SkipChars + Length(Memo1.Lines[J]); SkipChars := SkipChars + (I*2); SkipChars := SkipChars + PosReturn - 1;
procedure TForm1.REPLACEDIALOG1Find(Sender: TObject); var I, J, PosReturn, SkipChars: Integer; CursorPos : TPoint; begin CursorPos := Memo1.CaretPos; for I := CursorPos.Y + 1 to Memo1.Lines.Count do begin PosReturn := Pos(REPLACEDIALOG1.FindText,Memo1.Lines[I]); if PosReturn <> 0 then begin SkipChars := 0; for J := 0 to I - 1 do SkipChars := SkipChars + Length(Memo1.Lines[J]); SkipChars := SkipChars + (I*2); SkipChars := SkipChars + PosReturn - 1;
dkn: REPLACEDIALOG1 undeclared identifier ? det er muligt det er banalt men jeg kan ikke umiddelbart gennemskue hvordan den skal erklæres og der er jo kun de 3 nævnte procedurer med 'andre' navne er det noget fre en unit ?.
Stoney: har vistnok 'leget' med den lille programstump du nævner i anden sammenhæng (listboxe ?) men har ikke kunnet få den til at virke (listboxproblemet fik jeg dog løst via en anden proc., hvor man vistnok sikrer sig at strenglænden bliver fixeret).Kigger lidt mere på det men er taknemmelig for lidt uddybning hvis det kan hjælpe.
dkn: skal memo kobles til nogen af procedurerne ? med onchange eller noget. Der er ikke rigtig nogen effect udover at dialogboxen kommer op når man kalder 'execute'.Har kigget i delphihjælpen, men er ikke helt kommet nogen vegne i dag.Har sat en memo ind i formen og en knap som jeg har forbundet med executeproceduren - hvad mangler jeg ?.
dkn: Ja det er jo nok mig der ikke er klog nok til at regne ud hvorfor der er een execute til alle dialogrutinerne som altså ikke kan kobles på memoen uden lidt instruktion.Havde ikke forestillet mig det var så vanskeligt.Men er da blevet klogere og derfor fortjener du da nogle points, men jeg må tage nogen af dem tilbage.Håber det er ok.
Synes godt om
Ny brugerNybegynder
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.