Options

Get Filename as String From Picture when IMPORT

elToritoelTorito Member Posts: 191
Hi,

i Import a Picture with IMPORT Function, like:
myPicture.IMPORT('*.jpg;*.bmp;*.gif',TRUE);

Perhaps i has a thinking error. :-s

I would save the Imported Filename as String in a separated Field,
so when i Import a file names "C:\temp\picture.bmp"
I would save "Picture.bmp" in a textfield.

But was must I make it for do it?

Thanks
(Oo)=*=(oO)

Comments

  • Options
    Luc_VanDyckLuc_VanDyck Member, Moderator, Administrator Posts: 3,633
    I guess you could first use the CommonDialog to have the user select an image, and then pass this filename to the IMPORT-function, without showing the dialogbox again:
    myPicture.IMPORT(myFilename,FALSE);
    
    Have a look at codeunit 412 Common Dialog Management how to call the Common Dialog.
    No support using PM or e-mail - Please use this forum. BC TechDays 2024: 13 & 14 June 2024, Antwerp (Belgium)
  • Options
    elToritoelTorito Member Posts: 191
    Well ....

    i think it does the same

    without Common Dialog it looks so:
      myPictureText := Picture.myPicture.IMPORT( '*.jpg;*.bmp;*.gif', TRUE);
      Picture.PictureName := myPictureText;
    

    with Common Dialog it looks so:
      Picture.PictureName :=cdm.OpenFile('Choose Picture', '', 0, '*.jpg;*.bmp;*.gif', 0);
      Picture.myPicture.IMPORT(Picture.PictureName,FALSE);
    

    In the two options it returns me a large string, like
    "c:\myfiles\data\dumdidum\everything\mypicture.bmp"

    i think now i must hack this large string to make it smaller so than i obtains only the mypicture.bmp

    Thanks.
    (Oo)=*=(oO)
  • Options
    elToritoelTorito Member Posts: 191
    elTorito wrote:
    i think now i must hack this large string to make it smaller so than i obtains only the mypicture.bmp

    ok, that was it:

    GetPictureName(PicturePath : Text[260]) Value : Text[100]
    IF STRPOS(PicturePath,'\') <> 0 THEN BEGIN
      REPEAT
        FOR i := 1 TO STRLEN(PicturePath) DO BEGIN
          IF COPYSTR(PicturePath,i,1) = '\' THEN BEGIN
            MESSAGE(FORMAT(STRPOS(PicturePath,'\')));
            //PicturePath := DELSTR(PicturePath,i,1);
            PicturePath := DELSTR(PicturePath,1,STRPOS(PicturePath,'\'));
          END;
        END;
      UNTIL STRPOS(PicturePath,'\') = 0;
    END;
    EXIT(PicturePath);
    
    (Oo)=*=(oO)
Sign In or Register to comment.