Voor een Delphi projectje maak ik gebruik van een .ini bestand waar wat language instellingen in staan. Door het selecteren van een taal in het menu worden de Captions van verschillende Form elementen (Labels, Groupboxes, etc) aangepast. Zolang ik de code hiervoor gewoon in mijn mainunit hou is er niks aan de hand en werkt het perfect.
Echter, ik wil een aparte Unit voor alle I/O code dus ook om de taal instellingen te wijzigen.
Ik dacht, gewoon een procedure in de nieuwe Unit aanmaken en deze procedure in mijn mainunit aanroepen met een pointer naar mijn Form. Maar helaas dat werkt dus niet.
Even wat code ter verduidelijking:
Uit mainunit:
Uit IO.pas:
Errors:
[Error] IO.pas(19): Undeclared identifier: 'GroupBox1'
[Error] IO.pas(22): Undeclared identifier: 'Label1'
Maak vast en zeker ergens een achterlijke fout, maar zie het zelf niet.
Echter, ik wil een aparte Unit voor alle I/O code dus ook om de taal instellingen te wijzigen.
Ik dacht, gewoon een procedure in de nieuwe Unit aanmaken en deze procedure in mijn mainunit aanroepen met een pointer naar mijn Form. Maar helaas dat werkt dus niet.
Even wat code ter verduidelijking:
Uit mainunit:
code:
1
| LoadLanguageFile(Form1: TForm); |
Uit IO.pas:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| unit IO; interface uses inifiles, Forms, Classes, SysUtils, StdCtrls; implementation procedure LoadLanguageFile(Form1: TForm); var IniFile : TIniFile; LastLang : String; begin IniFile := TIniFile.Create(extractfilepath (application.ExeName) + 'language.ini'); // Get the language LastLang := IniFile.ReadString('Language','Last','NL'); Form1.GroupBox1.Caption := IniFile.ReadString(LastLang,'Box1','Oplosser'); // Set Labels, Radiobuttons, Checkboxes and Buttons to correct language Form1.Label1.Caption := IniFile.ReadString(LastLang,'Label1','Taal bestand niet gevonden.'); IniFile.Free; end; end. |
Errors:
[Error] IO.pas(19): Undeclared identifier: 'GroupBox1'
[Error] IO.pas(22): Undeclared identifier: 'Label1'
Maak vast en zeker ergens een achterlijke fout, maar zie het zelf niet.
[ Voor 0% gewijzigd door een moderator op 30-10-2007 22:19 . Reden: code tags aangepast. sytax highlighting ftw \0/ ]