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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
|
<!--
<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd">
-->
<sect1 id="designing-forms">
<title
>Design formularer</title>
<sect2 id="most-important-terms">
<title
>Den vigtigste terminologi</title>
<glosslist>
<glossentry id="gloss-form">
<glossterm
>Formular</glossterm>
<glossdef>
<para
>Et vindue som sørger for at det er enkelt at indtaste og præsentere data på computerskærmen. </para>
</glossdef>
</glossentry>
<glossentry id="gloss-form-data-source">
<glossterm
>Formularens datakilde</glossterm>
<glossdef>
<para
>Databasetabel eller forespørgsel som sørger for data som vises i formularen. Datakilden behøves fordi selve formularerne kun er <emphasis
>værktøjer</emphasis
> til at vise og indtaste data, mens tabeller og forespørgsler er datakilder. Nye, tomme, formularer har ingen tildelt datakilde, så de viser ingen data fra databasen hvis du ikke tildeler dem en datakilde. </para>
</glossdef>
</glossentry>
<glossentry id="gloss-form-field">
<glossterm
>Formularfelt</glossterm>
<glossdef>
<para
>Direkte ækvivalent til en søjle i en tabel eller forespørgsel. Felter til at vise tekst og tal er dem som oftest bruges. At indtaste en ny værdi eller ændre en eksisterende værdi i et sådant felt forårsager en ændring i den bundne tabel eller forespørgselssøjlen (efter ændringen er accepteret). </para>
</glossdef>
</glossentry>
<glossentry id="gloss-form-design">
<glossterm
>Formulardesign</glossterm>
<glossdef>
<para
>Opgaver du udfører for at definere udseendet og funktionerne i formularen. For at gøre dette skal du sørge for en <glossterm linkend="gloss-form-data-source"
>datakilde</glossterm
>, indsætte <glossterm linkend="gloss-form-field"
>formularfelter</glossterm
> af diverse typer og placere dem på passende steder. </para>
</glossdef>
</glossentry>
<glossentry id="gloss-form-widget">
<glossterm
>Grafisk formularkontrol</glossterm>
<glossdef>
<para
>Formularens element. Hovedtyperne af grafiske kontroller er:</para>
<itemizedlist>
<listitem>
<para
>Grafiske kontroller som viser information, f.eks. et tekstfelt eller et billedfelt. Hver kontrol af denne type kan <emphasis
>forbindes</emphasis
> til en datakildes felt (en tabel eller forespørgselssøjle). Derfor kaldes sådanne grafiske kontroller for <glossterm linkend="gloss-form-field"
>formularfelter</glossterm
>. </para>
</listitem>
<listitem>
<para
>Grafiske kontroller som kan udføre en bestemt angiven handling, f.eks. en trykknap som kan lukke den nuværende formular. I andre programmer kaldes denne kontroltype sommetider <firstterm
>formularkontrol</firstterm
> eftersom den kan udføre fordefinerede handlinger for at <emphasis
>kontrollere</emphasis
> databasens programopførsel. </para>
</listitem>
<listitem>
<para
>Øvrige grafiske kontroller til at berige formularens udseende, f.eks. en <quote
>linjekontrol</quote
> som visuelt kan adskille to områder i formularen. </para>
</listitem>
</itemizedlist>
</glossdef>
</glossentry>
<glossentry id="gloss-container-widget">
<glossterm
>Omgivende grafisk kontrol</glossterm>
<glossdef>
<para
>En grafisk kontrol som kan <emphasis
>indeholde</emphasis
> andre kontroller inde i sit område. For eksempel er rammekontroller og fanebladskontroller omgivende kontroller. Selve formularens flade er også en omgivende kontrol. En kommandoknap kan ikke kaldes en omgivende kontrol eftersom det ikke er muligt at indsætte en kontrol inde i den. I mere komplicerede tilfælde, kan omgivende kontroller indsættes i en omgivende kontrol, altså er et hierarki muligt. </para>
<!--
<screenshot>
<screeninfo
>Example container widgets</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_01_widget_containers.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Example container widgets</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
</glossdef>
</glossentry>
</glosslist>
</sect2>
<sect2 id="forms-versus-tables">
<title
>Formularer eller tabeller</title>
<para
>I kapitel 5.2 fik du lært hvordan data direkte indtastes i tabeller med deres datavisning. I mange tilfælde er formularer dog mere passende til at indtaste data: </para>
<itemizedlist>
<listitem>
<para
>En tabel kan indeholde for mange søjler til at vise på skærmen. En formular kan vise sådan data ved brug af flere rækker. </para>
</listitem>
<listitem>
<para
>En formular tillader at <glossterm linkend="gloss-form-field"
>felterne</glossterm
> med data deles op visuelt i logiske grupper, og øger på den måde læsbarheden. Etiketter med yderligere information kan indsættes for at give brugere flere vink om hvordan formularen skal bruges, eller hvad et givet <glossterm linkend="gloss-form-field"
>felt</glossterm
> med data betyder. </para>
</listitem>
<listitem>
<para
>Kommandoknapper kan bruges i formularer for ofte bruge kommandoer, så brugere kan bruge formularer på lignende måde som fristående programmer de kender til. </para>
</listitem>
<listitem>
<para
>I datavisningen som viser flere rækker med data er <glossterm linkend="gloss-form-field"
>tekstfelter</glossterm
> eller billeder ligeså let som i formularer. </para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title
>Arbejde med formulardesign</title>
<para
>Som ved konstruktion af en tabel eller en forespørgsel, har du mulighed for at bruge <interface
>datavisning</interface
> og <interface
>designvisning</interface
>. Formulardesign udføres i <interface
>designvisningen</interface
>. Vi kalder ofte vinduet til formulardesign for <interface
>Formularvinduet</interface
>. </para>
<procedure>
<step>
<para
>For at oprette en ny tom formular, vælges <menuchoice
><guimenu
>Indsæt</guimenu
> <guimenuitem
> Formular</guimenuitem
></menuchoice
> i menulinjen. Som et alternativ kan du bruge kommandoen <menuchoice
><guimenuitem
> Ny formular</guimenuitem
></menuchoice
> i dropned-feltet på værktøjslinjen i <interface
>projektnavigeringen</interface
> eller <menuchoice
><guimenuitem
>Opret objekt: Formular</guimenuitem
></menuchoice
> i den sammenhængsafhængige menu. </para>
</step>
<step>
<para
>En ny ramme vises, og du kan ændre formularens størrelse ved at flytte kanterne. Formularen dækkes af et gitter som forenkler nøjagtig placering af kontrollerne. </para>
<!--<screenshot>
<screeninfo
>A window with design of a new form</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_03_new_empty_form.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>A window with design of a new form</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
</step>
</procedure>
<para
>Ligesom for tabeldesign, sørger <interface
>formularvinduet</interface
> for et <interface
>egenskabsfelt</interface
>. For at spare plads på skærmen har feltet tre faneblade som hører sammen med den formular som for øjeblikket er valgt: </para>
<variablelist>
<varlistentry>
<term
>Fanebladet <guilabel
>Egenskaber</guilabel
></term>
<listitem>
<para
>Indeholder en liste med egenskaber for den grafiske kontrol som for øjeblikket er markeret.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Fanebladet <guilabel
>Datakilde</guilabel
> </term>
<listitem>
<para
>Indeholder egenskaber som specifikt har at gøre med <glossterm linkend="gloss-form-data-source"
>datakilden</glossterm
> for den grafiske kontrol som for øjeblikket er markeret, eller for selve formularen. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Fanebladet <guilabel
>Grafiske kontroller</guilabel
> </term>
<listitem>
<para
>Indeholder et hierarki af alle grafiske kontroller i formularen. Listen forenklar opslag af kontroller med navn, og navigering mellem dem. </para>
</listitem>
</varlistentry>
</variablelist>
<para
>Information om navnet på den grafiske kontrol som for øjeblikket er markeret vises på det første og andet faneblad. </para>
<para
>Yderligere værktøjslinjer er også tilgængelige:</para>
<itemizedlist>
<listitem>
<para
>Værktøjslinjen <guilabel
>Grafiske kontroller</guilabel
> bruges til at indsætte nye kontroller i formularen. </para>
</listitem>
<listitem>
<para
>Værktøjslinjen <guilabel
>Formatér</guilabel
> bruges til at formatere formularens elementer (f.eks. justere kontrollernes størrelse og gruppering). Formateringskommandoer er også tilgængelige i menuen <guimenu
>Formatér</guimenu
>. Mere om disse kommandoer findes i <xref linkend="formatmenu"/>. </para>
</listitem>
</itemizedlist>
</sect2>
<sect2 id="using-the-widgets-tab">
<title
>Brug af fanebladet <guilabel
>Grafiske kontroller</guilabel
></title>
<para
>Fanebladet <guilabel
>Grafiske kontroller</guilabel
> i <interface
>egenskabsfeltet</interface
> sørger for en liste med formularens kontroller og deres hierarki. Hver kontrol vises inde i hierarkiet sammen med andre kontroller på samme niveau (med samme overliggende omgivende kontrol). Delkontroller (ikke i en omgivende kontrol) vises med indrykkede navne. </para>
<!--<para
>In the picture below, the form (a container) contains two widgets:
<guilabel
>groupBox2</guilabel
> and <guibutton
>options</guibutton
> command button. In
turn, <guilabel
>groupBox2</guilabel
> (being a container itself) contains two check box
widgets.
</para>
<screenshot>
<screeninfo
>Using the <quote
>Widgets</quote
> tab</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_04_widgets_tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Using the <quote
>Widgets</quote
> tab</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
<para
>Hver kontrol vises med sit navn og sin type. Typen vises også med en ikon, den samme som vises på værktøjslinjen som bruges når formularen designes. </para>
<note>
<itemizedlist>
<listitem
>
<para
>At ændre nuværende markering i listen forårsager passende markering i formularen som designes. Dette muliggør enklere opslag af kontroller ifølge navn og enklere navigation. Det er for eksempel muligt at markere en kontrol ifølge navn, og derefter skifte til fanebladet <guilabel
>Egenskaber</guilabel
> for at ændre kontrollens egenskaber.</para>
</listitem>
<listitem>
<para
>Ved at holde tasten <keycap
>Ctrl</keycap
> nede mens et objekt i kontrollisten markeres, er det muligt at markere flere kontroller samtidigt. At holde <keycap
>Shift</keycap
> nede gør det muligt at markere en hel liste med kontroller.</para>
</listitem>
<!--<listitem>
<para>
When widget is inserted, it is recommended to give it a reasonable name.
For example, <guilabel
>green</guilabel
> check box widget has been named specifically
for its meaning, using the <guilabel
>Properties</guilabel
> tab
(<guilabel
>Name</guilabel
> property has been used to do that). Such change
can make it easier to find a widget within the list.
</para>
<screenshot>
<screeninfo
>Naming the widget as <guilabel
>green</guilabel
></screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_04_renaming_widgets.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Naming the widget as <guilabel
>green</guilabel
></phrase>
</textobject>
</mediaobject>
</screenshot>
</listitem
>-->
</itemizedlist>
</note>
<para
>At give grafiske kontroller rimelige navn kan være nyttigt, men kræves ikke. Bemærk at den grafiske kontrols navn er en egenskab som ikke er synlig for brugeren af en formular. Brugere ser kun den grafiske kontrols tekst, som der sørges for ved egenskaben <varname
>Tekst</varname
> eller lignende. </para>
</sect2>
<sect2 id="inserting-widgets-text-fields">
<title
>Indsætte grafiske kontroller - tekstfelter</title>
<para
>Lad os oprette et formular som sørger for information om personer, dvs. en formular sammenkoblet med tabellen <literal
>personer</literal
>. </para>
<para
>Hvis formularen som designes skal vise data som hentes fra databasen, skal du placere passende <glossterm linkend="gloss-form-field"
>felter</glossterm
> på det. Brug knapperne på værktøjslinjen <guilabel
>Grafiske kontroller</guilabel
> for at gøre det. Hver knap svarer til en enkelt kontroltype. </para>
<procedure>
<step>
<para
>Klik på knappen <guibutton
>Tekstfelt</guibutton
> på værktøjslinjen <guilabel
>Grafiske kontroller</guilabel
>. </para>
</step>
<step>
<para
>Klik på formularens flade med <mousebutton
>venstre</mousebutton
> museknap. Et nyt tekstfelt placeres på punktet hvor du klikkede. Inden du slipper knappen kan du trække musen for at angive den ønskede størrelse af kontrollen. </para>
</step>
<step>
<para
>Hvis det behøves, flyttes den indsatte kontrol ved at trække og slippe den på det ønskede sted. Du kan ændre størrelse på kontrollen bagefter ved at trække et af de små felter som ses nær dets hjørne. Hvis du markerer en anden kontrol eller formularens flade, så forsvinder disse felter. </para>
</step>
<step>
<para
>Klik på værktøjslinjens knap <guibutton
>Tekstfelt</guibutton
> igen og klik på formularens flade for at indsætte yderligere en grafisk kontrol. Gentag handlingen igen indtil du har tre tekstfelter indsatte i formularen. For enkelhedens skyld begrænser vi os til tre <glossterm linkend="gloss-form-field"
>datafelter</glossterm
>. </para>
</step>
</procedure>
<note>
<itemizedlist>
<listitem>
<para
>Der er en sammenhængsafhængig menu tilgængelig i formularens designtilstand, som aktiveres ved at klikke med <mousebutton
>højre</mousebutton
> museknap på den ønskede kontrol eller på formularens flade. Menuen tilbyder tilvalg såsom <guimenuitem
>Klip</guimenuitem
>, <guimenuitem
>Kopiér</guimenuitem
>, <guimenuitem
>Indsæt</guimenuitem
>, <guimenuitem
>Slet</guimenuitem
> og andre, kompleksere. Mange af valgmulighederne tilbydes også via menulinjen, oftest i menuen <guimenuitem
>Redigér</guimenuitem
>. Genvejstaster er også tilgængelige for disse kommandoer. Visse tilvalg er kun tilgængelige for bestemte kontroltyper. </para>
</listitem>
<listitem>
<para
>Kommandoerne <guimenuitem
> Klip</guimenuitem
>, <guimenuitem
> Kopiér</guimenuitem
> og <guimenuitem
> Indsæt</guimenuitem
> gør det muligt at flytte eller kopiere grafiske kontroller mellem formularer, eller til og med mellem separate databaseprojekter. </para>
</listitem>
<listitem>
<para
>At holde tasten <keycap
>Ctrl</keycap
> nede mens du klikker på en kontrol gør det muligt at markere flere kontroller. </para>
</listitem>
<listitem>
<para
>I stedet for at bruge valgmulighederne <guimenuitem
> Kopiér</guimenuitem
> og <guimenuitem
> Indsæt</guimenuitem
> for at duplikere en kontrol i samme formular kan du holde tasten <keycap
>Ctrl</keycap
> nede mens du flytter kontrollen. Når tasten <keycap
>Ctrl</keycap
> slippes, flyttes kontrollen som trækkes ikke, men kopieres til det nye sted. </para>
</listitem>
</itemizedlist>
</note>
</sect2>
<sect2 id="assigning-data-sources">
<title
>Tildeling af datakilder</title>
<para
><glossterm linkend="gloss-form-field"
>Felter</glossterm
> du indsatte har ingen <emphasis
>datakilde</emphasis
> tildelt endnu, så de kan ikke vise information fra databasen. For at tildele en datakilde, brug fanebladet <guilabel
>Datakilde</guilabel
> i <interface
>egenskabsfeltet</interface
>. </para>
<para
>Det aller første skridt er at angive <glossterm linkend="gloss-form-data-source"
>formularens datakilde</glossterm
>, dvs. et sted som de viste data hentes fra. Som nævnt ovenfor, skal du bruge tabellen <literal
>personer</literal
> som <glossterm linkend="gloss-form-data-source"
>datakilde</glossterm
> i den nye formular. </para>
<procedure>
<step>
<para
>Klik på formularens flade, eftersom du skal ændre dens egenskaber.</para>
</step>
<step>
<para
>Skift til fanebladet <guilabel
>Datakilde</guilabel
> og skriv tabelnavnet <literal
>personer</literal
> ind i dropned-feltet <guilabel
>Formularens datakilde</guilabel
>. Alternativt kan du vælge navnet i dropned-feltets liste. </para>
<!--<screenshot>
<screeninfo
>Entering <glossterm linkend="gloss-form-data-source"
>form's data source</glossterm
> name</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_05_entering_form_data_source.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Entering <glossterm linkend="gloss-form-data-source"
>form's data source</glossterm
> name</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
</step>
</procedure>
<para
>Du har tildelt <glossterm linkend="gloss-form-data-source"
>formularens datakilde</glossterm
>. Nu skal du angive de grafiske kontrollers datakilder. </para>
<procedure>
<step>
<para
>Klik på den første tekstfeltkontrol længst oppe i formularen.</para>
</step>
<step>
<para
>Indtast feltnavnet <varname
>navn</varname
> i egenskabsfeltets faneblad <guilabel
>Datakilde</guilabel
> i dropned-feltet <emphasis
>Komponentens datakilde</emphasis
>. Alternativt kan du vælge navnet i dropned-feltets liste. </para>
<!--<screenshot>
<screeninfo
>Entering widget's data source name</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_05_entering_text_field_data_source.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Entering widget's data source name</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
</step>
<step>
<para
>Klik på næste tekstfeltkontrol og skriv <varname
>efternavn</varname
> ind som datakilde.</para>
</step>
<step>
<para
>Indtast datakilder for <glossterm linkend="gloss-form-field"
>tekstfelterne</glossterm
> <varname
>gade</varname
>, <varname
>nummer</varname
> og <varname
>poststed</varname
> på lignende måde. </para>
</step>
</procedure>
<para
>Nu kan du gemme formularens design (det kræves ikke for at teste formularen i brug). Klik på værktøjslinjens knap <guilabel
>Gem objektændringer</guilabel
> for at gemme, eller brug menupunktet <menuchoice
><shortcut
><keycombo action="simul"
><keycap
>Ctrl</keycap
><keycap
>S</keycap
></keycombo
></shortcut
> <guimenu
>Fil</guimenu
> <guimenuitem
> Gem</guimenuitem
></menuchoice
>. Når du gemmer bliver du bedt om at angive formularens navn. Indtast <literal
>Personer</literal
> som overskrift og klik på knappen <guibutton
>O.k.</guibutton
>. Formularens navn udfyldes automatisk. </para>
<para
>Dette er det rigtige øjeblik at teste formularen. Klik på værktøjslinjens knap <guibutton
>Skift til datavisning</guibutton
>. Hvis du ikke lavede nogen fejl da du indtastede datakilderne, skulle du se <glossterm linkend="gloss-form-field"
>formularens felter</glossterm
> udfyldte med data fra tabellen <literal
>personer</literal
>. </para>
<!--<screenshot>
<screeninfo
>The <literal
>Persons</literal
> form in data view after inserting text fields and assigning data sources</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_06_form_with_text_fields.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>The <literal
>Persons</literal
> form in data view after inserting text fields and assigning data sources</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
<note>
<itemizedlist>
<listitem>
<para
>Hvis du vil fjerne tildelingen af kontrollens <glossterm linkend="gloss-form-data-source"
>datakilde</glossterm
> for en formularkontrol, kan du bruge knappen <guibutton
>Ryd datakilde</guibutton
> udfor dropned-feltet <guilabel
>Komponentens datakilde</guilabel
>. På samme måde kan du bruge knappen <guibutton
>Ryd datakilde</guibutton
> udfor dropned-feltet <guilabel
>Formularens datakilde</guilabel
>. </para>
</listitem>
<listitem>
<para
>Brug knappen <guibutton
>Gå til markeret datakilde</guibutton
> for at vælge en passende tabel eller forespørgsel i <interface
>projektnavigeringen</interface
>, så du hurtigt kan åbne en tabel eller forespørgsel som er formularens <glossterm linkend="gloss-form-data-source"
>datakilde</glossterm
>. </para>
</listitem>
</itemizedlist>
<!-- TODO: mention about creating Auto Fields by using drag & drop -->
</note>
</sect2>
<sect2 id="inserting-text-labels">
<title
>Indsæt tekstetiketter</title>
<para
>For at gøre det enklere for formularens brugere at identificere betydningen af hver feltkontrol bør de have tilhørende tekstetiketter med passende overskrifter. For at oprette tekstetiketter bruges kontrollen <literal
>Etiket</literal
>. </para>
<para
>Indsæt tre tekstetiketkontroller i formularen, og placér dem til venstre for tekstfelterne (eller til højre hvis operativsystemet bruger højre-til-venstre layout). Når du indsætter en ny etiket vises en tekstmarkør på stedet hvor du kan indtaste den ønskede overskrift. Indtast i rækkefølge: <literal
>Navn</literal
>, <literal
>Efternavn</literal
> og <literal
>Gade</literal
>. Tilføj desuden endnu en etiket længst oppe i formularen som viser formularens navn, dvs. <literal
>Personer</literal
>. Forstør etiketten og øg tegnstørrelsen ved at bruge menupunktet <menuchoice
><guimenu
>Formatér</guimenu
> <guimenuitem
>Skrifttype...</guimenuitem
></menuchoice
>. </para>
<!--<screenshot>
<screeninfo
>Ready to use form after adding text labels</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_06_form_with_labels.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Ready to use form after adding text labels</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
</sect2>
<sect2 id="actions">
<title
>Handlinger</title>
<para
>En <literal
>handling</literal
> er en enkelt isoleret aktivitet i programmet, tilgængelig for brugeren at udføre. Den kan også udføres automatisk som en reaktion på en given begivenhed (f.eks. efter en formular er åbnet). </para>
<sect3 id="assigning-actions-to-form-buttons">
<title
>Tildel handlinger til formularknapper</title>
<para
>Mange handlinger kan tildeles til formularknapper. Den tildelte handling udføres når knappen klikkes. </para>
<para
>For at tildele en handling:</para>
<procedure>
<step>
<para
>Skift til formularens <interface
>designvisning</interface
> hvis du ikke allerede har gjort det.</para>
</step>
<step>
<para
>Markér den eksisterende knapkontrol ved at klikke på den eller tilføj en ny knapkontrol til formularen. Hvis du indsætter en ny knap, skriv dens overskrift ind og tryk på tasten <keycombo action="press"
><keycap
>Enter</keycap
></keycombo
>. </para>
</step>
<step>
<para
>Klik på knappens grafiske kontrol med <mousebutton
>højre</mousebutton
> museknap for at vise den sammenhængsafhængige menu. </para>
</step>
<step>
<para
>Vælg tilvalget <guimenuitem
>Tildel handling...</guimenuitem
> i den sammenhængsafhængige menu. </para>
</step>
<step>
<para
>Dialogen <guilabel
>Tildel handling til kommandoknap</guilabel
> vises med en liste over tilgængelige handlinger. En af handlingerne er markeret hvis kontrollen allerede har en tildelt handling. Ellers har dropned-feltet <guilabel
>Handlingstype</guilabel
> værdien <guilabel
>Ingen handling</guilabel
>. </para>
</step>
<step>
<para
>Vælg punktet <guilabel
>Program</guilabel
> i dropned-feltet <guilabel
>Handlingstype</guilabel
>. Tilgængelige handlinger for hele programmet vises. </para>
</step>
<step>
<para
>Vælg en af handlingerne i listen (f.eks. <guilabel
>Fjern række</guilabel
>).</para>
</step>
<step>
<para
>Klik på knappen <guibutton
>O.k.</guibutton
> eller tryk på tasten <keycombo action="press"
><keycap
>Enter</keycap
></keycombo
> for at acceptere dit valg. </para>
</step>
</procedure>
<!--<screenshot>
<screeninfo
>Assigning <guilabel
>Delete Row</guilabel
> action to a form's button</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_07_assigning_action_to_button.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Assigning <guilabel
>Delete Row</guilabel
> action to a form's button</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
<para
>Efter at have skiftet til formularens <emphasis
>datavisning</emphasis
> kan du teste om handlingen fungerer. Hvis du for eksempel tildelte handlingen <guilabel
>Fjern række</guilabel
>, og klikker på knappen så fjernes den nuværende linje i databasen, på samme måde som at udføre menukommandoen <menuchoice
><shortcut
><keycombo action="simul"
><keycap
>Ctrl</keycap
><keycap
>Delete</keycap
></keycombo
></shortcut
><guimenu
>Redigér</guimenu
> <guimenuitem
>Fjern række</guimenuitem
></menuchoice
> (afhængig af dine indstillinger kan du blive bedt om at bekræfte fjernelsen). </para>
<note>
<itemizedlist>
<listitem>
<para
>For at fjerne en tildelt handling, vælges <guilabel
>Ingen handling</guilabel
> i dropned-feltet <guilabel
>Handlingstype</guilabel
> i dialogen <guilabel
>Tildel handling til kommandoknap</guilabel
>. </para>
</listitem>
<listitem>
<para
>Handlinger fungerer kun i formularens <emphasis
>datavisning</emphasis
>: Alle tænkbare tildelinger af handlinger er ikke rimelige. Handlingen <guimenuitem
>Skrifttype...</guimenuitem
> er for eksempel tilgængelig i datavisningen, men kun hvis du har markeret en kontrol i <interface
>designsvisningen</interface
>. Hvis du ændrer tegnindstillingerne så udføres ændringerne på teksten i den markerede kontrol. </para>
</listitem>
</itemizedlist>
</note>
</sect3>
</sect2>
<sect2 id="widget-layouts">
<title
>Layout af grafiske kontroller</title>
<para
>I de fleste tilfælde skal formularens grafiske kontroller være bekvemt arrangerede og justerede. At placere, justere og ændre størrelse på kontroller manuelt er ikke let og parametrene justeres ikke hvis brugeren ændres størrelse på formularen. I virkeligheden er situationen endnu værre, eftersom du ikke kan antage at en givet formular kræver en given størrelse, eftersom brugere har forskellige tegnstørrelser og opløsninger på billedskærmen. </para>
<!--
<para>
The following example presents a form where text fields and labels were
placed by hand. Some of them cannot fit in the form's window.
</para>
<screenshot>
<screeninfo
>An example form with widgets that cannot not fit in the window</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_08_form_no_fit.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>An example form with widgets that cannot not fit in the window</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
<para
>At bruge et specialværktøj som kaldes kontrollayout kan hjælpe til automatisk at oprette et layout for formularkontroller. Kontrollayout er handlingen at gruppere to eller flere kontroller så at de er godt placerede og har passende størrelser. </para>
<para
>At bruge et layout i en formular forbedrer justering af position. Desuden bruges dets plads på en bedre måde. Tekstfelter er nærmere hinanden, og mellemrummet er konstant. </para>
<!--<screenshot>
<screeninfo
>Example form with layout used</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_08_form_well_fit.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Example form with layout used</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
<para
>Der er to måder at oprette et layout af grafiske kontroller.</para>
<itemizedlist>
<listitem>
<para
>Markér to eller flere kontroller som skal indgå i et fælles layout, og vælg en af layouttyperne i den sammenhængsafhængige menus punkter <guilabel
>Layout af grafiske kontroller</guilabel
> . </para>
</listitem>
<listitem>
<para
>Klik på en omgivende kontrol (eller selve formularens flade), hvor kontroller indsættes og vælg en af layouttyperne med den sammenhængsafhængige menus punkt Layout af grafiske kontroller . Alle kontroller som findes inde i den omgivende kontrol eller inde i formularen på samme niveau tilføjes i et enkelt fælles layout. </para>
</listitem>
</itemizedlist>
<para
>I begge disse tilfælde kan du også bruge menuen <menuchoice
><guimenu
>Formatér</guimenu
> <guimenuitem
>Layout af grafiske kontroller</guimenuitem
></menuchoice
>. </para>
<!--<screenshot>
<screeninfo
>Selecting widgets that will be put into a layout</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_08_form_layout_selecting.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Selecting widgets that will be put into a layout</phrase>
</textobject>
</mediaobject>
</screenshot>
<screenshot>
<screeninfo
>Four widgets are selected</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_08_form_layout_selected.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Four widgets are selected</phrase>
</textobject>
</mediaobject>
</screenshot>
<screenshot>
<screeninfo
>Using the context menu for putting the widgets into a grid layout</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_08_form_layout_popup.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Using the context menu for putting the widgets into a grid layout</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
<para
>Kontrollayout vises i designvisningen ved brug af et blåt, grønt eller rødt felt som tegnes med en brudt linje. Denne linje vises kun i formularens designvisning. </para>
<!--<screenshot>
<screeninfo
>Widgets within a grid layout</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_08_form_layout_grid.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Widgets within a grid layout</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
<para
>Foruden gittertypen er der andre typer af layout for grafiske kontroller.</para>
<variablelist>
<varlistentry>
<term
>lodret</term>
<listitem>
<para
>Lodret layout af grafiske kontroller</para>
<!--<screenshot>
<screeninfo
>Vertical widget layout</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_08_form_layout_vertical.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Vertical widget layout</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
</listitem>
</varlistentry>
<varlistentry>
<term
>vandret</term>
<listitem>
<para
>Vandret layout af grafiske kontroller</para>
<!--<screenshot>
<screeninfo
>Horizontal widget layout</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_08_form_layout_horizontal.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Horizontal widget layout</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
</listitem>
</varlistentry>
<!-- TODO podzia poziomy / pionowy
<br
><img src="img/05_04_08_form_layout_vertical_splitter.png">
<br
><br>
<br
><img src="img/05_04_08_form_layout_horizontal_splitter.png">
<br
><br>
</li
> -->
</variablelist>
<sect3 id="springs-in-widget-layouts">
<title
>Fjedre i layout af grafiske kontroller</title>
<para
>En <emphasis
>fjeder</emphasis
> i et kontrollayout er et særligt usynligt element som gør det muligt at justere kontrollers position og størrelse i et layout. En sådan fjeder strækker ud eller presser en kontrol sammen på højre, øvre, nederste eller venstre side, så den får den ønskede størrelse og position. </para>
<para
>For at bruge en fjeder:</para>
<procedure>
<step>
<para
>Vælg fjederikonen i værktøjslinjen <guilabel
>Grafiske kontroller</guilabel
>. </para>
</step>
<step>
<para
>Klik på et valgt punkt i formularen for at indsætte fjederen.</para>
</step>
</procedure>
<!--<para>
For the following example, the spring has been inserted on the left
hand of the text label "Persons". The label is thus displayed on the
right hand of the form. To make the spring work, it has been put into
a common horizontal layout with the label.
</para>
<screenshot>
<screeninfo
>Horizontal layout containing a spring and a text label</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_08_form_spring.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Horizontal layout containing a spring and a text label</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
<para
>For at få fjedre til at fungere skal du oprette en global kontrollayout, dvs. en layout for selve formularen. Derefter kan fjedrene bruge formularens kanter som en grænse for ekspansion. </para>
</sect3>
<!--
TODO: The entire text in this section is built around a screenshot
example, so it's commented out for now.
<sect3 id="advanced-widget-layouts">
<title
>Advanced widget layouts</title>
<para>
Widget layouts can be combined (or nested). On the following example
you can identify two nested layouts:
</para>
<orderedlist>
<listitem>
<para>
Horizontal layout with a spring, aligning the <literal
>Persons</literal>
text label to the right.
</para>
</listitem>
<listitem>
<para
>Grid layout grouping widgets on the whole form.</para>
</listitem>
</orderedlist>
<screenshot>
<screeninfo
>Two widget layouts combined: horizontal layout inside of a grid layout</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_08_form_advanced_layout.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Two widget layouts combined: horizontal layout inside of a grid layout</phrase>
</textobject>
</mediaobject>
</screenshot>
<para>
The horizontal layout is treated in the example as a single widget by
the grid layout - it takes exactly one <quote
>cell</quote
> of the grid.
After opening a form designed this way in the data view, you can notice
(by resizing the form) that:
</para>
<itemizedlist>
<listitem>
<para>
<literal
>Persons</literal
> text label thanks to the spring used is constantly
aligned to the to the right side of the form.
</para>
</listitem>
<listitem>
<para>
Text fields take all of the available width thanks to putting them
into the grid layout.
</para>
</listitem>
<listitem>
<para>
All the form's widgets are pushed to the top thanks to the spring
used at the bottom of the form.
</para>
</listitem>
</itemizedlist>
<screenshot>
<screeninfo
>The form using the two layouts displayed in data view</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_08_form_advanced_layout_view.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>The form using the two layouts displayed in data view</phrase>
</textobject>
</mediaobject>
</screenshot>
</sect3
>-->
<sect3 id="removing-widget-layouts">
<title
>Fjern layout af grafiske kontroller</title>
<para
>For at fjerne layout af grafiske kontroller uden at fjerne kontrollerne, udføres en af følgende handlinger: </para>
<itemizedlist>
<listitem>
<para
>Klik med <mousebutton
>højre</mousebutton
> museknap på layoutens kant og vælg kommandoen <guimenuitem
>Bryd layout</guimenuitem
> i den sammenhængsafhængige menu. </para>
</listitem>
<listitem>
<para
>Klik med <mousebutton
>venstre</mousebutton
> museknap på layoutens kant og vælg menupunktet <menuchoice
><guimenu
>Formatér</guimenu
> <guimenuitem
>Bryd layout</guimenuitem
></menuchoice
>. </para>
</listitem>
</itemizedlist>
<note>
<para
>At fjerne kontrollayouten med kommandoen <guimenuitem
>Bryd layout</guimenuitem
> fjerner ikke kontrollerne i layouten. Hvis du også vil fjerne kontrollerne, markere kun layouten ved at klikke på dens kant og tryk på tasten <keycap
>Delete</keycap
> eller brug menupunktet <menuchoice
><guimenu
>Redigér</guimenu
> <guimenuitem
> Slet</guimenuitem
></menuchoice
> eller den sammenhængsafhængige menus kommandoer. </para>
</note>
</sect3>
<sect3 id="size-policies-for-widgets-within-a-layout">
<title
>Størrelsespolitik for kontroller i en layout</title>
<para
>I stedet for at angive en fast størrelse på kontroller kan du vælge en kontrols størrelsespolitik i &kexi; blandt flere tilgængelige. En <emphasis
>størrelsespolitik</emphasis
> er en fleksibel strategi for at styre hvordan en kontrol strækkes ud (eller krymper sammen) afhængig af andre nabokontroller og tilgængelig plads i formularen. </para>
<para
>Efter at have indsat kontroller i en <emphasis
>layout</emphasis
>, får hver kontrol typisk en proportionel (<guilabel
>Foretrukken</guilabel
>) størrelsespolitik. Disse kontroller ændrer automatisk størrelse med foretrukne indstillinger, afhængig af deres type og størrelsen af hele layouten. Tre knapper som indsættes i en vandret layout ændrer for eksempel størrelse så deres synlige tekst får plads. </para>
<para
>Der er indstillinger af størrelsespolitik for hver kontrol som indsættes i formularen i <interface
>egenskabseditoren</interface
>. Opsætningen præsenteres som en gruppe egenskaber som kaldes <guilabel
>Størrelsespolitik</guilabel
>. </para>
<!--<screenshot>
<screeninfo
>A group of properties for defining a widget's size policy</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_09_size_policy_properties.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>A group of properties for defining a widget's size policy</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
<para
>Denne gruppe af egenskaber indeholder:</para>
<variablelist>
<varlistentry>
<term
><guilabel
>Vandret størrelsespolitik</guilabel
></term>
<listitem>
<para
>definerer den grafiske kontrols vandrette størrelse,</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Lodret størrelsespolitik</guilabel
></term>
<listitem>
<para
>definerer den grafiske kontrols lodrette størrelse,</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Vandret strækning</guilabel
></term>
<listitem>
<para
>definerer aktivitetsstyrken af <guilabel
>Vandret størrelsespolitik</guilabel
>, </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Lodret strækning</guilabel
></term>
<listitem>
<para
>definerer aktivitetsstyrken af <guilabel
>Lodret størrelsespolitik</guilabel
> </para>
</listitem>
</varlistentry>
</variablelist>
<sect4>
<title
>Værdier i størrelsespolitik</title>
<para
>Følgende værdier er tilgængelige i kombinationsfelterne for egenskaberne <guilabel
>Vandret størrelsespolitik</guilabel
> og <guilabel
>Lodret størrelsespolitik</guilabel
> som vises i <interface
>egenskabseditoren</interface
>: </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Fast</guilabel
></term>
<listitem>
<para
>denne værdi betyder at kontrollens størrelse ikke automatisk kan ændres. den skal beholde den konstante størrelse som defineredes de den blev designet (bredde og højde). </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Minimum</guilabel
></term>
<listitem>
<para
>denne værdi betyder at kontrollens oprindelige størrelse er indstillet til den mindste tilladte værdi, som er tilstrækkelig og der er intet behov af at ekspandere kontrollen, men den kan ekspanderes hvis det behøves. Denne type politik kan bruges til at tvinge kontrollen til at ekspanderes til hele bredden eller højden, især hvis du angiver en strækningsværdi større end 0. </para>
<!--<screenshot>
<screeninfo
>Text field and two buttons within a grid layout (Minimum horizontal size policy is set for both buttons, so these are slightly wider than needed)</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_09_size_policy_minimum.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Text field and two buttons within a grid layout (Minimum horizontal size policy is set for both buttons, so these are slightly wider than needed)</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Maksimum</guilabel
></term>
<listitem>
<para
>denne værdi betyder at kontrollens oprindelige størrelse er indstillet til den største tilladte værdi, og den kan mindskes hvis det behøves uden at forstyrre kontrolens nyttigthed og læsbarhed hvis andre kontroller behøver mere plads. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Foretrukken</guilabel
></term>
<listitem>
<para
>denne værdi betyder at kontrollens oprindelige størrelse er den bedste og foretrækkes. Kontrollen kan dog krympes eller ekspanderes og den forbliver læsbar. </para>
<!--<screenshot>
<screeninfo
>Text field and two buttons within a grid layout (Preferred horizontal size policy is set for both buttons)</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_09_size_policy_preferred.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Text field and two buttons within a grid layout (Preferred horizontal size policy is set for both buttons)</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Ekspanderende</guilabel
></term>
<listitem>
<para
>denne værdi betyder at kontrollens oprindelige størrelse er rimelig men kontrollen kan også krympes. Den kan også ekspanderes til at optage så meget plads som muligt. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Minimum ekspanderende</guilabel
></term>
<listitem>
<para
>denne værdi betyder at kontrollens oprindelige størrelse er tilladt. Den kan ekspanderes til at optage så meget plads som muligt. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Ignoreret</guilabel
></term>
<listitem>
<para
>denne værdi betyder at kontrollens oprindelige størrelse ignoreres. Kontrollen kan ekspanderes til at optage så meget plads som muligt, men andre kontroller tillader oftest ikke dette. </para>
</listitem>
</varlistentry>
</variablelist>
<para
>Hver kontroltype har en standardstørrelsespolitik. For eksempel har knapkontroller standardstørrelsespolitik indstillet til <guilabel
>Minimum</guilabel
> ( i begge retninger), mens tekstfeltkontroller har den lodrette størrelsespolitik indstillet til <guilabel
>Fast</guilabel
>. </para>
<para
>Oftest brugte størrelsespolitik er <guilabel
>Foretrukket</guilabel
>, <guilabel
>Minimum</guilabel
> og <guilabel
>Maksimum</guilabel
>. </para>
</sect4>
<sect4>
<title
>Lodret og vandret stræk</title>
<para
>Egenskabere <guilabel
>Lodret stræk</guilabel
> og <guilabel
>Vandret stræk</guilabel
> accepterer heltalsværdier større end eller lig med 0. Disse egenskaber tillader finjustering af en størrelsespolitik. Standardværdi for egenskaberne er 0. En større værdi på stræk betyder at kontrollen ekspanderes mere end kontroller som har en lavere strækværdi indstillet. </para>
<!--<screenshot>
<screeninfo
>Size of button widgets affected by setting Vertical Stretch property of the second button to 1</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_09_size_policy_vertical_stretch.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Size of button widgets affected by setting Vertical Stretch property of the second button to 1</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
</sect4>
</sect3>
</sect2>
<sect2 id="setting-widgets-size-and-position-by-hand">
<title
>Indstil kontrollernes størrelse og position manuelt</title>
<para
>I det tilfælde hvor formularen ikke har en hovedlayout indstillet for automatisk placering og størrelsesændring af kontrollerne, må du formodentlig ændre kontrollernes position og størrelse så formularen ser renere ud og bliver enklere at bruge. Formularvinduet i &kexi; forenkler denne opgave ved at tilbyde følgende kommandogruppe: </para>
<itemizedlist>
<listitem>
<para
>Justér størrelser for markerede kontroller. Disse kommandoer er tilgængelige i menulinjens undermenu <menuchoice
><guimenu
>Formatér</guimenu
> <guisubmenu
>Justér kontrollernes størrelse</guisubmenu
></menuchoice
> og i den sammenhængsafhængige menus undermenu <menuchoice
><guisubmenu
>Justér kontrollernes størrelse</guisubmenu
></menuchoice
>. Værktøjslinjens dropned-felt <guibutton
>Justér kontrollernes størrelse</guibutton
> er også tilgængelig. </para>
<variablelist>
<varlistentry>
<term
><!--<img src="img/aofit.png" class="icon"
>--><guilabel
>Tilpasning</guilabel
></term>
<listitem>
<para
>Størrelsen for markerede kontroller ændres så størrelsen på hver kontrol ændres til dens foretrukne størrelse og dets indhold, for eksempel en tekstetikettes størrelse, ændres så den passer til teksten. Kontrollens position ændres ikke. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><!--<img src="img/aogrid.png" class="icon"
>--><guilabel
>Til gitter</guilabel
></term>
<listitem>
<para
>Størrelsen for markerede kontroller ændres så et hjørne af hver kontrol placeres på formularens gitterpunker (eller på en anden omgivende kontrols gitterpunkter). Kontrollens position kan ændres noget. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><!--<img src="img/aoshortest.png" class="icon"
>--><guilabel
>Til korteste</guilabel
></term>
<listitem>
<para
>Højden på markerede kontroller ændres så hver af dem får samme højde som den korteste. Komponenternes positioner ændres ikke. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><!--<img src="img/aotallest.png" class="icon"
>--><guilabel
>Til højeste</guilabel
></term>
<listitem>
<para
>Højden på markerede kontroller ændres så hver af dem får samme højde som den længste. Kontrollernes positioner ændres ikke. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><!--<img src="img/aonarrowest.png" class="icon"
>--><guilabel
>Til snævreste</guilabel
></term>
<listitem>
<para
>Bredden på markerede kontroller ændres så hver af dem får samme bredde som den smalleste. Kontrollernes positioner ændres ikke. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><!--<img src="img/aowidest.png" class="icon"
>--><guilabel
>Til det bredeste</guilabel
></term>
<listitem>
<para
>Bredden på markerede kontroller ændres så hver af dem får samme bredde som den bredeste. Kontrollernes positioner ændres ikke. </para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
<listitem>
<para
>Justér positioner for markerede kontroller. Disse kommandoer er tilgængelige i menulinjens undermenu <menuchoice
><guimenu
>Formatér</guimenu
> <guisubmenu
>Justér kontrollernes position</guisubmenu
></menuchoice
> og i den sammenhængsafhængige menus undermenu <menuchoice
><guisubmenu
>Justér kontrollernes position</guisubmenu
></menuchoice
>. Værktøjslinjens dropned-felt <guibutton
>Justér kontrollernes position</guibutton
> er også tilgængelig. </para>
<variablelist>
<varlistentry>
<term
><!--<img src="img/aoleft.png" class="icon"
>--><guilabel
>Til venstre</guilabel
></term>
<listitem>
<para
>Alle markerede kontrollers venstrekanter flyttes til positionen for venstrekanten på den kontrol som er længst til venstre. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><!--<img src="img/aoright.png" class="icon"
>--><guilabel
>Til højre</guilabel
></term>
<listitem>
<para
>Alle markerede kontrollers højrekanter flyttes til positionen for højrekanten på den kontrol som er længst til højre. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><!--<img src="img/aotop.png" class="icon"
>--><guilabel
>Øverst</guilabel
></term>
<listitem>
<para
>Alle markerede kontrollers overkanter flyttes til positionen for overkanten på den kontrol som er længst oppe. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><!--<img src="img/aobottom.png" class="icon"
>--><guilabel
>Nederst</guilabel
></term>
<listitem>
<para
>Alle markerede kontrollers underkanter flyttes til positionen for underkanten på den kontrol som er længst nede. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><!--<img src="img/aopos2grid.png" class="icon"
>--><guilabel
>Til gitter</guilabel
></term>
<listitem>
<para
>Alle markerede kontrollers øverste venstre hjørne flyttes så de er placerede på nærmeste gitterpunkt. </para>
</listitem>
</varlistentry>
</variablelist>
<para
>Ingen af ovenstående kommandoer ændrer kontrollernes størrelse.</para>
</listitem>
</itemizedlist>
<para
>Der er også yderligere kommandoer tilgængelige: <guimenuitem
>Læg grafisk kontrol øverst</guimenuitem
> (dvs. ovenpå alle andre kontroller) og <guimenuitem
>Læg grafisk kontrol underst</guimenuitem
> (dvs. under alle andre kontroller). Disse to kommandoer bruges sjældent, eftersom det ikke er sædvanligt at placere en kontrol ovenpå en anden (undtagen når en omgivende kontrol indeholder andre kontroller). Bemærk også at det er tilstrækkeligt at klikke på en kontrol med en museknap for at lægge kontrollen øverst. </para>
</sect2>
<sect2 id="setting-the-tab-order">
<title
>Angiv tabulatorrækkefølgen</title>
<para
>Kontrollens fokus bestemmer tilgængelige aktiviteter med tastaturet. Fokus hører sammen med kontroller som vises i formularens datavisning. Nøjagtigt en kontrol kan have fokus i et givet øjeblik. Den sædvanligste brug af fokus er tekstindtastning (når et givet tekstfelt er aktivt, dvs. har fokus). Et andet eksempel er en knapkontrol: når den har fokus er det muligt at <quote
>trykke</quote
> på den ved at bruge tasterne <keycombo action="press"
><keycap
>Enter</keycap
></keycombo
> eller <keycombo action="press"
><keycap
>Mellemrum</keycap
></keycombo
> i stedet for med en museknap. </para>
<para
>Der er nogle få metoder til at aktivere kontroller (flytte fokus til kontrollen): at klikke med en museknap, at rotere musehjulet over kontrollen, eller bruge tasten <keycombo action="press"
><keycap
>Tabulator</keycap
></keycombo
>. Den sidste metode bruges ofte på grund af dens hurtighed og bekvemmelighed for brugere. Tilgængeligheden af fokusmetoderne styres af en given kontrols egenskab <guilabel
>Fokuspolitik</guilabel
>. </para>
<para
>Der er et forhold mellem fokusering (aktivering) af kontroller med tasten <keycombo action="press"
><keycap
>Tabulator</keycap
></keycombo
> og formularens indstilling af tabulatorrækkefølge. Når tasten <keycombo action="press"
><keycap
>Tabulator</keycap
></keycombo
> trykkes, skal næste kontrol fokuseres, så formularen skal kende til tabulatorrækkefølgen. </para>
<para
>For at ændre tabulatorrækkefølge for formularens kontroller:</para>
<procedure>
<step>
<para
>Skift til formularens designvisning.</para>
</step>
<step>
<para
>Udfør menukommandoen <menuchoice
><guimenu
>Redigér</guimenu
> <guimenuitem
>Redigér tabulatorrækkefølge...</guimenuitem
></menuchoice
>. Dialogen <guilabel
>Redigér tabulatorrækkefølge</guilabel
> vises med formularens indstillinger. </para>
<!--<screenshot>
<screeninfo
>A window for editing tab order for a form</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_11_tab_stop_dialog.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>A window for editing tab order for a form</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
<para
>Vinduet indeholder en liste med to søjler: den første søjle viser kontrolnavn, den anden kontroltyper. For at gøre det enklere for brugeren at genkende betydningen af navn og typer, vises også ikoner som hører sammen med typerne. Listen indeholder kun kontroller som har en fokuspolitik som tillader at tasten <keycap
>Tabulator</keycap
> bruges. Vinduet lader dig ændre tabulatorrækkefølge eller indstille automatisk tabulatorrækkefølge. </para>
</step>
<step>
<para
>For at ændre tabulatorrækkefølge, enten:</para>
<itemizedlist>
<listitem>
<para
>Klik på et markeret kontrolnavn i kontrollisten og træk det til det ønskede sted (opad eller nedad) ved at bruge musen. </para>
</listitem>
<listitem>
<para
>Klik på et markeret kontrolnavn i kontrollisten og brug knapperne <guibutton
>Flyt nedad</guibutton
> eller <guibutton
>Flyt opad</guibutton
> for at flytte kontrollerne til den ønskede position. </para>
</listitem>
<listitem>
<para
>Markér afkrydsningsfeltet <guilabel
>Håndtér tabulatorrækkefølge automatiskt</guilabel
> for at indstille automatisk tabulatorrækkefølge for formularen. Hvis dette er aktiveret, tages ingen hensyn til eventuelle ændringer som gøres i kontrollisten manuelt. &kexi; håndterer tabulatorrækkefølgen selv. Den automatiske rækkefølge betyder at kontrollen længst oppe til højre fokuseres først (eller længst oppe til højre hvis operativsystemet bruger højre-til-venstre layout), og rækkefølgen bestemmes af venstre til højre (eller højre til venstre) og oppefra og nedad. </para>
<!--<screenshot>
<screeninfo
>Automatic tab order for a form</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="img/05_04_11_auto_tab_stop.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Automatic tab order for a form</phrase>
</textobject>
</mediaobject>
</screenshot
>-->
</listitem>
</itemizedlist>
</step>
<step>
<para
>Klik på knappen <guibutton
>O.k.</guibutton
> for at acceptere ændringerne eller knappen <guibutton
>Annullér</guibutton
> for at kassere ændringerne. </para>
</step>
</procedure>
</sect2>
</sect1>
|