Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PB nach Delphi (https://www.delphipraxis.net/122378-pb-nach-delphi.html)

EWeiss 15. Okt 2008 00:09


PB nach Delphi
 
Hab da noch ein kleines problem
bzw.. glaube das hier was nicht stimmt.

PB:
Delphi-Quellcode:
TYPE ANCHORPROPERTY
    hWnd       AS LONG
    anchor     AS LONG
    rc         AS RECT
    centerx    AS LONG
    centery    AS LONG
END TYPE

pZP = zAnchorItem(hWnd)
IF pZP = 0 THEN ' If the object already exist then we ReUse it
  pZP = MAX&(UBOUND(gProp) + 1, 1)
  REDIM PRESERVE gProp(1 TO pZP) AS ANCHORPROPERTY
END IF

FUNCTION zAnchorItem (BYVAL hWnd AS LONG) AS LONG
    LOCAL Item AS LONG
    IF UBOUND(gProp) > 0 THEN
       ARRAY SCAN gProp(), FROM 1 TO 4, = MKL$(hWnd), TO Item
    END IF
    FUNCTION = Item
END FUNCTION
--------------------------------------------------

Meine Übersetzung .. denke mal mit Fehlern

Delphi-Quellcode:
type

  PAnchorProperty = ^TAnchorProperty;
    TAnchorProperty = array of Record
      hWnd   : HWND;
      anchor : Integer;
      rc     : TRect;
      centerx : Integer;
      centery : Integer;
  end;

gProp        : TAnchorProperty;
Delphi-Quellcode:
pZP := AnchorItem(WinHandle);
if pZP = 0 then
  SetLength(gProp, Succ(Length(gProp)));

pZP := High(gProp);
Delphi-Quellcode:
function TSkinEngine.AnchorItem(WinHandle: HWND): Integer;
var
  Item: Integer;
begin

    if High(gProp) > 0 then
    begin
      Item := High(gProp);
      Result := IndexOf(gProp, Item);
    end else
    Result := 0;

end;
Hat sich erledigt! :)
Ein netter Mensch hat mir geholfen.

gruss Emil

sirius 15. Okt 2008 09:01

Re: PB nach Delphi
 
Zitat:

Zitat von EWeiss
Hat sich erledigt! :)
Ein netter Mensch hat mir geholfen.

Na so ein Glück. Dann müssen ja die Idioten aus der DP nicht ran. :cry:

EWeiss 15. Okt 2008 09:04

Re: PB nach Delphi
 
Zitat:

Zitat von sirius
Zitat:

Zitat von EWeiss
Hat sich erledigt! :)
Ein netter Mensch hat mir geholfen.

Na so ein Glück. Dann müssen ja die Idioten aus der DP nicht ran. :cry:

Das war jemand aus der DP aber muss man Namen nennen ?
Und das hier Idioten rumlaufen denk ich mal nicht .. das kam von dir

EDIT:
Hier herrscht eine ziemlich agressive stimmung in der letzten zeit :(
mach ich was falsch ?

gruss Emil

Bernhard Geyer 15. Okt 2008 09:17

Re: PB nach Delphi
 
Bevor ihr euch erschlägt:

@EWeiss:
Es wäre gut wenn der Fragesteller auch bei Lösunghilfe aus anderer Quelle die Lösung angiebt. Ich denke es werden sich schon diverse DP'ler gedanken gemacht haben aber keine Lösung gefunden haben. Und falls jetzt jemand genau das gleiche/ähnliche Problem hat hilft ihm der Hinweis das woanders geholfen wurde wenig.

@sirius: Der "Hinweis" war wohl etwas zu viel "Holzhammer".

EWeiss 15. Okt 2008 09:30

Re: PB nach Delphi
 
Danke an Marabu .. und hier die lösung :)
bevor wieder dumme Bemerkungen kommen.

Delphi-Quellcode:
type
  PAnchorProperty = ^TAnchorProperty;
  TAnchorProperty = record
    hWnd   : HWND;
    anchor : Integer;
    rc     : TRect;
    centerx : Integer;
    centery : Integer;
  end;

var
  gProp: array of TAnchorProperty;

function zAnchorItem(h: HWND): Integer;
begin
  Result := High(gProp);
  while (Result >= Low(gProp)) and (gProp[Result].hWnd <> h) do
    Dec(Result);
end;

function SetAnchorMode(WinHandle: HWND; AnchorMode: Integer): Integer;
var
  pZP: Integer;
  // ...
begin
  pZP := zAnchorItem(WinHandle);
  if pZP < 0 then
  begin
    pZP := Length(gProp);
    SetLength(gProp, Succ(pZP));
  end;
  // ...
end;
War aber nahe dran ;)

gruss Emil

Sherlock 15. Okt 2008 09:39

Re: PB nach Delphi
 
Das sind keine dummen Bemerkungen...die sind korrekt und angebracht, da es hier ja um gegenseitige Hilfe geht.

Sherlock

EWeiss 15. Okt 2008 09:43

Re: PB nach Delphi
 
Zitat:

Zitat von Sherlock
Das sind keine dummen Bemerkungen...die sind korrekt und angebracht, da es hier ja um gegenseitige Hilfe geht.

Sherlock

Ist genug jetzt mit OFTopic
Das Thema hat sich erledigt.

gruss Emil


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr.

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