Jump to content

Tommi Prami

Members
  • Content Count

    562
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by Tommi Prami

  1. Tommi Prami

    View Canon/Nikon reflex jpeg photo in high quality (Adobe sRGB?)

    I've once done something to solve this. I think I had to use some windows API or, hmmm... GDI+ thingy to load jpeg file, so it'll make color space conversion. Can't remember the details. I think it was some kind of GDI+ API thingy. -Tee-
  2. Tommi Prami

    Is editing posts disabled?

    Or I just can't figure out how to do that. -Tee-
  3. Tommi Prami

    Is editing posts disabled?

    Would have never guessed that, I thought that is for asking admins to remove etc. Or report abusive content etc. 🙂 -Tee-
  4. Tommi Prami

    Is editing posts disabled?

    Most likely... I see no problem changes, if someone doesn't behave, kick them out.
  5. Tommi Prami

    Is editing posts disabled?

    BC?
  6. Tommi Prami

    Is editing posts disabled?

    Depends on how one uses the forum. I personally usually post, and maybe come back next day or later, If there is no replies in the my post, then I have no reason to revisit it. If the problem isn't in the caption. So, I don't quite see any problem in editing own posts, now I see it bit confusing as the "button" completely disappears. And as for me I have no idea how to even contact an admin to edit the message if I have an need to do so. Other example would be that the tone of your message is wrong, let's say due the you are using your second or third language. Would be nice to polish those out. Also what I see problematic in here is the fact that we know what it should read, we don't read own posts very carefully. And as it is possible in almost any social media platforms also, so it is more than less standard -Tee-
  7. Tommi Prami

    Is editing posts disabled?

    Mainly talks about deleting, I just would love to correct typos 🙂 -Tee-
  8. Tommi Prami

    Is editing posts disabled?

    Did some searching and even browsed (quickly) this through, but could not spot thread. -Tee-
  9. Tommi Prami

    Is editing posts disabled?

    That seems to be kind of stupid, if post code, notice mistake, i can't fix it, or I can't delete message I accidently posted in wrong group or there is embarrassing typo etc. I think editing and deleting should be possible as long as you like. Would take some load of of Admins also. OR in other words I can't see any reason why post shouldn't always be editable, enlighten me please if I am missing something obvious. -Tee-
  10. Tommi Prami

    Is editing posts disabled?

    Hmm, this post I have Edit button, but not the olen I would like to edit. Why is that?
  11. Only saw examples at online to select one file in explorer, and thought maybe someone else can also benefit from version that selects multiple files. Or harden this one if needed, -Tee- function OpenFolderAndSelectFiles(const AFileNames: TStringList): Boolean; procedure CheckFilesHaveSameRoot(const AFileNames: TStringList); var I: Integer; LDirectory: string; begin LDirectory := ExtractFilePath(AFileNames[0]); for I := 1 to AFileNames.Count - 1 do if not SameText(LDirectory, ExtractFilePath(AFileNames[I])) then raise EFileNotFoundException.CreateFmt('File "%s" is not in common root "%s"', [AFileNames[I], LDirectory]); end; var LDirectory: string; LPDirectoryItemID: PItemIDList; I: Integer; LFileArray: TArray<PItemIDList>; LDidInitCOM: Boolean; LAPIResult: HResult; begin CheckFilesHaveSameRoot(AFileNames); Result := False; LDidInitCOM := False; LDirectory := ExtractFilePath(AFileNames[0]); LPDirectoryItemID := ILCreateFromPath(PChar(LDirectory)); if Assigned(LPDirectoryItemID) then try SetLength(LFileArray, AFileNames.Count); for I := 0 to AFileNames.Count - 1 do LFileArray[I] := ILCreateFromPath(PChar(AFileNames[I])); while True do begin LAPIResult := SHOpenFolderAndSelectItems(LPDirectoryItemID, AFileNames.Count, @LFileArray[0], 0); if LAPIResult = CO_E_NOTINITIALIZED then begin LDidInitCOM := Succeeded(CoInitialize(nil)); if not LDidInitCOM then raise Exception.Create('Could not initialize COM'); end else Break; end; Result := LAPIResult = S_OK; finally ILFree(LPDirectoryItemID); for I := 1 to AFileNames.Count - 1 do ILFree(LFileArray[I]); if LDidInitCOM then CoUninitialize; end; end;
  12. Tommi Prami

    Marshmellow

    That is different use case. I would like to make something hobby stuff, not just evaluate. Maybe better to use some open Source Variants. That's why I would be happy to pay some, let's say 50€, but 150€ for something I am just interested in, and maybe never ever finnish, is too much. And would never make money from it or publish. Could someone list what are out there (Orm solutions or something close to that): - mORMot - DelphiMVC ...
  13. Tommi Prami

    Marshmellow

    That is not even close accurate analogy. If I go to restaurant, there is free meal and normal paid meal, I suggest restaurant, if I pay only little of the regular meal as i only will eat just a some portion of it. And even that restaurant analogy is plain stupid, cause this is about having reduced price if not used to make money which is the point of full licence, it allows you to make money with it. As same way that there is community edition of Delphi, which is super smart. If you like to tinker with it, it is free, but not an cripple ware.
  14. Tommi Prami

    Marshmellow

    How is so, I just suggested that I would not want to use FREE version and would like instead to PAY something.
  15. Tommi Prami

    Marshmellow

    No Source code so quite different thing, and no support so difficult to investigate why something doesn't work as expected. I would rather pay little to get non commercial use license. -Tee-
  16. Tommi Prami

    Marshmellow

    Would be nice of Component vendors had also licence for non commercial use, I would pay something, but not full price if I just want to tinker something at home. -Tee-
  17. Tommi Prami

    Design Packages list is not resizable

    That windows desperately needs an filtering, it is very hard to find stuff from it. Adn sometimes important info is not at beginning nor end of the line.
  18. If got link to Bugreport, would be more than willing to vote. -Tee-
  19. Just to tinker as hobby at home. Would not like to learn some other language to do some tinkering at home as hobby (et this point) -Tee-
  20. Tommi Prami

    Long standing SOAP bug, please vote

    https://quality.embarcadero.com/browse/RSP-23624 -Tee-
  21. Tommi Prami

    Troubled relationship with m$Xml

    If got an code : uses Winapi.msxml, Winapi.MSXMLIntf; procedure TForm10.Button1Click(Sender: TObject); var LDocument: IXMLDomDocument3; LCurrrentValueNode: IXMLDOMNode; LNodeList: IXMLDOMNodeList; I: Integer; begin LDocument := CoDOMDocument60.Create; LDocument.async := False; LDocument.validateOnParse := False; LDocument.ResolveExternals := False; LDocument.PreserveWhiteSpace := True; LDocument.loadXML(Memo1.Lines.Text); if LDocument.parseError.errorCode <> 0 then raise Exception.CreateFmt('XML parsing error : %s at row %d position %d', [LDocument.parseError.reason, LDocument.parseError.Line, LDocument.parseError.linepos]); if Assigned(LDocument.documentElement) then LNodeList := LDocument.documentElement.getElementsByTagName('IBAN') else LNodeList := LDocument.getElementsByTagName('IBAN'); for I := 0 to LNodeList.Length - 1 do begin LCurrrentValueNode := LNodeList.Item[I]; Memo2.Lines.Add(LCurrrentValueNode.nodeValue); end; repeat LCurrrentValueNode := LNodeList.nextNode; if Assigned(LCurrrentValueNode) then Memo2.Lines.Add(LCurrrentValueNode.nodeValue) else Break; until True; end; and XML <?xml version="1.0" encoding="UTF-8"?> <Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02"> <BkToCstmrStmt> <Stmt> <Acct> <Id> <IBAN>FI0434270410003403</IBAN> </Id> </Acct> </Stmt> <Stmt> <Acct> <Id> <IBAN>FI7542316072000169</IBAN> </Id> </Acct> </Stmt> </BkToCstmrStmt> </Document> Any idea why getElementsByTagName doews not return Tags it should (I think). Once you're set to do something pretty simple and nothing works. I remember now why I do not enjoy the M$Xml too much. Also if you can recommend better replacement XML libraries, feel free to do so.
  22. (I use 10.3.1) If got an code : uses Winapi.msxml, Winapi.MSXMLIntf; procedure TForm10.Button1Click(Sender: TObject); var LDocument: IXMLDomDocument3; LCurrrentValueNode: IXMLDOMNode; LNodeList: IXMLDOMNodeList; I: Integer; begin LDocument := CoDOMDocument60.Create; LDocument.async := False; LDocument.validateOnParse := False; LDocument.ResolveExternals := False; LDocument.PreserveWhiteSpace := True; LDocument.loadXML(Memo1.Lines.Text); if LDocument.parseError.errorCode <> 0 then raise Exception.CreateFmt('XML parsing error : %s at row %d position %d', [LDocument.parseError.reason, LDocument.parseError.Line, LDocument.parseError.linepos]); if Assigned(LDocument.documentElement) then LNodeList := LDocument.documentElement.getElementsByTagName('IBAN') else LNodeList := LDocument.getElementsByTagName('IBAN'); for I := 0 to LNodeList.Length - 1 do begin LCurrrentValueNode := LNodeList.Item[I]; Memo2.Lines.Add(LCurrrentValueNode.nodeValue); end; repeat LCurrrentValueNode := LNodeList.nextNode; if Assigned(LCurrrentValueNode) then Memo2.Lines.Add(LCurrrentValueNode.nodeValue) else Break; until True; end; and XML <?xml version="1.0" encoding="UTF-8"?> <Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02"> <BkToCstmrStmt> <Stmt> <Acct> <Id> <IBAN>FI0434270410003403</IBAN> </Id> </Acct> </Stmt> <Stmt> <Acct> <Id> <IBAN>FI7542316072000169</IBAN> </Id> </Acct> </Stmt> </BkToCstmrStmt> </Document> Any idea why getElementsByTagName does not return Tags it should (I think). Once you're set to do something pretty simple and nothing works. I remember now why I do not enjoy the M$Xml too much. Also if you can recommend better replacement XML libraries, feel free to do so.
  23. Tommi Prami

    Trouble with (very) simple XML-parsing

    Did test with Xml.XMLIntf.pas IXMLDocument also. OmniXML as vendor or not. Made own recursive routine, based on OmniXML implementation, it'll find nodes just fine, but not node Values, which seems to be super weird. function GetElementsByTagName(const ADocumentElement: IDOMElement; const AElementName: string): TList<IDOMNode>; procedure InternalGetElementsByTagName(const ANode: IDOMNode; const AElementName: string; const ANodeList: TList<IDOMNode>); var I: Integer; LChildNode: IDOMNode; begin if ANode.HasChildNodes then for I := 0 to ANode.ChildNodes.Length - 1 do begin LChildNode := ANode.ChildNodes.Item[I]; if (LChildNode.NodeType = ELEMENT_NODE) and ((LChildNode as IDOMElement).NodeName = AElementName) then ANodeList.Add(LChildNode); InternalGetElementsByTagName(LChildNode, AElementName, ANodeList); end; end; begin Result := TList<IDOMNode>.Create; InternalGetElementsByTagName(ADocumentElement, AElementName, Result); end;
  24. Tommi Prami

    Trouble with (very) simple XML-parsing

    First test was there just to get an idea is there one and which it'll use. IT seems to depend on something. Done so many tests so can't really give specifics on that. At least that xpath down work, because structure of XML is not always same. It has to be more structure agnostic.
  25. Tommi Prami

    Trouble with (very) simple XML-parsing

    At least all the documentation I've found tells that it should. find others also. m$xml docs and also more generic DOM ones. What ever is the implementation is totally different story. -Tee-
×