Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 06/13/24 in all areas

  1. Hi Everyone, My name is Tim and have been using Pascal forever (among other languages) since the 90s. For a variety of reasons I've transitioned (/transitioning) into tutoring and mentoring, and have launched a YouTube channel dedicated to all things Delphi. My first video, "Starting an Adventure with Delphi," is here - In the future, I'm planning to cover a range of topics, including: - Building modern Delphi applications for FireMonkey - Essential data structures for Delphi developers - Tips for debugging those tricky Delphi problems I'm really passionate about keeping Delphi alive and well. Whether you're a complete beginner or a seasoned developer looking to brush up your skills, I hope you'll find something valuable on my channel. Let me know what you think - especially if you have any topic suggestions!
  2. Dave Nottage

    New to Delphi 12, can't turn off adaptive icons

    I'm puzzled as to why you would post "Got it figured out", but not actually include the solution
  3. Unfortunately this is not implemented yet. You would have to enter a QP request.
  4. Uwe Raabe

    Windows PATH length limit?

    Current version is available on GitHub: https://github.com/UweRaabe/CompressPath
  5. GetIt is the package manager built into the Delphi IDE. It can be used in Online and Offline mode. If you installed Delphi from an ISO, GetIt was left in Offline mode. That has some drawbacks: GetIt cannot notify you about new updates or patches as they become available. The “Manage Features” functionality of the IDE won’t work. Unfortunately there is no way to switch GetIt to Online mode in the configuration.The usual way is to run the GetItCmd tool with the switch -c (read on in the blog post)
  6. Minox

    Just open folder ( Android )

    I use this: uses Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers, System.Messaging, Androidapi.JNI.Net, Androidapi.JNI.App, PROCEDURE TForm1.GetFileBrowser; VAR Intent : JIntent; ReqCode : Integer; BEGIN ReqCode := 1000; Intent := TJIntent.Create; Intent.setType(StringToJString('*/*')); Intent.setAction(TJIntent.JavaClass.ACTION_GET_CONTENT); Intent.putExtra(TJIntent.JavaClass.EXTRA_ALLOW_MULTIPLE,true); TMessageManager.DefaultManager.SubscribeToMessage(TMessageResultNotification, procedure(const Sender : TObject; const aMessage : TMessage) VAR msgRES : TMessageResultNotification; begin msgRES:= TMessageResultNotification(aMessage); If msgRES.RequestCode=ReqCode Then if (msgRES.ResultCode=TJActivity.JavaClass.RESULT_OK) Then Begin URIfileTrn := msgRES.Value.getData(); //URI sing file selez If URIfileTrn=Nil Then //multiselez ClipDataF := msgRES.Value.getClipData; End; end); TAndroidHelper.Activity.startActivityForResult(Intent, ReqCode); END; and then via thread process the URI
  7. The following console app works fine: {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, System.Classes, System.Generics.Collections; type TMethodList = TList<TMethod>; const Method: TMethod = (Code:nil; Data:nil); begin try var fKeyDownChain := TMethodList.Create; try fKeyDownChain.Add(Method); fKeyDownChain.Remove(Method); WriteLn(fKeyDownChain.Count); finally fKeyDownChain.Free; end; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; ReadLn; end. However the exact same sequence results in an access violation when used in a larger Win64 application. const Method: TMethod = (Code:nil; Data:nil); begin fKeyDownChain := TMethodList.Create; fKeyDownChain.Add(Method); fKeyDownChain.Remove(Method); The error occurs when you call Remove, at the first statement of the following function of System.Generics.Defaults, class function TComparer<T>.EQOperCompare(Self: Pointer; const Left, Right: T): Integer; begin if TRecEqualityOperator<T>(_GetExtInstanceData(Self, 0))(Left, Right) then Result := 0 else Result := BinaryCompare(@Left, @Right, SizeOf(T)); end; In the console application this statement results in a call to TMethod.Equal, Any clues as to why the error occurs? Update: This is a consequence of [RSP-43423] Using {$WEAKLINKRTTI ON} causes access violation on TList<T>.IndexOf method - Embarcadero Technologies. The console application also fails with {$WEAKLINKRTTI ON}. I guess specifying a Comparer would be a workaround. Is there any other workaround apart from removing the WEAKLINKRTTI directive, which increases the size of the executable by 2Mb? . Beyond the executable size, this is quite a serious issue, because it makes the use of generic collections of records in components unsafe, since a user of such a component setting WEAKLINKRTTI to ON, could face unpredictable and hard to detect crashes.
  8. Delphi 12. Project was working earlier today. Don't know what changed, but now, for instance, if I put a button on a form it doesn't show up. If I put a showmessage at various points like formactivate - nothing happened. Did a system restore (windows 11) to yesterday - same problem. Any ideas?
×