Moijn. Ich habe folgendes Problem:
Wenn ich die unten angegebene Funktion aufrufe, wird immer die Zeile eingefügt. Auch wenn die Zeile bereits in der Stringlist
StdFuncs vorhanden ist. Die If-Abfrage funktioniert soweit.
KnownCommands ist eine Listbox.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Button1Click(Sender: TObject); var i, j :integer; line: String; begin for i:=0 to TabControl.PageCount-1 do begin for j:=0 to (TabControl.Pages[i].Controls[0] as TFrame).SourceCode.Lines.Count-1 do begin line := Trim((TabControl.Pages[i].Controls[0] as TFrame).SourceCode.Lines.Strings[j]); if ( ((Copy(line, 0, 9) = 'procedure') OR (Copy(line, 0, 8) = 'function')) AND (Copy(line,Length(line),Length(line)) = ';') ) then if (StdFuncs.IndexOf(line) <> -1) then begin StdFuncs.Add(line); end; end; end; KnownCommands.Items.Assign(StdFuncs); end; |
Ich hoffe, ihr versteht, was das Problem ist. Bin nicht sonderlich gut in Problembeschreibung ^^
Gruß
Nabbl
---
Moderiert von
Narses: Beiträge zusammengefasst---
Boar bin ich blind ^^. Fehler behoben.
Es muss
if (StdFuncs.IndexOf(line) = -1) then begin heißen...
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Do 28.05.2009 um 08:52