Hallo ihr
ich lade aus einer
dll ein rtf und suche dort nach einen anfang und ein ende dazwischen ist mein text
nur dauert das sehr lange und hat so ein blöden nebenefekt
der text wird nicht ganz gelöscht und wird nur überschrieben - sehr merkwürdig
Delphi-Quellcode:
//******************************************************************************
//Global
//Status Button Beschreibung aus Sprach_Shell.dll
Procedure XP_Tweak_Status_Button_Beschreibung_Lesen_GU(menu_i : Integer);
var
lib_h : THandle;
res_s : TResourceStream;
button_beschreibung1_sl : TStringList;
i : Integer;
menu_index_plus_s : String;
menu_index_minus_s : String;
begin_i : Integer;
end_i : Integer;
buffer_ms : TMemoryStream;
begin
lib_h := LoadLibrary(PChar(g_sprachen_path_s + g_programm_sprache_s + '_Shell.dll'));
button_beschreibung1_sl := TStringList.Create;
button_beschreibung1_sl.Clear;
buffer_ms := TMemoryStream.Create;
buffer_ms.Clear;
res_s := NIL;
//Element aus Shell laden
if (lib_h <> 0) then
begin
try
res_s := TResourceStream.Create(lib_h, 'XP_Tweak_Button_Beschreibung', RT_RCDATA);
button_beschreibung1_sl.Clear;
button_beschreibung1_sl.LoadFromStream(res_s);
//Aus StringList in XP_Tweak_Menu_Beschreibung_RichEdit kopieren
Haupt_Form.XP_Tweak_Button_Beschreibung_RichEdit.Clear;
Haupt_Form.Temp_RichEdit.Clear;
Haupt_Form.Temp_RichEdit.Text := button_beschreibung1_sl.Text;
//Beschreibung filtern
menu_index_plus_s := '[+' + IntToStr(menu_i) + ']';
menu_index_minus_s := '[-' + IntToStr(menu_i) + ']';
begin_i := Haupt_Form.Temp_RichEdit.Lines.IndexOf(menu_index_plus_s) + 2;
for i := 0 to begin_i do
begin
Haupt_Form.Temp_RichEdit.Lines.Delete(0);
end;
end_i := Haupt_Form.Temp_RichEdit.Lines.IndexOf(menu_index_minus_s);
for i := end_i to Haupt_Form.Temp_RichEdit.Lines.Count -1 do
begin
Haupt_Form.Temp_RichEdit.Lines.Delete(end_i);
end;
Haupt_Form.Temp_RichEdit.Lines.SaveToStream(buffer_ms);
buffer_ms.Position := 0;
Haupt_Form.XP_Tweak_Button_Beschreibung_RichEdit.Lines.LoadFromStream(buffer_ms);
finally
res_s.Free;
button_beschreibung1_sl.Free;
buffer_ms.Free;
end;
end;
FreeLibrary(lib_h);
end;
erklärung
ich lade mein rtf
in ein temprichedit das unsichbar ist
lösche alles was ich nicht brauche (alles vor [+x] und alles nach [-x]
dann in ein stream und dann ins richedit
geht alles nur sehr langsam 1-2sek
geht das schnell ?
[edit=Luckie]Code-Tags durch Delphi-Tags ersetzt. Mfg, Luckie[/edit]