Einzelnen Beitrag anzeigen

Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#1

Laden aus dll dauer ein bischen zu lange

  Alt 6. Jan 2004, 02:56
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]
  Mit Zitat antworten Zitat