Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi kann man diesen code vereinfachen? (https://www.delphipraxis.net/59906-kann-man-diesen-code-vereinfachen.html)

UniPerson 30. Dez 2005 13:34


kann man diesen code vereinfachen?
 
Delphi-Quellcode:
type
TArrc = array[0..5] of byte;
var
Call2 : integer = $22B0134;
uvbase: integer;
uvbasep : ^integer;
procedure TForm1.Button10Click(Sender: TObject);
var
p1 : ^TArrc;
p2 : ^TArrc;
p3,p4,p5 : ^integer;
call2b : integer;
s : OleVariant;
begin
s:=edit6.Text;
uvbasep:=pointer(univoicex1.ControlInterface);
uvbase:=uvbasep^-$230197;
Call2b:=Call2+uvbase;
p3:=Pointer(700+integer(uvbasep));
p4:=pointer(integer(p3)+$2FC);
p4:=pointer(p4^+$8; <<< ? 
p1:=pointer(p4^+$1;
p1^[0]:=s;
p5:=pointer(Call2);
asm
push edx
mov edx,p4 
mov edx,[edx]
mov eax,p3 
mov eax,[eax+$304]
call Call2b
pop edx
end;
end;
[edit=sakura] [delphi]-Tags Mfg, sakura[/edit]

c113plpbr 30. Dez 2005 13:41

Re: kann man diesen code vereinfachen?
 
äähm ... zuerst würde ich mal sagen, du solltest den Code in [delphi ][/delphi ] -tags schreiben, dann solltest du ihn nach allen regeln der "kunst" formatieren, und ihn dann nochmals anschauen ... allein das vereinfacht den code schon um ein vielfaches!

Desweiteren, sowas wie Editfeldern aussagekräftige namen geben, z.B. ed_age (so nenne ich das zeug zumindest immer), das gleiche gilt für variablen.

Ein weiterer Punkt ist, Assembler Code zu vermeiden, soweit möglich (ich habs mir nicht so genau angeschaut, daher, kann ich über den da keine aussage treffen).

Wenn du das gemacht hast, poste es doch nochmal hier.

ciao, Philipp

brechi 30. Dez 2005 13:57

Re: kann man diesen code vereinfachen?
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  p3, p4 : pinteger;
  Call2b: procedure(a,b: integer); register;
begin
  @Call2b := pointer(pinteger(univoicex1.ControlInterface)^-$230197+$22B0134);
  p3 := Pointer(700+integer(univoicex1.ControlInterface));
  p4 := pointer(pinteger(integer(p3)+$2FC)^+$8);
  Call2b(p3^+$304,p4^);
end;
Und erzähl mir jetzt blos nicht du weißt was du da machst. Normalerweise unterstütz ich so nen quatsch eigentlich nicht.

Robert Marquardt 30. Dez 2005 15:06

Re: kann man diesen code vereinfachen?
 
AAAHHRRGGG!!!!!
Offensichtlich wird ein ActiveX vergewaltigt. Dieser Code gehort unbesehen in den Muelleimer!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 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 by Thomas Breitkreuz