Jump to content

Bob Baudewyns

Members
  • Content Count

    24
  • Joined

  • Last visited

Community Reputation

3 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Bob Baudewyns

    Looking for outsourcing FMX development

    Hi Fajar, Thanks for your feedback If you are interested, please contact me at contact@smallconsult.com I'm looking first for a budget estimation for this development based on above description. Final specifications and cost will be agreed together before starting the job. (Trying to be cautious here )
  2. Bob Baudewyns

    Looking for outsourcing FMX development

    Well, this is not the feedback I was expecting from my post here more than one year ago. I guess this approach is not working that well. Two heads are better than one. I see my request as a potential collaboration with a developer. Even for additional developments. Just keeping an open mind for other suggestions. I assume that additional works shall be included in the final price anyway. Again, I am not asking for free stuff. We are in the "Job opportunities/Coder for hire" section. I'm not a native English speaking person. Sorry if my wording was poor and unclear. I sincerely hope that this unproductive discussion is now closed.
  3. Bob Baudewyns

    Looking for outsourcing FMX development

    For anyone who might be interested, please contact me contact@smallconsult.com
  4. Bob Baudewyns

    Looking for outsourcing FMX development

    Hi Patrick, Yes but I would prefer a standalone implementation not relying on another library Not sure I understand your point here. I'm asking for a proposal meaning that I'm, of course, ready to pay for that. Sorry if this was unclear in my message. I just need an invoice. Are you interested ?
  5. Bob Baudewyns

    Creating Gradient by code

    Yep, this is doing the job. Thanks for ColorIndex:= 0 to 4 do begin GradientPoint:= FGradient.Points.Add; TGradientPoint(GradientPoint).Color:= TGradientColors[ColorIndex]; TGradientPoint(GradientPoint).Offset:= TGradientOffsets[ColorIndex]; end;
  6. Bob Baudewyns

    Creating Gradient by code

    Yep. My code is based on this but written in a different way. Do you think that's the reason? This is FMX. I'm targeting all platforms
  7. Bob Baudewyns

    Creating Gradient by code

    I'm looking to define a gradient for TRectangle stroke. I can do that using the editor: Which gives me the following definition: Stroke.Kind = Gradient Stroke.Gradient.Points = < item Color = claRed Offset = 0.000000000000000000 end item Color = claBlue Offset = 0.250000000000000000 end item Color = claYellow Offset = 0.500000000000000000 end item Color = claFuchsia Offset = 0.750000000000000000 end item Color = claLime Offset = 1.000000000000000000 end> Stroke.Gradient.StartPosition.Y = 0.500000000000000000 Stroke.Gradient.StopPosition.X = 1.000000000000000000 Stroke.Gradient.StopPosition.Y = 0.500000000000000000 Stroke.Thickness = 5.000000000000000000 I'm trying to reproduce that Gradient definition by code like this: const TGradientColors: Array[0..4] of TAlphaColor = (claRed, claBlue, claYellow, claFuchsia, claLime); TGradientOffsets: Array[0..4] of Single = (0.0, 0.25, 0.50, 0.75, 1.0); FGradient:= TGradient.Create; for ColorIndex:= 0 to 4 do begin FGradient.Points.Add; FGradient.Points[ColorIndex].Color:= TGradientColors[ColorIndex]; FGradient.Points[ColorIndex].Offset:= TGradientOffsets[ColorIndex]; end; CalcPosition(FAngle, FGradient); But what I get is not at all what I'm expecting: PanelsAppearence.Gradient.Points = < item Color = claRed Offset = 0.000000000000000000 end item Color = claNull Offset = 0.000000000000000000 end item Color = claNull Offset = 0.000000000000000000 end item Color = claNull Offset = 0.000000000000000000 end item Color = claLime Offset = 0.750000000000000000 end item Color = claWhite Offset = 1.000000000000000000 end item Color = claFuchsia Offset = 1.000000000000000000 end> I've searched everywhere for the proper way to define a gradient by code Could you help me?
  8. Hi, I'm looking to outsource the development of a standalone generic custom dialog box framework that can be used from a simple MessageBox (error, warning...) with icon to flexible container to display almost anything Can also act as message toaster Based on the following specifications: FMX Framework. Compliant with FMX styling Independent unit as non-visual component - Non-modal mode like a simple pop-up message - Modal mode, interrupting execution proving same user feedback as standard dialogs when clicking outside - Toaster mode with duration Fully localizable Size: Fixed, Autosize, Sizeable (Win, OSX) Screen Position: Top, Center, Bottom Options to modify - Dialog Background (Color, Fill, Gradient, Image) with opacity - Margins - Dialog Borders (Color, stroke), Corners (Radius), Shadow (Color, opacity) - Shade or Blur the background application behind it Screen Position: Top, Center, Bottom Appearance and disappearance with animations. i.e. : - Fade in / out - Fly: scrolling from a side (top, bottom, left, right) - Grow / Shrink - Split / Wipe, etc... Generic methods to open, update (i.e. progress dialog) and close the dialog Modal result No dependency with another third-party library Full code source delivered. We are owning that code (negotiable). Shipped as a Delphi packages (10.4, 11). A demo application must also be provided to validate the deliverables Need an invoice Please send me your best proposition possibly with additional features in private message Don't hesitate if you have any question to discuss or any comment to improve this project
  9. Thank you for your feedback. I managed to solve my RegEx problems quite some time ago with the help of another member (Fr0sT.Brutal) But this is indeed a very interesting approach.
  10. Bob Baudewyns

    Updating a JSON file with THTTPClient

    Got it. Thanks for the clarification Uwe. Have a nice weekend
  11. Bob Baudewyns

    Updating a JSON file with THTTPClient

    There is absolutely no server action here. Sorry for the confusion. Let's say it's a remote file instead of a file stored on each local computer The file is just sitting there to be shared between computers and potentially modified by one of these computers Imagine this is a configuration JSON file driving the behavior of each computer. But can be changed and affecting all computers that are reading it at startup My question is focusing if I can change that file by code without downloading and uploading it. If I can get the content of the file with THTTPClient.Get, why I couldn't change that content with POST or PUT ?
  12. Bob Baudewyns

    Updating a JSON file with THTTPClient

    The URL is located on a web server. www.smallconsult.com/Tests/Test.json This is for quick test purpose The server response Status Text is just OK. I don't want to upload the file. I want to update the content of that file on the server
  13. Hi, To drive my application, I am downloading at startup a JSON structure from a file located on a server. I need to share that file between me and a remote person. I am doing that successfully with the following code: function GetJSONFromServer(const Filename: string): TJSONObject; var FullURLPath: string; Buffer: TStringStream; Client: THTTPClient; Response: IHTTPResponse; begin Result:= nil; Buffer := TStringStream.Create; try Client := THTTPClient.Create; try FullURLPath:= Concat(URL, '/', Filename); Response:= Client.Options(FullURLPath, nil, 0); if Response.GetStatusCode = 200 then begin Client.Get(FullURLPath, Buffer); if (Buffer.Size > 0) then Result:= TJSONObject.ParseJSONValue(Buffer.DataString) as TJSONObject else Log('ERROR: JSON File is empty !', ErrorColor); end else Log('ERROR: File does not exist on server !', ErrorColor); finally Client.Free(); end; finally Buffer.Free(); end; end; I'm simply trying to do the opposite: Updating the same JSON file at shutdown. The following code doesn't generate any error but the file is not updated. function PostJSONToServer(const Filename: string; const JSONObject: TJSONObject): Boolean; var FullURLPath: string; Buffer: TStringStream; Client: THTTPClient; Response: IHTTPResponse; begin Result:= false; Buffer := TStringStream.Create; try Client := THTTPClient.Create; try FullURLPath:= Concat(URL, '/', Filename); Response:= Client.Options(FullURLPath, nil, 0); if Response.GetStatusCode = 200 then begin Buffer.Seek(0, soFromBeginning); Buffer.WriteString(JSONObject.ToString); Client.Post(FullURLPath, Buffer); if Response.GetStatusCode = 200 then begin Log('Transaction with server successfull !', OkColor); Result:= true; end else Log('ERROR: Transaction with server failed !', ErrorColor); end else Log('ERROR: File does not exist on server !', ErrorColor); finally Client.Free(); end; finally Buffer.Free(); end; end; The buffer contents before posting is correct. Is my code completely wrong ? Should I use another query instead of Post ? Is it a matter of security preventing me to modify the file ? Is there a workaround to allow such transaction ? Thanks
  14. The string conversion is supposed to be done by the end user of the application inside the GUI Not from the IDE by the developer. So, RegEx, running "behind the scene" looks like the best option here.
  15. Oh, I see. Unfortunately not. All of this is inside Delphi code.
×