Jump to content

kosovali

Members
  • Content Count

    7
  • Joined

  • Last visited

Everything posted by kosovali

  1. Hi, I have 1000+ records. This records contains pointer types. When records streamed on Win32 /Win64 has a different sizes. I want to use this records with win32/win64. In Win32 Pointer size is 4, can be this size 8 bytes? Or any other solutions? type ptr_rec1=^rec1; rec1=record i1:integer; p1:Pointer; end; ptr_rec2=record rec:ptr_rec1; i:integer; p2:Pointer; end; SizeOf(ptr_rec2); //Different sizes for Win32/Win64
  2. Records contains; Record Pointer, Double Link List Pointer. etc. Element sequence is important. Pointer values not important for streaming. Only used runtime. We want to same format in the 64 bit app. Fake32bitPtr can not be used with GetMem. Error: "Incompatible Types". I can change -minimal- record fields for 64 bit compatibility. Code changed for Win32/Win64 com. type Fake64bitPtr = UInt64; ptr_rec1=Fake64bitPtr; rec1=record i1:integer; p1:Fake64bitPtr; end; ActualPtr_rec2 = ^ptr_rec2; ptr_rec2=record rec:ptr_rec1; i:integer; p2:Fake64bitPtr; end; But GetMem raised error.
  3. Pointer fields updated in runtime. 30 years old codebase. Not created now. It is developed from pascal ide.
  4. Pointer fields updated in runtime.
  5. kosovali

    Problem with BidiMode

    I want set "123 SAMPLE 456" to a label But displayed as : " SAMPLE 456 123" My Configuration: Language for Unicode programs : Arabic (Syria) Form BidiMode : bdRightToLeft Can you help me?
  6. kosovali

    Problem with BidiMode

    H.Alignment changes does not affected. Sample output with DrawTextEx WinApi call : procedure TForm1.Button1Click(Sender: TObject); var Text:String; lpRect:TRect; uFormat:Cardinal; Options: Longint; begin Text:= '123 SAMPLE 456'; lpRect:=Rect(10,10,300,150); uFormat:= {DT_LEFT or }DT_EXPANDTABS or DT_NOPREFIX or DT_RTLREADING; DrawTextEx(Canvas.Handle, @Text[1], Length(Text), lpRect, uFormat, nil); end;
×