MesuTher.dproj 07/05/ :56:44
|
|
- Randell Hicks
- 5 years ago
- Views:
Transcription
1 MesuTher.dproj 07/05/ :56:44 Page 1 sur 1 1: library MesuTher; 2: 3: uses 4: Windows, 5: Messages, 6: Classes, 7: Dialogs, 8: Forms, 9: SysUtils, 10: UTherElec in 'UTherElec.pas'; 11: 12: {$R MesuTher.res} 13: {$R MesuTherL.res} 14: 15: procedure PElectro(H, Main: HWND; NoLg: word; Var TBDll: TabDll; 16: VersPElec: Pchar); stdcall; 17: var 18: i: integer; 19: begin 20: for i := 0 to high(tbdll) do 21: begin 22: if LowerCase(TBDll[i].Name) = 'mesuther.dll' then 23: begin 24: TBDll[i].Divers := 2; 25: break; 26: end; 27: end; 28: Application.Handle := H; 29: Hdle := Main; 30: NumLg := NoLg; 31: end; 32: 33: function GetTypOp: word; stdcall; 34: begin 35: result := MenuPopUp; 36: end; 37: 38: procedure Identity(var D, N, V, C, M: string); stdcall; 39: begin 40: D := 'MesuTher'; 41: N := 'JBa'; 42: V := 'V2.0'; 43: C := ' 44: M := 'Thermometre'; 45: end; 46: 47: function GetMaxCompo: byte; stdcall; 48: begin 49: result := 0; 50: end; 51: 52: function ChangeCompo(H: HWND; i, ACount: word; var A: PTAc; var TBDll: TabDll; 53: var Parm: PTPa; NoLg: word): boolean; stdcall; 54: var 55: PVDll: TPVDll; 56: begin 57: NumLg := NoLg; 58: Application.Handle := H; 59: PVDll := AllocMem(SizeOf(TVarDll)); 60: with PVDll^ do 61: begin 62: IPosDroit := i; 63: INbrComposant := ACount; 64: PA 65: PD 66: Parms 67: SendMessage(Hdle, WM_LOCKFUNC, LockNew + LockOpen + LockCCP + LockNComp, 0); 68: PTHermo := TTHermo.Create(Application, PVDll); 69: PTHermo.Show; 70: end; 71: result := false; 72: end; 73: 74: procedure GetMenuCompo(List: Pchar; N: integer; var H: HBITMAP; NoLg: word); 75: stdcall; 76: begin 77: NumLg := NoLg; 78: StrLCopy(List, Pchar(MesLangID(164)), N - 1); 79: H := LoadBitmap(hInstance, Pchar('Image0')); 80: end; 81: 82: exports Identity, GetMaxCompo, ChangeCompo, GetMenuCompo, PElectro, 83: GetTypOp; 84: 85: begin 86:
2 MesuTher.dproj 07/05/ :56:44 87: end. Page 2 sur 1
3 Page 1 sur 15 1: unit UTherElec; 2: 3: interface 4: 5: uses 6: Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 7: StdCtrls, ExtCtrls, Mask, Math, Printers, ComCtrls, IniFiles, Menus, 8: JvComponent, JvComCtrls, JvExComCtrls, JvExControls, 9: JvDialButton, JvButton, JvTransparentButton, JvLED; 10: 11: const 12: WM_AFFMESTD = WM_USER; 13: {$I IPElectro} 14: 15: type 16: TPVDll = ^TVarDll; 17: 18: TThermo = class(tform) 19: Erreur: TStatusBar; 20: Panel3: TPanel; 21: GroupBox8: TGroupBox; 22: GroupBox3: TGroupBox; 23: Val1: TGroupBox; 24: VaV1: TLabel; 25: Edit1: TEdit; 26: T2: TMaskEdit; 27: LabFin: TLabel; 28: AM: TJvTransparentButton; 29: Pow1: TLabel; 30: Tps: TMaskEdit; 31: LabT: TLabel; 32: Paus2: TLabel; 33: Pause: TJvTransparentButton; 34: PopupVide: TPopupMenu; 35: BarTher: TProgressBar; 36: Edit2: TEdit; 37: Label1: TLabel; 38: procedure FormClose(Sender: TObject; var Action: TCloseAction); 39: procedure FormCreate(Sender: TObject); 40: procedure AMClick(Sender: TObject); 41: procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); 42: procedure PauseClick(Sender: TObject); 43: function FormHelp(Command: Word; Data: Integer; 44: var CallHelp: Boolean): Boolean; 45: procedure FormDestroy(Sender: TObject); 46: private 47: { Déclarations privées } 48: i: Integer; 49: d: double; 50: s1: string; 51: H, M, S, Ms, Mi: Integer; 52: T1: double; 53: function FMmSs(S: String): double; 54: function MmSs(T0: double): string; 55: public 56: { Déclarations publiques } 57: PDDllF: TPVDll; 58: constructor Create(Appli: TApplication; APDllF: TPVDll); 59: procedure WMAffMesTd(var Msg: TMessage); message WM_AFFMESTD; 60: end; 61: 62: TGest = record 63: Circuit: Integer; 64: Attach: array [0.. 1] of Word; 65: Sommet: array [0.. 1] of Word; 66: ZeroPot: Boolean; 67: end; 68: 69: TBlockPar = record 70: Ni: Integer; 71: j: Integer; 72: l: Integer; 73: JNbrComposant: Word; 74: ib: Integer; 75: T: double; 76: auto: Boolean; 77: Preci: Boolean; 78: Err: Boolean; 79: VPci: double; 80: Dxt: double; 81: VTa: double; 82: NumLg: Word; 83: PA: PPTa; 84: PR: PPTr; 85: A: PTA; 86: C: PTA;
4 Page 2 sur 15 87: Par: TI; 88: Par2: TI; 89: Vm: TI; 90: Vj: TI; 91: PD: PTabd; 92: Parms: PPTp; 93: TAdr: array of TCalCompo; 94: Gest: array of TGest; 95: end; 96: 97: TCalMesure = class(tthread) 98: private 99: PDDllT: TPVDll; 100: Hwdle: Hwnd; 101: { Déclarations privées } 102: BlkPar: TBlockPar; 103: H, M, S, Ms, Mi: Integer; 104: T1: double; 105: s1, s2: string; 106: { Fichier des mesures } 107: MaxPt, i2, i5, iv, im: Integer; 108: PtInter: Boolean; 109: Err: Boolean; 110: hmutex: Hwnd; 111: Ok: smallint; 112: iq: double; 113: TypOp: Word; 114: Ano: PChar; 115: TA: array of array of double; 116: TC: array of array of double; 117: Ai, TX, TV: TI; 118: TP: TI; 119: TP2: TI; 120: TVp: array of array of double; 121: VTp: array of array of double; 122: VTp2: array of array of double; 123: VTi: array of array of double; 124: AiRi: array of Integer; 125: PR: PTRc; 126: procedure FinTrd; 127: procedure Anomalie; 128: procedure MettreCptsArrete(i, k, n: Integer); 129: function RechCptsPRTest(i: Integer): Boolean; 130: function MmSs(T0: double): string; 131: protected 132: constructor Create(APDllT: TPVDll; FHdle: Hwnd); 133: procedure Execute; override; 134: end; 135: 136: TVarDll = record 137: { Thread } 138: PThermo: TThermo; 139: PCalMesure: TCalMesure; 140: INbrComposant, JNbrComposant, IPosDroit: Word; 141: PA: PPTa; 142: PD: PTabd; 143: Parms: PPTp; 144: { erreur dans un composant } 145: ErrCompo: Integer; 146: { Résolutions } 147: IDt: Integer; 148: { Automatique } 149: auto: Boolean; 150: { nombre de point supplementaire } 151: l: Integer; 152: 153: Taille: Integer; 154: ActivJournal: Boolean; 155: Ni: Integer; 156: Dt: double; 157: { Boucle de calcul } 158: Dxt, Dxt2, Dxt3, Dft: double; 159: { nombre de point supplementaire } 160: ib: Integer; 161: T: double; 162: VTa: double; 163: case Conv: Boolean of 164: true: 165: (r1: single); 166: false: 167: (ri: Integer); 168: end; 169: 170: var 171: NumLg: Word; 172: Hdle: Hwnd;
5 Page 3 sur : 174: function MesLangID(MesID: Word): string; 175: 176: function CycMat(A: PTA; n: Integer; M: Integer; C: PTA; k: Integer): Boolean; 177: stdcall; external 'FoncMath.dll'; 178: function Newton(var BlkPar: TBlockPar): Boolean; stdcall; 179: external 'FoncMath.dll'; 180: function FuncCompo(BlkPar: TBlockPar; TypOp: Word; i: Integer; var Ai: TI; 181: out iq: double; i1: Integer; Bool: Boolean; Ano: PChar; const n: Integer; 182: out Ok: smallint): Boolean; stdcall; external 'FoncMath.dll'; 183: function MathLock: Hwnd; stdcall; external 'FoncMath.dll'; 184: 185: implementation 186: 187: {$R *.DFM} 188: 189: constructor TThermo.Create(Appli: TApplication; APDllF: TPVDll); 190: begin 191: PDDllF := APDllF; 192: Inherited Create(Appli); 193: end; 194: 195: function MesLangID(MesID: Word): string; 196: begin 197: Case NumLg of 198: Francais, Japonais, Chinois, Allemand, Espagnol, Italien, Hindi, Hebreu, 199: Russe, Arabe, English, Portugais, Indonesien: 200: else 201: NumLg := English; 202: end; 203: result := LoadStr(NumLg * MesID); 204: end; 205: 206: function TThermo.FMmSs(S: String): double; 207: begin 208: with PDDllF^ do 209: begin 210: s1 := copy(s, 1, 2); 211: i := strtoint(s1); 212: d := i * 3600; 213: s1 := copy(s, 4, 2); 214: i := strtoint(s1); 215: d := d + i * 60; 216: s1 := copy(s, 7, 2); 217: i := strtoint(s1); 218: d := d + i; 219: s1 := copy(s, 10, 6); 220: i := strtoint(s1); 221: result := d + i / 1E6; 222: end; 223: end; 224: 225: function TCalMesure.MmSs(T0: double): string; 226: begin 227: with PDDllT^ do 228: begin 229: T1 := T0; 230: H := trunc(t1 / 3600); 231: T1 := T1 - H * 3600; 232: M := trunc(t1 / 60); 233: T1 := T1 - M * 60; 234: S := trunc(t1); 235: T1 := T1 - S; 236: Ms := trunc(t1 * 1E3); 237: Mi := trunc(t1 * 1E6); 238: result := TimeToStr(EncodeTime(H, M, S, Ms)) + format(':%6.6d', [Mi]); 239: end; 240: end; 241: 242: function TThermo.MmSs(T0: double): string; 243: begin 244: with PDDllF^ do 245: begin 246: T1 := T0; 247: H := trunc(t1 / 3600); 248: T1 := T1 - H * 3600; 249: M := trunc(t1 / 60); 250: T1 := T1 - M * 60; 251: S := trunc(t1); 252: T1 := T1 - S; 253: Ms := trunc(t1 * 1E3); 254: Mi := trunc(t1 * 1E6); 255: result := TimeToStr(EncodeTime(H, M, S, Ms)) + format(':%6.6d', [Mi]); 256: end; 257: end; 258:
6 Page 4 sur : procedure TThermo.AMClick(Sender: TObject); 260: var 261: S: string; 262: Sp: PChar; 263: begin 264: with PDDllF^ do 265: begin 266: if AM.Down then 267: begin 268: SendMessage(Hdle, WM_LEDONOFF, 1, 0); 269: AM.Caption := MesLangID(211); 270: AM.Color := cllime; 271: Pause.Enabled := true; 272: Edit1.Text := ''; 273: Tps.EditText := '00:00:00:000000'; 274: S := T2.EditText; 275: Dft := FMmSs(S); 276: if Dft = 0. then 277: Dft := 1.E37; 278: Erreur.Panels[0].Text := MesLangID(212) + DateToStr(Date) + MesLangID(57) 279: + TimeToStr(Time); 280: Sp := PChar(SendMessage(Hdle, WM_ALLOCMEM, cstmaxchars * SizeOf(Char), 281: 0)); 282: StrCopy(Sp, PChar('0101;MesuTher.dll;' + Erreur.Panels[0].Text)); 283: SendMessage(Hdle, WM_ADDMES, Integer(Sp), 3); 284: SendMessage(Hdle, WM_FREEMEM, Integer(Sp), 0); 285: Erreur.Panels[1].Text := ''; 286: Screen.Cursor := crhourglass; 287: PCalMesure := TCalMesure.Create(PDDllF, PThermo.handle); 288: end 289: else 290: begin 291: PCalMesure.Terminate; 292: SendMessage(Hdle, WM_LEDONOFF, 0, 0); 293: Screen.Cursor := crdefault; 294: AM.Caption := MesLangID(168); 295: AM.Color := clblack; 296: Pause.Down := false; 297: Pause.Color := clblack; 298: Pause.Enabled := false; 299: Erreur.Panels[0].Text := MesLangID(222) + DateToStr(Date) + MesLangID(57) 300: + TimeToStr(Time); 301: end; 302: end; 303: end; 304: 305: procedure TThermo.FormCloseQuery(Sender: TObject; var CanClose: Boolean); 306: begin 307: if AM.Down then 308: CanClose := false 309: else 310: CanClose := true; 311: end; 312: 313: procedure TThermo.PauseClick(Sender: TObject); 314: begin 315: with PDDllF^ do 316: begin 317: if Pause.Down then 318: begin 319: Pause.Color := cllime; 320: PCalMesure.Suspend; 321: end 322: else 323: begin 324: Pause.Color := clblack; 325: PCalMesure.Resume; 326: end; 327: end; 328: end; 329: 330: procedure TThermo.WMAffMesTd(var Msg: TMessage); 331: begin 332: with PDDllF^ do 333: begin 334: ri := Msg.WParam; 335: if r1 > 300 then 336: r1 := 300; 337: if r1 < -100 then 338: r1 := -100; 339: BarTher.Position := round(r1) + 100; 340: Edit1.Text := FormatFloat('+###.##;-###.##', r1); 341: r1 := r ; 342: Edit2.Text := FormatFloat('+###.##;-###.##', r1); 343: Tps.EditText := MmSs(Dxt2); 344: end;
7 Page 5 sur : Application.ProcessMessages; 346: end; 347: 348: procedure TCalMesure.Anomalie; 349: var 350: Sp: PChar; 351: begin 352: with PDDllT^ do 353: begin 354: if s1 = '' then 355: exit; 356: s1 := PThermo.Caption + ':' + s1; 357: if ActivJournal then 358: begin 359: Sp := PChar(SendMessage(Hdle, WM_ALLOCMEM, cstmaxchars * SizeOf(Char), 360: 0)); 361: StrCopy(Sp, PChar('0132;MesuTher.dll;' + MmSs(Dxt) 362: + '*' + s1 + ' ' + TimeToStr(Time))); 363: SendMessage(Hdle, WM_ADDMES, Integer(Sp), 0); 364: SendMessage(Hdle, WM_FREEMEM, Integer(Sp), 0); 365: end; 366: end; 367: end; 368: 369: procedure TCalMesure.FinTrd; 370: var 371: Sp: PChar; 372: begin 373: with PDDllT^ do 374: begin 375: PThermo.AM.Caption := MesLangID(168); 376: PThermo.AM.Down := false; 377: PThermo.AM.Color := clblack; 378: PThermo.Pause.Down := false; 379: PThermo.Pause.Color := clblack; 380: PThermo.Pause.Enabled := false; 381: PThermo.Erreur.Panels[0].Text := MesLangID(222) + DateToStr(Date) 382: + MesLangID(57) + TimeToStr(Time); 383: ActivJournal := PtInter; 384: Anomalie; 385: SendMessage(handle, WM_LEDONOFF, 0, 0); 386: Screen.Cursor := crdefault; 387: if ActivJournal then 388: begin 389: Sp := PChar(SendMessage(Hdle, WM_ALLOCMEM, cstmaxchars * SizeOf(Char), 390: 0)); 391: StrCopy(Sp, PChar('0101;MesuTher.dll;' + PThermo.Erreur.Panels[0].Text)); 392: SendMessage(Hdle, WM_ADDMES, Integer(Sp), 3); 393: SendMessage(Hdle, WM_FREEMEM, Integer(Sp), 0); 394: end; 395: end; 396: end; 397: 398: constructor TCalMesure.Create(APDllT: TPVDll; FHdle: Hwnd); 399: begin 400: Inherited Create(true); 401: FreeOnTerminate := true; 402: PDDllT := APDllT; 403: Hwdle := FHdle; 404: Priority := tpnormal; 405: Suspended := false; 406: end; 407: 408: function TCalMesure.RechCptsPRTest(i: Integer): Boolean; 409: var 410: i0, i1, i2: Integer; 411: begin 412: with PDDllT^ do 413: begin 414: BlkPar.Gest[i].Circuit := 1; 415: i0 := PR[i].AffiCompo; 416: for i1 := 0 to JNbrComposant do 417: if PR[i1].AffiCompo = i0 then 418: if BlkPar.Gest[i1].Circuit <> 1 then 419: RechCptsPRTest(i1); 420: if (PR[i].LienCompo <> 0) and (PR[i].LienCompo <> ) then 421: begin 422: i1 := PR[i].LienCompo + i; 423: if BlkPar.Gest[i1].Circuit <> 1 then 424: RechCptsPRTest(i1); 425: end; 426: for i0 := 0 to PR[i].RNbBorn - 1 do 427: begin 428: { pointe -> } 429: for i1 := 0 to JNbrComposant do 430: begin
8 Page 6 sur : if PR[i].RBorne[i0].Bi = 0 then 432: continue; 433: if PR[i].RBorne[i0].Bi <> PR[i1].RComposant then 434: continue; 435: if PR[i].RBorne[i0].BR <> PR[i1].RangCompo then 436: continue; 437: if BlkPar.Gest[i1].Circuit = 1 then 438: break; 439: RechCptsPRTest(i1); 440: end; 441: { i pointé <- } 442: for i1 := 0 to JNbrComposant do 443: begin 444: for i2 := 0 to PR[i1].RNbBorn - 1 do 445: begin 446: if PR[i1].RBorne[i2].Bi <> PR[i].RComposant then 447: continue; 448: if PR[i1].RBorne[i2].BR <> PR[i].RangCompo then 449: continue; 450: if PR[i1].RBorne[i2].BVal <> i0 then 451: continue; 452: if BlkPar.Gest[i1].Circuit = 1 then 453: continue; 454: RechCptsPRTest(i1); 455: end; 456: end; 457: end; 458: end; 459: result := false; 460: end; 461: 462: procedure TCalMesure.MettreCptsArrete(i, k, n: Integer); 463: var 464: i0, i1: Integer; 465: begin 466: { i pointe -> } 467: with PDDllT^ do 468: begin 469: BlkPar.Gest[i].Sommet[k] := n; 470: for i0 := 0 to JNbrComposant do 471: begin 472: if PR[i].RBorne[k].Bi = 0 then 473: break; 474: if PR[i].RBorne[k].Bi <> PR[i0].RComposant then 475: continue; 476: if PR[i].RBorne[k].BR <> PR[i0].RangCompo then 477: continue; 478: if BlkPar.Gest[i0].Sommet[PR[i].RBorne[k].BVal] <> 9999 then 479: break; 480: MettreCptsArrete(i0, PR[i].RBorne[k].BVal, n); 481: break; 482: end; 483: { i pointé <- } 484: for i0 := 0 to JNbrComposant do 485: begin 486: for i1 := 0 to PR[i0].RNbBorn - 1 do 487: begin 488: if PR[i0].RBorne[i1].Bi <> PR[i].RComposant then 489: continue; 490: if PR[i0].RBorne[i1].BR <> PR[i].RangCompo then 491: continue; 492: if PR[i0].RBorne[i1].BVal <> k then 493: continue; 494: if i0 <> i then 495: inc(blkpar.gest[i].attach[k]); 496: if BlkPar.Gest[i0].Sommet[i1] <> 9999 then 497: continue; 498: MettreCptsArrete(i0, i1, n); 499: end; 500: end; 501: end; 502: end; 503: 504: procedure TCalMesure.Execute; 505: { Code du thread } 506: var 507: i0, i1, k, d, j, i: Integer; 508: n: Word; 509: InitParCompo: TInitParCompo; 510: RInCompo: TRInCompo; 511: begin 512: with PDDllT^ do 513: begin 514: JNbrComposant := 0; 515: n := 0; 516: j := 0;
9 Page 7 sur : VTa := Parms^[0]; 518: Dt := Parms^[1]; 519: { init BlkPar.Gestion parametres } 520: Ni := ceil(parms^[3]); 521: if Parms^[9] = 1 then 522: ActivJournal := true 523: else 524: ActivJournal := false; 525: PtInter := ActivJournal; 526: SetLength(AiRi, INbrComposant + 1); 527: for i := 0 to INbrComposant do 528: begin 529: k := -1; 530: for d := Low(PD^) to High(PD^) do 531: begin 532: if PD^[d].Composant = PA^[i].RComposant then 533: begin := GetProcAddress(PD^[d].handle, 'RInCompo'); 535: = nil Then 536: begin 537: s1 := 'RInCompo pointer error'; 538: FinTrd; 539: exit; 540: end; 541: k := RInCompo(Application.handle, PA^[i], PD^, Parms^); 542: if k < 1 Then 543: begin 544: s1 := 'RInCompo error'; 545: FinTrd; 546: exit; 547: end; := GetProcAddress(PD^[d].handle, 'InitParCompo'); 549: = nil Then 550: begin 551: s1 := 'InitParCompo pointer error'; 552: FinTrd; 553: exit; 554: end; 555: AiRi[i] := JNbrComposant; 556: inc(j, k); 557: SetLength(PR, j + 1); 558: Err := InitParCompo(Application.handle, i, JNbrComposant, PA^, PR, 559: PD^, n, Parms^, NumLg); 560: if not Err Then 561: begin 562: s1 := 'InitParCompo error'; 563: FinTrd; 564: exit; 565: end; 566: inc(jnbrcomposant); 567: break; 568: end; 569: end; 570: if k = -1 then 571: begin 572: s1 := 'TabDll error'; 573: FinTrd; 574: exit; 575: end; 576: end; 577: if JNbrComposant < 2 then 578: begin 579: s1 := MesLangID(1); 580: FinTrd; 581: exit; 582: end; 583: SetLength(PR, JNbrComposant); 584: dec(jnbrcomposant); 585: { Recherche lien entre composants } 586: for i := 0 to JNbrComposant do 587: begin 588: if PR[i].LienCompo = then 589: begin 590: j := PR[i].AffiCompo; 591: l := Length(PA^[j].ADonne[1]); 592: s1 := PA^[j].ADonne[1]; 593: for k := l downto 1 do 594: begin 595: if (s1[k] >= '0') and (s1[k] <= '9') then 596: else 597: begin 598: n := strtoint(copy(s1, k + 1, l - k)); 599: delete(s1, k + 1, l - k); 600: break; 601: end; 602: end;
10 Page 8 sur : for k := 0 to INbrComposant do 604: begin 605: if k = j then 606: continue; 607: if PA^[k].RNbBorn <> 2 then 608: continue; 609: if (PA^[k].RTypCompo = s1) and (PA^[k].RangCompo = n) then 610: PR[i].LienCompo := AiRi[k] - i; 611: end; 612: end; 613: end; 614: { Recherche source dépendante et liaisons } 615: for i := 0 to INbrComposant do 616: begin 617: for k := 0 to PA^[i].RNbBorn - 1 do 618: begin 619: if PA^[i].RBorne[k].Bi = 0 then 620: continue; 621: for j := 0 to INbrComposant do 622: begin 623: if PA^[i].RBorne[k].Bi <> PA^[j].RComposant then 624: continue; 625: if PA^[i].RBorne[k].BR <> PA^[j].RangCompo then 626: continue; 627: i0 := PA^[i].RBorne[k].BVal; 628: if (i = j) and (k = i0) then 629: begin 630: s1 := 'Same link error'; 631: FinTrd; 632: exit; 633: end; 634: n := AiRi[i]; 635: while (PR[n].RABorn[0] <> k) and 636: ((PR[n].RABorn[1] <> k) or (PR[n].RNbBorn = 1)) do 637: begin 638: inc(n); 639: if (JNbrComposant < n) or (PR[n].AffiCompo <> i) then 640: begin 641: s1 := 'Link error'; 642: FinTrd; 643: exit; 644: end; 645: end; 646: l := AiRi[j]; 647: while (PR[l].RABorn[0] <> i0) and 648: ((PR[l].RABorn[1] <> i0) or (PR[l].RNbBorn = 1)) do 649: begin 650: inc(l); 651: if (JNbrComposant < l) or (PR[l].AffiCompo <> j) then 652: begin 653: s1 := 'link error'; 654: FinTrd; 655: exit; 656: end; 657: end; 658: if PR[n].RABorn[0] = k then 659: begin 660: PR[n].RBorne[0].Bi := PR[l].RComposant; 661: PR[n].RBorne[0].BR := PR[l].RangCompo; 662: if PR[l].RABorn[0] = i0 then 663: PR[n].RBorne[0].BVal := 0 664: else 665: PR[n].RBorne[0].BVal := 1; 666: end 667: else 668: begin 669: PR[n].RBorne[1].Bi := PR[l].RComposant; 670: PR[n].RBorne[1].BR := PR[l].RangCompo; 671: if PR[l].RABorn[0] = i0 then 672: PR[n].RBorne[1].BVal := 0 673: else 674: PR[n].RBorne[1].BVal := 1; 675: end; 676: break; 677: end; 678: end; 679: end; 680: { Recherche du circuit a tester } 681: SetLength(BlkPar.Gest, JNbrComposant + 1); 682: for i := 0 to JNbrComposant do 683: begin 684: BlkPar.Gest[i].ZeroPot := true; 685: BlkPar.Gest[i].Circuit := 0; 686: for k := 0 to PR[i].RNbBorn - 1 do 687: begin 688: BlkPar.Gest[i].Sommet[k] := 9999;
11 Page 9 sur : BlkPar.Gest[i].Attach[k] := 0; 690: end; 691: end; 692: j := AiRi[IPosDroit]; 693: RechCptsPRTest(j); 694: i1 := 0; 695: for i := 0 to JNbrComposant do 696: begin 697: if BlkPar.Gest[i].Circuit <> 1 then 698: continue; 699: if PR[i].LienCompo = then 700: begin 701: s1 := MesLangID(2); 702: FinTrd; 703: exit; 704: end; 705: { La masse a comme extremité 0 } 706: if (PR[i].RComposant = CstWH00) and (PR[i].RNumCompo = 0) then 707: begin 708: MettreCptsArrete(i, 0, 0); 709: inc(i1); 710: end; 711: end; 712: { une masse minimum } 713: if i1 = 0 then 714: begin 715: s1 := MesLangID(4); 716: FinTrd; 717: exit; 718: end; 719: { Calcul des sommets du circuit } 720: l := 0; 721: for i := 0 to JNbrComposant do 722: begin 723: if BlkPar.Gest[i].Circuit <> 1 then 724: continue; 725: for k := 0 to PR[i].RNbBorn - 1 do 726: if BlkPar.Gest[i].Sommet[k] = 9999 then 727: begin 728: inc(l); 729: MettreCptsArrete(i, k, l); 730: end; 731: end; 732: { Composant de même sommet } 733: k := -1; 734: for i := 0 to JNbrComposant do 735: begin 736: BlkPar.Gest[i].ZeroPot := true; 737: PR[i].Indice := -1; 738: if BlkPar.Gest[i].Circuit <> 1 then 739: continue; 740: for i0 := 0 to PR[i].RNbBorn - 1 do 741: begin 742: { un sommet à 9999 => erreur } 743: if (PR[i].RComposant = CstWH00) and (PR[i].RNumCompo = 0) then 744: continue; 745: if PR[i].RBorne[i0].Bi = 0 then 746: begin 747: s1 := MesLangID(5); 748: FinTrd; 749: exit; 750: end; 751: end; 752: if BlkPar.Gest[i].Sommet[0] = BlkPar.Gest[i].Sommet[1] then 753: continue; 754: BlkPar.Gest[i].ZeroPot := false; 755: inc(k); 756: PR[i].Indice := k; 757: end; 758: { Verification sommet utilisé } 759: for i := 0 to JNbrComposant do 760: begin 761: if BlkPar.Gest[i].Circuit <> 1 then 762: continue; 763: if not BlkPar.Gest[i].ZeroPot then 764: continue; 765: if BlkPar.Gest[i].Sommet[0] = 0 then 766: continue; 767: i1 := -1; 768: { Si le sommet est utilisé autrepart } 769: for i0 := 0 to JNbrComposant do 770: begin 771: if i0 = i then 772: continue; 773: if BlkPar.Gest[i0].Circuit <> 1 then 774: continue;
12 Page 10 sur : if BlkPar.Gest[i0].ZeroPot then 776: continue; 777: if BlkPar.Gest[i0].Sommet[0] = BlkPar.Gest[i].Sommet[0] then 778: inc(i1); 779: if BlkPar.Gest[i0].Sommet[1] = BlkPar.Gest[i].Sommet[0] then 780: inc(i1); 781: end; 782: if i1 <> -1 then 783: continue; 784: { Non } 785: dec(l); 786: i1 := BlkPar.Gest[i].Sommet[0]; 787: BlkPar.Gest[i].Sommet[0] := 0; 788: BlkPar.Gest[i].Sommet[1] := 0; 789: for i0 := 0 to JNbrComposant do 790: for d := 0 to 1 do 791: if BlkPar.Gest[i0].Sommet[d] >= i1 then 792: if BlkPar.Gest[i0].Sommet[d] > i1 then 793: dec(blkpar.gest[i0].sommet[d]) 794: else 795: BlkPar.Gest[i0].Sommet[d] := 0; 796: end; 797: { Calcul matrice A } 798: { Dim matrice A } 799: try 800: SetLength(TA, k + 1, l + 1); 801: SetLength(BlkPar.TAdr, k + 1); 802: except 803: s1 := '! Error SetLength TA'; 804: FinTrd; 805: exit; 806: end; 807: { Construction de la matrice A } 808: j := -1; 809: for i := 0 to JNbrComposant do 810: begin 811: { Ne pas tenir compte des masses } 812: if BlkPar.Gest[i].ZeroPot then 813: continue; 814: inc(j); 815: { recherche DLL du composant } 816: Err := true; 817: for d := Low(PD^) to High(PD^) do 818: begin 819: if PD^[d].Composant = PR[i].RComposant then 820: begin := GetProcAddress(PD^[d].handle, 'CalCompo'); 822: Err := false; 823: break; 824: end; 825: end; 826: if Err then 827: exit; 828: d := -1; 829: for n := 0 to 1 do 830: begin 831: TA[j, BlkPar.Gest[i].Sommet[n]] := TA[j, BlkPar.Gest[i].Sommet[n]] + d; 832: d := -d; 833: end; 834: end; 835: { Si pas de composant calculable -> sortir } 836: if j = -1 then 837: begin 838: s1 := MesLangID(101); 839: FinTrd; 840: exit; 841: end; 842: { Construction de la matrice cyclomatique } 843: BlkPar.A 844: dec(k, l); 845: try 846: SetLength(TC, j + 1, k + 1); 847: except 848: s1 := '! Error SetLength TC'; 849: FinTrd; 850: exit; 851: end; 852: BlkPar.C 853: Err := CycMat(BlkPar.A, j, l - 1, BlkPar.C, k); 854: if Err then 855: begin 856: s1 := MesLangID(102); 857: FinTrd; 858: exit; 859: end; 860: { Initialisation des variables }
13 Page 11 sur : try 862: SetLength(TV, j + 1); 863: SetLength(TX, j + 1); 864: SetLength(TVp, j + 1, 2); 865: SetLength(Ai, j + 1); 866: SetLength(VTi, j + 1, 2); 867: except 868: s1 := '! Error SetLength TV at VTi'; 869: FinTrd; 870: exit; 871: end; 872: BlkPar.Vm := TV; 873: { Température composant } 874: try 875: SetLength(TP2, INbrComposant + 1); 876: SetLength(VTp2, INbrComposant + 1, 2); 877: except 878: s1 := '! Error SetLength TP2 à VTp2'; 879: FinTrd; 880: exit; 881: end; 882: for i := 0 to INbrComposant do 883: begin 884: TP2[i] := VTa; 885: VTp2[i, 0] := VTa; 886: VTp2[i, 1] := VTa; 887: end; 888: { Initialisation des paramètres } 889: try 890: SetLength(TP, j + 1); 891: SetLength(VTp, j + 1, 2); 892: except 893: s1 := '! Error SetLength TP à VTp'; 894: FinTrd; 895: exit; 896: end; 897: BlkPar.Par := TP; 898: BlkPar.Par2 := TP2; 899: { Début du calcul } 900: Dxt := Dt / 30.; 901: Dxt2 := Dxt; 902: Dxt3 := Dxt; 903: iv := 0; 904: im := 0; 905: hmutex := MathLock; 906: { Boucle de temps } 907: repeat 908: { si ces parametres ont bouges } 909: VTa := Parms^[0]; 910: Ni := ceil(parms^[3]); 911: if Parms^[9] = 1 then 912: ActivJournal := true 913: else 914: ActivJournal := false; 915: PtInter := ActivJournal; 916: ib := 1; 917: T := Dt / 30.; 918: repeat 919: i5 := 0; 920: repeat 921: { si parametres changes } 922: MaxPt := ceil(parms^[4]); 923: if Parms^[10] = 0. then 924: auto := false 925: else 926: auto := true; 927: for k := 1 to Ni do 928: begin 929: BlkPar.Err := false; 930: BlkPar.VPci := Parms^[5]; 931: BlkPar.Ni := k; 932: BlkPar.j := j; 933: BlkPar.l := l; 934: BlkPar.JNbrComposant := JNbrComposant; 935: BlkPar.iB := ib; 936: BlkPar.T := T; 937: BlkPar.auto := auto; 938: BlkPar.Dxt := Dxt; 939: BlkPar.VTa := VTa; 940: BlkPar.NumLg := NumLg; 941: BlkPar.PA := PA; 942: BlkPar.PR 943: BlkPar.PD := PD; 944: BlkPar.Parms := Parms; 945: if WaitForSingleObject(hMutex, INFINITE) = WAIT_OBJECT_0 then 946: begin
14 Page 12 sur : if Newton(BlkPar) then 948: begin 949: BlkPar.Err := true; 950: end; 951: ReleaseMutex(hMutex); 952: if not BlkPar.Err then 953: break; 954: end; 955: if Terminated then 956: exit; 957: end; 958: if BlkPar.Err then 959: begin 960: { Arret du traitement } 961: if Terminated then 962: exit; 963: ib := 2 * ib; 964: if ib > MaxPt then 965: begin 966: s1 := MesLangID(104); 967: FinTrd; 968: exit; 969: end; 970: i5 := 0; 971: T := Dt / (30. * ib); 972: Dxt := Dxt2 - T * (ib - 1); 973: for i1 := 0 to j do 974: begin 975: TV[i1] := TVp[i1, 0]; 976: TVp[i1, 1] := TVp[i1, 0]; 977: TP[i1] := VTp[i1, 0]; 978: VTp[i1, 1] := VTp[i1, 0]; 979: Ai[i1] := VTi[i1, 0]; 980: VTi[i1, 1] := VTi[i1, 0]; 981: end; 982: for i1 := 0 to INbrComposant do 983: begin 984: TP2[i1] := VTp2[i1, 0]; 985: VTp2[i1, 1] := VTp2[i1, 0]; 986: end; 987: iv := im; 988: continue; 989: end; 990: { Non affichage des messages des points intermédiaires } 991: if ((i5 + 1) = ib) and ((iv im) = 2) then 992: ActivJournal := PtInter 993: else 994: ActivJournal := false; 995: { Voir si des composants sont détruits } 996: i1 := -1; 997: for i := 0 to JNbrComposant do 998: begin 999: if BlkPar.Gest[i].ZeroPot then 1000: continue; 1001: inc(i1); 1002: { Appel au calcul du composant } 1003: TypOp := 5; 1004: Ano := GetMemory(cstMaxChars * SizeOf(Char)); 1005: StrCopy(Ano, ''); 1006: if WaitForSingleObject(hMutex, INFINITE) = WAIT_OBJECT_0 then 1007: begin 1008: Err := FuncCompo(BlkPar, TypOp, i, Ai, iq, i1, true, Ano, 1009: cstmaxchars, Ok); 1010: ReleaseMutex(hMutex); 1011: end; 1012: s2 := copy(ano, 1, cstmaxchars); 1013: while Length(s2) <> 0 do 1014: begin 1015: i2 := Pos(';', s2); 1016: s1 := copy(s2, 1, i2-1); 1017: delete(s2, 1, i2); 1018: Anomalie; 1019: end; 1020: FreeMemory(Ano); 1021: if Err then 1022: begin 1023: s1 := MesLangID(106) + IntToStr(TypOp) + '-' + IntToStr 1024: (PR[i].RComposant); ; 1025: FinTrd; 1026: exit; 1027: end; 1028: TX[i1] := TV[i1]; 1029: case Ok of 1030: 1: 1031: begin 1032: Ai[i1] := TV[i1];
15 Page 13 sur : TX[i1] := iq; 1034: end; 1035: 2: 1036: TP[i1] := Ai[i1]; 1037: 3: 1038: TP[i1] := TV[i1]; 1039: { Si on veut rien faire } 1040: 4: 1041: else 1042: begin 1043: s1 := MesLangID(107) + IntToStr(Ok); 1044: FinTrd; 1045: exit; 1046: end; 1047: end; 1048: end; 1049: { Voir les sources de courant } 1050: i1 := -1; 1051: for i := 0 to JNbrComposant do 1052: begin 1053: if BlkPar.Gest[i].ZeroPot then 1054: continue; 1055: inc(i1); 1056: { Appel au calcul du composant } 1057: TypOp := 6; 1058: Ano := GetMemory(cstMaxChars * SizeOf(Char)); 1059: StrCopy(Ano, ''); 1060: if WaitForSingleObject(hMutex, INFINITE) = WAIT_OBJECT_0 then 1061: begin 1062: Err := FuncCompo(BlkPar, TypOp, i, Ai, iq, i1, true, Ano, 1063: cstmaxchars, Ok); 1064: ReleaseMutex(hMutex); 1065: end; 1066: s2 := copy(ano, 1, cstmaxchars); 1067: while Length(s2) <> 0 do 1068: begin 1069: i2 := Pos(';', s2); 1070: s1 := copy(s2, 1, i2-1); 1071: delete(s2, 1, i2); 1072: Anomalie; 1073: end; 1074: FreeMemory(Ano); 1075: if Err then 1076: begin 1077: s1 := MesLangID(106) + IntToStr(TypOp) + '-' + IntToStr 1078: (PR[i].RComposant); 1079: FinTrd; 1080: exit; 1081: end; 1082: case Ok of 1083: 1: 1084: begin 1085: Ai[i1] := TV[i1]; 1086: TX[i1] := iq; 1087: end; 1088: 2: 1089: TP[i1] := Ai[i1]; 1090: 3: 1091: TP[i1] := TV[i1]; 1092: { Si on veut rien faire } 1093: 4: 1094: else 1095: begin 1096: s1 := MesLangID(107) + IntToStr(Ok); 1097: FinTrd; 1098: exit; 1099: end; 1100: end; 1101: end; 1102: { Affiche les messages suivants le choix de l'utilisateur } 1103: ActivJournal := PtInter; 1104: inc(i5); 1105: Dxt := Dxt + T; 1106: until i5 = ib; 1107: Dxt := Dxt3 + Dt / 30; 1108: Dxt3 := Dxt; 1109: for i0 := 0 to j do 1110: begin 1111: TVp[i0, 0] := TVp[i0, 1]; 1112: TVp[i0, 1] := TV[i0]; 1113: VTp[i0, 0] := VTp[i0, 1]; 1114: VTp[i0, 1] := TP[i0]; 1115: VTi[i0, 0] := VTi[i0, 1]; 1116: VTi[i0, 1] := Ai[i0]; 1117: end; 1118: for i0 := 0 to INbrComposant do
16 Page 14 sur : begin 1120: VTp2[i0, 0] := VTp2[i0, 1]; 1121: VTp2[i0, 1] := TP2[i0]; 1122: end; 1123: inc(iv); 1124: until (iv - im) = 2; 1125: { Arret du traitement } 1126: if Terminated then 1127: exit; 1128: { Afficher les résultats sur l'écran } 1129: r1 := VTp2[IPosDroit, 0]; 1130: SendMessage(Hwdle, WM_AFFMESTD, ri, 0); 1131: { Temps suivant } 1132: Dxt2 := Dxt2 + Dt / 30.; 1133: inc(im); 1134: until Dxt2 > Dft; 1135: PThermo.Erreur.Panels[0].Text := MesLangID(224); 1136: s1 := MesLangID(145); 1137: FinTrd; 1138: end; 1139: end; 1140: 1141: procedure TThermo.FormCreate(Sender: TObject); 1142: begin 1143: with PDDllF^ do 1144: begin 1145: Caption := MesLangID(188) + ' ' + PA^[IPosDroit].RTypCompo + IntToStr 1146: (PA^[IPosDroit].RangCompo); 1147: Val1.Caption := MesLangID(162); 1148: VaV1.Caption := MesLangID(163); 1149: Label1.Caption := MesLangID(56); 1150: Pow1.Caption := MesLangID(167); 1151: AM.Caption := MesLangID(168); 1152: Paus2.Caption := MesLangID(169); 1153: LabT.Caption := MesLangID(186); 1154: LabFin.Caption := MesLangID(187); 1155: { initialisation des valeurs } 1156: T2.EditText := '00:00:00:000000'; 1157: { IDt est le temps / division } 1158: IDt := 0; 1159: Edit1.Text := ''; 1160: Edit2.Text := ''; 1161: Tps.EditText := '00:00:00:000000'; 1162: Erreur.Panels[0].Text := ''; 1163: Erreur.Panels[1].Text := ''; 1164: AM.Down := false; 1165: AM.Caption := MesLangID(168); 1166: AM.Color := clblack; 1167: Pause.Down := false; 1168: Pause.Color := clblack; 1169: Pause.Enabled := false; 1170: end; 1171: end; 1172: 1173: procedure TThermo.FormDestroy(Sender: TObject); 1174: var 1175: i: Integer; 1176: begin 1177: with PDDllF^ do 1178: begin 1179: for i := 0 to high(pd^) do 1180: begin 1181: if lowercase(pd^[i].name) = 'mesuther.dll' then 1182: begin 1183: if PD^[i].Activate > 0 then 1184: begin 1185: PD^[i].Activate := PD^[i].Activate - 1; 1186: break; 1187: end; 1188: end; 1189: end; 1190: end; 1191: FreeMem(PDDllF); 1192: end; 1193: 1194: function TThermo.FormHelp(Command: Word; Data: Integer; 1195: var CallHelp: Boolean): Boolean; 1196: var 1197: i: Integer; 1198: begin 1199: i := 0; 1200: repeat 1201: inc(i); 1202: until lowercase(pddllf^.pd^[i].name) = 'mesuther.dll'; 1203: SendMessage(Hdle, WM_HelpPE, 0, i); 1204: CallHelp := false;
17 Page 15 sur : result := false; 1206: end; 1207: 1208: procedure TThermo.FormClose(Sender: TObject; var Action: TCloseAction); 1209: begin 1210: with PDDllF^ do 1211: begin 1212: SendMessage(Hdle, WM_LOCKFUNC, LockOpen + LockNew + LockCCP + LockNComp, 1); 1213: end; 1214: Action := cafree; 1215: end; 1216: 1217: begin 1218: 1219: end.
MesuInstru.dproj 07/05/ :53:24
MesuInstru.dproj 07/05/2011 19:53:24 Page 1 sur 3 1: library MesuInstru; 2: 3: uses 4: Windows, 5: Messages, 6: Classes, 7: Dialogs, 8: Forms, 9: SysUtils, 10: UInstrument in 'UInstrument.pas'; 11: 12:
More informationMesuAmp.dproj 07/05/ :50:26
MesuAmp.dproj 07/05/2011 19:50:26 Page 1 sur 3 1: library MesuAmp; 2: 3: uses 4: Windows, 5: Messages, 6: Classes, 7: Dialogs, 8: Forms, 9: SysUtils, 10: UAmpElec in 'UAmpElec.pas'; 11: 12: {$R MesuAmp.res}
More informationCiDess.dproj 07/05/ :36:24
CiDess.dproj 07/05/2011 19:36:24 Page 1 sur 4 1: library CiDess; 2: 3: uses 4: Windows, 5: Messages, 6: Classes, 7: Dialogs, 8: Forms, 9: SysUtils, 10: Inifiles, 11: UParamCiDess1 in 'UParamCiDess1.pas'
More informationLAMPIRAN Listing Program
LAMPIRAN Listing Program unit umain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls, ExtDlgs, DCPcrypt2, DCPrc4, DCPsha1,
More informationIntroduction to the DLL for the USB Interface Board K8061
K8061.DLL 1 Introduction to the DLL for the USB Interface Board K8061 The K8061 interface board has 8 digital input channels and 8 digital output channels. In addition, there are 8 analogue inputs, 8 analogue
More informationNATIONAL SENIOR CERTIFICATE GRADE12
NATIONAL SENIOR CERTIFICATE GRADE12 INFORMATION TECHNOLOGY P1 NOVEMBER 2017 MARKING GUIDELINES MARKS: 150 These marking guidelines consist of 26 pages. Information Technology/P1 2 DBE/November 2017 GENERAL
More informationTD 2. Correction TP info
TP 2 Exercice 3 : Impôts Sub impot() Dim montant As Integer montant = Cells(1, 1).Value Dim montanttot As Integer Select Case montant Case 0 To 1000 montanttot = 0.1 * montant Case 1001 To 5000 montanttot
More informationImage. uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls ;
B 71 11 Image Image Image Image 11.1 11.1.1 Amida AmidaU.pas AmidaP.dpr 11.1.2 Form Name FormAmida Caption Position poscreencenter HorzScrollBar.Visible False VertScrollBar.Visible False 11.1.3 11.2 Image
More informationNATIONAL SENIOR CERTIFICATE GRADE12
NATIONAL SENIOR CERTIFICATE GRADE12 INFORMATION TECHNOLOGY P1 FEBRUARY/MARCH 2018 MARKING GUIDELINES MARKS: 150 These marking guidelines consist of 21 pages. Information Technology/P1 2 DBE/Feb. Mar. 2018
More informationVHDL par Ahcène Bounceur VHDL
VHDL Ahcène Bounceur 2009 Plan de travail 1. Introduction au langage 2. Prise en main 3. Machine à état 4. Implémentation sur FPGA 1 VHDL Introduction au langage Ahcène Bounceur VHDL VHIC (Very High-speed
More informationDelphi Generics.Collections
Delphi Generics.Collections Copyright(C) 2008 Embarcadero Technologies, Inc. All Rights Reserved. Delphi Generics.Collections Table of Contents Generics.Collections.TCollectionNotification 1 Generics.Collections.TCollectionNotifyEvent
More informationVLANs. Commutation LAN et Wireless Chapitre 3
VLANs Commutation LAN et Wireless Chapitre 3 ITE I Chapter 6 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 1 Objectifs Expliquer le rôle des VLANs dans un réseau convergent. Expliquer le rôle
More informationGRADE 12 SEPTEMBER 2012 INFORMATION TECHNOLOGY P1 MEMORANDUM
Province of the EASTERN CAPE EDUCATION NATIONAL SENIOR CERTIFICATE GRADE 12 SEPTEMBER 2012 INFORMATION TECHNOLOGY P1 MEMORANDUM MARKS: 120 This memorandum consists of 11 pages. 2 INFORMATION TECHNOLOGY
More informationToday we spend some time in OO Programming (Object Oriented). Hope you did already work with the first Starter and the box at:
maxbox Starter 2 Start with OO Programming 1.1 First Step Today we spend some time in OO Programming (Object Oriented). Hope you did already work with the first Starter and the box at: http://www.softwareschule.ch/download/maxbox_starter.pdf
More informationAnalyse statique de programmes avioniques
June 28th 2013. Forum Méthodes Formelles Cycle de conférences: Analyse Statique : «Retour d expériences industrielles» Analyse statique de programmes avioniques Presenté par Jean Souyris (Airbus Opérations
More informationILLUSTRATION DES EXCEPTIONS
ILLUSTRATION DES EXCEPTIONS Exemple 1: Capture d'une exception prédéfinie package exception1; public class PrintArgs public static void main ( String[ ] args ) System.out.println ( " Affichage des paramètres
More informationC-DIAS Analogue Output Module CAO 082 for eight ±10V DC respectively eight 0 20mA DC outputs
C-DIAS Analogue Output Module CAO 082 for eight ±10V DC respectively eight 0 20mA DC outputs This analogue output module is used for driving components capable of being analogue driven (e.g. proportional
More informationAbout Transferring License Rights for. PL7 V4.5 and Unity Pro V2.3 SP1 Software
Page 1 of 38 Click here to access the English Cliquez ici pour accéder au Français Klicken Sie hier, um zum Deutschen zu gelangen Premete qui per accedere all' Italiano Pulse acquì para acceder al Español
More informationC:\MasterPageWeb\HAPR\docu\HAPR_VB6_version15sept06.rtf 19/10/08. HARP_VB projet en VB6
HARP_VB projet en VB6 Option Explicit Dim Value As Integer Dim i As Integer Dim il As Long Dim LL, L1S, L250µS, L500µS, L1mS, L2mS, L5mS, L10mS As Single Dim offsetdepart As Long Dim police(256, 8) As
More informationModbus Server. ARSoft International
Modbus Server ARSoft International Description The ModBus server allows: The cyclic or acyclique interrogation of equipments connected to the serial comport COM1 to COM10. Up to 115200 Bauds. The communication
More informationTP 3 des architectures logicielles Séance 3 : Architecture n-tiers distribuée à base d EJB. 1 Préparation de l environnement Eclipse
TP 3 des architectures logicielles Séance 3 : Architecture n-tiers distribuée à base d EJB 1 Préparation de l environnement Eclipse 1. Environment Used JDK 7 (Java SE 7) EJB 3.0 Eclipse JBoss Tools Core
More informationSource code for simulations: 1 of 11
The following is the source code for the simulations reported in Clinchy, Haydon and Smith (Pattern process: what does patch occupancy really tell us about metapopulation dynamics). unit Main; interface
More informationИспользование ассиметричных алгоритмов криптографического преобразования информации в приложениях Windows
Государственное образовательное учреждение высшего профессионального образования «Петербургский государственный университет путей сообщения» Кафедра «Информационные и вычислительные системы» Лабораторная
More informationuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, ImgList, StdCtrls, Buttons, MPlayer;
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, ImgList, StdCtrls, Buttons, MPlayer; type TForm1 = class(tform) Cenario: TImage;
More informationDELPHI FOR ELECTRONIC ENGINEERS. Part 2 Programming a calculator COURSE
COURSE DELPHI FOR ELECTRONIC ENGINEERS Part 2 Programming a calculator Herman Bulle with thanks to Anton Vogelaar In the first instalment of this series, we introduced the Delphi programming environment
More informationC-DIAS Analog Input Module CAI 086 For eight, ±10V voltage inputs
C-DIAS ANALOG INPUT MODULE CAI 086 C-DIAS Analog Input Module CAI 086 For eight, ±10V voltage inputs This analog input module is used for the input of voltage values in the range of ±100mV / ±1.0V and10v.
More informationNATIONAL SENIOR CERTIFICATE GRADE12
NATIONAL SENIOR CERTIFICATE GRADE12 INFORMATION TECHNOLOGY P1 FEBRUARY/MARCH 2017 MEMORANDUM MARKS: 150 This memorandum consists of 29 pages. Information Technology/P1 2 DBE/Feb. Mar. 2017 GENERAL INFORMATION:
More information(1) Trump (1) Trump (2) (1) Trump ExampleU ExampleP (2) Caption. TrumpU (2) Caption. (3) Image FormTrump. Top 0 Left 0.
B 114 18 (1) 18.1 52 54 Trump http://www.ss.u-tokai.ac.jp/~ooya/jugyou/joronb/trumpbmp.exe (1) (2) Trump 18.2 (1) Trump ExampleU ExampleP (2) Name Caption FormMain 18.3 (1) TrumpU (2) Name Caption FormTrump
More informationC-DIAS Analog Module CAO 086 For eight ±10 V Outputs
C-DIAS-ANALOG OUTPUT MODULE CAO 086 C-DIAS Analog Module CAO 086 For eight ±10 V Outputs This analog output module can be used to control analog controllable components (i.e.: proportional pressure vent,
More informationNATIONAL SENIOR CERTIFICATE GRADE 12
NATIONAL SENIOR CERTIFICATE GRADE 12 INFORMATION TECHNOLOGY P1 NOVEMBER 2014 MEMORANDUM MARKS: 150 This memorandum consists of 28 pages. Information Technology/P1 2 DBE/November 2014 GENERAL INFORMATION:
More informationTutorial :.Net Micro Framework et.net Gadgeteer
1 Co-développement émulateur personnalisé et application pour une cible. 1.1 Utilisation d un émulateur personnalisé Après l installation du SDK.Net Micro, dans le répertoire d exemples, Framework (ex.
More informationSunVTS Quick Reference Card
SunVTS Quick Reference Card Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303-4900 U.S.A. 650-960-1300 Part No. 806-6519-10 January 2001, Revision A Send comments about this document to:
More information2. Design and Development
Postage Calculator 1. The task Design and implement a program for employees of a travel agency who send out documents to the UK and EU only; the program will calculate the cost of postage. Each envelope
More informationGraphes: Manipulations de base et parcours
Graphes: Manipulations de base et parcours Michel Habib habib@liafa.univ-paris-diderot.fr http://www.liafa.univ-paris-diderot.fr/~habib Cachan, décembre 2013 Notations Here we deal with finite loopless
More informationGRADE/GRAAD 11 NOVEMBER 2013 INFORMATION TECHNOLOGY P1 INLIGTINGSTEGNOLOGIE V1 MEMORANDUM
NATIONAL SENIOR CERTIFICATE NASIONALE SENIOR SERTIFIKAAT GRADE/GRAAD 11 NOVEMBER 2013 INFORMATION TECHNOLOGY P1 INLIGTINGSTEGNOLOGIE V1 MEMORANDUM MARKS/PUNTE: 150 This memorandum consists of 6 pages.
More informationGrafcet++ AUTOMGEN Grafcet++ multi instance macro steps and encapsulating steps with parameters
Grafcet++ AUTOMGEN 80 Grafcet++ multi instance macro steps and encapsulating steps with parameters These functionalities are available from AUTOMGEN 80 Main concept Automation applications sometimes need
More informationAPPLICATION NOTE: KONSTANTER LSP32K Interface Protocol
APPLICATION NOTE: KONSTANTER LSP32K Interface Protocol 1 Interface Type At the DB9 connector the LSP32K Power Supply device offers a serial data interface with TTL logic level for remote control and readout
More informationSunVTS Quick Reference Card
SunVTS Quick Reference Card Sun Microsystems, Inc. www.sun.com Part No. 820-1672-10 September 2007, Revision 01 Submit comments about this document at: http://www.sun.com/hwdocs/feedback Copyright 2007
More informationLAMPIRAN A. Foto Alat
LAMPIRAN A Foto Alat A-1 A-2 Rangkaian Skematik PCB Sistem Monitoring Infus A-3 LAMPIRAN B Program pada Mikrokontroller AVR Atmega16...B-1 Program pada Borlan Delhpi 7.0...B-9 PROGRAM UTAMA /*****************************************************
More informationunit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, CPort, LPComponent, SLCommonGen, SLSignalGen, Menus, SLComponentCollection, LPDrawLayers,
More informationSERIE N 1. 4 ème Année informatiques. Exercice 3. Exercice 4 (Manuel Scolaire) Page [1] Les enregistrements & Les fichiers Infoslpm.e-monsite.
Exercice 3 SERIE N 1 program exercice3; uses wincrt; type st = string[30]; fch = file of st; var f:fch; nom: st; b : integer; procedure saisie(var f:fch); var vil:st; rep:char; write('donner le nom d''une
More informationAdventures in Messaging
Adventures in Messaging CHAPTER 3 IN THIS CHAPTER What Is a Message? 130 Types of Messages 131 How the Windows Message System Works 132 Delphi s Message System 133 Handling Messages 134 Sending Your Own
More informationLAMPIRAN. uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, XPMan, ExtCtrls, jpeg;
LAMPIRAN Lampiran A. Listing Program 1. Unit Utama unit UnUtama; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, XPMan, ExtCtrls, jpeg; type Tfrmutama
More informationClasses internes, Classes locales, Classes anonymes
Classes internes, Classes locales, Classes anonymes Victor Marsault Aldric Degorre CPOO 2015 Enum (1) 2 Quand les utiliser: disjonctions de cas type au sens courant (eg. type de messages d erreur, type
More informationJava et Mascopt. Jean-François Lalande, Michel Syska, Yann Verhoeven. Projet Mascotte, I3S-INRIA Sophia-Antipolis, France
Java et Mascopt Jean-François Lalande, Michel Syska, Yann Verhoeven Projet Mascotte, IS-INRIA Sophia-Antipolis, France Formation Mascotte 09 janvier 00 Java Java et Mascopt - Formation Mascotte 09 janvier
More informationTP 2 : Application SnapTchat 20 février 2015
TP 2 : Application SnapTchat 20 février 2015 SnapTchat : cahier de charges L objectif de ce TP est de développer une simple application d échange de messages courts entre deux utilisateurs. Le cahier des
More informationEcole Nationale d Ingénieurs de Brest. Programmation par objets Le langage C++ Type Concret de Données en C++
Notes de cours Ecole Nationale d Ingénieurs de Brest Programmation par objets Le langage C++ Type Concret de Données en C++ J. Tisseau 1995/1997 enib c jt......... 1/30 Du TAD au TCD Type Abstrait de Données
More informationTP5 Sécurité IPTABLE. * :sunrpc, localhost :domain,* :ssh, localhost :smtp, localhost:953,*: Tous sont des protocoles TCP
TP5 Sécurité IPTABLE Routage classique Q1) Sur la machiine FIREWALL, les services actifs sont : Netstat -a * :sunrpc, localhost :domain,* :ssh, localhost :smtp, localhost:953,*:53856. Tous sont des protocoles
More informationNATIONAL SENIOR CERTIFICATE GRADE12
NATIONAL SENIOR CERTIFICATE GRADE12 INFORMATION TECHNOLOGY P1 NOVEMBER 2016 MEMORANDUM MARKS: 150 This memorandum consists of 32 pages. Information Technology/P1 2 DBE/November 2016 GENERAL INFORMATION:
More informationPRO7_TEL ver1_0 FINAL.BS2
'{$STAMP BS2} PRO7_TEL ver1_0 FINAL.BS2 ' Programme: TEL.BS2 Simulateur de Ligne Telephonique ' Par: Sylvain Bergeron Date: 2000-FEV ' Versions: ' 0.1 Routines de SelfCheck: 2000-Fev-04 ' 0.2 Routines
More informationNATIONAL SENIOR CERTIFICATE GRADE12
NATIONAL SENIOR CERTIFICATE GRADE12 INFORMATION TECHNOLOGY P1 NOVEMBER 2015 MEMORANDUM MARKS: 150 This memorandum consists of 32 pages. Information Technology/P1 2 DBE/November 2015 GENERAL INFORMATION:
More informationMardi 3 avril Epreuve écrite sur un document en anglais
C O L L E CONCOURS INTERNE ET EXTERNE DE TECHNICIEN DE CLASSE NORMALE DES SYSTEMES D INFORMATION ET DE COMMUNICATION Ne pas cacher le cadre d identité. Cette opération sera réalisée par l administration
More informationVerification and Validation
2017-2018 Cycle Ingénieur 2 ème année Département Informatique Verification and Validation Part II : Components of the UML Burkhart Wolff Département Informatique Université Paris-Sud / Orsay Plan of the
More informationQuick Reference Guide
SOFTWARE AND HARDWARE SOLUTIONS FOR THE EMBEDDED WORLD mikroelektronika Development tools - Books - Compilers Quick Reference Quick Reference Guide with EXAMPLES for Pascal language This reference guide
More information{ -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '84 } { -- PASCAL PROGRAM SOLUTIONS }
{ -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '84 } { -- PASCAL PROGRAM SOLUTIONS } {1.1} program One1T84; { -- This program produces a table of Fahrenheit for Celcius. } C: Integer; Writeln ('CELCIUS
More informationCSE443 Compilers. Dr. Carl Alphonce 343 Davis Hall
CSE443 Compilers Dr. Carl Alphonce alphonce@buffalo.edu 343 Davis Hall www.cse.buffalo. edu/faculty/alphonce/sp18/cse443 piazza.com/buffalo/spring2018/cse443 BUILD A COMPILER! Assessment plan Homework
More informationTD : Compilateur ml2java semaine 3
Module 4I504-2018fev TD 3 page 1/7 TD : Compilateur ml2java semaine 3 Objectif(s) 22 février 2018 Manipulation d un traducteur de code ML vers Java. 1 ML2Java Exercice 1 Structure du runtime 1. Déterminer
More informationOracle ZFS Storage Appliance Cabling Guide. For ZS3-x, 7x20 Controllers, and DE2-24, Sun Disk Shelves
Oracle ZFS Storage Appliance Cabling Guide For ZS3-x, 7x20 Controllers, and DE2-24, Sun Disk Shelves Part No: E53670-01 June 2014 Copyright 2009, 2014, Oracle and/or its affiliates. All rights reserved.
More informationBasic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable
Basic C++ Overview C++ is a version of the older C programming language. This is a language that is used for a wide variety of applications and which has a mature base of compilers and libraries. C++ is
More informationInfobel XmlAccess User Manual. Infobel XmlAccess. User Manual. Version 2.0. Page 1 of 45
Infobel XmlAccess User Manual Version 2.0 Page 1 of 45 Table of Content 1. INTRODUCTION... 4 1.1. General... 4 1.2. Glossary... 4 2. INFOBEL SEARCH SERVICE... 5 2.1. Access the Infobel Search Service...
More informationAdvanced Systems Programming
Advanced Systems Programming Introduction to C++ Martin Küttler September 19, 2017 1 / 18 About this presentation This presentation is not about learning programming or every C++ feature. It is a short
More informationThis document is a preview generated by EVS
INTERNATIONAL STANDARD ISO 472 NORME INTERNATIONALE Fourth edition Quatrième édition 2013-02-01 Plastics Vocabulary Plastiques Vocabulaire Reference number Numéro de référence ISO 2013 COPYRIGHT PROTECTED
More informationPlugin API. Revision
Plugin API Revision 2012-01-14 1. Creating Your First Plugin A simple example is much better to understand the plugin API than tens of boring pages of theory. Our first plugin will show a window with PI
More informationVoir ces deux articles : [3]
Publié sur WindowsLinux.net (http://www.windowslinux.net) Accueil > Microsoft Security Essentials Microsoft Security Essentials [1] Téléchargements Le téléchargement de MSE (Microsoft Security Essentials)
More informationControlLogix Redundant Power Supply Chassis Adapter Module
Installation Instructions ControlLogix Redundant Power Supply Chassis Adapter Module Catalog Number 1756-PSCA Use this publication as a guide when installing the ControlLogix 1756-PSCA chassis adapter
More informationCOMP 202 Java in one week
COMP 202 Java in one week... Continued CONTENTS: Return to material from previous lecture At-home programming exercises Please Do Ask Questions It's perfectly normal not to understand everything Most of
More informationUJIAN AKHIR SEMESTER TEKNIK INFORMATIKA SEKOLAH TINGGI TEKNOLOGI DUTA BANGSA
UJIAN AKHIR SEMESTER TEKNIK INFORMATIKA SEKOLAH TINGGI TEKNOLOGI DUTA BANGSA Dosen Pembimbing : Dedi W ST,. MM Nama : Elly Sunandy NIM : 13158279 Pemrograman Terstruktur Membuat program dengan Delphi 7
More information1 PORT HARDENED SERIAL SERVER
QUICK START GUIDE LES421A 1 PORT HARDENED SERIAL SERVER 24/7 TECHNICAL SUPPORT AT 877.877.2269 OR VISIT BLACKBOX.COM STEP 1 - Check for All Required Hardware 1-Port Hardened Serial Server This Quick Start
More informationInstallation des interfaces et utilisation de WorldCAT-CIF pour le catalogue CD Meusburger
Installation des interfaces et utilisation de pour le catalogue CD Meusburger 1. Condition préalable: lors de l installation du catalogue CD Meusburger, il faut avoir mis en place DAKO. 2. Veuillez vérifier
More informationSolaris 8 6/00 Sun Hardware Roadmap
Solaris 8 6/00 Sun Hardware Roadmap This document is a guide to the CDs and documents involved in installing the Solaris 8 6/00 software. Note The arrangement of CDs in the Solaris 8 product is different
More informationLAMPIRAN A: LIST PROGRAM
LAMPIRAN A: LIST PROGRAM Form Login unit ULogin; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, IBQuery, IBDatabase, IBCustomDataSet, IBTable,
More informationISE 021 S-DIAS Interface Module RS232 / RS485
ISE 021 S-DIAS Interface Module RS232 / RS485 Date of creation: 23.04.2014 Version date: 31.01.2018 Article number: 20-101-021-E Publisher: SIGMATEK GmbH & Co KG A-5112 Lamprechtshausen Tel.: +43/6274/4321
More informationOracle Dual Port QDR InfiniBand Adapter M3. Product Notes
Oracle Dual Port QDR InfiniBand Adapter M3 Product Notes Part No.: E40986-01 September 2013 Copyright 2013 Oracle and/or its affiliates. All rights reserved. This software and related documentation are
More informationRO 051 S-DIAS Relay Output Module
RO 051 S-DIAS Relay Output Module Date of creation: 10.08.2015 Version date: 18.10.2017 Article number: 20-064-051-E Publisher: SIGMATEK GmbH & Co KG A-5112 Lamprechtshausen Tel.: +43/6274/4321 Fax: +43/6274/4321-18
More informationInterdisciplinary relations in teaching of programming
Interdisciplinary relations in teaching of programming VLADIMÍR JEHLIČKA Department of Informatics Faculty of Education University of Hradec Králové Rokitanského 62, 500 03 Hradec Králové 3 CZECH REPUBLIC
More informationPréparation au concours ACM TP 2
Préparation au concours ACM TP 2 Christoph Dürr Jill-Jênn Vie September 25, 2014 Quelques conseils Entraînez-vous à identifier les problèmes les plus faciles. Lisez bien les contraintes d affichage : faut-il
More informationDelphiScript Keywords
DelphiScript Keywords Old Content - visit altium.com/documentation Modified by on 13-Sep-2017 This reference covers the DelphiScript keywords used for the Scripting System in Altium Designer. The scripting
More informationSun Control Station. Performance Module. Sun Microsystems, Inc. Part No September 2003, Revision A
Sun Control Station Performance Module Sun Microsystems, Inc. www.sun.com Part No. 817-3610-10 September 2003, Revision A Submit comments about this document at: http://www.sun.com/hwdocs/feedback Copyright
More informationFunctional Blue Prints for the Development of a KMapper Prototype
Functional Blue Prints for the Development of a KMapper Prototype SOFTWARE DESIGN DOCUMENT KMAPPER KNOWLEDGE INFERRING SERVICES And prepared by Martin Froment and Ludovic Tobin Fujitsu Consulting (Canada)
More informationCommon Misunderstandings from Exam 1 Material
Common Misunderstandings from Exam 1 Material Kyle Dewey Stack and Heap Allocation with Pointers char c = c ; char* p1 = malloc(sizeof(char)); char** p2 = &p1; Where is c allocated? Where is p1 itself
More informationProgrammation Mobile Android Master CCI
Programmation Mobile Android Master CCI Bertrand Estellon Aix-Marseille Université March 23, 2015 Bertrand Estellon (AMU) Android Master CCI March 23, 2015 1 / 266 Navigation entre applications Nous allons
More informationICA 012 S-DIAS Interface Module CAN
ICA 012 S-DIAS Interface Module CAN Date of creation: 06.09.2016 Version date: 25.06.2018 Article number: 20-102-012-E Publisher: SIGMATEK GmbH & Co KG A-5112 Lamprechtshausen Tel.: +43/6274/4321 Fax:
More information12.2 Mixing HLA and MASM/Gas Code in the Same Program In-Line (MASM/Gas) Assembly Code in Your HLA Programs
12.1 Chapter Overview Most assembly language code doesn t appear in a stand-alone assembly language program. Instead, most assembly code is actually part of a library package that programs written in a
More informationThe scripting system handles two types of components: Visual and Non-visual components.
Forms and Components Old Content - visit altium.com/documentation Modified by on 13-Sep-2017 Parent page: DelphiScript Overview of Graphical Components The scripting system handles two types of components:
More informationFont Administrator User s Guide
Font Administrator User s Guide Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 816 0281 10 May 2002 Copyright 2002 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara,
More informationCSCE 531, Spring 2015 Final Exam Answer Key
CSCE 531, Spring 2015 Final Exam Answer Key 1. (40 points total) Consider the following grammar with start symbol S : S S S asb S T T T a T cs T ɛ (a) (10 points) Find FIRST(S), FIRST(T ), FOLLOW(S), and
More informationAI 046 S-DIAS Analog Input Module
AI 046 S-DIAS Analog Input Module Date of creation: 14.06.2017 Version date: 14.02.2018 Article number: 20-009-046-E Publisher: SIGMATEK GmbH & Co KG A-5112 Lamprechtshausen Tel.: +43/6274/4321 Fax: +43/6274/4321-18
More informationObject Pascal Language Guide
Object Pascal Language Guide Borland Object Pascal Borland Software Corporation 100 Enterprise Way, Scotts Valley, CA 95066-3249 www.borland.com Borland Software Corporation may have patents and/or pending
More information(************************ Instructions de base ************************)
(**********************************************************************) (* Corrige du TD "Graphisme" *) (**********************************************************************) (************************
More informationDéclaration du module
Déclaration du module Imports System.IO Module ModuleStagiaires Public Structure Stagiaire Private m_code As Long Private m_nom As String Private m_prenom As String Public Property code() As Long Get Return
More informationGRADE 11 NOVEMBER 2012 INFORMATION TECHNOLOGY P1 INLIGTINGSTEGNOLOGIE V1 MEMORANDUM
Province of the EASTERN CAPE EDUCATION NATIONAL SENIOR CERTIFICATE GRADE 11 NOVEMBER 2012 INFORMATION TECHNOLOGY P1 INLIGTINGSTEGNOLOGIE V1 MEMORANDUM MARKS/PUNTE: 120 This memorandum consists of 10 pages.
More informationFlexArmor 24V dc Sinking Input Modules
Installation Instructions FlexArmor 24V dc Sinking Input Modules Catalog Number 1798-IB4 & 1798-IB8 42638 The FlexArmor I/O modules (Cat. No. 1798-IB4 & 1798-IB8) mount in a FlexArmor Baseplate. Use compatible
More informationFLEX Integra 4 Input Module
Installation Instructions FLEX Integra 4 Input Module (Cat. No. 1793-IB4 and -IB4S) 41355 Module Installation This module mounts on a DIN rail. It connects to an adapter or another FLEX I/O or Integra
More informationRéinitialisation de serveur d'ucs série C dépannant TechNote
Réinitialisation de serveur d'ucs série C dépannant TechNote Contenu Introduction Conditions préalables Conditions requises Composants utilisés Sortie prévue pour différents états de réinitialisation Réinitialisation
More informationUPPAAL. Verification Engine, Options & Patterns. Alexandre David
UPPAAL Verification Engine, Options & Patterns Alexandre David 1.2.05 Outline UPPAAL Modelling Language Specification Language UPPAAL Verification Engine Symbolic exploration algorithm Zones & DBMs Verification
More informationCS313D: ADVANCED PROGRAMMING LANGUAGE
CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 2 : C# Language Basics Lecture Contents 2 The C# language First program Variables and constants Input/output Expressions and casting
More informationSpecial Documentation Bluetooth module (BT10)
SD02252F/00/EN/01.18 71401266 Products Solutions Services Special Documentation Bluetooth module (BT10) Accessory Application Remote operation of HART devices via Bluetooth wireless technology Suitable
More informationPart 1 The first steps
course DELPHI FOR ELECTRONIC ENGINEERS Part 1 The first steps Detlef Overbeek & Anton Vogelaar This article is the first part in a series about programming in Delphi, which concentrates on the practical
More informationUser guide. Bluetooth Keyboard BKB10
User guide Bluetooth Keyboard BKB10 Contents Basics...3 Overview... 3 Charging the keyboard... 4 Turning on the keyboard... 5 Getting started... 6 Setting up the keyboard... 6 Support on the web...6 Legal
More information