Foro | | | | Stephan Sonneborn | ¡Hola, en el LEER32.DLL Yo testweise con el ResourceBuilder zwei Cuerdas eingefügt:
una vez en la lengua Alemán $0407 o. 1031:
y una vez en la lengua Inglés $0809 o. 2057:
El DLL Yo encima USEDLL eingebunden. Den Texto weise Yo así a:
DE_Text$ = RES("GetStrings", PRGDLL&, 100, $00407)
EN_Text$ = RES("GetStrings", PRGDLL&, 100, $00809)
Aber Yo bekomme el Fehlermeldung "String-Ressource No se ha encontrado: #100".
Was es falso? |
| | | XProfan X4Schöne Grüße aus Wittgenstein von Stephan Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 28.09.2020 ▲ |
| |
| | Georg Teles | Bueno Tag,
como sieht el Leer32.DLL con el Ressource Hacker de, etwa así ?
Dann müsstest Usted el 100 en Anführungszeichen conjunto, also
DE_Text$ = RES("GetStrings", PRGDLL&, "100", $00407)
EN_Text$ = RES("GetStrings", PRGDLL&, "100", $00809)
el 3.te Parámetro es entweder el Nummer des Stringes, beginnend con 1 oder el Name, also en el Fall "100"
Yo vermute, du müsstest "100" eingeben oder sólo 1 como ersten String en el Ressource, entonces debería lo ir.
Grüße |
| | | | |
| | Stephan Sonneborn | Yo bearbeite el DLL eigentlich siempre con el Resource Builder. Como sieht el entonces así de:
Wenn Yo el Bespiel de el Ayuda eingebe y luego el así erstellte Leer32.dll con el Resource Builder bearbeite, kommt una Fehlermeldung:
Mit el ResHacker siehts así de:
Gebe Yo entonces "7" como dritten Parámetro a, se ejecuta des Programa más, liest aber "6" como Valor o. Texto una, el así nada en el DLL auftaucht.
El XProfan-Fehlermeldung es de paso auch en "100" como dritten Parámetro dieselbe.
Bisher Yo siempre el komplette DLL (je Lingua una DLL) ausgetauscht y ExtString$() gearbeitet. Puesto que hay uno genau el Nummer en el DLL (also hier el 100) a. Aber desafortunadamente eben sin Unterscheidung en Lingua. |
| | | Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 28.09.2020 ▲ |
| |
| | | Hi,
Yo glaube como nadie Rautezeichen "#100" -
"Aktualisierte XProfan X4 - Hilfedatei (*.chm)" bajo "23 - Ressourcen":
(veces el Hilfedatei durchstöbern, qué Roland zwischenzeitlich así alles instalado ha...) |
| | | | |
| | Stephan Sonneborn | Leider hilft una "#100" auch no...
Hier veces el bisherige Quellcode:
'*******************************************************************************************************'
'* Programa: Vokabeltrainer *'
''******************************************************************************************************'
'* Versión: V0.01 *'
'* Stand: 28.09.2020 *'
'* Info: Vokabeltrainer *'
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Klassendefinition *'
'*******************************************************************************************************'
CLASS Vokabel = Wort$(21), \
Uebersetzung$(21), \
Genus$(2), \
Casus$(13), \
Numerus$(11), \
Verb1$(21), \
Verb22$(21), \
Verb3$(21), \
Lektion$(13)', \
' Anlegen&, \
' Importieren@, \
' Exportieren@, \
' Vorlesen@
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Variablendeklaration *'
'*******************************************************************************************************'
'*- Programa -*'
DECLARE PRGDLL&
DECLARE PrgName$
DECLARE x!, xx!, y!, yy!
'*******************************************************************************************************'
'*- Diálogo -*'
DECLARE DlgText&[5,30], DlgText$[5,30]
DECLARE DlgEdit&[5,30]
DECLARE ToolBar&, ToolbarIcons& , TabControl&[5]
'*******************************************************************************************************'
'*- Vobaln -*'
DECLARE Begriff#
DECLARE String Textos[]
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Variablendimensionierung *'
'*******************************************************************************************************'
DIM Begriff#, Vokabel
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Wertzuweisungen *'
'*******************************************************************************************************'
PRGDLL& = USEDLL("Vokabeln_32.DLL")
'PRGName$ = RES("GetStrings", PRGDLL&, "#100", $00407)
PRGName$ = EXTSTRING$(PRGDLL&, 100)
ToolbarIcons& = 0'Hier später Toolbaricon eintragen
'*******************************************************************************************************'
'*- Skalierung *'
xx! = 1.30
yy! = 1.15
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Prozedurname: MainWindow *'
''******************************************************************************************************'
'* Versión: V0.01 *'
'* Stand: 28.09.2020 *'
'* Info: Baut la ventana principal/-dialog en *'
'*******************************************************************************************************'
PROC MainWindow
'*******************************************************************************************************'
'*- Lokale Parámetro -*'
DECLARE Handle&
DECLARE Tab&[5]
DECLARE dx%, dy%
DECLARE i%
DECLARE Ende%
'*******************************************************************************************************'
'*- Wertzuweisungen -*'
x! = 1.00
y! = 1.00
dX% = 640
dy% = 480
Ende% = 0
'*******************************************************************************************************'
'*- Fensteraufbau -*'
Handle& = CREATE("Dialog", %HWND, PrgName$, 0,0,0,0)
SETWINDOWPOS Handle& = INT((%MAXX-dx%)/2)*x!,INT((%MAXY-dy%)/2)*y! - dx%*x!, dy%*y!; 0
Toolbar& = CREATE("Toolbar", Handle&, ToolbarIcons&, 0, 0, WIDTH(Handle&), 64*y!)
TabControl&[1] = CREATE("TabCtrl", Handle&, "Vokabel", 5*x!, HEIGHT(Toolbar&) + 5*x!, WIDTH(Handle&) - 2 * 5*x!, HEIGHT(Handle&) - Height(Toolbar&)-2* 5*x! )
FOR i%, 2,5,1
TabControl&[i%] = INSERTTAB(TabControl&[1], i%,"Tab "+ STR$(i%) )
ENDFOR
'*******************************************************************************************************'
'*- Ereignishandler -*'
WHILENOT Ende%
WAITINPUT
Ende%=1
ENDWHILE
'*******************************************************************************************************'
'*- Ventana schließen -*'
DESTROYWINDOW(Handle&)
'*******************************************************************************************************'
ENDPROC
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Hauptprogramm *'
''******************************************************************************************************'
CLS
Mainwindow
DISPOSE Begriff#
FREEDLL PRGDLL&
FIN
y el zugehörige DLL. |
| | | Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 28.09.2020 ▲ |
| |
| | H.Brill | Mach doch alles con Rolands eingebauten Características.
Declarar cadena Vokabeln[]
cls
var cadena DE[] = "Erster", "Zweiter", "Dritter"
var cadena EN[] = "First", "Second", "Third"
/*
res("addstrings", "E:/Vokabeln.dll", "Vokabeln", 1031, DE[])
res("addstrings", "E:/Vokabeln.dll", "Vokabeln", 2057, EN[])
*/
var handle hDLL = UseDLL("E:/Vokabeln.dll")
Vokabeln[] = res("GetStrings", hDLL, "Vokabeln", 1031)
WhileLoop 0, sizeOf(Vokabeln[]) - 1
Imprimir Vokabeln[&bucle]
EndWhile
Imprimir
Vokabeln[] = res("GetStrings", hDLL, "Vokabeln", 2057)
WhileLoop 0, sizeOf(Vokabeln[]) - 1
Imprimir Vokabeln[&bucle]
EndWhile
WaitInput
end
Das Auskommentierte Res("AddStrings",..) sería Yo como extra Programa hacer, el später eventuelle Los cambios el Ressource vornimmt. Oder mach lo como extra Programmpunkt. Dann kannst du en cualquier momento Vokabeln dazu hacer y necesidad no extra Ressourcen-Editor mehr.
Und con el Move-Características puede ser en efecto muy bien Textdateien, en denen el neuen Vokabeln posición, einlesen y en Listboxliste en una Array transferieren. Somit voluntad Resourcenänderungen muy komfortabel. |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 28.09.2020 ▲ |
| |
| | Georg Teles | Mir fällt en, dass
PRGName$ = RES("GetStrings", PRGDLL&, "#100", $00407)
una Array zurückgibt, pero yo bekomme lo auch no hin, lo auszulesen
So funktioniert lo, pero yo verstehe no por qué
Declarar PRGNameN$[]'-------------------------------------#
PRGNameN$[] = RES("GetStrings", PRGDLL&, "#7", $00407)'--#
PRGName$ = PRGNameN$[4]'---------------------------------#
ganzer Code
'*******************************************************************************************************'
'* Programa: Vokabeltrainer *'
''******************************************************************************************************'
'* Versión: V0.01 *'
'* Stand: 28.09.2020 *'
'* Info: Vokabeltrainer *'
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Klassendefinition *'
'*******************************************************************************************************'
CLASS Vokabel = Wort$(21), \
Uebersetzung$(21), \
Genus$(2), \
Casus$(13), \
Numerus$(11), \
Verb1$(21), \
Verb22$(21), \
Verb3$(21), \
Lektion$(13)', \
' Anlegen&, \
' Importieren@, \
' Exportieren@, \
' Vorlesen@
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Variablendeklaration *'
'*******************************************************************************************************'
'*- Programa -*'
DECLARE PRGDLL&
DECLARE PrgName$
DECLARE x!, xx!, y!, yy!
'*******************************************************************************************************'
'*- Diálogo -*'
DECLARE DlgText&[5,30], DlgText$[5,30]
DECLARE DlgEdit&[5,30]
DECLARE ToolBar&, ToolbarIcons& , TabControl&[5]
'*******************************************************************************************************'
'*- Vobaln -*'
DECLARE Begriff#
DECLARE String Textos[]
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Variablendimensionierung *'
'*******************************************************************************************************'
DIM Begriff#, Vokabel
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Wertzuweisungen *'
'*******************************************************************************************************'
PRGDLL& = USEDLL("Vokabeln_32.DLL")
'PRGName$ = RES("GetStrings", PRGDLL&, "#100", $00407)
'PRGName$ = EXTSTRING$(PRGDLL&, 100)
Declarar PRGNameN$[]'-------------------------------------#
PRGNameN$[] = RES("GetStrings", PRGDLL&, "#7", $00407)'--#
PRGName$ = PRGNameN$[4]'---------------------------------#
ToolbarIcons& = 0'Hier später Toolbaricon eintragen
'*******************************************************************************************************'
'*- Skalierung *'
xx! = 1.30
yy! = 1.15
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Prozedurname: MainWindow *'
''******************************************************************************************************'
'* Versión: V0.01 *'
'* Stand: 28.09.2020 *'
'* Info: Baut la ventana principal/-dialog en *'
'*******************************************************************************************************'
PROC MainWindow
'*******************************************************************************************************'
'*- Lokale Parámetro -*'
DECLARE Handle&
DECLARE Tab&[5]
DECLARE dx%, dy%
DECLARE i%
DECLARE Ende%
'*******************************************************************************************************'
'*- Wertzuweisungen -*'
x! = 1.00
y! = 1.00
dX% = 640
dy% = 480
Ende% = 0
'*******************************************************************************************************'
'*- Fensteraufbau -*'
Handle& = CREATE("Dialog", %HWND, PrgName$, 0,0,0,0)
SETWINDOWPOS Handle& = INT((%MAXX-dx%)/2)*x!,INT((%MAXY-dy%)/2)*y! - dx%*x!, dy%*y!; 0
Toolbar& = CREATE("Toolbar", Handle&, ToolbarIcons&, 0, 0, WIDTH(Handle&), 64*y!)
TabControl&[1] = CREATE("TabCtrl", Handle&, "Vokabel", 5*x!, HEIGHT(Toolbar&) + 5*x!, WIDTH(Handle&) - 2 * 5*x!, HEIGHT(Handle&) - Height(Toolbar&)-2* 5*x! )
FOR i%, 2,5,1
TabControl&[i%] = INSERTTAB(TabControl&[1], i%,"Tab "+ STR$(i%) )
ENDFOR
'*******************************************************************************************************'
'*- Ereignishandler -*'
WHILENOT Ende%
WAITINPUT
Ende%=1
ENDWHILE
'*******************************************************************************************************'
'*- Ventana schließen -*'
DESTROYWINDOW(Handle&)
'*******************************************************************************************************'
ENDPROC
'*******************************************************************************************************'
'*******************************************************************************************************'
'* Hauptprogramm *'
''******************************************************************************************************'
CLS
Mainwindow
DISPOSE Begriff#
FREEDLL PRGDLL&
FIN
Yo sería gern una Erklärung esta haben
Grüße
EDIT: Como el "Deutsche Texte" en Línea 4 es s. ResHacker, podría el Nummer 4 en el Array qué así zutun haben ? |
| | | | |
| | Stephan Sonneborn | H.Brill (28.09.2020)
Mach doch alles con Rolands eingebauten Características.
Würde Me gusta hacer, pero yo möchte nada el Vokabeln en uno DLL sichern, pero sólo el Textos el Programmoberfläche. Eigentlich brauche Yo el no para una Vokabelprogramm, como kann el Oberfläche sí ruhig en Alemán bleiben. Aber Yo en el Arbeit una Programa entwickelt, dass en unterschiedlichen Idiomas se ejecuta. Und como gehe Yo siempre todavía el umständlichen Weg con el individual DLL je Lingua y el Auslesen mittels ExtString$(). Yo quería simplemente veces el neuen Möglichkeiten testen.
Dazu debería Yo aber ya wissen, welchen String Yo auslese. Klar, Yo podría ahora para cada Texto una Ressourcenbereich (also el 3. Parámetro en el RES("GetStrings" - Función) festlegen. Aber Yo pensamiento, lo va auch einfacher, z.B. todos Textos en Ventana 1, todos Textos en Ventana 2, todos Hilfetexte a Ventana 1, todos Hilfetexte a Ventana 2 u.s.w. jeweils en una Resourcenbereich ablegen. Damit wäre el DLL viel übersichtlicher, insbesondere entonces, si uno el Texto-Nummern entonces frei festlegen kann, z.B. 100-199 para el Fenstertexte, 200-299 para el zugehörigen Hilfetexte u.s.w.
Yo habe me dafür en Excel una tabla erstellt: en Spalte A el Nummer, en Spalte B una Komma, en Spalte C el Alemán Texto, en D entonces el Englische. In el Spalten E y F se entonces lo el Eintrag para el DLL generiert: Nummer & Komma & Texto en el jeweiligen Lingua. Danach kann Yo entonces en Excel simplemente el todo Spalte kopieren y en el Resource Builder einfügen. Fertig! |
| | | XProfan X4Schöne Grüße aus Wittgenstein von Stephan Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 28.09.2020 ▲ |
| |
| | Stephan Sonneborn | Georg Teles (28.09.2020)
Mir fällt en, dass PRGName$ = RES("GetStrings", PRGDLL&, "#100", $00407) una Array zurückgibt, pero yo bekomme lo auch no hin, lo auszulesen
Georg Teles (28.09.2020)
So funktioniert lo, pero yo verstehe no por qué Declarar PRGNameN$ '-------------------------------------# PRGNameN$ = RES("GetStrings", PRGDLL&, "#7", $00407) '--# PRGName$ = PRGNameN$ '---------------------------------#
Tuve auch ya una variablen Array probiert con "#7" como 3. Parámetro. Weil el ResHacker como eben una 7 schreibt. ¿Por qué? Yo weiß no...
Das macht auch sólo el ResHacker. Der Resource Builder macht el no. Dafür kann el auch no con Texten como 3. Parámetro (z.B. el "MONAT" en Rolands Ejemplo) leben.
Georg Teles (28.09.2020)
EDIT: Como el "Deutsche Texte" en Línea 4 es s. ResHacker, podría el Nummer 4 en el Array qué así zutun haben ?
En me erhalte Yo como Rückgabewert para el PRGName$ valor "8", zumindest se como el Fenstertitel adecuado... Für PRGNameN$ de paso auch...
|
| | | XProfan X4Schöne Grüße aus Wittgenstein von Stephan Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 28.09.2020 ▲ |
| |
| | E.T. | Yo nutze para algo como sin Problemas ExtString$ , z.B. así:
SetText Status&, 0, @ExtString$(Prg_Dll& ,40)
oder
Checker&[22] = @Crear("Radio Button",Static_1&[0],@ExtString$(Prg_Dll& ,24),570,305,200,20)
Der Parámetro es entonces genau el Zahl, welche z.B. en el ResHacker genau antes el Texteintrag es. Im Bsp. más oben also 1584 para "Januar" , 1585 para "Februar" usw... |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 28.09.2020 ▲ |
| |
| | Stephan Sonneborn | E.T. (28.09.2020)
Yo nutze para algo como sin Problemas ExtString$ , z.B. así: SetText Status&, 0, @ExtString$(Prg_Dll& ,40)
oder
Checker&[22] = @Crear("Radio Button",Static_1&[0],@ExtString$(Prg_Dll& ,24),570,305,200,20)
Der Parámetro es entonces genau el Zahl, welche z.B. en el ResHacker genau antes el Texteintrag es. Im Bsp. más oben also 1584 para "Januar" , 1585 para "Februar" usw...
So mache Yo el normalerweise auch. Aber así puede ser no con unterschiedlichen Idiomas trabajo. Oder uno muss con unterschiedlichen Nummernkreisen trabajo, Yo no möchte... |
| | | XProfan X4Schöne Grüße aus Wittgenstein von Stephan Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 29.09.2020 ▲ |
| |
| | E.T. | Versch. Idiomas para el Programmoberfläche packe Yo siempre en un "verkappte" .ini-Expediente (con "falscher" Erweiterung). Pro Lingua una Expediente. Lässt se m.M. después de einfacher bearbeiten o. erweitern, como como cada veces el .dll a bearbeiten. |
| | | XProfan 11Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 29.09.2020 ▲ |
| |
|
RespuestaThemeninformationenDieses Thema ha 5 subscriber: |