LanguageRequester
Verfasst: 05.04.2007 12:24
Hallo Leute,
ich hab einen kleinen LanguageRequester geschrieben, der aus einer Datei eine Liste mit Sprachen lädt. Die Liste kann natürlich individuell bearbeitet werden und die Funktion gibt einen Long Wert zurück der als Sprachencode angesehen wird und ebenfalls in der Liste eingetragen wird.
Vielleicht kanns jemand brauchen
Scarabol
hier der Code
hier die "language.lang" für das Beispiel
ich hab einen kleinen LanguageRequester geschrieben, der aus einer Datei eine Liste mit Sprachen lädt. Die Liste kann natürlich individuell bearbeitet werden und die Funktion gibt einen Long Wert zurück der als Sprachencode angesehen wird und ebenfalls in der Liste eingetragen wird.
Vielleicht kanns jemand brauchen
Scarabol
hier der Code
Code: Alles auswählen
Procedure.l LanguageRequester(LanguageFile$, DefaultLangCode)
Protected LangWin.l
Protected Text.l
Protected List.l
Protected But.l
Protected Event.l
Protected EventGadget.l
Structure Lang
name.s
code.l
title.s
text.s
EndStructure
NewList Lang.Lang()
If OpenPreferences(LanguageFile$)
ExaminePreferenceGroups()
While NextPreferenceGroup()
AddElement(Lang())
Lang()\Name = PreferenceGroupName()
Lang()\Code = ReadPreferenceLong("code", -1)
Lang()\title = ReadPreferenceString("title", "Select language")
Lang()\text = ReadPreferenceString("text", "Select your language")
Wend
EndIf
LangWin = OpenWindow(#PB_Any, 0, 0, 300, 120, "Language Requester", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateGadgetList(WindowID(LangWin))
Text = TextGadget(#PB_Any, 10, 10, 280, 20, "Select your language:")
List = ComboBoxGadget(#PB_Any, 30, 35, 240, 300)
Frame3DGadget(#PB_Any, 104, 74, 92, 27, "", #PB_Frame3D_Flat)
But = ButtonGadget(#PB_Any, 105, 75, 90, 25, "Ok")
ForEach Lang()
AddGadgetItem(List, -1, Lang()\Name)
If Lang()\Code = DefaultLangCode
SetWindowTitle(LangWin, Lang()\Title)
SetGadgetText(Text, Lang()\Text)
SetGadgetState(List, ListIndex(Lang()))
EndIf
Next
SelectElement(Lang(), GetGadgetState(List))
AddKeyboardShortcut(LangWin, #PB_Shortcut_Return, 1)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_CloseWindow
CloseWindow(LangWin)
ProcedureReturn 0
ElseIf Event = #PB_Event_Gadget
EventGadget = EventGadget()
If EventGadget = List
SelectElement(Lang(), GetGadgetState(List))
SetWindowTitle(LangWin, Lang()\Title)
SetGadgetText(Text, Lang()\Text)
SetGadgetState(List, ListIndex(Lang()))
ElseIf EventGadget = But
CloseWindow(LangWin)
ProcedureReturn Lang()\code
EndIf
ElseIf Event = #PB_Event_Menu And EventMenu() = 1
CloseWindow(LangWin)
ProcedureReturn Lang()\code
EndIf
ForEver
EndProcedure
Debug LanguageRequester("language.lang", 10)
Code: Alles auswählen
[Deutsch]
Code = 10
Title = Sprachauswahl
Text = Wählen Sie ihre Sprache
[English]
Code = 11
Title = Select language
Text = Select your language
[Fracais]
Code = 12
Title = test
Text = test