Jump to content

Rollo62

Members
  • Content Count

    1950
  • Joined

  • Last visited

  • Days Won

    25

Everything posted by Rollo62

  1. It seems to depend on what information from the internet you want to believe. https://www.swimcheck.com/en/city/1005/beaches-wilhelmshaven I'm not an expert on "Wilhelmshaven", but if I Google this I would came to similar insights. Maybe the problem is that too many false information is out there and an AI cannot easily separate truth from lie. I do not expect 100% correct data from an AI, but a good support in doing tasks.
  2. Rollo62

    ChatGPT Example

    Thats true. As far as I could see from the chatGPT Playground, this is very well capable to remember earlier prompts in the conversation, while this GPT3 API only answers more or less to the current prompt. I think that is one of the main, important differences so far in chatGPT, among other algorithm details probably.
  3. Rollo62

    Upload media to WhatsApp cloud API

    I would try with RestDebugger first, if that is successful it may generate the right code to access the API.
  4. I think that is a very old and well known marketing principle: You can grow your business fast and easy by selling new products to existing customers, instead of trying to find new customers. This is why I can understand that well, although I find the mass of spamming quite annoying at the same time.
  5. Rollo62

    Include External Text Files in Output Folder

    Not exactly clear what you are looking for, but you can also use Resources to include files Its possible to load them to ResourceStream like that. procedure TForm1.Button1Click(Sender: TObject); var List: TStringList; Stream: TResourceStream; begin Stream := TResourceStream.Create(HInstance, '<Resource identifier>', RT_RCDATA); try List := TStringList.Create; try List.LoadFromStream(Stream); Label1.Text := List.Text; finally List.Free; end; finally Stream.Free; end; end; But these were fixed files, not user-loadable via dialog in the app.
  6. d:\Prg\Embarcadero\Studio\22.0\bin>certUtil -hashfile designide280.bpl SHA256 SHA256-Hash von designide280.bpl: 0fc933dde785368de661ec031580b2ae10d316532fd2c8c1ec2b831dc2605dc8 CertUtil: -hashfile-Befehl wurde erfolgreich ausgeführt.
  7. Well, indeed. Changing the personality changes this Version, never realized that this makes a difference. Which leads me to the question if I use my RadStudio maybe in the wrong way ? Does it make a different using RadStudio with its Delphi personality, versus opening Delphi personality directly ? It seems somewhat different, so is this maybe the cause of somewhat alien errors we see ?! What is the recommended way to open and use RadStudio - Delphi then, for cross-platform, it seems I will make some experiments how it behaves different.
  8. Well it doesn't work for me, although I have tried re-install automatically, tried re-installed manually, re-booted PC. Even when I check the files in the patch they were 1:1 identical, compared to the ones under /bin / bin64, etc. This number comes maybe from somewhere else, or maybe differs between Delphi, RadStudio, Enterprise or Architect ?
  9. Well, I've got the same "Embarcadero® RAD Studio 11 Version 28.0.46141.0937 " It seems it was well installed before, now reinstalled the Patch, but still 28.0.46141.0937 after it restarted. What exactly did you re-install, not only the Patch, or the complete IDE ? Edit: I cleaned everything, re-booted PC, re-installed Patch manually. Again it looks very promising, the logs very fine, but its still 28.0.46141.0937. I dont' re-install my IDE right now, it works OK so far, but would be great to know what exactly goes wrong.
  10. Rollo62

    TRichEdit equivalent in FMX?

    Thanks for pointing me to that, I used the old VCL version some years ago. Didn't realize that this is now FMX ready too, at least a few platforms, that is great news. I could recommend the old VCL version, not sure yet about FMX, but I will look into that.
  11. Rollo62

    Time-Limited offer from Almediadev and DelphiStyles!

    Tnanks for the interesting offer. Regarding the DelphiStyles, I always wonder if their underlying components were constructed based on the original FMX styles structure, or if they might use a completely different underlying structure. Technically I think it should be possible to rework the internal structure completey, since this is build on shape primitives mainly, should be easy to replace. I'm asking because the original FMX Styles components have some kind of lack in customizations, like background color, foreground color, accent colors, fonts, etc. Moreover the original FMX Styles internal representations differ a lot over the different platforms, so that on some OS the handling and behaviour will differ greatly. I think to have a 1:1 same internal structure would be best for all platforms, to have a unified interface, but I haven't looked too deep into the real reasons why its so different in the first place. If DelphiStyles may use a different internal structure and maybe offers easy accessible color objects, to customize the whole color scheme in one central place, that would make a lot of sense to me. A life-time license is a nice thing, how is your opinion about the "future-readiness" of the Styles, have you seen big, internal structural or conceptual changes over the past years since XE2-3 ? Currently I make no or very little use of FMX Styles, although I think the "Style" concept is a very good thing, only it makes way too much extra work, than it should, if you need small customizations.
  12. Hi there, I was experimenting with the Android.template.xml, to use different API-related selections, to searate old and new Bluetooth settings. Some recommendations in the web point to this nice and clean solution, so separate APIs in the manifest: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="..."> <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30" /> <application ... /> </manifest> Using the android:maxSdkVersion and the android:usesPermissionFlags="neverForLocation" identifier would allow an easy control over different versions. Unfortunately this didn't work in my current setup, maybe I have to rry again with a clean project, but I see a failure "attribute neverForLocation is not available". This seems that targeting to API31 is needed, and I'm still under API30, in its D11 default setup. But I'm not sure why this message pops up, and is not simply ignored, if there is an unknown attribute. Probably this needs linked somehow to the API31, and API30 throws exception. To be rescued, maybe the android:maxSdkVersion might work under different versions in different configurations, to make Delphi compatible with several API's at the same time in one manifest ? To be clear, I'm not talking about the targetSdkVersion here, but if someone could make use of the android:maxSdkVersion attribute already. I'm curious if somebody has get this working as expected under Delphi. Beside that, what would be the best way to handle BluetoothLE under API30, to be compatible with old and new devices ?
  13. Yes iOS was more stable and Android needed to catch up, but also in older versions it was stable since quite some time. Remember Windows, also there BT was ( and is ) somewhat alien for a long time. The biggest problem is that all OS permanently make changes in the permission system around the hardware, mainly because of GDPR. This enforces still some sudden, hysteric implementations here and there, although I assumed this should be mature meanwile in the whole society for some time. It looks to me that still there are no "best practices" how to handle GDPR in general, no matter for a sales slip in the bakery, for Cookies, for login to EU database, for medical devices, banking or software apps. I'm looking forward for more creepy implementations to come in the future, its not all Android's or iOS's faults.
  14. Yes, that was the case for older Android versions. They considered that BLE can be tracked or used for tracking ( think of Beacons ) and therefor need a location permission. Unfortunately they never invented a nearby location permission, but re-used the GPS one for this.
  15. @pcplayer99 I'm afraid that alone won't do it for all versions of Android. You will need more runtime permissions or other combinations of them, depending on the current OS version. https://developer.android.com/guide/topics/connectivity/bluetooth/permissions#java Thats why I still look after the "perfect" permission combination ( manifest and runtime ), which make Android happy for most older and newer Android versions.
  16. @jcwhit Yes its working, but I always have a bad feeling that it's not perfect for all versions. I cannot really say, but I think it sometimes behaves odd on special devices. To use a customized template is the way to go, sometimes I think about using a 100% custom template instead of the generated one, to have a much better control about the features. Unfortunately the IDE has too many limits and causes hard-to-find errros, which could be easily fixes in a simple XML editor. The urge to add too many automation and "smartness" in the IDE is not a good thing IMHO, I would prefer the pure textual options management over the checkbox-style. I think Embarcadero should simply offer two ways for the options setting like this, maybe the UI way as-is, plus a textual way, maybe through one JSON or XML file, alternatively. This would be better integrate into CI and also easier to manage for humans and allow easier code reuse. Maybe one day Embarcadero will consider my wish list, either allow both side-by-side or control one of both ways per selection in the tools options.
  17. Rollo62

    Can you mix VCL and FMX?

    There was an old project MonkeyMixer, that was intended to do so, if that is what you need. But it is not recommended, since you will carry VCL and FMC resources in your project and make it unnecessary heavy.
  18. You could simply use Google, prefixing your search like this "delphi docwiki fmx scrollbox". This gives mostly very accurate results to docwiki in the top 10.
  19. Rollo62

    Getting FireMonkey iOS development off the ground

    We have all the same goal in mind, but Apple does its best to keep this goal as far and impossible as it could be 🙂 I'm afraid you have to work through all the docs and threads that are out there, all the time. Embarcadero has a quite good explanation of the whole process for the start, but it may break easily at every little step in every little building block involved (MemberCenter certificates/provisioning, key chain old/double provisioning files, Macos setup, Macos updates, Macos version, Platform CPU, iOS version, iOS/Macos off-sync. versions, XCode version, SDK-Versions, SDK-Missing internal parts, network/wifi connection, Transporter version, AppStore, certificate, DeviceID, Device image, PAServer, Delphi version, ...). Even XCode itself sometimes cannot resolve everything smoothly, you will have to dive deep into all those forums. It would help if you would present a failure message you've got, to get more insights. Usually the best way is to prepare a new ID, certificates, devices in the MemberCenter manually and to use XCode to prepare iOS device for development, starting an empty project on iOS, it can manage provisioning files to some degree. Once it works, usually it stays quite stable for a long time. When you leave it alone for two or three weeks, you might see some provisioning issues and need to re-establish the connection sometimes (at least I have such experience here).
  20. Rollo62

    AV with SetStyleFromFile at runtime

    Maybe that info helps too https://docwiki.embarcadero.com/RADStudio/Sydney/en/Working_with_Native_and_Custom_FireMonkey_Styles https://docwiki.embarcadero.com/RADStudio/Sydney/en/Applying_FireMonkey_Styles Does a call to ApplyStyleLookup() help ? https://docwiki.embarcadero.com/Libraries/Sydney/en/FMX.Forms.TCustomForm.ApplyStyleLookup
  21. Rollo62

    How to rotate a RoundRect on click

    Ok, ok, here is a short demo maybe what you are looking for, additionally with some mouse drag-and-drop for the knob.. I would really recommend that you look into some books and the help before continuing, as well as checking out all the samples. Maybe that small demo helps for a start, but you should begin with the basics first. T465_Rotation_001.zip
  22. Rollo62

    How to rotate a RoundRect on click

    What I spot without too much looking into details: Your inside TForm7 declaration, so don't write TForm7. here private { Private declarations } public { Public declarations } //function TForm7.KnobLabelStationAngle(const AAngle : Single) : String; overload; function KnobLabelStationAngle(const AAngle : Single) : String; overload; //function TForm7.KnobLabelFreqAngle(const AAngle : Single ) : Single; overload; function KnobLabelFreqAngle(const AAngle : Single ) : Single; overload; end;
  23. Rollo62

    How to rotate a RoundRect on click

    You can simply add your function declaration and definition in the code window, similar like this: unit UMain_Form; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Layouts ; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } function MakeANewFunction( const AParam : Single ) : String; end; var Form1: TForm1; implementation {$R *.fmx} { TForm1 } function TForm1.MakeANewFunction(const AParam: Single): String; begin if AParam > 100.0 then Result := 'Large' else if AParam >= 0.0 then Result := 'Small' else Result := 'Negative'; end; end. For these kind of questions you better look into a good, basic Delphi book, like this one from Marco Cantu.
  24. Rollo62

    How to rotate a RoundRect on click

    function TForm7.GetMyStationNameFromAngleMethod( const AAngle : Single ) : String; const CStations : array[0..24-1] of String = ( 'New York, 'Honolulu', 'Tokyo' ... 'Paris' ); var LIdx : Integer; begin LIdx := AAngle div 15.0; // 0 ... 360 to 0 ... 23 Result := CStations[ LIdx ]; end; function TForm7.GetMyStationFreqFromAngleMethod( const AAngle : Single ) : Single; begin Result := (AAngle / 360.0) * 200.0; // 0 ... 360 to 0 ... 200.0 MHz end; procedure TForm7.KnobLeftClick(Sender: TObject); begin MyRoundRect.RotationAngle := MyRoundRect.RotationAngle - 15.0; Label1.Text := Format( 'My station is %s at %4.0f MHz, [ GetMyStationNameFromAngleMethod( MyRoundRect.RotationAngle ), GetMyStationFreqFromAngleMethod( MyRoundRect.RotationAngle ) ] ); end; procedure TForm7.KnobRightClick(Sender: TObject); begin MyRoundRect.RotationAngle := MyRoundRect.RotationAngle + 15.0; Label1.Text := Format( 'My station is %s at %4.0f MHz, [ GetMyStationNameFromAngleMethod( MyRoundRect.RotationAngle ), GetMyStationFreqFromAngleMethod( MyRoundRect.RotationAngle ) ] ); end; I assume you want to display the station name and frequency, right ? Just a rough idea, its already very late here ... Since I don't know exactly what you need this is a wild guess 🙂
  25. Rollo62

    How to rotate a RoundRect on click

    procedure TForm7.FormCreate(Sender: TObject); begin MyRoundRect.RotationCenter.Point( Pointf( MyRoundRect.Position.X + MyRoundRect.Width / 2.0, MyRoundRect.Position.Y + MyRoundRect.Height / 2.0 ) ); end; procedure TForm7.KnobLeftClick(Sender: TObject); begin MyRoundRect.RotationAngle := MyRoundRect.RotationAngle - 15.0; end; procedure TForm7.KnobRightClick(Sender: TObject); begin MyRoundRect.RotationAngle := MyRoundRect.RotationAngle + 15.0; end; Something similar like this (Untested) ? Or even adding some smooth animation by TFloatAnimation, like this.
×