Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#21

AW: Codeoptimierung verursacht probleme

  Alt 20. Jan 2017, 16:40
Zitat:
Emil, sei doch bitte so gut und denke nicht schon drei Schritte weiter
Werde ich tun und habe ich schon gemacht
Mit kleinen Änderungen.
Die Änderungen die noch gemacht werden müssen habe ich im vorherigen Post schon mitgeteilt.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
const
   EXTEND_EXTRA = 56;

procedure SetProperty(WinHandle: HWND; Item: integer; V: integer);
begin
   if (Item > 0) and (Item < EXTEND_EXTRA + 1) and (WinHandle <> 0) then
     SetWindowLong(WinHandle, (Item - 1) * 4, V);
end;

function GetProperty(WinHandle: HWND; Item: integer): integer;
begin
   Result := 0;

   if (Item > 0) and (Item < EXTEND_EXTRA + 1) and (WinHandle <> 0) then
     Result := GetWindowLongPtr(WinHandle, (Item - 1) * 4);
end;

procedure Test;
var
   Item: integer;
   V: integer;
   DesktopDeviceContext: HDC;
   I: Integer;
begin
   for I := 0 to 100 do
   begin
     Item := 1;

     DesktopDeviceContext := GetDC(0);
     SetProperty(Form1.Handle, Item, DesktopDeviceContext);
     V := GetProperty(Form1.Handle, Item);
     ReleaseDC(Form1.Handle, DesktopDeviceContext)
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Test;
end;

end.

Zitat:
Hier jetzt mal als minimalstes Beispiel.
Hat auch einen ErangeError keine Ahnung warum. Oder aber
LongWord <> Integer.. das ist bekannt. Aber wie gesagt ich kann das nicht ändern.
GetWindowLong erwartet einen Integer.

gruss

Geändert von EWeiss (20. Jan 2017 um 16:52 Uhr)
  Mit Zitat antworten Zitat