AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Laden aus dll dauer ein bischen zu lange

Ein Thema von HomerGER · begonnen am 6. Jan 2004 · letzter Beitrag vom 18. Jan 2004
 
Benutzerbild von HomerGER
HomerGER

Registriert seit: 8. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#2

Re: Laden aus dll dauer ein bischen zu lange

  Alt 15. Jan 2004, 10:46
hier mein versuch es zu beschleunigen

leider nicht sehr erfolgreich

Delphi-Quellcode:
//******************************************************************************
//Global
//Button Beschreibung aus Sprach_Shell.dll für Suchfunction
Function XP_Tweak_Button_Beschreibung_Lesen_GU(button_i : Integer; offset_oben_i, offset_unten_i : Integer) : String;
var
lib_h : THandle;
res_s : TResourceStream;
button_beschreibung1_sl : TStringList;
i : Integer;
start_i : Integer;
ende_i : Integer;
begin_plus_s : String;
end_minus_s : String;
begin_i : Integer;
end_i : Integer;
begin
    lib_h := LoadLibrary(PChar(g_sprachen_path_s + g_programm_sprache_s + '_Shell.dll'));

    button_beschreibung1_sl := TStringList.Create;
    button_beschreibung1_sl.Clear;
    Haupt_Form.Temp_RichEdit.Clear;
    res_s := NIL;
    Result := '';
    begin_i := -1;
    end_i := -1;

    //Element aus Shell laden
    if (lib_h <> 0) then
    begin
        try
            res_s := TResourceStream.Create(lib_h, 'XP_Tweak_Button_Beschreibung', RT_RCDATA);
            Haupt_Form.Temp_RichEdit.Lines.LoadFromStream(res_s);
            Haupt_Form.Temp_RichEdit.PlainText := False;

            //Begin und End Strings bilden
            begin_plus_s := '[+' + IntToStr(button_i) + ']';
            end_minus_s := '[-' + IntToStr(button_i) + ']';

            start_i := 0;
            ende_i := 0;
            if (button_i <> 1) then
            begin
                start_i := start_i + (button_i * 10);
                ende_i := start_i + (button_i * 10) + 25; //ergib sich aus der min. zeilen
            end
            else
            begin
                start_i := 0;
                ende_i := 25;
            end;

            if (ende_i > Haupt_Form.Temp_RichEdit.Lines.Count) then
            begin
                ende_i := Haupt_Form.Temp_RichEdit.Lines.Count -1;
            end;

            for i := start_i to ende_i do
            begin
                if (begin_plus_s = Haupt_Form.Temp_RichEdit.Lines.Strings[i]) then
                begin
                    begin_i := i;
                end;
                if (end_minus_s = Haupt_Form.Temp_RichEdit.Lines.Strings[i]) then
                begin
                    end_i := i;
                    Break;
                end;
            end;

            //Wenn nicht gefunden Temp_RichEdit löschen
            if ((begin_i = -1) OR (end_i = -1)) then
            begin
               button_beschreibung1_sl.Clear;
            end
            else
            begin
                //ShowMessage(inttostr(begin_i) + ' - ' + inttostr(end_i));
                for i := begin_i + offset_oben_i to end_i - offset_unten_i do
                begin
                    button_beschreibung1_sl.Append(Haupt_Form.Temp_RichEdit.Lines.Strings[i]);
                end;
            end;

            //Ergebnis übergeben
            Result := button_beschreibung1_sl.Text;
            //ShowMessage(Result);
            
        finally
            res_s.Free;
            button_beschreibung1_sl.Free;
        end;
    end;
    FreeLibrary(lib_h);
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz