AGB  ·  Datenschutz  ·  Impressum  







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

UserData (Zeiger) geht verloren

Ein Thema von Luckie · begonnen am 21. Feb 2007 · letzter Beitrag vom 22. Feb 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

Re: UserData (Zeiger) geht verloren

  Alt 21. Feb 2007, 22:24
Nein, das macht schon die Compilermagic.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: UserData (Zeiger) geht verloren

  Alt 21. Feb 2007, 22:33
Hi,
Werden lokale Objekte nicht beim verlassen einer Prozedur automatisch freigegeben?
Wenn ich das richtig sehe weist du hier die lokale Pointeraddresse ObjUserData[-1] zu.
ObjUserData[-1] := UserObjData; Was aber passiert beim Verlassen der Prozedur wird UserObjData nicht freigegeben und somit auch ObjUserData[-1]?!
Tschau Christian
Das System hofft auf Besserung
[Siemens]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

Re: UserData (Zeiger) geht verloren

  Alt 21. Feb 2007, 22:38
Nein. Die Variable UseroOjData wird ungültig, da der Speicher aber nicht freigegen wird, ist der Speicherbereich für die Eigenschaft ObjUserData des Objektes noch gültig.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
375 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: UserData (Zeiger) geht verloren

  Alt 21. Feb 2007, 23:01
hallo nochmal, letzter Versuch... versprochen....

hast Du die Länge des Puffers definiert auf den der Pointer verweist (
Zitat:
which length is in ObjUserDataLength
). Vielleicht ignoriert er den Pointer wenn die Pufferlänge nicht definiert wird ?
Andreas Schachtner
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

Re: UserData (Zeiger) geht verloren

  Alt 21. Feb 2007, 23:05
Das habe ich mir kurz vor Feierabend auch über legt und ObjUserDataLength sizeof(TUserObjData) zugewiesen. Das hat aber auch nicht funktioniert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
375 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: UserData (Zeiger) geht verloren

  Alt 21. Feb 2007, 23:08
ich geh ins Bett
Andreas Schachtner
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17

Re: UserData (Zeiger) geht verloren

  Alt 21. Feb 2007, 23:12
Na, das istaber kein Grund hier meinen Arbeitsplatz voll zu kotzen.

Das dumme ist nur, ich habe sonst keine andere Möglichkeit diese Textobjekte zu markieren damit ich sie von anderen unterscheiden kann. Eine Eigenschaft wie Tag gibt es nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#18

Re: UserData (Zeiger) geht verloren

  Alt 22. Feb 2007, 10:11
Ich habs, ich habs, ich habs.

Man muss das Objekt zu erst erstellen:
Delphi-Quellcode:
procedure TFBImageEn.AddPageNumber(Number: Integer);
var
  UserObjData : PUserObjData;
  hObj: Integer;
begin
  with ImageEnVect do
  begin
    hObj := AddNewObject;
    New(UserObjData);
    UserObjData.FIsPageNumberObj := True;
    ObjUserDataLength[hObj] := sizeof(TUserObjData);
    ObjUserData[hObj] := UserObjData;
    // Test
    UserObjData := ObjUserData[hObj];
    Writeln('AddPageNumber');
    Writeln(ObjUserDataLength[hObj]);
    Writeln(BoolToStr(UserObjData.FIsPageNumberObj, True)); // Test OK - output is "True"
    // End test
    ObjFontName[hObj] := 'Tahoma';
    ObjFontHeight[hObj] := -12;
    ObjFontStyles[hObj] := [];
    ObjPenColor[hObj] := clBlack;
    ObjBrushStyle[hObj] := bsClear;
    ObjMemoCharsBrushStyle[hObj] := bsClear;
    ObjMemoBorderStyle[hObj] := psClear;
    ObjTextEditable[hObj] := False;
    ObjText[hObj] := IntToStr(Number);
    ObjTop[hObj] := Height - 25;
    ObjWidth[hObj] := 20;
    ObjTextAlign[hObj] := iejCenter;
    ObjLeft[hObj] := (Width div 2) - (ObjWidth[hObj] div 2);
    //AddNewObject;
    Update;
  end;
end;
Das hätten sie aber ruhig mal in der Hilfe schreiben können.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
375 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: UserData (Zeiger) geht verloren

  Alt 22. Feb 2007, 17:59
... Glückwunsch !!!

konnte erst jetzt antworten da ich die Sauerrei noch beseitigen musste.
Andreas Schachtner
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#20

Re: UserData (Zeiger) geht verloren

  Alt 22. Feb 2007, 18:55
Nun ja, der Gag ist ja, dass man es auch anders rum machen kann, wenn man diese Eigenschaft nicht braucht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 05:13 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