Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   array of char UpperCase (https://www.delphipraxis.net/121862-array-char-uppercase.html)

EWeiss 6. Okt 2008 07:04


array of char UpperCase
 
Delphi-Quellcode:
zTmp         : array[0..255] of char;
Möchte das ergebnis als UpperCase ausgeben wie konvertieren ?

Delphi-Quellcode:
zTmp := UpperCase(zTmp);
Array und string

gruss Emil

MrSpock 6. Okt 2008 07:06

Re: array of char UpperCase
 
Hallo EWeis,

zTmp als String definieren.

EWeiss 6. Okt 2008 07:08

Re: array of char UpperCase
 
Zitat:

Zitat von MrSpock
Hallo EWeis,

zTmp als String definieren.

ahh danke da muss man erst drauf kommen. :wall:

Nö geht auch nicht dann hab ich noch mehr Fehler
Dann kommt Meldung!
Zitat:

[Pascal Error] uGDIButton.pas(710): E2250 There is no overloaded version of 'UpperCase' that can be called with these arguments
wenn ich es mit string deviniere

gruss Emil

DeddyH 6. Okt 2008 07:18

Re: array of char UpperCase
 
:?: Zeig mal den Code.

mleyen 6. Okt 2008 07:28

Re: array of char UpperCase
 
Delphi-Quellcode:
var
  i: Integer;
begin
  for i := 0 to high(zTmp) do
  begin
    zTmp[i] := UpperCase(zTmp[i])[1];
  end;
end;
:?: ^^

EWeiss 6. Okt 2008 07:31

Re: array of char UpperCase
 
Zitat:

Zitat von DeddyH
:?: Zeig mal den Code.

Habe es zwar oben schon aber bitte ;)

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

begin

    nCount := 0;

    GetShortPathName(sResource, @zTmp, SIZEOF(zTmp));
    zTmp := UpperCase(zTmp); // <<< will nicht
    hMain := wMainWindow(0);
EDIT:
Jetzt habe ich dadurch wieder ein anderes problem .. grrrr
Delphi-Quellcode:
zTmp := PChar(sResource + RightStr('0000' + LTrim(IntToStr(nCount)), 4));
Zitat:

[Pascal Error] uGDIButton.pas(743): E2010 Incompatible types: 'Array' and 'PAnsiChar'
Das nerve mich ungemein diese konvertierungen immer ;)

gruss Emil

Namenloser 6. Okt 2008 07:44

Re: array of char UpperCase
 
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]

alzaimar 6. Okt 2008 07:57

Re: array of char UpperCase
 
Nur mal so:
Delphi-Quellcode:
Function Upcase(c : Char) : Char;
Und ein Array in Großbuchstaben geht so (zugegeben: Besonders pervers)
Delphi-Quellcode:
StrPCopy (PChar(@s),Uppercase(StrPas(PChar(@s))));

EWeiss 6. Okt 2008 07:59

Re: array of char UpperCase
 
Zitat:

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

Namenloser 6. Okt 2008 08:07

Re: array of char UpperCase
 
Warum machst du es dir denn so kompliziert mit dem Array? Nimm einfach einen String und alles ist gut...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:43 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz