AGB  ·  Datenschutz  ·  Impressum  







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

array of char UpperCase

Ein Thema von EWeiss · begonnen am 6. Okt 2008 · letzter Beitrag vom 6. Okt 2008
 
EWeiss
(Gast)

n/a Beiträge
 
#9

Re: array of char UpperCase

  Alt 6. Okt 2008, 07:59
Zitat von NamenLozer:
Probier mal das:

Delphi-Quellcode:
var
  zTmp: string;
begin
  SetLength(zTmp, 256);
  SetLength(zTmp, GetShortPathName(sResource, @zTmp[1], length(zTmp)-1));
  zTmp := UpperCase(zTmp);
end;
[edit] length(zTmp)-1[/edit]
Das bringt mir nichts denn du hast alles rausgeschmissen was ich in dieser abfrage benötige.

nochmal die ganze Funktion.
Ich erstelle eine NonVCL ListBox

Delphi-Quellcode:
  zTmp : array[0..255] of char;
  zData : array[0..16] of char;
Delphi-Quellcode:
function AddResource(sResource : PAnsiChar): Integer;
var
  UseStyle, hMain,
  nIndex , nCount: Integer;
  hImage : Cardinal;
  i: Integer;

begin

    nCount := 0;

    GetShortPathName(sResource, @zTmp, SIZEOF(zTmp));
    for i := 0 to high(zTmp) do
    begin
      zTmp[i] := UpperCase(zTmp[i])[1];
    end;

    hMain := wMainWindow(0);

    UseStyle := WS_CHILD or LBS_HASSTRINGS;
    hLISTFNAME := GetMainItem(ID_LISTFNAME);
    if hLISTFNAME = 0 then
       hLISTFNAME := CreateWindowEx(0, 'LISTBOX', nil,
         UseStyle, 0, 0, 0, 0, hMain, ID_LISTFNAME, GetInstance, nil);

    hLISTIMAGE := GetMainItem(ID_LISTIMAGE);
    if hLISTIMAGE = 0 then
       hLISTIMAGE := CreateWindowEx(0, 'LISTBOX', nil,
         UseStyle, 0, 0, 0, 0, hMain, ID_LISTIMAGE, GetInstance, nil);


    if hLISTFNAME <> 0 then
    begin
       nIndex := SendMessage(hLISTFNAME, LB_FINDSTRING, -1, integer(@zTmp));
       if nIndex > -1 then // gleicher Eintrag gefunden
       begin
          SendMessage(hLISTIMAGE, LB_GETTEXT, nIndex, integer(@zData));
          hImage := StrLen(zData);
          // lese den string ein
          SendMessage(hLISTFNAME, LB_GETTEXT, nIndex, integer(@zTmp));
          // lösche den alten Eintrag bevor er aktualisiert wird
          SendMessage(hLISTFNAME, LB_DELETESTRING, nIndex, 0);
          SendMessage(hLISTIMAGE, LB_DELETESTRING, nIndex, 0);
          sResource := PChar(RightStr(string(zTmp), 5));
// zTmp := sResource + RightStr('0000' + LTrim(IntToStr(nCount)), 4);
          if SendMessage(hLISTFNAME, LB_ADDSTRING, 0, integer(@zTmp)) < 0 then
            hImage := 0 ;
          if SendMessage(hLISTIMAGE, LB_ADDSTRING, 0, integer(@zData)) < 0 then
            hImage := 0;
       end else
       begin
        // kein eintrag gefunden addieren
          hImage := GDI_CreateImageFromFile((sResource));
          if hImage <> 0 then
          begin
// zTmp := PChar(zTmp + '0001');
             if SendMessage(hLISTFNAME, LB_ADDSTRING, 0, integer(@zTmp)) < 0 then
                GDI_DisposeImage(hImage);
             if hImage <> 0 then
             begin
// zData := PChar(IntToStr(hImage));
                if SendMessage(hLISTIMAGE, LB_ADDSTRING, 0, integer(@zTmp)) < 0 then
                hImage := 0;
             end;
          end;
       end;
    end;
    Result := hImage;
end;
Mein problem sind die auskommentierten positionen
welche ich wiedermal nicht richtig kovertieren kann.

Delphi-Quellcode:
zTmp := sResource + RightStr('0000' + LTrim(IntToStr(nCount)), 4);
zTmp := PChar(zTmp + '0001');
zData := PChar(IntToStr(hImage));
gruss Emil
  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 17:42 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