none
BUILD EXE.... RRS feed

  • Allgemeine Diskussion

  • hi allezamm.... und nachträglich ein (hoffentlich besserwerdendes) schönes neues Jahr

    Jeder Projektdatei habe ich natürlich auch ein Icon verpasst damit eine erstellte EXE auch danach aussieht. Bislang hatte ich keine Probleme damit, bis ich das gleiche Icon in die entsprechende Form geladen habe. Damit das Form.Icon jederzeit angepasst werden kann, lade ich im Form.Load das entsprechende Icon aus einer Ini-Datei (normalerweise aus der Config.fpw siehe unten)

    Nun habe ich (mehrere Stunden) nach einem Fehler gesucht, denn in der Entwicklungsumgebung lief alles erfolgreich aber die Exe konnte ich im Produktionsverzeichnis nicht mehr starten. Fehlermeldung aus der SYSTRAY-Class.
    ...."C:\@Lib21\icon\pic_fon01.ico" ist nicht vorhanden

    Wobei dieses SysTray absolut recht hat, denn das Verzeichnis existiert gar nicht. Meine Quelldateien sind im Verzeichnis "V:\...." hinterlegt.

    Dieses Systray nimmt im Init das Form.Icon als Systray.Icon, was ja auch nicht verkehrt ist. Jedoch im Form.Icon steht der komplette, und dazu fehlerhafte Pfad aus meiner EWS-Umgebung und nicht der Pfad, der in der config.fpw eingestellt wird. Selbst wenn ich vor dem SysTray.Init die Zeile ThisForm.Icon = JUSTFNAME(ThisForm.Init) oder dem Systray vor einem DODEFAULT() nur den Namen des Icons eintrage, wird der komplette Falsch-Pfad der IDE übernommen.

    wie kann ich dem Projekt klarmachen, dass der beim BUILD nicht den Icon-Path mitnimmt?

    hier die config.fpw aus der Entwicklung

    _include = .\@DEFINES.H
    default = .\
    screen=on
    toolbars=on
    TMPFILES = .\Temp
    RESOURCE = .\Temp
    TOOLTIP = 1
    sysformats = on
    safety = on
    title = VisualFoxPro    Bon 21
    progwork = .\
    path = .\;..\@lib21;.\PROJ;..\@com;..\@lib21\ICON
    
    command = _screen.WindowState = 2
    
    [DEFAULT]
    SRVPATH = \\Server\Prod....
    ....usw
    
    [FONDATA]
    DEFICON = Pic_Fon01.ico
    DISTIME = 90 Sek.
    ....
    
    [HAKDATA]
    DEFICON = Pic_Haka.ico
    

    und Hier aus der Produktion

    screen=off
    toolbars=on
    TMPFILES = .\TEMP
    RESOURCE = .\TEMP\B09_Resources
    TOOLTIP = 1
    sysformats = on
    safety = on
    path = C:\$Anw\BON20;C:\$Anw\BON20\ICON
    
    [DEFAULT]
    SRVNAME = \\Srvname.....
    
    [HAKDATA]
    SUBPATH = HAKA
    TIMEXIT = 600 Sek
    DEFICON = Pic_Haka.ICO
    
    [FONDATA]
    DEFICON = Pic_Fon01.ICO
    ....

    lg mike

    und hier die aus der Produktion
    und hier die aus der Produktion
    Freitag, 8. Januar 2021 01:42

Alle Antworten

  • Moin, moin

    so ganz verstehe ich es nicht.

    Ich packe die Icondatei mit ins Projakt (andere Dateien).

    Im Form habe ich in der IDE dann (durch die Auswahl via Filselektor) zwar meinen Entwicklerpfad drin , in der EXE wird aber die eingebundene Datei verwendet.

    Vielleicht funktioniert es ja auch wenn Du es im form.load genau so machst (nur Dateiname ohne Pfad ins Property eintragen)

    Grüße aus dem tief verschneiten (fast 2 cm) Norden

    Tom

    Freitag, 8. Januar 2021 14:46
  • wow 2cm Schnee... wie schön. Hier nur Kalt²-Nass³-Kalt²

    Da mindestens eine der EXE's mehrmals auf einem Computer im SysTray laufen, binde ich diese Icons erst zur Laufzeit ein. (z.Bsp. Exe#1 Rotes Telefon, Exe#2 blaues Telefon)

    Ich hab mehrmals mit unterschiedlichen Einstellungen und zwei Icons getestet. Hier das letzte Ergebnis aus der laufenden Exe

    ** Programm : C:\$ANW\BON20\FON21.EXE
    **            C:\@LIB21\__DEF_FORM_CLASS.VCT
    ** Setpath  : C:\$ANW\BON20;C:\$ANW\BON20\ICON;;C:\$ANW\BON20\TEMP\
    ** TmpFiles : C:\$ANW\BON20\TEMP
    ** Form.Icon: c:\$anw\bon20\icon\pic_fon02.ico
    ** Test 1 [FULLPATH('Pic_Fon01.ICO')]  : C:\@LIB21\ICON\PIC_FON01.ICO
    ** Test 2 [FULLPATH(JUSTFNAME(.Icon))] : C:\$ANW\BON20\ICON\PIC_FON02.ICO
    ** Test 3 [FULLPATH('Pic_Fon02.ICO')]  : C:\$ANW\BON20\ICON\PIC_FON02.ICO
    

    Wie man sieht, hat ein Bildchen (Fon01) einen total falschen Pfad. Das ist das Icon, welches in der Projektdatei eingetragen ist. Sobald ich versuche zur Laufzeit das "Fon01" (nur Dateiname) zu laden dann wird der falsche Pfad dazugedichtet. Das Icon "Fon01" ist in der Projektdatei eingetragen. Den Fox-eigenen Objekten ist das offensichtlich egal, aber ich verwende zusätzlich das SYSTRAY-Objekt, welches mir vor +10 Jahren mal empfohlen wurde. Dieses Object ist sehr strikt und greift voll auf auf diesen falschen Pfad zu.

    Freitag, 8. Januar 2021 19:28