Registriert seit: 28. Mär 2008
Ort: Münster
21 Beiträge
|
Memo Durchsuchen & Fortschritsanzeige
18. Jun 2008, 16:17
Mit dieser Procedur möchte ich ich Leuten helfen die eine kleine Suchfunktion in ihr Programm einbauen möchten.
Uses: ...,Math
Delphi-Quellcode:
function RoundToPointPosition(Number : Extended; PointPos : Byte): Extended;
Var
Multi:Integer;
begin
Multi:=Trunc(IntPower(2,PointPos));
Result := Round(Number * Multi)/Multi;
end;
Delphi-Quellcode:
procedure searchfunc(const Anzeige:Tmemo; Ripping:Tmemo; Input:Tedit; Progressbar:Tprogressbar; Percent:Tlabel; Found:Tlabel );
var i,poss:integer;
percents:extended;
searchline,strclear:string;
begin
Anzeige.lines.Clear; // Die Anzeige säubern
for i := 1 to ripping.Lines.count do
begin
searchline:=Ripping.lines[i]; // Die Zeilen zuweisen indenen gesucht werden soll
poss := Pos(''+input.text+'', searchline); // Überprüfen ob richtiger Wer gefunden wurde
Application.ProcessMessages; // Prozess-Messages damit das Programm reagiert
percents:=i*100/Ripping.lines.count; // Prozentsatz mit 3-Satz ausrechnen
percents:=RoundToPointPosition(percents,0); // Runden der % Zahl auf ganze Zahlen
strclear:=floattostr(percents); // Umwandlung der FLot-Zahl in einen String
ProgressBar.Position:=strtoint(strclear); // Umwandlung in einen Integer Wert für die Progressbar
Percent.caption:=''+floattostr(percents)+'%'; // Vortschrits% Label
Found.caption:=''+inttostr(Anzeige.lines.count)+' results for '+input.text+'';// Anzeige der gefundenen Resultate für "input"
if Poss <> 0 then
Anzeige.lines.add(searchline); // Wenn gefunden wird nun die Zeile hinzugefügt wo der Wert gefunden wurde
end;
if Anzeige.lines.count=0 then
Anzeige.lines.add('No results found for '+input.text+'');
end;
Aufruf:
searchfunc(Anzeige,Ripping,edit35,progressbar4,label309,label310);
STRG+ C ist zwar Freund des Programmierers aber am ende versteht man es selber nicht mehr
|
|
Zitat
|