dozzaqueux-3.51/0000755000175000017500000000000013155277271014071 5ustar georgeskgeorgeskdozzaqueux-3.51/unit3.lrs0000750000175000017500000000761613147330070015651 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisienombremole','FORMDATA',[ 'TPF0'#17'Tsaisienombremole'#16'saisienombremole'#4'Left'#3#182#2#6'Height'#3 +#220#1#3'Top'#3#186#0#5'Width'#3#141#3#11'BorderIcons'#11#12'biSystemMenu'#10 +'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#17'Nombre de moles' +' ?'#12'ClientHeight'#3#220#1#11'ClientWidth'#3#141#3#13'DesignTimePPI'#2'x' +#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.8' +'.0.4'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'Anchor' +'SideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3'Top'#2#10#5'Width' +#2'.'#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#6 +'Label1'#10'Font.Color'#7#6'clBlue'#10'Font.Style'#11#6'fsBold'#0#11'ParentC' +'olor'#8#10'ParentFont'#8#0#0#7'TBitBtn'#7'BitBtn1'#21'AnchorSideTop.Control' +#7#5'Owner'#23'AnchorSideRight.Control'#7#7'BitBtn2'#4'Left'#3#152#2#6'Heigh' +'t'#3'+'#1#3'Top'#2#10#5'Width'#2'y'#7'Anchors'#11#5'akTop'#7'akRight'#0#17 +'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#7'Caption'#6#3'&OK'#7 +'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#7'OnClick'#7#12'BitBtn1Cli' +'ck'#8'TabOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn2'#21'AnchorSideTop.Control'#7#5 +'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#4'Left'#3#27#3#6'Height'#3')'#1#3'Top'#2#10#5'Width'#2'h'#7'Anch' +'ors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2#10#19'BorderSpacing.R' +'ight'#2#10#6'Cancel'#9#7'Caption'#6#7'Annuler'#4'Kind'#7#8'bkCancel'#11'Mod' +'alResult'#2#2#8'TabOrder'#2#1#0#0#5'TMemo'#5'Memo1'#22'AnchorSideLeft.Contr' +'ol'#7#5'Owner'#21'AnchorSideTop.Control'#7#7'BitBtn1'#18'AnchorSideTop.Side' +#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Si' +'de'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBot' +'tom.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#3#147#0#3'Top'#3'?'#1#5'Wid' +'th'#3'y'#3#5'Align'#7#8'alBottom'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRigh' +'t'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#19 +'BorderSpacing.Right'#2#10#20'BorderSpacing.Bottom'#2#10#10'Font.Style'#11#6 +'fsBold'#0#13'Lines.Strings'#1#6#5'Memo1'#0#10'ParentFont'#8#8'ReadOnly'#9#10 +'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#2#0#0#11'TRadioGroup'#11'RadioGr' +'oup1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'L' +'abel1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#3#7#1#3 +'Top'#2'('#5'Width'#3'x'#1#8'AutoFill'#9#18'BorderSpacing.Left'#2#10#17'Bord' +'erSpacing.Top'#2#10#7'Caption'#6#9'au choix:'#28'ChildSizing.LeftRightSpaci' +'ng'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizont' +'al'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crs' +'HomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds' +#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7 +#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#18'On' +'SelectionChanged'#7#27'RadioGroup1SelectionChanged'#8'TabOrder'#2#3#0#0#5'T' +'Edit'#13'Edit_quantite'#22'AnchorSideLeft.Control'#7#11'RadioGroup1'#19'Anc' +'horSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#11'RadioGroup1' +#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#140#1#6'Height'#2#28#3'Top' +#3#157#0#5'Width'#3#134#0#18'BorderSpacing.Left'#2#10#10'OnKeyPress'#7#21'Ed' +'it_quantiteKeyPress'#8'TabOrder'#2#4#0#0#6'TLabel'#11'Label_unite'#22'Ancho' +'rSideLeft.Control'#7#13'Edit_quantite'#19'AnchorSideLeft.Side'#7#9'asrBotto' +'m'#21'AnchorSideTop.Control'#7#13'Edit_quantite'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#3#28#2#6'Height'#2#20#3'Top'#3#161#0#5'Width'#2#28#18'Bo' +'rderSpacing.Left'#2#10#7'Caption'#6#4'toto'#11'ParentColor'#8#0#0#0 ]); dozzaqueux-3.51/saisie_options_indicateur.pas0000750000175000017500000000207313147330070022021 0ustar georgeskgeorgeskunit saisie_options_indicateur; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, Buttons,UnitScaleFont,UChaines; type { Toptions_indicateur } Toptions_indicateur = class(TForm) BitBtn1: TBitBtn; RadioGroup1: TRadioGroup; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var options_indicateur: Toptions_indicateur; implementation { Toptions_indicateur } procedure Toptions_indicateur.FormCreate(Sender: TObject); begin encreation:=true; caption:=rsOptionsPourL2; radiogroup1.Caption:=rsDGradDeCoule; radiogroup1.Items[0]:=rsVerticalEnFo; radiogroup1.Items[1]:=rsHorizontalEn; end; procedure Toptions_indicateur.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I saisie_options_indicateur.lrs} end. dozzaqueux-3.51/unit_imp.lfm0000750000175000017500000001522613147330070016405 0ustar georgeskgeorgeskobject configimpression: Tconfigimpression Left = 888 Height = 423 Top = 187 Width = 466 ActiveControl = spinpourcentagehorizontal BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Configuration de la page pour l''impression' ClientHeight = 423 ClientWidth = 466 DesignTimePPI = 120 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.8.0.4' object GroupBox1: TGroupBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 313 Top = 10 Width = 182 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Position' ClientHeight = 288 ClientWidth = 178 TabOrder = 0 object radiogroupehorizontal: TRadioGroup AnchorSideLeft.Control = GroupBox1 AnchorSideTop.Control = GroupBox1 Left = 10 Height = 126 Top = 10 Width = 111 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Horizontale' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 101 ClientWidth = 107 ItemIndex = 2 Items.Strings = ( 'Droite' 'Gauche' 'Centré' ) TabOrder = 0 end object RadioGroupevertical: TRadioGroup AnchorSideLeft.Control = GroupBox1 AnchorSideTop.Control = radiogroupehorizontal AnchorSideTop.Side = asrBottom Left = 10 Height = 138 Top = 146 Width = 105 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Verticale' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 113 ClientWidth = 101 ItemIndex = 2 Items.Strings = ( 'Haut' 'Bas' 'Centré' ) TabOrder = 1 end end object GroupBox2: TGroupBox AnchorSideTop.Control = GroupBox1 AnchorSideTop.Side = asrBottom Left = 7 Height = 69 Top = 333 Width = 153 BorderSpacing.Top = 10 Caption = 'Nombre de copies' ClientHeight = 44 ClientWidth = 149 TabOrder = 1 object Label1: TLabel AnchorSideLeft.Control = GroupBox2 AnchorSideTop.Control = GroupBox2 AnchorSideTop.Side = asrCenter Left = 10 Height = 20 Top = 12 Width = 58 BorderSpacing.Left = 10 Caption = 'Nombre:' ParentColor = False end object Spinnombrecopies: TSpinEdit AnchorSideLeft.Control = Label1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrCenter Left = 78 Height = 28 Top = 8 Width = 48 BorderSpacing.Left = 10 MinValue = 1 TabOrder = 0 Value = 1 end end object GroupBox3: TGroupBox AnchorSideLeft.Control = GroupBox1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner Left = 202 Height = 106 Top = 10 Width = 211 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Taille (en % de la page)' ClientHeight = 81 ClientWidth = 207 TabOrder = 2 object Label2: TLabel AnchorSideLeft.Control = GroupBox3 AnchorSideTop.Control = GroupBox3 Left = 10 Height = 20 Top = 10 Width = 112 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Horizontalement' ParentColor = False end object Label3: TLabel AnchorSideLeft.Control = GroupBox3 AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 40 Width = 91 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Verticalement' ParentColor = False end object spinpourcentagehorizontal: TSpinEdit AnchorSideLeft.Control = Label2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrCenter Left = 132 Height = 28 Top = 6 Width = 57 BorderSpacing.Left = 10 TabOrder = 0 Value = 100 end object spinpourcentagevertical: TSpinEdit AnchorSideLeft.Control = Label3 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrCenter Left = 111 Height = 28 Top = 36 Width = 57 BorderSpacing.Left = 10 TabOrder = 1 Value = 100 end end object RadioGrouporientation: TRadioGroup AnchorSideLeft.Control = GroupBox1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = GroupBox3 AnchorSideTop.Side = asrBottom Left = 202 Height = 86 Top = 126 Width = 209 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Orientation' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 61 ClientWidth = 205 ItemIndex = 1 Items.Strings = ( 'Portrait' 'Paysage' ) TabOrder = 3 end object BitBtn1: TBitBtn AnchorSideLeft.Control = GroupBox1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RadioGrouporientation AnchorSideTop.Side = asrBottom Left = 202 Height = 180 Top = 222 Width = 150 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 4 end object BitBtn2: TBitBtn AnchorSideLeft.Control = BitBtn1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = BitBtn1 AnchorSideTop.Side = asrCenter Left = 362 Height = 180 Top = 222 Width = 80 BorderSpacing.Left = 10 Cancel = True Caption = 'Annuler' Kind = bkCancel ModalResult = 2 TabOrder = 5 end end dozzaqueux-3.51/pivotgauss.pas0000750000175000017500000001256213147330070016772 0ustar georgeskgeorgeskunit pivotgauss; {$mode objfpc}{$H+} interface uses Classes, SysUtils,math; CONST np=101; TYPE matricereelle=ARRAY OF ARRAY OF float; matriceentiere=ARRAY OF ARRAY OF integer; tableaureel=ARRAY OF float; tableauentier=ARRAY OF integer; tableaustring=array of string; tableaubooleen=array of boolean; function ResoudLineaire(var a:matricereelle; n:integer; var x:tableaureel):boolean; implementation function ResoudLineaire(var a:matricereelle; n:integer; var x:tableaureel):boolean; const ZERO = 1.0E-20; var S : tableaureel; NROW : tableauentier; TEMP,AMAX,XM,SUM : float; FLAG,M,ICHG,I,NN,IMAX,J,JJ,IP,JP,NCOPY,I1,J1,N1,K,N2,LL,KK : integer; ok:boolean; begin setlength(s,n); setlength(nrow,n); ok:=true; if ( OK ) then begin M := N + 1; { STEP 1 } for I := 1 to N do begin S[I-1] := abs( A[I-1,0] ); { initialize row pointer } NROW[I-1] := I; for J := 1 to N do if ( abs( A[I-1,J-1] ) > S[I-1] ) then S[I-1] := abs( A[I-1,J-1] ); if ( S[I-1] <= ZERO ) then OK := false end; NN := N - 1; ICHG := 0; I := 1; { STEP 2 } { elimination process } while ( OK ) and ( I <= NN ) do begin { STEP 3 } IMAX := NROW[I-1]; AMAX := abs( A[IMAX-1,I-1] ) / S[IMAX-1]; IMAX := I; JJ := I + 1; for IP := JJ to N do begin JP := NROW[IP-1]; TEMP := abs(A[JP-1,I-1]/S[JP-1]); if ( TEMP > AMAX ) then begin AMAX := TEMP; IMAX := IP end end; { STEP 4 } { system has no unique solution } if ( AMAX <= ZERO ) then OK := false else begin { STEP 5 } { simulate row interchange } if ( NROW[I-1] <> NROW[IMAX-1] ) then begin ICHG := ICHG + 1; NCOPY := NROW[I-1]; NROW[I-1] := NROW[IMAX-1]; NROW[IMAX-1] := NCOPY end; { STEP 6 } I1 := NROW[I-1]; for J := JJ to N do begin J1 := NROW[J-1]; { STEP 7 } XM := A[J1-1,I-1] / A[I1-1,I-1]; { STEP 8 } for K := JJ to M do A[J1-1,K-1] := A[J1-1,K-1] - XM * A[I1-1,K-1]; { multiplier XM could be saved in A[J1,I] } A[J1-1,I-1] := 0.0 end end; I := I + 1 end; if ( OK ) then begin { STEP 9 } N1 := NROW[N-1]; if ( abs( A[N1-1,N-1] ) <= ZERO ) then OK := false { system has no unique solution } else begin { STEP 10 } { start backward substitution } X[N-1] := A[N1-1,M-1] / A[N1-1,N-1]; { STEP 11 } for K := 1 to NN do begin I := NN - K + 1; JJ := I + 1; N2 := NROW[I-1]; SUM := 0.0; for KK := JJ to N do begin SUM := SUM - A[N2-1,KK-1]*X[KK-1] end; X[I-1] := (A[N2-1,M-1] + SUM) / A[N2-1,I-1] end; { STEP 12 } { procedure completed successfully } end end; { if ( not OK ) then writeln ('System has no unique solution ') } ResoudLineaire:=OK; end; finalize(nrow); finalize(s); end; begin end. dozzaqueux-3.51/unit8.lfm0000750000175000017500000000355413147330070015631 0ustar georgeskgeorgeskobject sasiestyleordonnees: Tsasiestyleordonnees Left = 551 Height = 219 Top = 200 Width = 342 ActiveControl = BitBtn1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Style des points' ClientHeight = 219 ClientWidth = 342 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object RadioGroupstyle: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = BitBtn1 AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 199 Top = 10 Width = 223 Anchors = [akTop, akLeft, akRight, akBottom] AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = 'Style' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 177 ClientWidth = 219 Items.Strings = ( 'Disque' 'Croix (x)' 'Cercle' 'Croix (+)' ) OnClick = RadioGroupstyleClick TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 243 Height = 199 Top = 10 Width = 89 Anchors = [akTop, akRight, akBottom] BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 1 end end dozzaqueux-3.51/unit1.pas0000750000175000017500000300777313147330070015641 0ustar georgeskgeorgeskunit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,Unit_commune, Buttons, ComCtrls, Menus, ExtCtrls, StdCtrls,Grids,pivotgauss,gibbs,Unit2,Math,Unit10, Unit3,Unit_electroneutralite,Unit4,Unit4b,Unit26,Unit26b,LazUTF8, LazFileUtils,FileUtil, CheckLst,UnitGaussJordan,Unit5,Unit29,UnitCalculateurFonction,Unit7,Unit9, Unit8,Unit14, Spin,Unit28,Unit19,Unit12,Unit24,Unit11,Unit13,Unit_imp,Printers, PrintersDlgs,MonImprimante,MonPNG,MonJPEG,MonBitmap,Unit21,Unit23,Unit27,Unit18,Unit16,Unit20,UnitGPL,Unit15,LCLType, UChaines,LazHelpHTML,gettext,translations,Unit17,UnitScaleFont,unitsaisielegende,deplace_legende, Clipbrd,UnitSaisieTailleImage,UTF8Process,saisie_options_indicateur,lclintf,FPImage,GraphUtil {$ifdef windows},windows,shellapi,registry{$endif},charencstreams,Unit_dilution,LCLproc; type indicateur_colore=object ph_debut,ph_fin,ph_debut2,ph_fin2:extended; h_acide,s_acide,v_acide:extended; h_base,s_base,v_base,h_base2,s_base2,v_base2:extended; nombre_saut:integer; nom:string; procedure create(_ph_debut,_ph_fin:extended;_h_acide,_s_acide,_v_acide,_h_base,_s_base,_v_base:extended;_nom:string); procedure create2(_ph_debut,_ph_fin,_ph_debut2,_ph_fin2:extended;_h_acide,_s_acide,_v_acide, _h_base,_s_base,_v_base,_h_base2,_s_base2,_v_base2:extended;_nom:string); function donne_couleur(pH:extended):tcolor; end; type type_echelle=(e_gauche,e_droite); genre_espece=(solvant,solute,precipite); arraytypegenreespece=array of genre_espece; arraytypeechelle=array of type_echelle; arraycouleur=array of tcolor; tableauchaine=array of string; { TForm1 } TForm1 = class(TForm) BitBtn1: TBitBtn; SpeedButton_deplace_legende: TBitBtn; CheckBoxlegendeapart: TCheckBox; SpeedButton17: TBitBtn; SpeedButton16: TBitBtn; SpeedButton15: TBitBtn; SpeedButton14: TBitBtn; SpeedButton13: TBitBtn; SpeedButton12: TBitBtn; SpeedButton10: TBitBtn; SpeedButtonunites: TBitBtn; SpeedButton5: TBitBtn; SpeedButtonfermer: TBitBtn; SpeedButtoncalculer: TBitBtn; SpeedButtontoutdecocher: TBitBtn; SpeedButtontoutcocher: TBitBtn; bitbtn9: TBitBtn; SpeedButtontoutsupprimer: TBitBtn; BitBtn8: TBitBtn; BitBtn1_: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; BitBtn4: TBitBtn; BitBtn4_: TBitBtn; BitBtn6: TBitBtn; BitBtn5: TBitBtn; BitBtn7: TBitBtn; CheckBoxsuperposition: TCheckBox; CheckBoxexp: TCheckBox; CheckBoxlegende: TCheckBox; CheckBoxaxes: TCheckBox; CheckBoxgraduations: TCheckBox; CheckBoxgrilledroite: TCheckBox; CheckBoxgrillegauche: TCheckBox; CheckListBox1: TCheckListBox; CheckListBoxSauve: TCheckListBox; ColorDialog1: TColorDialog; ComboBox1: TComboBox; Editvolumepp: TEdit; Editymaxgauche: TEdit; editymingauche: TEdit; Editymaxdroite: TEdit; Editymindroite: TEdit; editxmax: TEdit; Editxmin: TEdit; Editabscisse: TEdit; Editpourcentage: TEdit; Edittemperature: TEdit; Editvolume: TEdit; Editvolume_burette: TEdit; HTMLHelpDatabase1: THTMLHelpDatabase; Image1: TImage; Label1: TLabel; Label10: TLabel; Label11: TLabel; Label11_: TLabel; Label12: TLabel; Label13: TLabel; Label14_: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; Label20: TLabel; Label19: TLabel; Label1_: TLabel; Label15: TLabel; Label2: TLabel; Label21: TLabel; Label22: TLabel; Label3: TLabel; Label4: TLabel; Label8: TLabel; Label7: TLabel; Label6: TLabel; Label5: TLabel; Label14: TLabel; Label9: TLabel; MainMenu1: TMainMenu; Fichier1: TMenuItem; Autoriserractionsredox1: TMenuItem; Calculdesdrives1: TMenuItem; Memo_resultats_point_particulier: TMemo; MenuItem1: TMenuItem; Exporttableurtexte1: TMenuItem; Chiffressignificatifs1: TMenuItem; Aide1: TMenuItem; AideDozzzaqueux1: TMenuItem; MenuItem10: TMenuItem; MenuItem11: TMenuItem; MenuItem12: TMenuItem; MenuItem13: TMenuItem; MenuItem14: TMenuItem; MenuItem15: TMenuItem; MenuItem16: TMenuItem; MenuItemRaffineRW3: TMenuItem; MenuItemRaffineCSV: TMenuItem; MenuItem_save_brut_rw3: TMenuItem; MenuItem_sauve_brut_csv: TMenuItem; MenuItem_charger_personnel: TMenuItem; MenuItem_charger_exemples: TMenuItem; MenuItem3: TMenuItem; MenuItem5: TMenuItem; LicenseGPL1: TMenuItem; MenuItem6: TMenuItem; MenuItem7: TMenuItem; Apropos1: TMenuItem; Expriencefichierformattableautexte1: TMenuItem; MenuItem8: TMenuItem; MenuItem9: TMenuItem; MenuItem_jpg: TMenuItem; MenuItem_png: TMenuItem; PageControl1_: TPageControl; PageControl2_: TPageControl; PageControl3_: TPageControl; PopupMenuRaffine: TPopupMenu; PopupMenubrut: TPopupMenu; PopupMenu_copie_resultats_1_point: TPopupMenu; PopupMenu_image: TPopupMenu; PrintDialog1: TPrintDialog; PrinterSetupDialog1: TPrinterSetupDialog; ProgressBar1: TProgressBar; Radioechellehorizontale: TRadioGroup; Radioechelleverticaledroite: TRadioGroup; Radioechelleverticalegauche: TRadioGroup; SpeedButton_dilution_: TSpeedButton; SpeedButton_dilution: TSpeedButton; SpeedButton4: TSpeedButton; SpeedButton9: TSpeedButton; SpeedButtonviderburette: TSpeedButton; SpeedButtonx10_: TSpeedButton; SpeedButton_10_: TSpeedButton; StringGridordonnees: TStringGrid; StringGridResultats: TStringGrid; StringGridReactions: TStringGrid; StringGridanionssimples_: TStringGrid; StringGridaqueuxab_: TStringGrid; StringGridaqueuxcomplexes_: TStringGrid; StringGridcationssimples_: TStringGrid; stringgridgazeux_: TStringGrid; StringGridIons_: TStringGrid; stringgridmineraux_: TStringGrid; StringGridMolecules_: TStringGrid; StringGridorganiques_acide_: TStringGrid; StringGridorganiques_alcool_: TStringGrid; StringGridorganiques_alc_: TStringGrid; StringGridorganiques_aldehyd_cetone_: TStringGrid; StringGridorganiques_amid_amin_: TStringGrid; StringGridorganiques_aminoacide_: TStringGrid; StringGridorganiques_benzene_: TStringGrid; StringGridorganiques_complexe_: TStringGrid; stringgridreactifs_burette: TStringGrid; TabSheet10_: TTabSheet; TabSheet11_: TTabSheet; TabSheet12_: TTabSheet; TabSheet13_: TTabSheet; TabSheet14_: TTabSheet; TabSheet15_: TTabSheet; TabSheet2_: TTabSheet; TabSheet3_: TTabSheet; TabSheet4_: TTabSheet; TabSheet5_: TTabSheet; TabSheet6_: TTabSheet; TabSheet7_: TTabSheet; TabSheet8_: TTabSheet; TabSheet9_: TTabSheet; TabSheetAqueux_: TTabSheet; TabSheetga_: TTabSheet; TabSheetorga_: TTabSheet; TabSheetSolides_: TTabSheet; ToolBar1: TToolBar; ToolBar2: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; UneouplusieursdessimulationsfaitesdepuisledernierlancementdeDoz: TMenuItem; Paridentifiantousynonyme2: TMenuItem; Parformulebrute1: TMenuItem; Parfomulebrute1: TMenuItem; Paridentifiantousynonyme1: TMenuItem; OpenDialog1: TOpenDialog; OpenDialog2: TOpenDialog; OpenDialog3: TOpenDialog; PageControl1: TPageControl; PageControl2: TPageControl; PageControl3: TPageControl; PopupMenu1: TPopupMenu; PopupMenu2: TPopupMenu; PopupMenuSuperposer: TPopupMenu; SaveDialog1: TSaveDialog; SaveDialog2: TSaveDialog; SaveDialog3: TSaveDialog; SpeedButton_10: TSpeedButton; SpeedButtonx10: TSpeedButton; SpeedButtonviderbecher: TSpeedButton; stringgridgazeux: TStringGrid; StringGridorganiques_aldehyd_cetone: TStringGrid; StringGridorganiques_aminoacide: TStringGrid; StringGridorganiques_alc: TStringGrid; StringGridorganiques_alcool: TStringGrid; StringGridorganiques_amid_amin: TStringGrid; StringGridorganiques_benzene: TStringGrid; StringGridorganiques_complexe: TStringGrid; StringGridorganiques_acide: TStringGrid; stringgridmineraux: TStringGrid; StringGridMolecules: TStringGrid; StringGridIons: TStringGrid; StringGridaqueuxcomplexes: TStringGrid; StringGridaqueuxab: TStringGrid; StringGridanionssimples: TStringGrid; StringGridcationssimples: TStringGrid; stringgridreactifs_becher: TStringGrid; TabSheet9: TTabSheet; TabSheet8: TTabSheet; TabSheet7: TTabSheet; TabSheet6: TTabSheet; TabSheet5: TTabSheet; TabSheet4: TTabSheet; TabSheet3: TTabSheet; TabSheet2: TTabSheet; TabSheetga: TTabSheet; TabSheetorga: TTabSheet; TabSheetSolides: TTabSheet; TabSheet15: TTabSheet; TabSheet14: TTabSheet; TabSheet13: TTabSheet; TabSheet12: TTabSheet; TabSheet11: TTabSheet; TabSheet10: TTabSheet; TabSheetAqueux: TTabSheet; SpinEdit1pourcent: TUpDown; SpinEdit01pourcent: TUpDown; SpinEdit001pourcent: TUpDown; SpinEdit0001pourcent: TUpDown; Versiondelabase1: TMenuItem; Temporisationfilm1: TMenuItem; MenuItem4: TMenuItem; UtiliserDebyeetHckel1: TMenuItem; MenuItem2: TMenuItem; Nombredepointsdecalcul1: TMenuItem; Options1: TMenuItem; Enregistrerlefilmdelasimulation1: TMenuItem; Jouerunfilmdesimulation1: TMenuItem; N2: TMenuItem; Nouvellesimulation1: TMenuItem; PageControl4: TPageControl; TabSheetchoixcourbes: TTabSheet; TabSheettracecourbes: TTabSheet; TabSheetresultats: TTabSheet; TabSheetverifier: TTabSheet; TabSheeteliminer: TTabSheet; TabSheetChoisir_: TTabSheet; TabSheetchoisir: TTabSheet; Memo1:tmemo; Memo2:tmemo; procedure CheckBoxlegendeapartClick(Sender: TObject); procedure EditabscisseKeyPress(Sender: TObject; var Key: char); procedure EditpourcentageKeyPress(Sender: TObject; var Key: char); procedure EdittemperatureKeyPress(Sender: TObject; var Key: char); procedure EditvolumeChange(Sender: TObject); procedure EditvolumeKeyPress(Sender: TObject; var Key: char); procedure EditvolumeppKeyPress(Sender: TObject; var Key: char); procedure Editvolume_buretteKeyPress(Sender: TObject; var Key: char); procedure editxmaxKeyPress(Sender: TObject; var Key: char); procedure EditxminKeyPress(Sender: TObject; var Key: char); procedure EditymaxdroiteKeyPress(Sender: TObject; var Key: char); procedure EditymaxgaucheKeyPress(Sender: TObject; var Key: char); procedure EditymindroiteKeyPress(Sender: TObject; var Key: char); procedure editymingaucheKeyPress(Sender: TObject; var Key: char); procedure Image1Resize(Sender: TObject); procedure Jouerunfilmdesimulation(Sender: TObject; repertoire:string); procedure AideDozzzaqueux1Click(Sender: TObject); procedure Apropos1Click(Sender: TObject); procedure Autoriserractionsredox1Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn1_Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn3KeyPress(Sender: TObject; var Key: char); procedure BitBtn4Click(Sender: TObject); procedure BitBtn4_Click(Sender: TObject); procedure BitBtn5Click(Sender: TObject); procedure BitBtn6Click(Sender: TObject); procedure BitBtn7Click(Sender: TObject); procedure BitBtn8Click(Sender: TObject); procedure BitBtn9Click(Sender: TObject); procedure Calculdesdrives1Click(Sender: TObject); procedure CheckBoxaxesChange(Sender: TObject); procedure CheckBoxaxesClick(Sender: TObject); procedure CheckBoxexpClick(Sender: TObject); procedure CheckBoxgraduationsClick(Sender: TObject); procedure CheckBoxgrilledroiteClick(Sender: TObject); procedure CheckBoxgrillegaucheClick(Sender: TObject); procedure CheckBoxlegendeClick(Sender: TObject); procedure CheckBoxsuperpositionChange(Sender: TObject); procedure CheckBoxsuperpositionClick(Sender: TObject); procedure CheckListBox1Click(Sender: TObject); procedure CheckListBox1ClickCheck(Sender: TObject); procedure CheckListBox1ItemClick(Sender: TObject; Index: integer); procedure CheckListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure CheckListBoxSauveClickCheck(Sender: TObject); procedure Chiffressignificatifs1Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure EditabscisseClick(Sender: TObject); procedure editxmaxChange(Sender: TObject); procedure EditxminChange(Sender: TObject); procedure EditymaxdroiteChange(Sender: TObject); procedure EditymaxgaucheChange(Sender: TObject); procedure EditymindroiteChange(Sender: TObject); procedure editymingaucheChange(Sender: TObject); procedure Enregistrerlefilmdelasimulation1Click(Sender: TObject); procedure Exporttableurtexte1Click(Sender: TObject); procedure Expriencefichierformattableautexte1Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormResize(Sender: TObject); procedure FormShow(Sender: TObject); procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer ); procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Jouerunfilmdesimulation1Click(Sender: TObject); procedure LicenseGPL1Click(Sender: TObject); procedure MenuItem11Click(Sender: TObject); procedure MenuItem12Click(Sender: TObject); procedure MenuItem14Click(Sender: TObject); procedure MenuItem15Click(Sender: TObject); procedure MenuItem16Click(Sender: TObject); procedure MenuItem8Click(Sender: TObject); procedure MenuItem9Click(Sender: TObject); procedure MenuItemRaffineCSVClick(Sender: TObject); procedure MenuItemRaffineRW3Click(Sender: TObject); procedure MenuItem_charger_exemplesClick(Sender: TObject); procedure MenuItem_charger_personnelClick(Sender: TObject); procedure MenuItem_jpgClick(Sender: TObject); procedure MenuItem_pngClick(Sender: TObject); procedure MenuItem_sauve_brut_csvClick(Sender: TObject); procedure MenuItem_save_brut_rw3Click(Sender: TObject); procedure Nombredepointsdecalcul1Click(Sender: TObject); procedure Nouvellesimulation1Click(Sender: TObject); procedure PageControl4Change(Sender: TObject); procedure PageControl4Changing(Sender: TObject; var AllowChange: Boolean); procedure Parfomulebrute1Click(Sender: TObject); procedure Parformulebrute1Click(Sender: TObject); procedure Paridentifiantousynonyme1Click(Sender: TObject); procedure Paridentifiantousynonyme2Click(Sender: TObject); procedure RadioechellehorizontaleClick(Sender: TObject); procedure RadioechelleverticaledroiteClick(Sender: TObject); procedure RadioechelleverticalegaucheClick(Sender: TObject); procedure SpeedButton10Click(Sender: TObject); procedure SpeedButton11Click(Sender: TObject); procedure SpeedButton12Click(Sender: TObject); procedure SpeedButton13Click(Sender: TObject); procedure SpeedButton14Click(Sender: TObject); procedure SpeedButton15Click(Sender: TObject); procedure SpeedButton16Click(Sender: TObject); procedure SpeedButton17Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); procedure SpeedButton5Click(Sender: TObject); procedure SpeedButton6Click(Sender: TObject); procedure SpeedButton8Click(Sender: TObject); procedure SpeedButton9Click(Sender: TObject); procedure SpeedButtoncalculerClick(Sender: TObject); procedure SpeedButtonfermerClick(Sender: TObject); procedure SpeedButtontoutcocherClick(Sender: TObject); procedure SpeedButtontoutdecocherClick(Sender: TObject); procedure SpeedButtontoutsupprimerClick(Sender: TObject); procedure SpeedButtonunitesClick(Sender: TObject); procedure SpeedButtonviderbecherClick(Sender: TObject); procedure SpeedButtonviderburetteClick(Sender: TObject); procedure SpeedButtonx10Click(Sender: TObject); procedure SpeedButtonx10_Click(Sender: TObject); procedure SpeedButton_10Click(Sender: TObject); procedure SpeedButton_10_Click(Sender: TObject); procedure SpeedButton_deplace_legendeClick(Sender: TObject); procedure SpeedButton_dilutionClick(Sender: TObject); procedure SpeedButton_dilution_Click(Sender: TObject); procedure SpinEdit0001pourcentClick(Sender: TObject; Button: TUDBtnType); procedure SpinEdit001pourcentClick(Sender: TObject; Button: TUDBtnType); procedure SpinEdit01pourcentClick(Sender: TObject; Button: TUDBtnType); procedure SpinEdit1pourcentClick(Sender: TObject; Button: TUDBtnType); procedure StringGridanionssimplesCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridanionssimplesmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridanionssimples_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridanionssimples_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridaqueuxabCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridaqueuxabmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridaqueuxab_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridaqueuxab_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridaqueuxcomplexesCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridaqueuxcomplexesmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridaqueuxcomplexes_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridaqueuxcomplexes_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridcationssimplesCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridcationssimplesmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridcationssimples_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridcationssimples_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure stringgridgazeuxmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure stringgridgazeux_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridIonsCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridIonsmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridIons_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridIons_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure stringgridminerauxCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure stringgridminerauxmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure stringgridmineraux_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure stringgridmineraux_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridMoleculesCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridMoleculesmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridMolecules_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridMolecules_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridordonneesDrawCell(Sender: TObject; aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState); procedure StringGridordonneesmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_acideCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_acidemousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_acide_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_acide_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_alcCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_alcmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_alcoolCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_alcoolmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_alcool_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_alcool_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_alc_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_alc_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_aldehyd_cetoneCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_aldehyd_cetonemousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_aldehyd_cetone_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_aldehyd_cetone_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_amid_aminCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_amid_aminmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_amid_amin_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_amid_amin_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_aminoacideCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_aminoacidemousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_aminoacide_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_aminoacide_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_benzeneCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_benzenemousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_benzene_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_benzene_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_complexeCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_complexemousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridorganiques_complexe_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); procedure StringGridorganiques_complexe_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure stringgridreactifs_bechermousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure stringgridreactifs_burettemousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure StringGridReactionsKeyPress(Sender: TObject; var Key: char); procedure StringGridReactionsSetEditText(Sender: TObject; ACol, ARow: Integer; const Value: string); procedure TabSheetchoisirResize(Sender: TObject); procedure TabSheetChoisir_Resize(Sender: TObject); procedure TabSheetchoixcourbesResize(Sender: TObject); procedure TabSheeteliminerResize(Sender: TObject); procedure TabSheetresultatsResize(Sender: TObject); procedure TabSheetverifierResize(Sender: TObject); procedure Temporisationfilm1Click(Sender: TObject); procedure UneouplusieursdessimulationsfaitesdepuisledernierlancementdeDozClick (Sender: TObject); procedure UpDown1Click(Sender: TObject; Button: TUDBtnType); procedure UtiliserDebyeetHckel1Click(Sender: TObject); function calcule_echelles:boolean; procedure dessinegraphe; procedure Versiondelabase1Click(Sender: TObject); procedure vire_grandeurs_a_tracer; private { private declarations } encreation:boolean; public liste_reacs,liste_ctes:tstrings; { public declarations } end; type_etape=(choisir_becher,choisir_burette,eliminer,verifier,resultats,choisir_courbes,tracer_courbes); style_point=(disque,cercle,croix,plus); procedure RemoveLine(AStringGrid: TStringGrid; ALine: Integer); function isnanorinfinite(x:float):boolean; procedure HSV_RGB( H,S,V:extended; var R,G,B:integer); function EnleveAccents(AText : String) : string; var mc:tmonbitmap; avec_checklistbox1: tstringlist; {} parametre_ligne_commande,creation:boolean; decompte_ligne_commande:integer; nombre_simulations:integer; indice_solvant:integer; indices_solutes,indices_precipites,indices_solutes_inverses,indices_precipites_inverses:array of integer; liste_genre_espece:arraytypegenreespece; calcul_en_cours,arret_demande:boolean; nombre_chiffres_constantes,nombre_chiffres_resultats:integer; liste_noms_e:array of string; tableau_donnees_exp:array of array of float; indice_abscisse_e:integer; premiere_ligne_e,nombre_points_exp:integer; nombre_valeurs_par_ligne_e:integer; separateur_espace_e,mode_experience,mode_superposition :boolean; nombre_points_calcul_faisceau:array of integer; nombre_valeurs_faisceau:integer; liste_valeurs_faisceau:array of float; bouton1pourcent,bouton01pourcent,bouton001pourcent,bouton0001pourcent,temporisation_film:integer; existe_droite,existe_gauche,point_ok,legende_ok,pas_adaptatif,mode_script, mode_faisceau,recalcul_echelles_e:boolean; coucougraduation,coucougrille1,coucougrille2,coucoufond,coucoucadre:tcolor; epaisseur_cadre,indice_ph,indice_poh,nombre_points_calcul_0:integer; var_log_max:float; titregraphe,unitex,unitey1,unitey2,labelx, labely1,labely2,separateur_csv,intermediaire:string; policetitre,policegraduation,policelegende:tfont; grille_echelle_droite,grille_echelle_gauche,cadrepresent,graduationspresentes, legendepresente,empecher_redox_eau,afficher_avertissement_redox, point_decimal_export:boolean; abscisse_min,abscisse_max,ordonnee_gauche_min,ordonnee_gauche_max, ordonnee_droite_min,ordonnee_droite_max:float; liste_echelles, liste_echelles_e:arraytypeechelle; liste_styles_ordonnees,liste_styles_ordonnees_e:array of style_point; liste_couleurs_ordonnees,liste_couleurs_ordonnees_e:arraycouleur; liste_tailles_ordonnees, liste_tailles_ordonnees_e:array of integer; liste_nepastracer_e:array of boolean; liste_epaisseurs_ordonnees,liste_epaisseurs_ordonnees_e:array of integer; liste_tracerok_ordonnees,liste_tracerok_ordonnees_e:array of boolean; parser_abscisse:TCalculateurFonction; parser_ordonnees:array of TCalculateurFonction; liste_variables_abscisse:tableauchaine; nombre_variables_abscisse:integer; liste_variables_ordonnees:array of tableauchaine; nombre_variables_ordonnees:array of integer; nombre_ordonnees:integer; expression_abscisse,expression_abscisse_explicite:string; expression_ordonnees,expression_ordonnees_explicites,liste_legendes:tableauchaine; Form1: TForm1; largeur_col1_reactifs_becher,largeur_col2_reactifs_becher, largeur_col1_reactifs_burette,largeur_col2_reactifs_burette,nombre_points_calcul:integer; etape:type_etape; volume_becher,volume_burette_max,volume_verse,temperature:float; maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0:float; maxiter_0:integer; noms_especes_0,reactions_0,formules_brutes_0, equations_conservation_0,equations_avancements_0:tableaustring; tableau_moles_initiales_0,potentiels_standards_0,tableau_conductivites_0, tableau_charges_0,tableau_rayons_0, conductivites_solutes_0,charges_solutes_0,rayons_solutes_0:tableaureel; nombre_especes_0,nombre_solutes_0,nombre_precipites_0,rang_0,reac_0:integer; matrice_0:matricereelle; nombre_atomes_differents_0:integer; {modif version 2.5} matrice_redox:matricereelle; tableau_moles_initiales_redox:tableaureel; nombre_especes_redox,nombre_atomes_differents_redox,nombre_atomes_redox:integer; noms_especes_redox,formules_brutes_redox:tableaustring; rang_redox,reac_redox:integer; reactions_redox,equations_conservation_redox,equations_avancements_redox:tableaustring; aaa_redox:matricereelle; b_redox:tableaureel; coeff_stoechio_redox:matricereelle; potentiels_standards_redox, deltarG0_redox,logK_redox:tableaureel; nombre_couples_redox:integer; {modif version 2.5} aaa_0,coeff_stoechio_0:matricereelle; b_0, deltarG0_0,logk_0:tableaureel; nombre_initial_moles_solvant_0,limite_inferieure_pas:float; tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0:tableaureel; t_n_a_p_e_solvant_0:tableaureel; t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0:matricereelle; nom_solvant_0:string; debye_0:boolean; noms_solutes_0,noms_precipites_0:tableaustring; var nombre_moles_equilibre_solvant_0:float; {} potentiel_chimique_standard_solvant_0:float; potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0:_nombres_moles; iter_0:integer; enthalpie_libre_0:float; tableau_resultats,tableau_grandeurs_tracees:array of array of float; {} tableau_grandeurs_tracees_faisceau:array of array of array of float; {} ensemble_atomes:tableauentier; old_index:integer; liste_langues:tstringlist; indicateur_present:boolean; indic_ph:indicateur_colore; liste_indic_ph:array of indicateur_colore; nbe_indic_ph:integer; ordonnee_gauche_est_ph, ordonnee_droite_est_ph,abscisse_est_v:boolean; largeur_bande_indic,abscisse_centre_bande_indic,ordonnee_centre_bande_indic:extended; degrade_vertical,debut_translation,debut_elargissement:boolean; Search:sysutils.TSearchRec; ID_lang,nom_ini_file:string; PODirectory: String; f_ini:textfile; x_legende_pourcentage,y_legende_pourcentage:integer; largeur_cadre_legende_relle,hauteur_cadre_legende_relle:extended; largeur_cadre_legende_en_pixels,hauteur_cadre_legende_en_pixels:integer; implementation uses Unit6; label 1888; procedure HSV_RGB( H,S,V:extended; var R,G,B:integer); var var_h,var_i,var_r,var_g,var_b,var_1,var_2,var_3:extended; begin if ( S= 0 ) then begin R := trunc(V * 255); G := trunc(V * 255); B := trunc(V * 255); end else begin var_h := H / 60; if ( var_h =6 ) then var_h := 0; //H must be < 1 var_i := int( var_h ); //Or ... var_i = floor( var_h ) var_1 := V * ( 1 - S ); var_2 := V * ( 1 - S * ( var_h - var_i ) ); var_3 := V * ( 1 - S * ( 1 - ( var_h - var_i ) ) ); if ( var_i =0 ) then begin var_r := V ; var_g := var_3 ; var_b := var_1; end else if ( var_i =1 ) then begin var_r := var_2 ; var_g := V ; var_b := var_1 ; end else if ( var_i = 2 ) then begin var_r := var_1 ; var_g := V ; var_b := var_3 ; end else if ( var_i = 3 ) then begin var_r := var_1 ; var_g := var_2 ; var_b := V; end else if ( var_i = 4 ) then begin var_r := var_3 ; var_g := var_1 ; var_b := V ; end else begin var_r := V ; var_g := var_1 ; var_b := var_2 end; R := trunc(var_r * 255); //RGB results from 0 to 255 G := trunc(var_g * 255); B := trunc(var_b * 255); end; end; procedure indicateur_colore.create(_ph_debut,_ph_fin:extended;_h_acide,_s_acide,_v_acide,_h_base,_s_base,_v_base:extended;_nom:string); begin nombre_saut:=1; ph_debut:=_ph_debut; ph_fin:=_ph_fin; h_acide:=_h_acide; s_acide:=_s_acide/255; v_acide:=_v_acide/255; h_base:=_h_base; s_base:=_s_base/255; v_base:=_v_base/255; nom:=_nom ; end; procedure indicateur_colore.create2(_ph_debut,_ph_fin,_ph_debut2,_ph_fin2:extended;_h_acide,_s_acide,_v_acide, _h_base,_s_base,_v_base,_h_base2,_s_base2,_v_base2:extended;_nom:string); begin nombre_saut:=2; ph_debut:=_ph_debut; ph_fin:=_ph_fin; ph_debut2:=_ph_debut2; ph_fin2:=_ph_fin2; h_acide:=_h_acide; s_acide:=_s_acide/255; v_acide:=_v_acide/255; h_base:=_h_base; s_base:=_s_base/255; v_base:=_v_base/255; h_base2:=_h_base2; s_base2:=_s_base2/255; v_base2:=_v_base2/255; nom:=_nom ; end; function indicateur_colore.donne_couleur(pH:extended):tcolor; var cc,dd,b_a,alpha:extended;rr,gg,bb:integer;hh,ss,vv:extended; function puissance(a,b:extended):extended; begin if (a*b=0) then begin puissance:=1; exit; end; if b=0 then begin puissance:=1; exit; end; if a=0 then begin puissance:=0; exit; end; puissance:=power(a,b); end; begin if ((nombre_saut=1) or ((nombre_saut=2) and (pH220 then hh:=h_acide-alpha*(-h_base+h_acide+360) else hh:=h_acide+alpha*(h_base-h_acide+360); if hh>360 then hh:=hh-360; if hh<0 then hh:=hh+360; end else begin cc:=(pH_debut2+pH_fin2)/2; dd:=(pH_fin2-pH_debut2)/2; b_a:=puissance(10,(pH-cc)/dd); alpha:=1/(1+1/b_a); ss:=s_base+alpha*(s_base2-s_base); vv:=v_base+alpha*(v_base2-v_base); if abs(h_base2-h_base)<220 then hh:=h_base+alpha*(h_base2-h_base) else if (h_base2-h_base)>220 then hh:=h_base-alpha*(-h_base2+h_base+360) else hh:=h_base+alpha*(h_base2-h_base+360); if hh>360 then hh:=hh-360; if hh<0 then hh:=hh+360; end; HSV_RGB(hh,ss,vv,rr,gg,bb); donne_couleur:=rgbtocolor(rr,gg,bb); end; function isnanorinfinite(x:float):boolean; begin result:=(isnan(x) or isinfinite(x)); end; procedure TForm1.MenuItem9Click(Sender: TObject); var n:integer; f:textfile; begin n:=(Sender as TComponent).Tag; if n<=1000 then exit; if liste_langues[n-1000-1]=fallbacklang then exit; application.MessageBox('Pour prendre en compte le changement de langue de l''interface, Dozzzaqueux doit maintenant être arrété. Puis relancez le.','Changement de langue',mb_ok); assignfile(f,(nom_ini_file)); rewrite(f); writeln(f,liste_langues[n-1000-1]+'_'+uppercase(liste_langues[n-1000-1])); writeln(f,liste_langues[n-1000-1]); closefile(f); application.Terminate; end; procedure TForm1.MenuItemRaffineCSVClick(Sender: TObject); var f:textfile; ns,ligne,dede:string; i,j,k:integer; begin savedialog1.FileName:=''; savedialog1.InitialDir:=repertoire_dosage_perso; SaveDialog1.DefaultExt := rsCsv; SaveDialog1.Filter := rsTableurTexte2; if not(savedialog1.Execute) then exit else ns:=savedialog1.FileName; assignfile(f,(ns)); try rewrite(f); except application.MessageBox(pchar(rsImpossibleDe), pchar(rsMaisEuhhhh), mb_ok); tabsheettracecourbes.Refresh; exit; end; {sauvegarde format tableur texte} if ((lowercase(extractfileext(ns))='.csv') or (lowercase(extractfileext(ns))='.txt')) then begin ligne:=expression_abscisse_explicite; for k:=1 to nombre_ordonnees do ligne:=ligne+separateur_csv+expression_ordonnees_explicites[k-1]; writeln(f,ligne); for i:=1 to nombre_points_calcul+1 do begin if not(isnanorinfinite(tableau_grandeurs_tracees[i-1,0])) then ligne:=remplace_point_decimal(floattostr(tableau_grandeurs_tracees[i-1,0])) else ligne:='NAN'; for j:=1 to nombre_ordonnees do if not(isnanorinfinite(tableau_grandeurs_tracees[i-1,j])) then ligne:=ligne+separateur_csv+remplace_point_decimal(floattostr(tableau_grandeurs_tracees[i-1,j])) else ligne:=ligne+separateur_csv+'NAN'; writeln(f,ligne); end; end; closefile(f); end; procedure TForm1.MenuItemRaffineRW3Click(Sender: TObject); var f:textfile; ns,ligne,dede:string; i,j,k:integer; begin savedialog1.FileName:=''; savedialog1.InitialDir:=repertoire_dosage_perso; SaveDialog1.DefaultExt := '.rw3'; SaveDialog1.Filter := 'Regressi (*.rw3)|.rw3'; if not(savedialog1.Execute) then exit else ns:=savedialog1.FileName; assignfile(f,(ns)); try rewrite(f); except application.MessageBox(pchar(rsImpossibleDe), pchar(rsMaisEuhhhh), mb_ok); tabsheettracecourbes.Refresh; exit; end; {sauvagarde format regressi} if (lowercase(extractfileext(ns))='.rw3') then begin writeln(f,'EVARISTE REGRESSI WINDOWS 1.0'); writeln(f,chr(163)+inttostr(1+nombre_ordonnees)+' NOM VAR'); writeln(f,'abscisse'); for i:=1 to nombre_ordonnees do writeln(f,'ord'+inttostr(i)); writeln(f,chr(163)+inttostr(1+nombre_ordonnees)+' GENRE VAR'); for i:=1 to nombre_ordonnees+1 do writeln(f,'0'); writeln(f,chr(163)+inttostr(1+nombre_ordonnees)+' UNITE VAR'); for i:=1 to nombre_ordonnees+1 do writeln(f); writeln(f,chr(163)+inttostr(1+nombre_ordonnees)+' INCERTITUDE'); for i:=1 to nombre_ordonnees+1 do writeln(f); writeln(f,chr(163)+'1 TRIGO'); writeln(f,'0'); writeln(f,chr(163)+'1 LOG'); writeln(f,'0'); writeln(f,chr(163)+inttostr(1+nombre_ordonnees)+' MEMO GRANDEURS'); writeln(f,'''abscisse: '+expression_abscisse_explicite); for i:=1 to nombre_ordonnees do writeln(f,'''ord'+inttostr(i)+': '+expression_ordonnees_explicites[i-1]); writeln(f,chr(163)+'2 ACQUISITION'); writeln(f,'CLAVIER'); writeln(f); writeln(f,chr(163)+'0 GRAPHE VAR'); writeln(f,'&5 X'); writeln(f,'abscisse'); writeln(f); writeln(f); writeln(f); writeln(f); writeln(f,'&5 Y'); writeln(f,'ord1'); writeln(f); writeln(f); writeln(f); writeln(f); writeln(f,'&5 MONDE'); writeln(f,'1'); writeln(f,'1'); writeln(f,'1'); writeln(f,'1'); writeln(f,'1'); writeln(f,'&2 GRADUATION'); writeln(f,'0'); writeln(f,'0'); writeln(f,'&2 ZERO'); writeln(f,'0'); writeln(f,'0'); writeln(f,'&5 OPTIONS'); writeln(f,'8'); writeln(f,'0'); writeln(f,'1'); writeln(f,'3'); writeln(f,'4'); writeln(f,chr(163)+'1 PAGE COMMENT'); writeln(f); writeln(f,'&'+inttostr(nombre_points_calcul+1)+' VALEUR VAR'); for i:=1 to nombre_points_calcul+1 do begin ligne:=''; for j:=0 to nombre_ordonnees do if not(isnanorinfinite(tableau_grandeurs_tracees[i-1,j])) then ligne:=ligne+floattostr( tableau_grandeurs_tracees[i-1,j])+' ' else ligne:=ligne+'0 '; writeln(f, ligne); end; end; {sauvegarde format regressi} closefile(f); tabsheettracecourbes.Refresh; end; procedure TForm1.MenuItem_charger_exemplesClick(Sender: TObject); begin Form1.Jouerunfilmdesimulation(Sender,repertoire_exemples); end; procedure TForm1.MenuItem_charger_personnelClick(Sender: TObject); begin Form1.Jouerunfilmdesimulation(Sender,repertoire_dosage_perso); end; procedure tform1.vire_grandeurs_a_tracer; var i:integer; begin if nombre_ordonnees>0 then for i:=1 to nombre_ordonnees do begin parser_ordonnees[i-1].Destroy; end; setlength(Parser_ordonnees,0); setlength(expression_ordonnees,0); setlength(expression_ordonnees_explicites,0); setlength(liste_variables_ordonnees,0); setlength(nombre_variables_ordonnees,0); setlength(liste_styles_ordonnees,0); setlength(liste_couleurs_ordonnees,0); setlength(liste_tailles_ordonnees,0); setlength(liste_tracerok_ordonnees,0); setlength(liste_epaisseurs_ordonnees,0); nombre_ordonnees:=0; stringgridordonnees.RowCount:=2; for i:=1 to stringgridordonnees.ColCount do stringgridordonnees.Cells[i-1,1]:=''; editabscisse.Text:=''; expression_abscisse:=''; expression_abscisse_explicite:=''; radioechellehorizontale.ItemIndex:=0; editxmin.Text:=''; editxmax.Text:=''; radioechelleverticalegauche.ItemIndex:=0; editymingauche.Text:=''; editymaxgauche.Text:=''; radioechelleverticaledroite.ItemIndex:=0; editymindroite.Text:=''; editymaxdroite.Text:=''; end; procedure TForm1.Versiondelabase1Click(Sender: TObject); begin application.MessageBox(pchar(Format(rsVersionDu, [inttostr(version_base), date_base])), pchar(rsVersionDeLaB), mb_ok); end; function tform1.calcule_echelles:boolean; var i,j,k:integer; label 167,168; begin result:=true; abscisse_min:=0; abscisse_max:=0; if radioechellehorizontale.ItemIndex=1 then begin {echelle horizontale manuelle} try abscisse_min:=mystrtofloat(editxmin.Text); except application.MessageBox(pchar(rsSyntaxeIncor), pchar(rsAttention), mb_ok); result:=false; exit; end; try abscisse_max:=mystrtofloat(editxmax.Text); except application.MessageBox(pchar(rsSyntaxeIncor2), pchar(rsAttention), mb_ok); result:=false; exit; end; if abscisse_min>abscisse_max then begin echange(abscisse_min,abscisse_max); editxmin.Text:=floattostr(abscisse_min); editxmax.Text:=floattostr(abscisse_max); end; end else begin {echelle horizontale automatique} i:=-1; repeat inc(i); until ((not(isnanorinfinite(tableau_grandeurs_tracees[i,0]))) or (i=nombre_points_calcul)); if iabscisse_max then abscisse_max:=tableau_grandeurs_tracees[j,0]; end; end; end; if (abs(abscisse_min-abscisse_max)<=math.max(abs(abscisse_min),abs(abscisse_max))*1e-10) then begin application.MessageBox(pchar(rsLAbscisseMin), pchar(rsTracImpossib), mb_ok); result:=false; exit; end; existe_droite:=false; existe_gauche:=false; if nombre_ordonnees>0 then for i:=1 to nombre_ordonnees do begin existe_droite:=existe_droite or (liste_echelles[i-1]=e_droite); existe_gauche:=existe_gauche or (liste_echelles[i-1]=e_gauche); end; {form1.CheckBoxgrillegauche.Checked:=existe_gauche; form1.CheckBoxgrilledroite.Checked:=existe_droite; } if not(existe_gauche) then begin ordonnee_gauche_min:=0; ordonnee_gauche_max:=10; end; if existe_droite then begin if radioechelleverticaledroite.ItemIndex=1 then begin {echelle verticale droite manuelle} try ordonnee_droite_min:=mystrtofloat(editymindroite.Text); except application.MessageBox(pchar(rsSyntaxeIncor3), pchar(rsAttention), mb_ok); result:=false; exit; end; try ordonnee_droite_max:=mystrtofloat(editymaxdroite.Text); except application.MessageBox(pchar(rsSyntaxeIncor4), pchar(rsAttention), mb_ok); result:=false; exit; end; if ordonnee_droite_min>ordonnee_droite_max then begin echange(ordonnee_droite_min,ordonnee_droite_max); editymindroite.Text:=floattostr(ordonnee_droite_min); editymaxdroite.Text:=floattostr(ordonnee_droite_max); end; end else begin for k:=1 to nombre_ordonnees do if liste_echelles[k-1]=e_droite then for i:=0 to nombre_points_calcul do if not(isnanorinfinite(tableau_grandeurs_tracees[i,k])) then begin ordonnee_droite_min:=tableau_grandeurs_tracees[i,k]; ordonnee_droite_max:=tableau_grandeurs_tracees[i,k]; goto 167; end; 167: for k:=1 to nombre_ordonnees do if liste_echelles[k-1]=e_droite then for i:=0 to nombre_points_calcul do if not(isnanorinfinite(tableau_grandeurs_tracees[i,k])) then begin if tableau_grandeurs_tracees[i,k]ordonnee_droite_max then ordonnee_droite_max:=tableau_grandeurs_tracees[i,k]; end; end; if ( (abs(ordonnee_droite_min-ordonnee_droite_max)<=math.max(abs(ordonnee_droite_min), abs(ordonnee_droite_max))*1e-10) and existe_droite ) then begin application.MessageBox(pchar(rsLOrdonnEMini), pchar(rsTracImpossib), mb_ok); result:=false; exit; end; end; if existe_gauche then begin ordonnee_gauche_min:=0; ordonnee_gauche_max:=0; if radioechelleverticalegauche.ItemIndex=1 then begin {echelle verticale gauche manuelle} try ordonnee_gauche_min:=mystrtofloat(editymingauche.Text); except application.MessageBox(pchar(rsSyntaxeIncor5),pchar( rsAttention), mb_ok); result:=false; exit; end; try ordonnee_gauche_max:=mystrtofloat(editymaxgauche.Text); except application.MessageBox(pchar(rsSyntaxeIncor6), pchar(rsAttention), mb_ok); result:=false; exit; end; if ordonnee_gauche_min>ordonnee_gauche_max then begin echange(ordonnee_gauche_min,ordonnee_gauche_max); editymingauche.Text:=floattostr(ordonnee_gauche_min); editymaxgauche.Text:=floattostr(ordonnee_gauche_max); end; end else begin for k:=1 to nombre_ordonnees do if liste_echelles[k-1]=e_gauche then for i:=0 to nombre_points_calcul do if not(isnanorinfinite(tableau_grandeurs_tracees[i,k])) then begin ordonnee_gauche_min:=tableau_grandeurs_tracees[i,k]; ordonnee_gauche_max:=tableau_grandeurs_tracees[i,k]; goto 168; end; 168: for k:=1 to nombre_ordonnees do if liste_echelles[k-1]=e_gauche then for i:=0 to nombre_points_calcul do if not(isnanorinfinite(tableau_grandeurs_tracees[i,k])) then begin if tableau_grandeurs_tracees[i,k]ordonnee_gauche_max then ordonnee_gauche_max:=tableau_grandeurs_tracees[i,k]; end; end; if ( (abs(ordonnee_gauche_min-ordonnee_gauche_max)<=math.max(abs(ordonnee_gauche_min), abs(ordonnee_gauche_max))*1e-10) and existe_gauche ) then begin application.MessageBox(pchar(rsLOrdonnEMini2), pchar(rsTracImpossib), mb_ok); result:=false; exit; end; end; if mode_experience and recalcul_echelles_e and (nombre_valeurs_par_ligne_e>=2) and (nombre_points_exp>0) then begin if not(existe_gauche) then for i:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[i-1]) then if liste_echelles_e[i-1]=e_gauche then begin ordonnee_gauche_max:=tableau_donnees_exp[0,i]; ordonnee_gauche_min:=tableau_donnees_exp[0,i]; end; if not(existe_droite) then for i:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[i-1]) then if liste_echelles_e[i-1]=e_droite then begin ordonnee_droite_max:=tableau_donnees_exp[0,i]; ordonnee_droite_min:=tableau_donnees_exp[0,i]; end; for i:=1 to nombre_points_exp do if not(isnanorinfinite(tableau_donnees_exp[i-1,0])) then if tableau_donnees_exp[i-1,0]>abscisse_max then abscisse_max:=tableau_donnees_exp[i-1,0] else if tableau_donnees_exp[i-1,0]ordonnee_gauche_max then ordonnee_gauche_max:=tableau_donnees_exp[i-1,j] else if tableau_donnees_exp[i-1,j]ordonnee_droite_max then ordonnee_droite_max:=tableau_donnees_exp[i-1,j] else if tableau_donnees_exp[i-1,j]} finalize(indices_solutes); finalize(indices_precipites); finalize(indices_solutes_inverses); finalize(indices_precipites_inverses); finalize(liste_genre_espece); finalize(ensemble_atomes); finalize(tableau_donnees_exp); finalize(nombre_points_calcul_faisceau); finalize( liste_valeurs_faisceau); finalize(tableau_elements_base); finalize(tableau_elements_mineraux); finalize(tableau_elements_gazeux); finalize(tableau_elements_aqueux); finalize(tableau_elements_organiques); finalize(elements_base_presents); finalize(elements_gazeux_presents); finalize(elements_aqueux_presents); finalize(elements_solides_presents); finalize(elements_organiques_presents); finalize(tableau_periodique); finalize(tableau_cations_simples); finalize(tableau_anions_simples); finalize(tableau_ions); finalize(tableau_molecules); finalize(tableau_complexes); finalize(tableau_ab); finalize(tableau_resultats); finalize(noms_especes_0); finalize(tableau_moles_initiales_0); finalize(matrice_0); finalize(noms_especes_0); finalize(reactions_0); finalize(formules_brutes_0); finalize(potentiels_standards_0); finalize(tableau_conductivites_0); finalize(tableau_charges_0); finalize(tableau_rayons_0); finalize(equations_conservation_0); finalize(equations_avancements_0); finalize(aaa_0); finalize(b_0); finalize(coeff_stoechio_0); finalize(deltarG0_0); finalize(logk_0); finalize(tableau_nombre_initial_moles_solutes_0); finalize(tableau_nombre_initial_moles_precipites_0); finalize(t_n_a_p_e_solvant_0); finalize(t_n_a_p_e_solutes_0); finalize(t_n_a_p_e_precipites_0); finalize(noms_solutes_0); finalize(conductivites_solutes_0); finalize(charges_solutes_0); finalize(rayons_solutes_0); finalize(noms_precipites_0); finalize(nombre_moles_equilibre_solutes_0); {} finalize(activites_solutes_0); finalize(nombre_moles_equilibre_precipites_0); finalize(potentiels_chimiques_standards_solutes_0); finalize(potentiels_chimiques_standards_precipites_0); parser_abscisse.Destroy; for i:=1 to nombre_ordonnees do parser_ordonnees[i-1].Destroy; finalize(parser_ordonnees,0); finalize(liste_variables_abscisse); finalize(liste_variables_ordonnees); finalize(liste_couleurs_ordonnees); finalize(liste_echelles); finalize(liste_styles_ordonnees); finalize(liste_tailles_ordonnees); finalize(liste_epaisseurs_ordonnees); finalize(liste_tracerok_ordonnees); finalize(liste_couleurs_ordonnees_e); finalize(liste_echelles_e); finalize(liste_styles_ordonnees_e); finalize(liste_tailles_ordonnees_e); finalize(liste_nepastracer_e); finalize(liste_epaisseurs_ordonnees_e); finalize(liste_tracerok_ordonnees_e); finalize(liste_noms_e); finalize(expression_ordonnees); finalize(expression_ordonnees_explicites); finalize(nombre_variables_ordonnees); liste_reacs.Free; liste_ctes.Free; finalize(tableau_grandeurs_tracees); finalize(tableau_grandeurs_tracees_faisceau); end; procedure TForm1.SpeedButton4Click(Sender: TObject); var i:integer; s:string; begin if checklistbox1.itemindex>=0 then begin s:=checklistbox1.Items[checklistbox1.itemindex]; i:=indice_element_base(s); if i<>0 then begin application.messagebox(pchar(Format(rsLaFormuleDeE, [s, tableau_elements_base[i- 1].identifiant])), pchar(rsIdentificati), mb_ok); exit; end; {i:=indice_element_gazeux(s); if i<>0 then begin application.messagebox('La formule de '+s+' est: '+ tableau_elements_gazeux[i-1].identifiant,'Identification',[smbok]); exit; end; } i:=indice_element_aqueux(s); if i<>0 then begin if tableau_elements_aqueux[i-1].formule<>'' then application.messagebox(pchar('La formule de '+s+' est: '+ tableau_elements_aqueux[i-1].formule),'Identification',mb_ok) else application.messagebox(pchar('La formule de '+s+' est: '+ tableau_elements_aqueux[i-1].identifiant),'Identification',mb_ok); exit; end; i:=indice_element_mineral(s); if i<>0 then begin if tableau_elements_mineraux[i-1].formule<>'' then application.messagebox(pchar(Format(rsLaFormuleDeE, [s, tableau_elements_mineraux[i-1].formule])), pchar(rsIdentificati), mb_ok) else application.messagebox(pchar(Format(rsLaFormuleDeE, [s, tableau_elements_mineraux[i-1].identifiant])), pchar(rsIdentificati), mb_ok); exit; end; i:=indice_element_organique(s); if i<>0 then begin if tableau_elements_organiques[i-1].formule<>'' then application.messagebox(pchar(Format(rsLaFormuleDeE, [s, tableau_elements_organiques[i-1].formule])), pchar(rsIdentificati), mb_ok) else application.messagebox(pchar(Format(rsLaFormuleDeE, [s, tableau_elements_organiques[i-1].identifiant])), pchar(rsIdentificati), mb_ok); exit; end; end; end; procedure TForm1.SpeedButton5Click(Sender: TObject); begin saisietitre:=tsaisietitre.Create(form1); with saisietitre do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; fontdialog1.Font:=policetitre; Unit11.fontetitre.Assign(policetitre); edittitre.Text:=titregraphe; end; if saisietitre.showmodal=mrok then begin titregraphe:=saisietitre.Edittitre.Text; policetitre.assign(Unit11.fontetitre); Form1.dessinegraphe; end; end; procedure TForm1.SpeedButton6Click(Sender: TObject); var toto:tstringlist; i:integer; begin memo1.Clear; toto:=tstringlist.Create; ReactifsDeFormuleBrute(memo2.Lines[0],toto,true,egal); if toto.Count>0 then for i:=1 to toto.Count do begin memo1.Lines.Add(toto[i-1]); end else memo1.lines.add(rsPasDeReactif); toto.Free; end; procedure TForm1.SpeedButton8Click(Sender: TObject); var nombre_atomes,nombre_especes:integer; a:matricereelle; i,j:integer; toto:string; machin:tableaustring; begin nombre_especes:=memo2.Lines.Count; setlength(machin, nombre_especes); for i:=1 to nombre_especes do machin[i-1]:=memo2.Lines[i-1]; DonneMatriceCoefficients(machin,a,nombre_especes, nombre_atomes); memo1.Clear; for i:=1 to nombre_atomes do begin toto:=''; for j:=1 to nombre_especes do toto:=toto+floattostr(a[i-1,j-1])+' '; memo1.Lines.Add(toto); end; finalize(a); finalize(machin); end; procedure TForm1.SpeedButton9Click(Sender: TObject); begin saisiecouleurs:=tsaisiecouleurs.create(form1); with saisiecouleurs do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; bitbtncouleurfond.Color:=coucoufond; bitbtncouleurgrillegauche.color:=coucougrille1; bitbtncouleurgrilledroite.color:=coucougrille2; bitbtncouleurgraduations.color:=coucougraduation; bitbtncouleuraxes.Color:=coucoucadre; end; saisiecouleurs.ShowModal; Form1.BitBtn7Click(Sender); tabsheettracecourbes.Refresh; end; procedure TForm1.SpeedButtoncalculerClick(Sender: TObject); begin form1.dessinegraphe; end; procedure TForm1.SpeedButtonfermerClick(Sender: TObject); begin mode_1point:=false; speedbuttoncalculer.Visible:=false; SpeedButtonfermer.Visible:=false; Label22.Visible:=false; Label21.Visible:=false; Editvolumepp.Visible:=false; memo_resultats_point_particulier.Visible:=false; memo_resultats_point_particulier.Clear; spinedit1pourcent.Visible:=false; spinedit01pourcent.Visible:=false; spinedit001pourcent.Visible:=false; spinedit0001pourcent.Visible:=false; // form1.Image1.Align:=alclient; form1.Image1.AnchorSideLeft.Control:=tabsheettracecourbes; form1.Image1.AnchorSideLeft.Side:=asrleft; form1.Image1.Anchors:= form1.Image1.Anchors + [akLeft]; form1.dessinegraphe; application.ProcessMessages; tabsheettracecourbes.Refresh; end; procedure TForm1.SpeedButtontoutcocherClick(Sender: TObject); var i:integer; begin for i:=1 to checklistbox1.Items.Count do checklistbox1.Checked[i-1]:=true; end; procedure TForm1.SpeedButtontoutdecocherClick(Sender: TObject); var i:integer; begin for i:=1 to checklistbox1.Items.Count do if avec_checklistbox1[i-1]='false' then checklistbox1.Checked[i-1]:=false; end; procedure TForm1.SpeedButtontoutsupprimerClick(Sender: TObject); begin form1.vire_grandeurs_a_tracer; etape:=choisir_courbes; end; procedure TForm1.SpeedButtonunitesClick(Sender: TObject); begin saisieunites:=tsaisieunites.create(form1); with saisieunites do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; editunitex.Text:=unitex; editunitey1.Text:=unitey1; editunitey2.Text:=unitey2; editlabelx.Text:=labelx; editlabely1.Text:=labely1; editlabely2.Text:=labely2; ShowModal; unitex:=editunitex.Text; unitey1:=editunitey1.Text; unitey2:=editunitey2.Text; labelx:=editlabelx.Text; labely1:=editlabely1.Text; labely2:=editlabely2.Text; end; Form1.dessinegraphe; end; procedure TForm1.SpeedButtonviderbecherClick(Sender: TObject); var i:integer; begin stringgridreactifs_becher.RowCount:=2; etape:=choisir_becher; for i:=1 to stringgridreactifs_becher.ColCount do stringgridreactifs_becher.Cells[i-1,1]:=''; stringgridreactifs_becher.AutoSizeColumns; end; procedure TForm1.SpeedButtonviderburetteClick(Sender: TObject); var i:integer; begin stringgridreactifs_burette.RowCount:=2; etape:=choisir_burette; for i:=1 to stringgridreactifs_burette.ColCount do stringgridreactifs_burette.Cells[i-1,1]:=''; stringgridreactifs_burette.AutoSizeColumns; end; procedure TForm1.SpeedButtonx10Click(Sender: TObject); var i:integer; s:string; begin etape:=choisir_becher; if stringgridreactifs_becher.RowCount>1 then for i:=1 to stringgridreactifs_becher.RowCount-1 do if stringgridreactifs_becher.Cells[2,i]<>'' then stringgridreactifs_becher.Cells[2,i]:=floattostr( 10*mystrtofloat(stringgridreactifs_becher.Cells[2,i])); end; procedure TForm1.SpeedButtonx10_Click(Sender: TObject); var i:integer; begin etape:=choisir_burette; if stringgridreactifs_burette.RowCount>1 then for i:=1 to stringgridreactifs_burette.RowCount-1 do if stringgridreactifs_burette.Cells[2,i]<>'' then stringgridreactifs_burette.Cells[2,i]:=floattostr( mystrtofloat(stringgridreactifs_burette.Cells[2,i])*10); end; procedure TForm1.SpeedButton_10Click(Sender: TObject); var i:integer; begin etape:=choisir_becher; if stringgridreactifs_becher.RowCount>1 then for i:=1 to stringgridreactifs_becher.RowCount-1 do if stringgridreactifs_becher.Cells[2,i]<>'' then stringgridreactifs_becher.Cells[2,i]:=floattostr( mystrtofloat(stringgridreactifs_becher.Cells[2,i])/10); end; procedure TForm1.SpeedButton_10_Click(Sender: TObject); var i:integer; begin etape:=choisir_burette; if stringgridreactifs_burette.RowCount>1 then for i:=1 to stringgridreactifs_burette.RowCount-1 do if stringgridreactifs_burette.Cells[2,i]<>'' then stringgridreactifs_burette.Cells[2,i]:=floattostr( mystrtofloat(stringgridreactifs_burette.Cells[2,i])/10); end; procedure TForm1.SpeedButton_deplace_legendeClick(Sender: TObject); begin with form_deplace_legende do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; form_deplace_legende.TrackBar1.Position:=x_legende_pourcentage; form_deplace_legende.TrackBar2.Position:=100-y_legende_pourcentage; showmodal; end; x_legende_pourcentage:=form_deplace_legende.TrackBar1.Position; y_legende_pourcentage:=100-form_deplace_legende.TrackBar2.Position; form1.dessinegraphe; end; procedure TForm1.SpeedButton_dilutionClick(Sender: TObject); label 666; var repmode,i:integer; begin 666: Form_dilution:=tForm_dilution.create(self); with Form_dilution do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; Form_dilution.Caption:=rsDilutionPour; repmode:=Form_dilution.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; case action_dilution of multiplier_concentrations: begin etape:=choisir_becher; if stringgridreactifs_becher.RowCount>1 then for i:=1 to stringgridreactifs_becher.RowCount-1 do if stringgridreactifs_becher.Cells[2,i]<>'' then stringgridreactifs_becher.Cells[2,i]:=floattostr( facteur*mystrtofloat(stringgridreactifs_becher.Cells[2,i])); end; ajouter_eau: begin try mystrtofloat(editvolume.text); except application.MessageBox(pchar(rsLAncienVolum), pchar(rsAttention2), mb_ok); exit; end; etape:=choisir_becher; if stringgridreactifs_becher.RowCount>1 then for i:=1 to stringgridreactifs_becher.RowCount-1 do if stringgridreactifs_becher.Cells[2,i]<>'' then stringgridreactifs_becher.Cells[2,i]:=floattostr( mystrtofloat(editvolume.text)/(mystrtofloat(editvolume.text)+facteur)*mystrtofloat(stringgridreactifs_becher.Cells[2,i])); editvolume.text:=floattostr(mystrtofloat(editvolume.text)+facteur); end; imposer_volume_total: begin try mystrtofloat(editvolume.text); except application.MessageBox(pchar(rsLAncienVolum), pchar(rsAttention2), mb_ok); exit; end; etape:=choisir_becher; if stringgridreactifs_becher.RowCount>1 then for i:=1 to stringgridreactifs_becher.RowCount-1 do if stringgridreactifs_becher.Cells[2,i]<>'' then stringgridreactifs_becher.Cells[2,i]:=floattostr( mystrtofloat(editvolume.text)/(facteur)*mystrtofloat(stringgridreactifs_becher.Cells[2,i])); editvolume.text:=floattostr(facteur); end; end; end; procedure TForm1.SpeedButton_dilution_Click(Sender: TObject); label 666; var repmode,i:integer; begin 666: Form_dilution:=tForm_dilution.create(self); with Form_dilution do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; Form_dilution.Caption:=rsDilutionPour2; repmode:=Form_dilution.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; case action_dilution of multiplier_concentrations: begin etape:=choisir_burette; if stringgridreactifs_burette.RowCount>1 then for i:=1 to stringgridreactifs_burette.RowCount-1 do if stringgridreactifs_burette.Cells[2,i]<>'' then stringgridreactifs_burette.Cells[2,i]:=floattostr( facteur*mystrtofloat(stringgridreactifs_burette.Cells[2,i])); end; ajouter_eau: begin try mystrtofloat(editvolume_burette.text); except application.MessageBox(pchar(rsLAncienVolum), pchar(rsAttention2), mb_ok); exit; end; etape:=choisir_burette; if stringgridreactifs_burette.RowCount>1 then for i:=1 to stringgridreactifs_burette.RowCount-1 do if stringgridreactifs_burette.Cells[2,i]<>'' then stringgridreactifs_burette.Cells[2,i]:=floattostr( mystrtofloat(editvolume_burette.text)/(mystrtofloat(editvolume_burette.text)+facteur)*mystrtofloat(stringgridreactifs_burette.Cells[2,i])); editvolume_burette.text:=floattostr(mystrtofloat(editvolume_burette.text)+facteur); end; imposer_volume_total: begin try mystrtofloat(editvolume_burette.text); except application.MessageBox(pchar(rsLAncienVolum), pchar(rsAttention2), mb_ok); exit; end; etape:=choisir_burette; if stringgridreactifs_burette.RowCount>1 then for i:=1 to stringgridreactifs_burette.RowCount-1 do if stringgridreactifs_burette.Cells[2,i]<>'' then stringgridreactifs_burette.Cells[2,i]:=floattostr( mystrtofloat(editvolume_burette.text)/(facteur)*mystrtofloat(stringgridreactifs_burette.Cells[2,i])); editvolume_burette.text:=floattostr(facteur); end; end; end; procedure TForm1.SpinEdit0001pourcentClick(Sender: TObject; Button: TUDBtnType); begin if button=btnext then if mystrtofloat(editvolumepp.Text)+0.00091*volume_burette_max*1000<=volume_burette_max*1000 then begin editvolumepp.Text:=floattostr(mystrtofloat(editvolumepp.Text)+0.00001*volume_burette_max*1000); form1.dessinegraphe; tabsheettracecourbes.Refresh; end; if button=btprev then if mystrtofloat(editvolumepp.Text)-0.00001*volume_burette_max*1000>=0 then begin editvolumepp.Text:=floattostr(mystrtofloat(editvolumepp.Text)-0.00001*volume_burette_max*1000); form1.dessinegraphe; tabsheettracecourbes.Refresh; end; SpinEdit0001pourcent.Position:=0; end; procedure TForm1.SpinEdit001pourcentClick(Sender: TObject; Button: TUDBtnType ); begin if button=btnext then if mystrtofloat(editvolumepp.Text)+0.0001*volume_burette_max*1000<=volume_burette_max*1000 then begin editvolumepp.Text:=floattostr(mystrtofloat(editvolumepp.Text)+0.0001*volume_burette_max*1000); form1.dessinegraphe; tabsheettracecourbes.Refresh; end; if button=btprev then if mystrtofloat(editvolumepp.Text)-0.0001*volume_burette_max*1000>=0 then begin editvolumepp.Text:=floattostr(mystrtofloat(editvolumepp.Text)-0.0001*volume_burette_max*1000); form1.dessinegraphe; tabsheettracecourbes.Refresh; end; SpinEdit001pourcent.Position:=0; end; procedure TForm1.SpinEdit01pourcentClick(Sender: TObject; Button: TUDBtnType); begin if button=btnext then if mystrtofloat(editvolumepp.Text)+0.001*volume_burette_max*1000<=volume_burette_max*1000 then begin editvolumepp.Text:=floattostr(mystrtofloat(editvolumepp.Text)+0.001*volume_burette_max*1000); form1.dessinegraphe; tabsheettracecourbes.Refresh; end; if button=btprev then if mystrtofloat(editvolumepp.Text)-0.001*volume_burette_max*1000>=0 then begin editvolumepp.Text:=floattostr(mystrtofloat(editvolumepp.Text)-0.001*volume_burette_max*1000); form1.dessinegraphe; tabsheettracecourbes.Refresh; end; SpinEdit01pourcent.Position:=0; end; procedure TForm1.SpinEdit1pourcentClick(Sender: TObject; Button: TUDBtnType); begin if button=btnext then if mystrtofloat(editvolumepp.Text)+0.01*volume_burette_max*1000<=volume_burette_max*1000 then begin editvolumepp.Text:=floattostr(mystrtofloat(editvolumepp.Text)+0.01*volume_burette_max*1000); form1.dessinegraphe; tabsheettracecourbes.Refresh; end; if button=btprev then if mystrtofloat(editvolumepp.Text)-0.01*volume_burette_max*1000>=0 then begin editvolumepp.Text:=floattostr(mystrtofloat(editvolumepp.Text)-0.01*volume_burette_max*1000); form1.dessinegraphe; tabsheettracecourbes.Refresh; end; SpinEdit1pourcent.Position:=0; end; procedure TForm1.StringGridanionssimplesCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridanionssimples.Cells[ACol, ARow],StringGridanionssimples.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridanionssimples.Cells[ACol, ARow],0)-strtofloatDef(StringGridanionssimples.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridanionssimples.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridanionssimplesmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridanionssimples.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridanionssimples.rowcount-1) and (coco>=0) and (coco<=StringGridanionssimples.ColCount-1) and( StringGridanionssimples.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridanionssimples.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe, [ StringGridanionssimples.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridanionssimples.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridanionssimples.Cells[4,roro])/volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridanionssimples.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridanionssimples.rowcount) and (StringGridanionssimples.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe2, [ StringGridanionssimples.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridanionssimples.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridanionssimples.Cells[4,roro])/volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridanionssimples.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridanionssimples_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridanionssimples_.Cells[ACol, ARow],StringGridanionssimples_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridanionssimples_.Cells[ACol, ARow],0)-strtofloatDef(StringGridanionssimples_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridanionssimples_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridanionssimples_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridanionssimples_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridanionssimples_.rowcount-1) and (coco>=0) and (coco<=StringGridanionssimples_.ColCount-1) and( StringGridanionssimples_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridanionssimples_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe3, [ StringGridanionssimples_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridanionssimples_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridanionssimples_.Cells[4,roro])/volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridanionssimples_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridanionssimples_.rowcount) and (StringGridanionssimples_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe4, [ StringGridanionssimples_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridanionssimples_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridanionssimples_.Cells[4,roro])/volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridanionssimples_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridaqueuxabCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridaqueuxab.Cells[ACol, ARow],StringGridaqueuxab.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridaqueuxab.Cells[ACol, ARow],0)-strtofloatDef(StringGridaqueuxab.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridaqueuxab.SortOrder = soDescending then result := -result; end; function EnleveAccents(AText : String) : string; const Char_Accents = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ'; Char_Sans_Accents = 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn'; var I : Integer; sTemp : String; begin sTemp := AText; For i := 1 to Length(Char_Accents) do //sTemp := FastReplace(sTemp, Char_Accents[i], Char_Sans_Accents[i]); sTemp := StringReplace(sTemp,Char_Accents[i],Char_Sans_Accents[i],[rfReplaceAll]); Result := sTemp; end; procedure TForm1.StringGridaqueuxabmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin application.ProcessMessages; StringGridaqueuxab.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridaqueuxab.rowcount-1) and (coco>=0) and (coco<=StringGridaqueuxab.ColCount-1) and( StringGridaqueuxab.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridaqueuxab.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe5, [ StringGridaqueuxab.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridaqueuxab.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridaqueuxab.Cells[4,roro])/volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridaqueuxab.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridaqueuxab.rowcount) and (StringGridaqueuxab.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe6, [ StringGridaqueuxab.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridaqueuxab.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridaqueuxab.Cells[4,roro])/volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridaqueuxab.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridaqueuxab_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridaqueuxab_.Cells[ACol, ARow],StringGridaqueuxab_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridaqueuxab_.Cells[ACol, ARow],0)-strtofloatDef(StringGridaqueuxab_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridaqueuxab_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridaqueuxab_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridaqueuxab_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridaqueuxab_.rowcount-1) and (coco>=0) and (coco<=StringGridaqueuxab_.ColCount-1) and( StringGridaqueuxab_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridaqueuxab_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe7, [ StringGridaqueuxab_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridaqueuxab_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridaqueuxab_.Cells[4,roro])/volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridaqueuxab_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridaqueuxab_.rowcount) and (StringGridaqueuxab_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe8, [ StringGridaqueuxab_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridaqueuxab_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridaqueuxab_.Cells[4,roro])/volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridaqueuxab_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridaqueuxcomplexesCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridaqueuxcomplexes.Cells[ACol, ARow],StringGridaqueuxcomplexes.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridaqueuxcomplexes.Cells[ACol, ARow],0)-strtofloatDef(StringGridaqueuxcomplexes.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridaqueuxcomplexes.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridaqueuxcomplexesmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridaqueuxcomplexes.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridaqueuxcomplexes.rowcount-1) and (coco>=0) and (coco<=StringGridaqueuxcomplexes.ColCount-1) and( StringGridaqueuxcomplexes.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridaqueuxcomplexes.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe9, [ StringGridaqueuxcomplexes.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridaqueuxcomplexes.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridaqueuxcomplexes.Cells[4,roro])/volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridaqueuxcomplexes.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridaqueuxcomplexes.rowcount) and (StringGridaqueuxcomplexes.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe10, [ StringGridaqueuxcomplexes.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridaqueuxcomplexes.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridaqueuxcomplexes.Cells[4,roro])/volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridaqueuxcomplexes.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridaqueuxcomplexes_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridaqueuxcomplexes_.Cells[ACol, ARow],StringGridaqueuxcomplexes_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridaqueuxcomplexes_.Cells[ACol, ARow],0)-strtofloatDef(StringGridaqueuxcomplexes_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridaqueuxcomplexes_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridaqueuxcomplexes_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridaqueuxcomplexes_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridaqueuxcomplexes_.rowcount-1) and (coco>=0) and (coco<=StringGridaqueuxcomplexes_.ColCount-1) and( StringGridaqueuxcomplexes_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridaqueuxcomplexes_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe11, [ StringGridaqueuxcomplexes_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridaqueuxcomplexes_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridaqueuxcomplexes_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridaqueuxcomplexes_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridaqueuxcomplexes_.rowcount) and (StringGridaqueuxcomplexes_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe12, [ StringGridaqueuxcomplexes_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridaqueuxcomplexes_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridaqueuxcomplexes_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridaqueuxcomplexes_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridcationssimplesCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridcationssimples.Cells[ACol, ARow],StringGridcationssimples.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridcationssimples.Cells[ACol, ARow],0)-strtofloatDef(StringGridcationssimples.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridcationssimples.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridcationssimplesmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; deja_entre:boolean; repmode:integer; label 555,666; begin StringGridcationssimples.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridcationssimples.rowcount-1) and (coco>=0) and (coco<=StringGridcationssimples.ColCount-1) and( StringGridcationssimples.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridcationssimples.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe13, [ StringGridcationssimples.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridcationssimples.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridcationssimples.Cells[4,roro])/volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridcationssimples.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridcationssimples.rowcount) and (StringGridcationssimples.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe14, [ StringGridcationssimples.Cells[0, roro]]); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridcationssimples.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridcationssimples.Cells[4,roro])/volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridcationssimples.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridcationssimples_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridcationssimples_.Cells[ACol, ARow],StringGridcationssimples_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridcationssimples_.Cells[ACol, ARow],0)-strtofloatDef(StringGridcationssimples_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridcationssimples_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridcationssimples_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; deja_entre:boolean; repmode:integer; label 555,666; begin StringGridcationssimples_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridcationssimples_.rowcount-1) and (coco>=0) and (coco<=StringGridcationssimples_.ColCount-1) and( StringGridcationssimples_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridcationssimples_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe15, [ StringGridcationssimples_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridcationssimples_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridcationssimples_.Cells[4,roro])/volume_burette_max )else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridcationssimples_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridcationssimples_.rowcount) and (StringGridcationssimples_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe16, [ StringGridcationssimples_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridcationssimples_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridcationssimples_.Cells[4,roro])/volume_burette_max )else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridcationssimples_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.stringgridgazeuxmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridgazeux.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridgazeux.rowcount-1) and (coco>=0) and (coco<=StringGridgazeux.ColCount-1) and( StringGridgazeux.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridgazeux.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe17, [ StringGridgazeux.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridgazeux.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridgazeux.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridgazeux.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridgazeux.rowcount) and (StringGridgazeux.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe18, [ StringGridgazeux.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridgazeux.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridgazeux.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridgazeux.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.stringgridgazeux_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridgazeux_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridgazeux_.rowcount-1) and (coco>=0) and (coco<=StringGridgazeux_.ColCount-1) and( StringGridgazeux_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridgazeux_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe19, [ StringGridgazeux_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridgazeux_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridgazeux_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridgazeux_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridgazeux_.rowcount) and (StringGridgazeux_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe20, [ StringGridgazeux_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridgazeux_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridgazeux_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridgazeux_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridIonsCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridIons.Cells[ACol, ARow],StringGridIons.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridIons.Cells[ACol, ARow],0)-strtofloatDef(StringGridIons.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridIons.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridIonsmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridions.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridions.rowcount-1) and (coco>=0) and (coco<=StringGridions.ColCount-1) and( StringGridions.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridions.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe21, [StringGridions.Cells[ 0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridions.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridions.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridions.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridions.rowcount) and (StringGridions.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe22, [StringGridions.Cells[ 0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridions.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridions.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridions.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridIons_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridIons_.Cells[ACol, ARow],StringGridIons_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridIons_.Cells[ACol, ARow],0)-strtofloatDef(StringGridIons_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridIons_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridIons_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridions_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridions_.rowcount-1) and (coco>=0) and (coco<=StringGridions_.ColCount-1) and( StringGridions_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridions_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe23, [StringGridions_.Cells [0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridions_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridions_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridions_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridions_.rowcount) and (StringGridions_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe24, [StringGridions_.Cells [0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridions_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridions_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridions_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.stringgridminerauxCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<>1 then begin result:=UTF8CompareText(stringgridmineraux.Cells[ACol, ARow],stringgridmineraux.Cells[BCol, BRow]); end; if acol=1 then begin res:=strtofloatDef(stringgridmineraux.Cells[ACol, ARow],0)-strtofloatDef(stringgridmineraux.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if stringgridmineraux.SortOrder = soDescending then result := -result; end; procedure TForm1.stringgridminerauxmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridmineraux.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridmineraux.rowcount-1) and (coco>=0) and (coco<=StringGridmineraux.ColCount-1) and( StringGridmineraux.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridmineraux.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe25, [ StringGridmineraux.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridmineraux.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridmineraux.Cells[1,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridmineraux.Cells[1,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridmineraux.rowcount) and (StringGridmineraux.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe26, [ StringGridmineraux.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridmineraux.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridmineraux.Cells[1,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridmineraux.Cells[1,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.stringgridmineraux_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<>1 then begin result:=UTF8CompareText(stringgridmineraux_.Cells[ACol, ARow],stringgridmineraux_.Cells[BCol, BRow]); end; if acol=1 then begin res:=strtofloatDef(stringgridmineraux_.Cells[ACol, ARow],0)-strtofloatDef(stringgridmineraux_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if stringgridmineraux_.SortOrder = soDescending then result := -result; end; procedure TForm1.stringgridmineraux_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridmineraux_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridmineraux_.rowcount-1) and (coco>=0) and (coco<=StringGridmineraux_.ColCount-1) and( StringGridmineraux_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridmineraux_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe27, [ StringGridmineraux_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridmineraux_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridmineraux_.Cells[1,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridmineraux_.Cells[1,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridmineraux_.rowcount) and (StringGridmineraux_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe28, [ StringGridmineraux_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridmineraux_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridmineraux_.Cells[1,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridmineraux_.Cells[1,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridMoleculesCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridMolecules.Cells[ACol, ARow],StringGridMolecules.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridMolecules.Cells[ACol, ARow],0)-strtofloatDef(StringGridMolecules.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridMolecules.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridMoleculesmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridmolecules.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridmolecules.rowcount-1) and (coco>=0) and (coco<=StringGridmolecules.ColCount-1) and( StringGridmolecules.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridmolecules.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe29, [ StringGridmolecules.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridmolecules.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridmolecules.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridmolecules.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridmolecules.rowcount) and (StringGridmolecules.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe30, [ StringGridmolecules.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridmolecules.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridmolecules.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridmolecules.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridMolecules_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridMolecules_.Cells[ACol, ARow],StringGridMolecules_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridMolecules_.Cells[ACol, ARow],0)-strtofloatDef(StringGridMolecules_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridMolecules_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridMolecules_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridmolecules_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridmolecules_.rowcount-1) and (coco>=0) and (coco<=StringGridmolecules_.ColCount-1) and( StringGridmolecules_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridmolecules_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe31, [ StringGridmolecules_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridmolecules_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridmolecules_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridmolecules_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridmolecules_.rowcount) and (StringGridmolecules_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe32, [ StringGridmolecules_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridmolecules_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridmolecules_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridmolecules_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridordonneesDrawCell(Sender: TObject; aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState); begin if ((0width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; expression_explicite_vers_expression(stringgridordonnees.Cells[1,roro],dede); 222: saisieexpression.Editexpression.Text:=dede; if saisieexpression.showmodal<>mrok then exit; stringgridordonnees.Cells[1,roro]:=unit6.expression_explicite; stringgridordonnees.AutoSizeColumns; if expression_ordonnees_explicites[roro-1]<>unit6.expression_explicite then etape:=choisir_courbes; expression_ordonnees[roro-1]:=unit6.expression; expression_vers_expression_explicite( expression_ordonnees[roro-1],dede, liste_variables_ordonnees[roro-1],nombre_variables_ordonnees[roro-1]); if expression_ordonnees_explicites[roro-1]<>unit6.expression_explicite then begin stringgridordonnees.Cells[8,roro]:=dede; liste_legendes[roro-1]:=dede; end; expression_ordonnees_explicites[roro-1]:=dede; if nombre_variables_ordonnees[roro-1]>0 then Parser_ordonnees[roro-1].Create(expression_ordonnees[roro-1], liste_variables_ordonnees[roro-1],nombre_variables_ordonnees[roro-1]); end; {changement couleur} if coco=4 then if colordialog1.Execute then begin etape:=choisir_courbes; liste_couleurs_ordonnees[roro-1]:=colordialog1.color; end; {changement cote echelle} if coco=7 then begin etape:=choisir_courbes; if liste_echelles[roro-1]=e_gauche then begin liste_echelles[roro-1]:=e_droite; stringgridordonnees.Cells[7, roro]:=rsDroite; end else begin liste_echelles[roro-1]:=e_gauche; stringgridordonnees.Cells[7, roro]:=rsGauche; end; end; {changement taille} if coco=3 then begin saisietaillepoints:=tsaisietaillepoints.Create(form1); with saisietaillepoints do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisietaillepoints.SpinEdit1.Value:=liste_tailles_ordonnees[roro-1]; saisietaillepoints.ShowModal; if liste_tailles_ordonnees[roro-1]<>saisietaillepoints.SpinEdit1.Value then etape:=choisir_courbes; liste_tailles_ordonnees[roro-1]:=saisietaillepoints.SpinEdit1.Value; stringgridordonnees.Cells[3,roro]:=inttostr(liste_tailles_ordonnees[roro-1]); end; {chzngement joindre} if coco=5 then begin etape:=choisir_courbes; if liste_tracerok_ordonnees[roro-1] then begin liste_tracerok_ordonnees[roro-1]:=false; stringgridordonnees.Cells[5, roro]:=rsNON; end else begin liste_tracerok_ordonnees[roro-1]:=true; stringgridordonnees.Cells[5, roro]:=rsOUI; end; end; {changement epaisseur} if coco=6 then begin saisieepaisseur:=tsaisieepaisseur.Create(form1); with saisieepaisseur do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisieepaisseur.SpinEdit1.Value:=liste_epaisseurs_ordonnees[roro-1]; saisieepaisseur.ShowModal; if liste_epaisseurs_ordonnees[roro-1]<>saisieepaisseur.SpinEdit1.Value then etape:=choisir_courbes; liste_epaisseurs_ordonnees[roro-1]:=saisieepaisseur.SpinEdit1.Value; stringgridordonnees.Cells[6,roro]:=inttostr(liste_epaisseurs_ordonnees[roro-1]); end; {changement légende} if coco=8 then begin Form_saisie_legende:=tForm_saisie_legende.Create(self); with Form_saisie_legende do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; edit1.Text:=stringgridordonnees.Cells[8,roro]; end; Form_saisie_legende.ShowModal; stringgridordonnees.Cells[8,roro]:=Form_saisie_legende.Edit1.Text; liste_legendes[roro-1]:=Form_saisie_legende.Edit1.Text; stringgridordonnees.AutoSizeColumns; end; {changement style} if coco=2 then begin sasiestyleordonnees:=tsasiestyleordonnees.create(form1); with sasiestyleordonnees do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; case liste_styles_ordonnees[roro-1] of disque: sasiestyleordonnees.RadioGroupstyle.ItemIndex:=0; croix: sasiestyleordonnees.RadioGroupstyle.ItemIndex:=1; plus: sasiestyleordonnees.RadioGroupstyle.ItemIndex:=3; cercle: sasiestyleordonnees.RadioGroupstyle.ItemIndex:=2; end; sasiestyleordonnees.ShowModal; case sasiestyleordonnees.RadioGroupstyle.ItemIndex of 0: begin liste_styles_ordonnees[roro-1]:=disque; stringgridordonnees.Cells[2,roro]:=' .'; end; 1: begin liste_styles_ordonnees[roro-1]:=croix; stringgridordonnees.Cells[2,roro]:=' x'; end; 2: begin liste_styles_ordonnees[roro-1]:=cercle; stringgridordonnees.Cells[2,roro]:=' o'; end; 3:begin liste_styles_ordonnees[roro-1]:=plus; stringgridordonnees.Cells[2,roro]:=' +'; end;end; end; {suppression d'une ordonnee} if coco=0 then begin if ((roro0 then Parser_ordonnees[roro-1].Create(expression_ordonnees[roro-1], liste_variables_ordonnees[roro-1],nombre_variables_ordonnees[roro-1]); liste_styles_ordonnees[roro-1]:=liste_styles_ordonnees[nombre_ordonnees-1]; liste_couleurs_ordonnees[roro-1]:=liste_couleurs_ordonnees[nombre_ordonnees-1]; liste_tailles_ordonnees[roro-1]:=liste_tailles_ordonnees[nombre_ordonnees-1]; liste_epaisseurs_ordonnees[roro-1]:=liste_epaisseurs_ordonnees[nombre_ordonnees-1]; liste_tracerok_ordonnees[roro-1]:=liste_tracerok_ordonnees[nombre_ordonnees-1]; liste_echelles[roro-1]:=liste_echelles[nombre_ordonnees-1]; {stringgridordonnees.cells[2,roro]:=dede;} stringgridordonnees.Rows[roro]:=stringgridordonnees.Rows[nombre_ordonnees]; stringgridordonnees.Repaint; end; parser_ordonnees[nombre_ordonnees-1].Destroy; setlength(liste_legendes,nombre_ordonnees-1); setlength(Parser_ordonnees,nombre_ordonnees-1); setlength(expression_ordonnees,nombre_ordonnees-1); setlength(expression_ordonnees_explicites,nombre_ordonnees-1); setlength(liste_variables_ordonnees,nombre_ordonnees-1); setlength(nombre_variables_ordonnees,nombre_ordonnees-1); setlength(liste_styles_ordonnees,nombre_ordonnees-1); setlength(liste_couleurs_ordonnees,nombre_ordonnees-1); setlength(liste_tailles_ordonnees,nombre_ordonnees-1); setlength(liste_tracerok_ordonnees,nombre_ordonnees-1); setlength(liste_epaisseurs_ordonnees,nombre_ordonnees-1); setlength(liste_echelles,nombre_ordonnees-1); dec(nombre_ordonnees); etape:=choisir_courbes; if nombre_ordonnees>0 then stringgridordonnees.RowCount:=1+nombre_ordonnees else begin stringgridordonnees.RowCount:=2; for i:=1 to stringgridordonnees.ColCount do stringgridordonnees.Cells[i-1,1]:=''; end; end; end; procedure TForm1.StringGridorganiques_acideCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_acide.Cells[ACol, ARow],StringGridorganiques_acide.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_acide.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_acide.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_acide.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_acidemousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_acide.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_acide.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_acide.ColCount-1) and( StringGridorganiques_acide.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridorganiques_acide.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe33, [ StringGridorganiques_acide.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridorganiques_acide.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_acide.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_acide.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_acide.rowcount) and (StringGridorganiques_acide.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe34, [ StringGridorganiques_acide.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridorganiques_acide.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_acide.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_acide.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_acide_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_acide_.Cells[ACol, ARow],StringGridorganiques_acide_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_acide_.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_acide_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_acide_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_acide_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_acide_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_acide_.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_acide_.ColCount-1) and( StringGridorganiques_acide_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridorganiques_acide_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe35, [ StringGridorganiques_acide_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridorganiques_acide_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_acide_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_acide_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_acide_.rowcount) and (StringGridorganiques_acide_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe36, [ StringGridorganiques_acide_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridorganiques_acide_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_acide_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_acide_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_alcCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_alc.Cells[ACol, ARow],StringGridorganiques_alc.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_alc.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_alc.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_alc.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_alcmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_alc.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_alc.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_alc.ColCount-1) and( StringGridorganiques_alc.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridorganiques_alc.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe37, [ StringGridorganiques_alc.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridorganiques_alc.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_alc.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_alc.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_alc.rowcount) and (StringGridorganiques_alc.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe38, [ StringGridorganiques_alc.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridorganiques_alc.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_alc.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_alc.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_alcoolCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_alcool.Cells[ACol, ARow],StringGridorganiques_alcool.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_alcool.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_alcool.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_alcool.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_alcoolmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_alcool.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_alcool.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_alcool.ColCount-1) and( StringGridorganiques_alcool.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridorganiques_alcool.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe39, [ StringGridorganiques_alcool.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridorganiques_alcool.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_alcool.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_alcool.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_alcool.rowcount) and (StringGridorganiques_alcool.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe40, [ StringGridorganiques_alcool.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridorganiques_alcool.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_alcool.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_alcool.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_alcool_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_alcool_.Cells[ACol, ARow],StringGridorganiques_alcool_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_alcool_.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_alcool_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_alcool_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_alcool_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_alcool_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_alcool_.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_alcool_.ColCount-1) and( StringGridorganiques_alcool_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridorganiques_alcool_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe41, [ StringGridorganiques_alcool_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridorganiques_alcool_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_alcool_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_alcool_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_alcool_.rowcount) and (StringGridorganiques_alcool_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe42, [ StringGridorganiques_alcool_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridorganiques_alcool_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_alcool_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_alcool_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_alc_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_alc_.Cells[ACol, ARow],StringGridorganiques_alc_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_alc_.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_alc_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_alc_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_alc_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_alc_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_alc_.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_alc_.ColCount-1) and( StringGridorganiques_alc_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridorganiques_alc_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe43, [ StringGridorganiques_alc_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridorganiques_alc_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_alc_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_alc_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_alc_.rowcount) and (StringGridorganiques_alc_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe44, [ StringGridorganiques_alc_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridorganiques_alc_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_alc_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_alc_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_aldehyd_cetoneCompareCells( Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_aldehyd_cetone.Cells[ACol, ARow],StringGridorganiques_aldehyd_cetone.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_aldehyd_cetone.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_aldehyd_cetone.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_aldehyd_cetone.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_aldehyd_cetonemousedown( Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_aldehyd_cetone.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_aldehyd_cetone.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_aldehyd_cetone.ColCount-1) and( StringGridorganiques_aldehyd_cetone.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridorganiques_aldehyd_cetone.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe45, [ StringGridorganiques_aldehyd_cetone.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridorganiques_aldehyd_cetone.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_aldehyd_cetone.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_aldehyd_cetone.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_aldehyd_cetone.rowcount) and (StringGridorganiques_aldehyd_cetone.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe46, [ StringGridorganiques_aldehyd_cetone.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridorganiques_aldehyd_cetone.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_aldehyd_cetone.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_aldehyd_cetone.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_aldehyd_cetone_CompareCells( Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_aldehyd_cetone_.Cells[ACol, ARow],StringGridorganiques_aldehyd_cetone_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_aldehyd_cetone_.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_aldehyd_cetone_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_aldehyd_cetone_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_aldehyd_cetone_mousedown( Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_aldehyd_cetone_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_aldehyd_cetone_.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_aldehyd_cetone_.ColCount-1) and( StringGridorganiques_aldehyd_cetone_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridorganiques_aldehyd_cetone_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe47, [ StringGridorganiques_aldehyd_cetone_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridorganiques_aldehyd_cetone_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_aldehyd_cetone_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_aldehyd_cetone_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_aldehyd_cetone_.rowcount) and (StringGridorganiques_aldehyd_cetone_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe48, [ StringGridorganiques_aldehyd_cetone_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridorganiques_aldehyd_cetone_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_aldehyd_cetone_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_aldehyd_cetone_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_amid_aminCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_amid_amin.Cells[ACol, ARow],StringGridorganiques_amid_amin.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_amid_amin.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_amid_amin.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_amid_amin.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_amid_aminmousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_amid_amin.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_amid_amin.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_amid_amin.ColCount-1) and( StringGridorganiques_amid_amin.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridorganiques_amid_amin.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe49, [ StringGridorganiques_amid_amin.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridorganiques_amid_amin.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_amid_amin.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_amid_amin.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_amid_amin.rowcount) and (StringGridorganiques_amid_amin.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe50, [ StringGridorganiques_amid_amin.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridorganiques_amid_amin.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_amid_amin.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_amid_amin.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_amid_amin_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_amid_amin_.Cells[ACol, ARow],StringGridorganiques_amid_amin_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_amid_amin_.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_amid_amin_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_amid_amin_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_amid_amin_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_amid_amin_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_amid_amin_.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_amid_amin_.ColCount-1) and( StringGridorganiques_amid_amin_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridorganiques_amid_amin_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe51, [ StringGridorganiques_amid_amin_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridorganiques_amid_amin_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_amid_amin_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_amid_amin_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_amid_amin_.rowcount) and (StringGridorganiques_amid_amin_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe52, [ StringGridorganiques_amid_amin_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridorganiques_amid_amin_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_amid_amin_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_amid_amin_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_aminoacideCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_aminoacide.Cells[ACol, ARow],StringGridorganiques_aminoacide.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_aminoacide.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_aminoacide.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_aminoacide.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_aminoacidemousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_aminoacide.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_aminoacide.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_aminoacide.ColCount-1) and( StringGridorganiques_aminoacide.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridorganiques_aminoacide.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe53, [ StringGridorganiques_aminoacide.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridorganiques_aminoacide.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_aminoacide.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_aminoacide.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_aminoacide.rowcount) and (StringGridorganiques_aminoacide.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe54, [ StringGridorganiques_aminoacide.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridorganiques_aminoacide.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_aminoacide.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_aminoacide.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_aminoacide_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_aminoacide_.Cells[ACol, ARow],StringGridorganiques_aminoacide_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_aminoacide_.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_aminoacide_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_aminoacide_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_aminoacide_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_aminoacide_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_aminoacide_.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_aminoacide_.ColCount-1) and( StringGridorganiques_aminoacide_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridorganiques_aminoacide_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe55, [ StringGridorganiques_aminoacide_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridorganiques_aminoacide_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_aminoacide_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_aminoacide_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_aminoacide_.rowcount) and (StringGridorganiques_aminoacide_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe56, [ StringGridorganiques_aminoacide_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridorganiques_aminoacide_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_aminoacide_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_aminoacide_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_benzeneCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_benzene.Cells[ACol, ARow],StringGridorganiques_benzene.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_benzene.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_benzene.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_benzene.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_benzenemousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_benzene.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_benzene.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_benzene.ColCount-1) and( StringGridorganiques_benzene.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridorganiques_benzene.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe57, [ StringGridorganiques_benzene.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridorganiques_benzene.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_benzene.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_benzene.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_benzene.rowcount) and (StringGridorganiques_benzene.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe58, [ StringGridorganiques_benzene.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridorganiques_benzene.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_benzene.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_benzene.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_benzene_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_benzene_.Cells[ACol, ARow],StringGridorganiques_benzene_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_benzene_.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_benzene_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_benzene_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_benzene_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_benzene_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_benzene_.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_benzene_.ColCount-1) and( StringGridorganiques_benzene_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridorganiques_benzene_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe59, [ StringGridorganiques_benzene_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridorganiques_benzene_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_benzene_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_benzene_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_benzene_.rowcount) and (StringGridorganiques_benzene_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe60, [ StringGridorganiques_benzene_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridorganiques_benzene_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_benzene_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_benzene_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_complexeCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_complexe.Cells[ACol, ARow],StringGridorganiques_complexe.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_complexe.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_complexe.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_complexe.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_complexemousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_complexe.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_complexe.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_complexe.ColCount-1) and( StringGridorganiques_complexe.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_becher.cells[1,i]=StringGridorganiques_complexe.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe61, [ StringGridorganiques_complexe.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_becher.RowCount:= stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; stringgridreactifs_becher.cells[1,stringgridreactifs_becher.RowCount-1]:= StringGridorganiques_complexe.Cells[0,roro]; stringgridreactifs_becher.cells[0,stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_complexe.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_complexe.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_complexe.rowcount) and (StringGridorganiques_complexe.Cells[0,roro]<>'') and (stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe62, [ StringGridorganiques_complexe.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_becher.cells[1,1]:= StringGridorganiques_complexe.Cells[0,roro]; stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_complexe.Cells[4,roro])/ volume_becher)else if unit3.nono1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_becher.cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_complexe.Cells[4,roro])); stringgridreactifs_becher.AutoSizeColumns; exit; end; end; procedure TForm1.StringGridorganiques_complexe_CompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); var res:extended; begin if acol<4 then begin result:=UTF8CompareText(StringGridorganiques_complexe_.Cells[ACol, ARow],StringGridorganiques_complexe_.Cells[BCol, BRow]); end; if acol=4 then begin res:=strtofloatDef(StringGridorganiques_complexe_.Cells[ACol, ARow],0)-strtofloatDef(StringGridorganiques_complexe_.Cells[BCol, BRow],0); if res>0 then result:=1 else if res<0 then result:=-1 else result:=0; end; if StringGridorganiques_complexe_.SortOrder = soDescending then result := -result; end; procedure TForm1.StringGridorganiques_complexe_mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; repmode:integer; deja_entre:boolean; label 555,666; begin StringGridorganiques_complexe_.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=StringGridorganiques_complexe_.rowcount-1) and (coco>=0) and (coco<=StringGridorganiques_complexe_.ColCount-1) and( StringGridorganiques_complexe_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (stringgridreactifs_burette.cells[1,i]=StringGridorganiques_complexe_.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666:saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe63, [ StringGridorganiques_complexe_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; stringgridreactifs_burette.RowCount:= stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; stringgridreactifs_burette.cells[1,stringgridreactifs_burette.RowCount-1]:= StringGridorganiques_complexe_.Cells[0,roro]; stringgridreactifs_burette.cells[0,stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_complexe_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_complexe_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; if ((roro>0) and (roro<=StringGridorganiques_complexe_.rowcount) and (StringGridorganiques_complexe_.Cells[0,roro]<>'') and (stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe64, [ StringGridorganiques_complexe_.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; stringgridreactifs_burette.cells[1,1]:= StringGridorganiques_complexe_.Cells[0,roro]; stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(StringGridorganiques_complexe_.Cells[4,roro])/ volume_burette_max)else if unit3.nono1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then stringgridreactifs_burette.cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(StringGridorganiques_complexe_.Cells[4,roro])); stringgridreactifs_burette.AutoSizeColumns; exit; end; end; procedure TForm1.stringgridreactifs_bechermousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var coco,roro,i:integer; begin stringgridreactifs_becher.MouseToCell(x,y,coco,roro); if ((roro>=1) and (coco=0) and (stringgridreactifs_becher.Cells[coco, roro]= rsSupprimer) and (stringgridreactifs_becher.RowCount>2)) then begin stringgridreactifs_becher.rows[roro]:= stringgridreactifs_becher.Rows[ stringgridreactifs_becher.rowcount-1]; stringgridreactifs_becher.RowCount:=stringgridreactifs_becher.RowCount-1; stringgridreactifs_becher.AutoSizeColumns; etape:=choisir_becher; end else if ((roro=1) and (coco=0) and (stringgridreactifs_becher.Cells[coco, roro]= rsSupprimer) and (stringgridreactifs_becher.RowCount=2)) then begin for i:=1 to stringgridreactifs_becher.colcount do stringgridreactifs_becher.Cells[i-1,1]:=''; stringgridreactifs_becher.AutoSizeColumns; stringgridreactifs_becher.RowCount:=2; etape:=choisir_becher; end else {modif bombre de moles} if ((coco=2) and (stringgridreactifs_becher.Cells[0, roro]=rsSupprimer)) then begin modifnombremole:=tmodifnombremole.create(self); with modifnombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; modifnombremole.Edit1.Text:=stringgridreactifs_becher.Cells[2,roro]; modifnombremole.ShowModal; try mystrtofloat(modifnombremole.Edit1.Text); except application.MessageBox(pchar(rsValeurDeConc), pchar(rsHLas), mb_ok); exit; end; if (modifnombremole.Edit1.Text <>stringgridreactifs_becher.Cells[2,roro]) then etape:=choisir_becher; stringgridreactifs_becher.Cells[2,roro]:=modifnombremole.Edit1.Text; stringgridreactifs_becher.AutoSizeColumns; end; end; procedure TForm1.stringgridreactifs_burettemousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var coco,roro,i:integer; begin stringgridreactifs_burette.MouseToCell(x,y,coco,roro); if ((roro>=1) and (coco=0) and (stringgridreactifs_burette.Cells[coco, roro]= rsSupprimer) and (stringgridreactifs_burette.RowCount>2)) then begin stringgridreactifs_burette.rows[roro]:= stringgridreactifs_burette.Rows[ stringgridreactifs_burette.rowcount-1]; stringgridreactifs_burette.RowCount:=stringgridreactifs_burette.RowCount-1; stringgridreactifs_burette.AutoSizeColumns; etape:=choisir_burette; end else if ((roro=1) and (coco=0) and (stringgridreactifs_burette.Cells[coco, roro]= rsSupprimer) and (stringgridreactifs_burette.RowCount=2)) then begin for i:=1 to stringgridreactifs_burette.colcount do stringgridreactifs_burette.Cells[i-1,1]:=''; stringgridreactifs_burette.RowCount:=2; etape:=choisir_burette; end else {modif bombre de moles} if ((coco=2) and (stringgridreactifs_burette.Cells[0, roro]=rsSupprimer)) then begin modifnombremole:=tmodifnombremole.create(self); with modifnombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; modifnombremole.Edit1.Text:=stringgridreactifs_burette.Cells[2,roro]; modifnombremole.ShowModal; try mystrtofloat(modifnombremole.Edit1.Text); except application.MessageBox(pchar(rsValeurDeConc), pchar(rsHLas), mb_ok); exit; end; if (modifnombremole.Edit1.Text<>stringgridreactifs_burette.Cells[2,roro]) then etape:=choisir_burette; stringgridreactifs_burette.Cells[2,roro]:=modifnombremole.Edit1.Text; stringgridreactifs_burette.AutoSizeColumns; end; end; procedure TForm1.StringGridReactionsKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm1.StringGridReactionsSetEditText(Sender: TObject; ACol, ARow: Integer; const Value: string); begin etape:=verifier; end; procedure TForm1.TabSheetchoisirResize(Sender: TObject); begin end; procedure TForm1.TabSheetChoisir_Resize(Sender: TObject); begin end; procedure TForm1.TabSheetchoixcourbesResize(Sender: TObject); begin end; procedure TForm1.TabSheeteliminerResize(Sender: TObject); begin end; procedure TForm1.TabSheetresultatsResize(Sender: TObject); begin end; procedure TForm1.TabSheetverifierResize(Sender: TObject); begin end; procedure TForm1.Temporisationfilm1Click(Sender: TObject); begin saisietemporisation:=tsaisietemporisation.Create(self); saisietemporisation.SpinEdit1.Value:=temporisation_film; with saisietemporisation do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; showmodal; end; temporisation_film:=saisietemporisation.SpinEdit1.Value; end; procedure TForm1.UneouplusieursdessimulationsfaitesdepuisledernierlancementdeDozClick (Sender: TObject); var i:integer; begin if nombre_simulations<=1 then begin application.MessageBox(pchar(rsUneSeuleSimu), pchar(rsHLas), mb_ok); exit; end; if mode_faisceau then if application.MessageBox(pchar(rsLePassageEnM), pchar(rsAttention), mb_ok+mrno)=mrno then exit; form27:=tform27.create(self); with form27 do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; checklistboxsimulations.Items.Clear; for i:=nombre_simulations-1 downto 1 do checklistboxsimulations.Items.Add(stockage_identifiant_simulation[i-1]); for i:=1 to nombre_simulations-1 do checklistboxsimulations.Checked[i-1]:=stockage_simulation_superposee[nombre_simulations-i-1]; showmodal; end; end; procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType); begin end; procedure TForm1.UtiliserDebyeetHckel1Click(Sender: TObject); begin UtiliserDebyeetHckel1.Checked:= not(UtiliserDebyeetHckel1.Checked); debye_0:=UtiliserDebyeetHckel1.Checked; if ((etape=resultats) or (etape=choisir_courbes) or (etape=tracer_courbes)) then begin etape:=verifier; pagecontrol4.activepage:=tabsheetverifier; bitbtn3click(sender); end; end; procedure TForm1.FormCreate(Sender: TObject); var newmenuitem:tmenuitem; S:sysutils.TSearchRec; il:integer; chemin_po:string; li_ph:tstringlist; j,i,rr,gg,bb,r1,g1,b1,r2,g2,b2,c1,m1,y1,c2,m2,y2,c,m,y:integer; couleur:tcolor; li:tstringlist; __ph_debut,__ph_fin, __ph_debut2,__ph_fin2,__h_a,__s_a,__v_a,__h_b,__s_b, __v_b,__h_b2,__s_b2,__v_b2:extended; __nom:string; __nombre_saut:integer; begin encreation:=true; form1.DoubleBuffered:=true; tabsheettracecourbes.DoubleBuffered:=true; pagecontrol4.ActivePage:=tabsheetchoisir; combobox1.Items.Clear; combobox1.Items.Add('Pas d''indicateur coloré'); try li_ph:=tstringlist.Create; li_ph.LoadFromFile((repertoire_executable+'indic_ph.xml')); decimalseparator:='.'; nbe_indic_ph:=strtoint(li_ph[1]); setlength(liste_indic_ph,nbe_indic_ph); j:=2; for i:=1 to nbe_indic_ph do begin inc(j,3); __nom:=li_ph[j]; //application.MessageBox(pchar(__nom),'',mb_ok); inc(j,3); __nombre_saut:=strtoint(li_ph[j]); inc(j,3); __ph_debut:=mystrtofloat(li_ph[j]); inc(j,3); __ph_fin:=mystrtofloat(li_ph[j]); if __nombre_saut=2 then begin inc(j,3); __ph_debut2:=mystrtofloat(li_ph[j]); inc(j,3); __ph_fin2:=mystrtofloat(li_ph[j]); end; inc(j,3); __h_a:=mystrtofloat(li_ph[j]); inc(j,3); __s_a:=mystrtofloat(li_ph[j]); inc(j,3); __v_a:=mystrtofloat(li_ph[j]); inc(j,3); __h_b:=mystrtofloat(li_ph[j]); inc(j,3); __s_b:=mystrtofloat(li_ph[j]); inc(j,3); __v_b:=mystrtofloat(li_ph[j]); if __nombre_saut=2 then begin inc(j,3); __h_b2:=mystrtofloat(li_ph[j]); inc(j,3); __s_b2:=mystrtofloat(li_ph[j]); inc(j,3); __v_b2:=mystrtofloat(li_ph[j]); end; inc(j,2); if __nombre_saut=1 then liste_indic_ph[i-1].create(__ph_debut,__ph_fin,__h_a,__s_a,__v_a,__h_b,__s_b,__v_b,__nom) else liste_indic_ph[i-1].create2(__ph_debut,__ph_fin,__ph_debut2,__ph_fin2,__h_a,__s_a,__v_a,__h_b,__s_b,__v_b, __h_b2,__s_b2,__v_b2,__nom); if __nombre_saut=1 then combobox1.Items.Add(__nom+'. Virage: de '+floattostr(__ph_debut)+' à '+floattostr(__ph_fin)) else combobox1.Items.Add(__nom+'. Virage: de '+floattostr(__ph_debut)+' à '+floattostr(__ph_fin) +' et de '+floattostr(__ph_debut2)+' à '+floattostr(__ph_fin2)); end; li_ph.Free; except application.MessageBox('Fichier des indicateurs colorés introuvable !','Attention',mb_ok); end; combobox1.ItemIndex:=0; CheckBoxlegendeapart.Caption:=rsLGendePart; editvolume.Hint:=rsChangerCette; editvolume_burette.Hint:=rsChangerCette; Caption := rsDozzzaqueux; menuitem11.Caption:=rsindicateurcolore; TabSheetchoisir.Caption := rsChoixDesRAct3; Label14.Caption := rsBCher; SpeedButtonviderbecher.Caption := rsVider; SpeedButtonx10.Caption := rsX10; speedbutton_dilution.Caption:=rsDilution; speedbutton_dilution_.Caption:=rsDilution; SpeedButton_10.Caption := rs10; Label5.Caption := rsVolumeInitia; Label6.Caption := rsML2; Label7.Caption := rsTempRature; Label8.Caption := rsK; Label1.Caption := rsRActifsChois; Label11.Caption := rsBaseDeRActif; BitBtn4.Caption := rsRechercherUn; PageControl1.Hint := rsPourSLection; TabSheetAqueux.Caption := rsInorganiques; TabSheet10.Caption := rsCationsSimpl; TabSheet11.Caption := rsAnionsSimple; TabSheet12.Caption := rsAcidesEtBase; TabSheet13.Caption := rsComplexesEtD; TabSheet14.Caption := rsIons; TabSheet15.Caption := rsAtomesEtMolC; TabSheetSolides.Caption := rsSolides; TabSheetorga.Caption := rsOrganiques; TabSheet2.Caption := rsAcidesEtBase2; TabSheet3.Caption := rsComplexesLig; TabSheet4.Caption := rsBenzNeEtDRiv; TabSheet5.Caption := rsAminesEtAmid; TabSheet6.Caption := rsAlcools; TabSheet7.Caption := rsAlcanesAlcNe; TabSheet8.Caption := rsAmminoacides; TabSheet9.Caption := rsAldHydesEtCT; BitBtn1.Caption := rsValiderEtPas; TabSheetChoisir_.Caption := rsChoixDesRAct4; Label14_.Caption := rsBurette; SpeedButtonviderburette.Caption := rsVider; SpeedButtonx10_.Caption := rsX10; SpeedButton_10_.Caption := rs10; Label16.Caption := rsVolumeMaxima2; Label15.Caption := rsML2; Label1_.Caption := rsRActifsChois; Label11_.Caption := rsBaseDeRActif; BitBtn4_.Caption := rsRechercherUn; PageControl1_.Hint := rsPourSLection2; TabSheetAqueux_.Caption := rsInorganiques; TabSheet10_.Caption := rsCationsSimpl; TabSheet11_.Caption := rsAnionsSimple; TabSheet12_.Caption := rsAcidesEtBase; TabSheet13_.Caption := rsComplexesEtD; TabSheet14_.Caption := rsIons; TabSheet15_.Caption := rsAtomesEtMolC; TabSheetSolides_.Caption := rsSolides; TabSheetorga_.Caption := rsOrganiques; TabSheet2_.Caption := rsAcidesEtBase2; TabSheet3_.Caption := rsComplexesLig; TabSheet4_.Caption := rsBenzNeEtDRiv; TabSheet5_.Caption := rsAminesEtAmid; TabSheet6_.Caption := rsAlcools; TabSheet7_.Caption := rsAlcanesAlcNe; TabSheet8_.Caption := rsAmminoacides; TabSheet9_.Caption := rsAldHydesEtCT; BitBtn1_.Caption := rsValiderEtPas2; TabSheeteliminer.Caption := rsEspCesPrSent; Label2.Caption := rsVoiciLaListe; Label3.Caption := rsSiVousPensez; SpeedButtontoutdecocher.Caption := rsToutDCocher; Label4.Caption := rsPourObtenirL; SpeedButton4.Caption := rsFormuleBrute; SpeedButtontoutcocher.Caption := rsToutCocher; BitBtn2.Caption := rsValiderEtPas3; TabSheetverifier.Caption := rsRActionsEtCo; Label9.Caption := rsVoiciUnEnsem; Label10.Caption := rsVousPouvezMo; BitBtn3.Caption := rsValiderEtLan; TabSheetresultats.Caption := rsRSultats; BitBtn6.Caption := rsChoisirLesCo; BitBtn5.Hint := rsSauvegarderL; BitBtn5.Caption := rsExportRSulta; TabSheetchoixcourbes.Caption := rsChoixDesCour; Label12.Caption := rsXmin; Label13.Caption := rsXmax; Label19.Caption := rsYmin; Label20.Caption := rsYmax; Label17.Caption := rsYmin; Label18.Caption := rsYmax; SpeedButtontoutsupprimer.Caption := rsToutSupprime; bitbtn9.Caption := rsAjouterUneGr; bitbtn8.Caption := rsDFinirLaGran; Radioechellehorizontale.Caption := rsEchelleHoriz; //Radioechellehorizontale.Items.clear; Radioechellehorizontale.Items[0]:=rsAutomatique; Radioechellehorizontale.Items[1]:=rsManuelle; Radioechelleverticaledroite.Caption:= rsEchelleVerti; // Radioechelleverticaledroite.Items.clear; Radioechelleverticaledroite.Items[0]:=rsAutomatique; Radioechelleverticaledroite.Items[1]:=rsManuelle; Radioechelleverticalegauche.Caption:= rsEchelleVerti2; //Radioechelleverticalegauche.Items.clear; Radioechelleverticalegauche.Items[0]:=rsAutomatique; Radioechelleverticalegauche.Items[1]:=rsManuelle; BitBtn7.Caption:= rsValiderEtTra; // TabSheettracecourbes.Hint:= rsExporterLesR; TabSheettracecourbes.Caption:= rsTracDesCourb; SpeedButtonfermer.Caption:= rsFermer; Label21.Caption:= rsV; Label22.Caption:= rsML2; SpeedButtoncalculer.Caption:= rsCalculer; SpeedButton5.Hint:= rsAjouterModif; SpeedButton5.Caption:= rsTitre; SpeedButtonunites.Hint:= rsAjouterModif2; SpeedButtonunites.Caption:= rsUnitSLabels; SpeedButton9.Hint:= rsModifierCoul; CheckBoxgrillegauche.Caption:= rsGrilleChelle; CheckBoxgrilledroite.Caption:= rsGrilleChelle2; CheckBoxgraduations.Caption:= rsGraduations; CheckBoxaxes.Caption:= rsAxes; CheckBoxlegende.Caption:= rsLGende; CheckBoxexp.Hint:= rsActiverDSact; CheckBoxexp.Caption:= rsExp; CheckBoxsuperposition.Hint:= rsActiverDSact2; CheckBoxsuperposition.Caption:= rsSuperp; SpeedButton10.Caption:= rsExportRSulta2; SpeedButton12.Hint:= rsImprimerLeGr; SpeedButton12.Caption:= rsImprimer; SpeedButton13.Hint:= rsEnregistrerL; SpeedButton13.Caption:= rsExportGraphe; SpeedButton14.Hint:= rsCopierDansLe; SpeedButton14.Caption:= rsCopier; SpeedButton15.Caption:= rsPointParticu; SpeedButton15.Hint:=rsCalculerLesV; SpeedButton16.Hint:= rsEntrerSortir; SpeedButton16.Caption:= rsFaisceau; SpeedButton17.Caption := rsSuperposer; SpeedButton17.Hint:=rsSuperposerLa; SpinEdit1pourcent.Hint:= rs1DuVolumeMax; SpinEdit01pourcent.Hint:= rs01DuVolumeMa; SpinEdit001pourcent.Hint:= rs001DuVolumeM; SpinEdit0001pourcent.Hint:= rs0001DuVolume; Fichier1.Caption:= rsFichier; Nouvellesimulation1.Caption := rsNouvelleSimu; MenuItem_charger_exemples.Caption:=rsDuRPertoireE; MenuItem_charger_personnel.Caption:=rsDeMonRPertoi; SpeedButton_deplace_legende.Caption:=rsDPlacerLGend; SpeedButton_deplace_legende.Hint:=rsDPlacerLGend; menuitem9.Caption:=rsLangue; menuitem12.Caption:=rsSiteWeb; menuitem14.Caption:=rsHistoriqueDe; if liste_langues.Count>0 then for il:=1 to liste_langues.Count do begin newmenuitem:=tmenuitem.Create(mainmenu1); newmenuitem.Caption:=liste_langues[il-1]; newmenuitem.Tag:=1000+il; newmenuitem.OnClick:=@menuitem9click; if liste_langues[il-1]=unit17.fallbacklang then newmenuitem.Checked:=true; menuitem9.add(newmenuitem); end; Enregistrerlefilmdelasimulation1.Caption := rsEnregistrerL2; Jouerunfilmdesimulation1.Caption := rsJouerUnFilmD; Options1.Caption := rsOptions; Nombredepointsdecalcul1.Caption := rsNombreDePoin; Autoriserractionsredox1.Caption := rsAutoriserRAc; UtiliserDebyeetHckel1.Caption := rsUtiliserDeby; Calculdesdrives1.Caption := rsCalculDesDRi; Exporttableurtexte1.Caption := rsExportTableu; Temporisationfilm1.Caption := rsTemporisatio; Chiffressignificatifs1.Caption := rsChiffresSign; Aide1.Caption := rsAide; AideDozzzaqueux1.Caption := rsAideDozzzaqu; LicenseGPL1.Caption := rsLicenseGPL; Versiondelabase1.Caption := rsVersionDeLaB; Apropos1.Caption := rsAPropos; OpenDialog2.Filter := rsFilmSimulati; OpenDialog2.DefaultExt:='.doz'; OpenDialog3.Filter := rsTableurTexte; SaveDialog1.Title := rsEnregistrer; SaveDialog1.DefaultExt := rsCsv; SaveDialog1.Filter := rsTableurTexte2; SaveDialog2.Title := rsEnregistrer; SaveDialog3.Title := rsEnregistrer; SaveDialog3.Filter := rsFilmSimulati; Parfomulebrute1.Caption := rsParFomuleBru; Paridentifiantousynonyme1.Caption := rsParIdentifia; Parformulebrute1.Caption := rsParFormuleBr; Paridentifiantousynonyme2.Caption := rsParIdentifia; Expriencefichierformattableautexte1.Caption := rsExpRienceFic; UneouplusieursdessimulationsfaitesdepuisledernierlancementdeDoz.Caption := rsUneOuPlusieu; SPEEDBUTTON_10.HINT:=rsDiviserLesCo; SPEEDBUTTONx10.HINT:=rsMultiplierLe; SPEEDBUTTON_10_.HINT:=rsDiviserLesCo; SPEEDBUTTONx10_.HINT:=rsMultiplierLe; end; procedure TForm1.FormResize(Sender: TObject); begin end; procedure TForm1.BitBtn1Click(Sender: TObject); var exclus:tstringlist; i,nombre_solutes,nombre_precipites:integer; liste:tstringlist; tyty:float; charge_becher,min_moles:float; label 3012; begin {recherche des syntaxes incorrectes ou nombre de moles negatifs} mode_faisceau:=false; try if ((stringgridreactifs_becher.RowCount>1) and (stringgridreactifs_becher.cells[1,1]<>'')) then for i:=1 to stringgridreactifs_becher.RowCount-1 do begin tyty:=mystrtofloat(stringgridreactifs_becher.cells[2,i]); if tyty<0 then begin application.MessageBox(pchar(Format(rsUnNombreDeMo, ['"', '"'])), pchar(rsAttention), mb_ok); exit; end; end; except application.MessageBox(pchar(rsSyntaxeIllGa), pchar(rsAttention), mb_ok); exit; end; {elimination des especes de nombre de moles nuls} 3012: if stringgridreactifs_becher.RowCount>2 then for i:=1 to stringgridreactifs_becher.RowCount-1 do if mystrtofloat(stringgridreactifs_becher.cells[2,i])=0 then begin RemoveLine(stringgridreactifs_becher,i); goto 3012; end; if ((stringgridreactifs_becher.RowCount=2) and (stringgridreactifs_becher.cells[1,1]<>'') and (mystrtofloat(stringgridreactifs_becher.cells[2,1])=0)) then begin stringgridreactifs_becher.cells[2,1]:=''; stringgridreactifs_becher.cells[1,1]:=''; stringgridreactifs_becher.cells[0,1]:=''; end; charge_becher:=0; min_moles:=1e6; if stringgridreactifs_becher.RowCount>1 then if stringgridreactifs_becher.Cells[1,1]<>'' then for i:=1 to stringgridreactifs_becher.RowCount-1 do begin if mystrtofloat(stringgridreactifs_becher.cells[2,i])0 then charge_becher:=charge_becher+ tableau_elements_base[indice_element_base(stringgridreactifs_becher.cells[1,i])-1].charge* mystrtofloat(stringgridreactifs_becher.cells[2,i]); if indice_element_aqueux(stringgridreactifs_becher.cells[1,i])<>0 then charge_becher:=charge_becher+ tableau_elements_aqueux[indice_element_aqueux(stringgridreactifs_becher.cells[1,i])-1].charge* mystrtofloat(stringgridreactifs_becher.cells[2,i]); if indice_element_organique(stringgridreactifs_becher.cells[1,i])<>0 then charge_becher:=charge_becher+ tableau_elements_organiques[indice_element_organique(stringgridreactifs_becher.cells[1,i])-1].charge* mystrtofloat(stringgridreactifs_becher.cells[2,i]); end; if not(mode_script) then if abs(charge_becher)>min_moles*1e-6 then begin saisie_electroneutralite:=tsaisie_electroneutralite.create(self); if charge_becher<0 then begin {} with saisie_electroneutralite do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; showmodal; end; if saisie_electroneutralite.radiogroup1.ItemIndex=0 then exit; if charge_becher<0 then begin {ajout de K+} if saisie_electroneutralite.Radiogroup1.ItemIndex=2 then if stringgridreactifs_becher.Cols[1].IndexOf('K[+]')<>-1 then stringgridreactifs_becher.Cells[2,stringgridreactifs_becher.Cols[1].IndexOf('K[+]')]:= floattostr(mystrtofloat( stringgridreactifs_becher.Cells[2,stringgridreactifs_becher.Cols[1].IndexOf('K[+]')])+ abs(charge_becher)) else begin stringgridreactifs_becher.RowCount:=stringgridreactifs_becher.RowCount+1; stringgridreactifs_becher.Cells[0, stringgridreactifs_becher.RowCount-1]:= rsSupprimer; stringgridreactifs_becher.Cells[1,stringgridreactifs_becher.RowCount-1]:='K[+]'; stringgridreactifs_becher.Cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(abs(charge_becher)); end; {ajout de Na+} if saisie_electroneutralite.radiogroup1.ItemIndex=3 then if stringgridreactifs_becher.Cols[1].IndexOf('Na[+]')<>-1 then stringgridreactifs_becher.Cells[2,stringgridreactifs_becher.Cols[1].IndexOf('Na[+]')]:= floattostr(mystrtofloat( stringgridreactifs_becher.Cells[2,stringgridreactifs_becher.Cols[1].IndexOf('Na[+]')])+ abs(charge_becher)) else begin stringgridreactifs_becher.RowCount:=stringgridreactifs_becher.RowCount+1; stringgridreactifs_becher.Cells[0, stringgridreactifs_becher.RowCount-1]:= rsSupprimer; stringgridreactifs_becher.Cells[1,stringgridreactifs_becher.RowCount-1]:='Na[+]'; stringgridreactifs_becher.Cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(abs(charge_becher)); end; end; if charge_becher>0 then begin {ajout de Cl-} if saisie_electroneutralite.radiogroup1.ItemIndex=2 then if stringgridreactifs_becher.Cols[1].IndexOf('Cl[-]')<>-1 then stringgridreactifs_becher.Cells[2,stringgridreactifs_becher.Cols[1].IndexOf('Cl[-]')]:= floattostr(mystrtofloat( stringgridreactifs_becher.Cells[2,stringgridreactifs_becher.Cols[1].IndexOf('Cl[-]')])+ abs(charge_becher)) else begin stringgridreactifs_becher.RowCount:=stringgridreactifs_becher.RowCount+1; stringgridreactifs_becher.Cells[0, stringgridreactifs_becher.RowCount-1]:= rsSupprimer; stringgridreactifs_becher.Cells[1,stringgridreactifs_becher.RowCount-1]:='Cl[-]'; stringgridreactifs_becher.Cells[2,stringgridreactifs_becher.RowCount-1]:= floattostr(abs(charge_becher)); end; end; end; try temperature:=mystrtofloat(edittemperature.text); except application.MessageBox(pchar(rsLaValeurDeLa), pchar(rsAttention), mb_ok); exit; end; if temperature<=0 then begin application.MessageBox(pchar(rsLaTempRature), pchar(rsMEnfin), mb_ok); exit; end; try volume_becher:=mystrtofloat(editvolume.text)/1000; except application.MessageBox(pchar(rsLaValeurDuVo), pchar(rsAttention), mb_ok); exit; end; if volume_becher<=0 then begin application.MessageBox(pchar(rsLeVolumeDoit), pchar(rsMEnfin2), mb_ok); exit; end; etape:=choisir_burette; pagecontrol4.ActivePage:=tabsheetchoisir_; end; procedure TForm1.Autoriserractionsredox1Click(Sender: TObject); begin Autoriserractionsredox1.Checked:=not(Autoriserractionsredox1.Checked); empecher_redox_eau:=not(empecher_redox_eau); if (not(empecher_redox_eau) and afficher_avertissement_redox) then begin formavertissement:=tformavertissement.create(form1); formavertissement.showmodal; end; end; procedure TForm1.Apropos1Click(Sender: TObject); begin formapropos:=tformapropos.Create(self); with formapropos do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; showmodal; end; end; procedure TForm1.AideDozzzaqueux1Click(Sender: TObject); var v: THTMLBrowserHelpViewer; BrowserPath, BrowserParams: string; p: LongInt; URL: String; BrowserProcess: TProcessUTF8; begin v:=THTMLBrowserHelpViewer.Create(nil); try v.FindDefaultBrowser(BrowserPath,BrowserParams); //debugln(['Path=',BrowserPath,' Params=',BrowserParams]); url:='file:///'+repertoire_executable+'Aide/dozzzaqueux.html'; p:=System.Pos('%s', BrowserParams); System.Delete(BrowserParams,p,2); System.Insert(URL,BrowserParams,p); // start browser BrowserProcess:=TProcessUTF8.Create(nil); try BrowserProcess.CommandLine:=BrowserPath+' '+BrowserParams; BrowserProcess.Execute; finally BrowserProcess.Free; end; finally v.Free; end; end; procedure TForm1.BitBtn1_Click(Sender: TObject); var exclus:tstringlist; i,kk,nombre_solutes,nombre_precipites:integer; liste:tstringlist; tyty:float; charge_burette,min_moles:float; label 3012; begin mode_faisceau:=false; {recherche des syntaxes incorrectes ou nombre de moles negatifs} try if ((stringgridreactifs_burette.RowCount>1) and (stringgridreactifs_burette.cells[1,1]<>'')) then for i:=1 to stringgridreactifs_burette.RowCount-1 do begin tyty:=mystrtofloat(stringgridreactifs_burette.cells[2,i]); if tyty<0 then begin application.MessageBox(pchar(Format(rsUnNombreDeMo2, ['"', '"'])), pchar(rsAttention), mb_ok); exit; end; end; except application.MessageBox(pchar(rsSyntaxeIllGa), pchar(rsAttention), mb_ok); exit; end; {elimination des especes de nombre de moles nuls} 3012: if stringgridreactifs_burette.RowCount>2 then for i:=1 to stringgridreactifs_burette.RowCount-1 do if mystrtofloat(stringgridreactifs_burette.cells[2,i])=0 then begin RemoveLine(stringgridreactifs_burette,i); goto 3012; end; if ((stringgridreactifs_burette.RowCount=2) and (stringgridreactifs_burette.cells[1,1]<>'') and (mystrtofloat(stringgridreactifs_burette.cells[2,1])=0)) then begin stringgridreactifs_burette.cells[2,1]:=''; stringgridreactifs_burette.cells[1,1]:=''; stringgridreactifs_burette.cells[0,1]:=''; end; charge_burette:=0; min_moles:=1e6; if stringgridreactifs_burette.RowCount>1 then if stringgridreactifs_burette.Cells[1,1]<>'' then for i:=1 to stringgridreactifs_burette.RowCount-1 do begin if mystrtofloat(stringgridreactifs_burette.cells[2,i])0 then charge_burette:=charge_burette+ tableau_elements_base[indice_element_base(stringgridreactifs_burette.cells[1,i])-1].charge* mystrtofloat(stringgridreactifs_burette.cells[2,i]); if indice_element_aqueux(stringgridreactifs_burette.cells[1,i])<>0 then charge_burette:=charge_burette+ tableau_elements_aqueux[indice_element_aqueux(stringgridreactifs_burette.cells[1,i])-1].charge* mystrtofloat(stringgridreactifs_burette.cells[2,i]); if indice_element_organique(stringgridreactifs_burette.cells[1,i])<>0 then charge_burette:=charge_burette+ tableau_elements_organiques[indice_element_organique(stringgridreactifs_burette.cells[1,i])-1].charge* mystrtofloat(stringgridreactifs_burette.cells[2,i]); end; if not(mode_script) then if abs(charge_burette)>min_moles*1e-6 then begin saisie_electroneutralite:=tsaisie_electroneutralite.create(self); if charge_burette<0 then begin {} with saisie_electroneutralite do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; showmodal; end; if saisie_electroneutralite.Radiogroup1.ItemIndex=0 then exit; if charge_burette<0 then begin {ajout de K+} if saisie_electroneutralite.Radiogroup1.ItemIndex=2 then if stringgridreactifs_burette.Cols[1].IndexOf('K[+]')<>-1 then stringgridreactifs_burette.Cells[2,stringgridreactifs_burette.Cols[1].IndexOf('K[+]')]:= floattostr(mystrtofloat( stringgridreactifs_burette.Cells[2,stringgridreactifs_burette.Cols[1].IndexOf('K[+]')])+ abs(charge_burette)) else begin stringgridreactifs_burette.RowCount:=stringgridreactifs_burette.RowCount+1; stringgridreactifs_burette.Cells[0, stringgridreactifs_burette.RowCount-1]:= rsSupprimer; stringgridreactifs_burette.Cells[1,stringgridreactifs_burette.RowCount-1]:='K[+]'; stringgridreactifs_burette.Cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(abs(charge_burette)); end; {ajout de Na+} if saisie_electroneutralite.Radiogroup1.ItemIndex=3 then if stringgridreactifs_burette.Cols[1].IndexOf('Na[+]')<>-1 then stringgridreactifs_burette.Cells[2,stringgridreactifs_burette.Cols[1].IndexOf('Na[+]')]:= floattostr(mystrtofloat( stringgridreactifs_burette.Cells[2,stringgridreactifs_burette.Cols[1].IndexOf('Na[+]')])+ abs(charge_burette)) else begin stringgridreactifs_burette.RowCount:=stringgridreactifs_burette.RowCount+1; stringgridreactifs_burette.Cells[0, stringgridreactifs_burette.RowCount-1]:= rsSupprimer; stringgridreactifs_burette.Cells[1,stringgridreactifs_burette.RowCount-1]:='Na[+]'; stringgridreactifs_burette.Cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(abs(charge_burette)); end; end; if charge_burette>0 then begin {ajout de Cl-} if saisie_electroneutralite.Radiogroup1.ItemIndex=2 then if stringgridreactifs_burette.Cols[1].IndexOf('Cl[-]')<>-1 then stringgridreactifs_burette.Cells[2,stringgridreactifs_burette.Cols[1].IndexOf('Cl[-]')]:= floattostr(mystrtofloat( stringgridreactifs_burette.Cells[2,stringgridreactifs_burette.Cols[1].IndexOf('Cl[-]')])+ abs(charge_burette)) else begin stringgridreactifs_burette.RowCount:=stringgridreactifs_burette.RowCount+1; stringgridreactifs_burette.Cells[0, stringgridreactifs_burette.RowCount-1]:= rsSupprimer; stringgridreactifs_burette.Cells[1,stringgridreactifs_burette.RowCount-1]:='Cl[-]'; stringgridreactifs_burette.Cells[2,stringgridreactifs_burette.RowCount-1]:= floattostr(abs(charge_burette)); end; end; end; try volume_burette_max:=mystrtofloat(editvolume_burette.text)/1000; except application.MessageBox(pchar(rsLaValeurDuVo2), pchar(rsAttention), mb_ok); exit; end; if volume_burette_max<=0 then begin application.MessageBox(pchar(rsLeVolumeDoit), pchar(rsMEnfin3), mb_ok); exit; end; titregraphe:=Format(rsDosageDeML, [floattostr(volume_becher*1000)]); if ((stringgridreactifs_becher.RowCount>1) and (stringgridreactifs_becher.cells[0,1]<>'')) then begin titregraphe:=Format(rsDe, [titregraphe]); for i:=1 to stringgridreactifs_becher.RowCount-1 do titregraphe:=titregraphe+stringgridreactifs_becher.cells[1,i]+ ' ('+stringgridreactifs_becher.cells[2,i]+' mol/L), '; end else titregraphe:=Format(rsDEauPure, [titregraphe]); titregraphe:=Format(rsParML, [titregraphe, floattostr(volume_burette_max*1000)] ); if ((stringgridreactifs_burette.RowCount>1) and (stringgridreactifs_burette.cells[0,1]<>'')) then begin titregraphe:=Format(rsDe, [titregraphe]); for i:=1 to stringgridreactifs_burette.RowCount-1 do if i>1 then titregraphe:=titregraphe+', '+stringgridreactifs_burette.cells[1,i]+ ' ('+stringgridreactifs_burette.cells[2,i]+' mol/L)' else titregraphe:=titregraphe+stringgridreactifs_burette.cells[1,i]+ ' ('+stringgridreactifs_burette.cells[2,i]+' mol/L)'; end else titregraphe:=Format(rsDEauPure2, [titregraphe]); etape:=eliminer; pagecontrol4.ActivePage:=tabsheeteliminer; try exclus:=tstringlist.Create; liste:=tstringlist.Create; if ((stringgridreactifs_becher.RowCount>1) and (stringgridreactifs_becher.cells[1,1]<>'')) then for i:=1 to stringgridreactifs_becher.RowCount-1 do if mystrtofloat(stringgridreactifs_becher.cells[2,i])>0 then liste.Add(stringgridreactifs_becher.cells[1,i]); if ((stringgridreactifs_burette.RowCount>1) and (stringgridreactifs_burette.cells[1,1]<>'')) then for i:=1 to stringgridreactifs_burette.RowCount-1 do if mystrtofloat(stringgridreactifs_burette.cells[2,i])>0 then liste.Add(stringgridreactifs_burette.cells[1,i]); if empecher_redox_eau then begin exclus.Add('H2(aq)'); exclus.Add('O2(aq)'); end; blocage_gaz:=true; blocage_redox:=false; blocage_organique:=false; blocage_solide:=false; trouve_tous_les_elements(liste,exclus); memo1.Clear; nombre_solutes:=-1; for i:=1 to nombre_elements_base do if elements_base_presents[i-1] then inc(nombre_solutes); for i:=1 to nombre_elements_aqueux do if elements_aqueux_presents[i-1] then inc(nombre_solutes); for i:=1 to nombre_elements_organiques do if elements_organiques_presents[i-1] then inc(nombre_solutes); nombre_precipites:=0; for i:=1 to nombre_elements_mineraux do if elements_solides_presents[i-1] then inc(nombre_precipites); checklistbox1.Clear; avec_checklistbox1.Clear; for i:=1 to nombre_elements_base do if elements_base_presents[i-1] then begin checklistbox1.Items.Add(tableau_elements_base[i-1].identifiant); avec_checklistbox1.Add('false'); if checklistbox1.Items[checklistbox1.Items.Count-1]= nom_solvant_0 then avec_checklistbox1[checklistbox1.Items.Count-1]:='true'; if liste.IndexOf(checklistbox1.Items[checklistbox1.Items.Count-1])>=0 then avec_checklistbox1[checklistbox1.Items.Count-1]:='true'; if checklistbox1.Items[checklistbox1.Items.Count-1]='H[+]' then avec_checklistbox1[checklistbox1.Items.Count-1]:='true'; end; for i:=1 to nombre_elements_aqueux do if elements_aqueux_presents[i-1] then begin checklistbox1.Items.add(tableau_elements_aqueux[i-1].identifiant); avec_checklistbox1.Add('false'); if checklistbox1.Items[checklistbox1.Items.Count-1]='OH[-]' then avec_checklistbox1[checklistbox1.Items.Count-1]:='true'; if liste.IndexOf(checklistbox1.Items[checklistbox1.Items.Count-1])>=0 then avec_checklistbox1[checklistbox1.Items.Count-1]:='true'; end; for i:=1 to nombre_elements_gazeux do if elements_gazeux_presents[i-1] then begin checklistbox1.Items.add(tableau_elements_gazeux[i-1].identifiant); avec_checklistbox1.Add('false'); if liste.IndexOf(checklistbox1.Items[checklistbox1.Items.Count-1])>=0 then avec_checklistbox1[checklistbox1.Items.Count-1]:='true'; end; for i:=1 to nombre_elements_organiques do if elements_organiques_presents[i-1] then begin checklistbox1.Items.add(tableau_elements_organiques[i-1].identifiant); avec_checklistbox1.Add('false'); if liste.IndexOf(checklistbox1.Items[checklistbox1.Items.Count-1])>=0 then avec_checklistbox1[checklistbox1.Items.Count-1]:='true'; end; for i:=1 to nombre_elements_mineraux do if elements_solides_presents[i-1] then begin checklistbox1.Items.add(tableau_elements_mineraux[i-1].identifiant); avec_checklistbox1.Add('false'); if liste.IndexOf(checklistbox1.Items[checklistbox1.Items.Count-1])>=0 then begin avec_checklistbox1[checklistbox1.Items.Count-1]:='true'; //si un solide a ete introduit, on empeche que ses elements constitutifs puissent //etre decoches} //for kk:=1 to tableau_elements_mineraux[i-1].nombre_composants do //modif version 2.5 //if checklistbox1.Items.IndexOf(tableau_elements_mineraux[i-1].composition[kk-1].element)>=0 then //checklistbox1.ItemEnabled[ //checklistbox1.Items.IndexOf(tableau_elements_mineraux[i-1].composition[kk-1].element)]:=false; {modif version 2.5} end; end; for i:=1 to checklistbox1.Items.Count do if checklistboxsauve.Items.IndexOf(checklistbox1.Items[i-1])>=0 then checklistbox1.Checked[i-1]:=checklistboxsauve.Checked[ checklistboxsauve.Items.IndexOf(checklistbox1.Items[i-1])] else checklistbox1.Checked[i-1]:=true; checklistbox1.AdjustSize; finally exclus.free; liste.Free; end; end; procedure TForm1.BitBtn2Click(Sender: TObject); var i,j,k,www,saplace,lala1,lala2:integer; {modif 2.5} fofo:tableaustring; fof1:string; malili:tstringlist; {modif 2.5} begin mode_faisceau:=false; etape:=verifier; pagecontrol4.ActivePage:=tabsheetverifier; nombre_especes_0:=0; nombre_solutes_0:=0; nombre_precipites_0:=0; setlength(noms_especes_0,0); setlength(tableau_moles_initiales_0,0); setlength(ensemble_atomes,0); nombre_atomes_differents_0:=0; checklistboxsauve.Clear; for i:=1 to checklistbox1.Items.Count do begin checklistboxsauve.Items.Add(checklistbox1.Items[i-1]); checklistboxsauve.Checked[checklistboxsauve.Items.Count-1]:= checklistbox1.Checked[i-1]; end; {ListBoxresultats.Clear; } for i:=1 to checklistbox1.Items.Count do if checklistbox1.Checked[i-1] then begin inc(nombre_especes_0); setlength(noms_especes_0,nombre_especes_0); setlength(tableau_moles_initiales_0,nombre_especes_0); noms_especes_0[nombre_especes_0-1]:=checklistbox1.Items[i-1]; if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[nombre_especes_0-1])>=0 then tableau_moles_initiales_0[nombre_especes_0-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[nombre_especes_0-1])])*volume_becher else tableau_moles_initiales_0[nombre_especes_0-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[nombre_especes_0-1])>=0 then tableau_moles_initiales_0[nombre_especes_0-1]:=tableau_moles_initiales_0[nombre_especes_0-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[nombre_especes_0-1])])*volume_burette_max; if ((noms_especes_0[nombre_especes_0-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[nombre_especes_0-1]:=(volume_becher+volume_burette_max)*1000/18; end; setlength(potentiels_standards_0,nombre_especes_0); setlength(tableau_conductivites_0,nombre_especes_0); setlength(tableau_charges_0,nombre_especes_0); setlength(tableau_rayons_0,nombre_especes_0); setlength(formules_brutes_0,nombre_especes_0); {recherche de l'ensemble des atomes presents dans les especes et on complete la matreice des coeff au fur et a mesure} {modif 2.5} setlength(fofo,nombre_especes_0); for i:=1 to nombre_especes_0 do fofo[i-1]:=''; {modif 2.5} setlength(liste_genre_espece,nombre_especes_0); for i:=1 to nombre_especes_0 do liste_genre_espece[i-1]:=solvant; for i:=1 to nombre_especes_0 do begin www:= indice_element_base(noms_especes_0[i-1]); if www>0 then begin if noms_especes_0[i-1]<>'H2O' then liste_genre_espece[i-1]:=solute; potentiels_standards_0[i-1]:=tableau_elements_base[www-1].mu0_25; tableau_conductivites_0[i-1]:=tableau_elements_base[www-1].conductivite; tableau_charges_0[i-1]:=tableau_elements_base[www-1].charge; tableau_rayons_0[i-1]:=tableau_elements_base[www-1].rayon/10; formules_brutes_0[i-1]:=tableau_elements_base[www-1].identifiant; {modif 2.5} for j:=1 to tableau_elements_base[www-1].nombre_composants do begin if tableau_elements_base[www-1].composition_atomique[j-1].numero_atomique<>-1 then begin fofo[i-1]:=fofo[i-1]+tableau_periodique[tableau_elements_base[www-1].composition_atomique[j-1].numero_atomique-1].symbole; if tableau_elements_base[www-1].composition_atomique[j-1].coefficient<>1 then fofo[i-1]:=fofo[i-1]+floattostr(tableau_elements_base[www-1].composition_atomique[j-1].coefficient); end else if tableau_elements_base[www-1].composition_atomique[j-1].coefficient=-1 then fofo[i-1]:=fofo[i-1]+'[-]' else if tableau_elements_base[www-1].composition_atomique[j-1].coefficient=1 then fofo[i-1]:=fofo[i-1]+'[+]' else if tableau_elements_base[www-1].composition_atomique[j-1].coefficient>1 then fofo[i-1]:=fofo[i-1]+'['+ floattostr(tableau_elements_base[www-1].composition_atomique[j-1].coefficient)+'+]' else fofo[i-1]:=fofo[i-1]+'['+ floattostr(abs(tableau_elements_base[www-1].composition_atomique[j-1].coefficient))+'-]'; end; {modif 2.5} for j:=1 to tableau_elements_base[www-1].nombre_composants do if not(presentdanstableauentier( tableau_elements_base[www-1]. composition_atomique[j-1].numero_atomique,ensemble_atomes,nombre_atomes_differents_0,saplace)) then begin inc(nombre_atomes_differents_0); setlength(ensemble_atomes,nombre_atomes_differents_0); ensemble_atomes[nombre_atomes_differents_0-1]:=tableau_elements_base[www-1]. composition_atomique[j-1].numero_atomique; setlength(matrice_0,nombre_atomes_differents_0,nombre_especes_0); matrice_0[nombre_atomes_differents_0-1,i-1]:= tableau_elements_base[www-1].composition_atomique[j-1].coefficient; if i>1 then for k:=1 to i-1 do matrice_0[nombre_atomes_differents_0-1,k-1]:=0; end else matrice_0[saplace-1,i-1]:=tableau_elements_base[www-1].composition_atomique[j-1].coefficient; for k:=1 to nombre_atomes_differents_0 do if not(IsAtomePresent(ensemble_atomes[k-1],tableau_elements_base[www-1].composition_atomique)) then matrice_0[k-1,i-1]:=0; end; www:= indice_element_aqueux(noms_especes_0[i-1]); if www>0 then begin liste_genre_espece[i-1]:=solute; potentiels_standards_0[i-1]:=tableau_elements_aqueux[www-1].mu0_25; tableau_conductivites_0[i-1]:=tableau_elements_aqueux[www-1].conductivite; tableau_charges_0[i-1]:=tableau_elements_aqueux[www-1].charge; tableau_rayons_0[i-1]:=tableau_elements_aqueux[www-1].rayon/10; formules_brutes_0[i-1]:=tableau_elements_aqueux[www-1].identifiant; {modif 2.5} for j:=1 to tableau_elements_aqueux[www-1].nombre_composants_atomiques do begin if tableau_elements_aqueux[www-1].composition_atomique[j-1].numero_atomique<>-1 then begin fofo[i-1]:=fofo[i-1]+tableau_periodique[tableau_elements_aqueux[www-1].composition_atomique[j-1].numero_atomique-1].symbole; if tableau_elements_aqueux[www-1].composition_atomique[j-1].coefficient<>1 then fofo[i-1]:=fofo[i-1]+floattostr(tableau_elements_aqueux[www-1].composition_atomique[j-1].coefficient); end else if tableau_elements_aqueux[www-1].composition_atomique[j-1].coefficient=-1 then fofo[i-1]:=fofo[i-1]+'[-]' else if tableau_elements_aqueux[www-1].composition_atomique[j-1].coefficient=1 then fofo[i-1]:=fofo[i-1]+'[+]' else if tableau_elements_aqueux[www-1].composition_atomique[j-1].coefficient>1 then fofo[i-1]:=fofo[i-1]+'['+ floattostr(tableau_elements_aqueux[www-1].composition_atomique[j-1].coefficient)+'+]' else fofo[i-1]:=fofo[i-1]+'['+ floattostr(abs(tableau_elements_aqueux[www-1].composition_atomique[j-1].coefficient))+'-]'; end; {modif 2.5} for j:=1 to tableau_elements_aqueux[www-1].nombre_composants_atomiques do if not(presentdanstableauentier( tableau_elements_aqueux[www-1]. composition_atomique[j-1].numero_atomique,ensemble_atomes,nombre_atomes_differents_0,saplace)) then begin inc(nombre_atomes_differents_0); setlength(ensemble_atomes,nombre_atomes_differents_0); ensemble_atomes[nombre_atomes_differents_0-1]:=tableau_elements_aqueux[www-1]. composition_atomique[j-1].numero_atomique; setlength(matrice_0,nombre_atomes_differents_0,nombre_especes_0); matrice_0[nombre_atomes_differents_0-1,i-1]:= tableau_elements_aqueux[www-1].composition_atomique[j-1].coefficient; if i>1 then for k:=1 to i-1 do matrice_0[nombre_atomes_differents_0-1,k-1]:=0; end else matrice_0[saplace-1,i-1]:=tableau_elements_aqueux[www-1].composition_atomique[j-1].coefficient; for k:=1 to nombre_atomes_differents_0 do if not(IsAtomePresent(ensemble_atomes[k-1],tableau_elements_aqueux[www-1].composition_atomique)) then matrice_0[k-1,i-1]:=0; end; {www:= indice_element_gazeux(noms_especes_0[i-1]); if www>0 then begin potentiels_standards_0[i-1]:=tableau_elements_gazeux[www-1].mu0_25; tableau_conductivites_0[i-1]:=0; tableau_charges_0[i-1]:=0; tableau_rayons_0[i-1]:=0; if tableau_elements_gazeux[www-1].formule:='' then formules_brutes_0[i-1]:=tableau_elements_gazeux[www-1].identifiant else formules_brutes_0[i-1]:=tableau_elements_gazeux[www-1].formule; for j:=1 to tableau_elements_gazeux[www-1].nombre_composants_atomiques do if not(presentdanstableauentier( tableau_elements_gazeux[www-1]. composition_atomique[j-1].numero_atomique,ensemble_atomes,nombre_atomes_differents_0,saplace)) then begin inc(nombre_atomes_differents_0); setlength(ensemble_atomes,nombre_atomes_differents_0); ensemble_atomes[nombre_atomes_differents_0-1]:=tableau_elements_gazeux[www-1]. composition_atomique[j-1].numero_atomique; setlength(matrice_0,nombre_atomes_differents_0,nombre_especes_0); matrice_0[nombre_atomes_differents_0-1,i-1]:= tableau_elements_gazeux[www-1].composition_atomique[j-1].coefficient; if i>1 then for k:=1 to i-1 do matrice_0[nombre_atomes_differents_0-1,k-1]:=0; end else matrice_0[saplace-1,i-1]:=tableau_elements_gazeux[www-1].composition_atomique[j-1].coefficient; for k:=1 to nombre_atomes_differents_0 do if not(IsAtomePresent(ensemble_atomes[k-1],tableau_elements_gazeux[www-1].composition_atomique)) then matrice_0[k-1,i-1]:=0; end; } www:= indice_element_organique(noms_especes_0[i-1]); if www>0 then begin liste_genre_espece[i-1]:=solute; potentiels_standards_0[i-1]:=tableau_elements_organiques[www-1].mu0_25; tableau_conductivites_0[i-1]:=tableau_elements_organiques[www-1].conductivite; tableau_charges_0[i-1]:=tableau_elements_organiques[www-1].charge; tableau_rayons_0[i-1]:=tableau_elements_organiques[www-1].rayon/10; if tableau_elements_organiques[www-1].formule='' then formules_brutes_0[i-1]:=tableau_elements_organiques[www-1].identifiant else formules_brutes_0[i-1]:=tableau_elements_organiques[www-1].formule; {modif 2.5} for j:=1 to tableau_elements_organiques[www-1].nombre_composants_atomiques do begin if tableau_elements_organiques[www-1].composition_atomique[j-1].numero_atomique<>-1 then begin fofo[i-1]:=fofo[i-1]+tableau_periodique[tableau_elements_organiques[www-1].composition_atomique[j-1].numero_atomique-1].symbole; if tableau_elements_organiques[www-1].composition_atomique[j-1].coefficient<>1 then fofo[i-1]:=fofo[i-1]+floattostr(tableau_elements_organiques[www-1].composition_atomique[j-1].coefficient); end else if tableau_elements_organiques[www-1].composition_atomique[j-1].coefficient=-1 then fofo[i-1]:=fofo[i-1]+'[-]' else if tableau_elements_organiques[www-1].composition_atomique[j-1].coefficient=1 then fofo[i-1]:=fofo[i-1]+'[+]' else if tableau_elements_organiques[www-1].composition_atomique[j-1].coefficient>1 then fofo[i-1]:=fofo[i-1]+'['+ floattostr(tableau_elements_organiques[www-1].composition_atomique[j-1].coefficient)+'+]' else fofo[i-1]:=fofo[i-1]+'['+ floattostr(abs(tableau_elements_organiques[www-1].composition_atomique[j-1].coefficient))+'-]'; end; {modif 2.5} for j:=1 to tableau_elements_organiques[www-1].nombre_composants_atomiques do if not(presentdanstableauentier( tableau_elements_organiques[www-1]. composition_atomique[j-1].numero_atomique,ensemble_atomes,nombre_atomes_differents_0,saplace)) then begin inc(nombre_atomes_differents_0); setlength(ensemble_atomes,nombre_atomes_differents_0); ensemble_atomes[nombre_atomes_differents_0-1]:=tableau_elements_organiques[www-1]. composition_atomique[j-1].numero_atomique; setlength(matrice_0,nombre_atomes_differents_0,nombre_especes_0); matrice_0[nombre_atomes_differents_0-1,i-1]:= tableau_elements_organiques[www-1].composition_atomique[j-1].coefficient; if i>1 then for k:=1 to i-1 do matrice_0[nombre_atomes_differents_0-1,k-1]:=0; end else matrice_0[saplace-1,i-1]:=tableau_elements_organiques[www-1].composition_atomique[j-1].coefficient; for k:=1 to nombre_atomes_differents_0 do if not(IsAtomePresent(ensemble_atomes[k-1],tableau_elements_organiques[www-1].composition_atomique)) then matrice_0[k-1,i-1]:=0; end; www:=indice_element_mineral(noms_especes_0[i-1]); if www>0 then begin liste_genre_espece[i-1]:=precipite; potentiels_standards_0[i-1]:=tableau_elements_mineraux[www-1].mu0_25; tableau_conductivites_0[i-1]:=0; tableau_charges_0[i-1]:=0; tableau_rayons_0[i-1]:=0; if tableau_elements_mineraux[www-1].formule='' then formules_brutes_0[i-1]:=tableau_elements_mineraux[www-1].identifiant else formules_brutes_0[i-1]:=tableau_elements_mineraux[www-1].formule; {modif 2.5} for j:=1 to tableau_elements_mineraux[www-1].nombre_composants_atomiques do begin if tableau_elements_mineraux[www-1].composition_atomique[j-1].numero_atomique<>-1 then begin fofo[i-1]:=fofo[i-1]+tableau_periodique[tableau_elements_mineraux[www-1].composition_atomique[j-1].numero_atomique-1].symbole; if tableau_elements_mineraux[www-1].composition_atomique[j-1].coefficient<>1 then fofo[i-1]:=fofo[i-1]+floattostr(tableau_elements_mineraux[www-1].composition_atomique[j-1].coefficient); end else if tableau_elements_mineraux[www-1].composition_atomique[j-1].coefficient=-1 then fofo[i-1]:=fofo[i-1]+'[-]' else if tableau_elements_mineraux[www-1].composition_atomique[j-1].coefficient=1 then fofo[i-1]:=fofo[i-1]+'[+]' else if tableau_elements_mineraux[www-1].composition_atomique[j-1].coefficient>1 then fofo[i-1]:=fofo[i-1]+'['+ floattostr(tableau_elements_mineraux[www-1].composition_atomique[j-1].coefficient)+'+]' else fofo[i-1]:=fofo[i-1]+'['+ floattostr(abs(tableau_elements_mineraux[www-1].composition_atomique[j-1].coefficient))+'-]'; end; {modif 2.5} for j:=1 to tableau_elements_mineraux[www-1].nombre_composants_atomiques do if not(presentdanstableauentier( tableau_elements_mineraux[www-1]. composition_atomique[j-1].numero_atomique,ensemble_atomes,nombre_atomes_differents_0,saplace)) then begin inc(nombre_atomes_differents_0); setlength(ensemble_atomes,nombre_atomes_differents_0); ensemble_atomes[nombre_atomes_differents_0-1]:=tableau_elements_mineraux[www-1]. composition_atomique[j-1].numero_atomique; setlength(matrice_0,nombre_atomes_differents_0,nombre_especes_0); matrice_0[nombre_atomes_differents_0-1,i-1]:= tableau_elements_mineraux[www-1].composition_atomique[j-1].coefficient; if i>1 then for k:=1 to i-1 do matrice_0[nombre_atomes_differents_0-1,k-1]:=0; end else matrice_0[saplace-1,i-1]:=tableau_elements_mineraux[www-1].composition_atomique[j-1].coefficient; for k:=1 to nombre_atomes_differents_0 do if not(IsAtomePresent(ensemble_atomes[k-1],tableau_elements_mineraux[www-1].composition_atomique)) then matrice_0[k-1,i-1]:=0; end; end; DetermineReactions(matrice_0, tableau_moles_initiales_0, nombre_especes_0,nombre_atomes_differents_0, noms_especes_0,formules_brutes_0, rang_0,reac_0, reactions_0,equations_conservation_0,equations_avancements_0, aaa_0, b_0, coeff_stoechio_0, potentiels_standards_0, deltarG0_0,logK_0, temperature); stringgridreactions.FixedCols:=1; stringgridreactions.FixedRows:=1; stringgridreactions.ColCount:=2; stringgridreactions.RowCount:=1+reac_0; stringgridreactions.Cells[0, 0]:=rsEquationDeRA; stringgridreactions.Cells[1,0]:='log K'; if reac_0>0 then for i:=1 to reac_0 do begin stringgridreactions.Cells[0,i]:= reactions_0[i-1]; if liste_reacs.IndexOf(reactions_0[i-1])>=0 then stringgridreactions.Cells[1,i]:= liste_ctes[liste_reacs.IndexOf(reactions_0[i-1])] else stringgridreactions.Cells[1,i]:= floattostrf(logk_0[i-1],ffgeneral,nombre_chiffres_constantes,nombre_chiffres_constantes); end; stringgridreactions.AutoSizeColumns; stringgridreactions.Refresh; {modif version 2.5} for i:=1 to nombre_especes_0 do if pos('[',fofo[i-1])>0 then begin fof1:=copy(fofo[i-1],pos('[',fofo[i-1]),pos(']',fofo[i-1])-pos('[',fofo[i-1])+1); delete(fofo[i-1],pos('[',fofo[i-1]),pos(']',fofo[i-1])-pos('[',fofo[i-1])+1); fofo[i-1]:=fofo[i-1]+fof1; end; malili:=tstringlist.Create; for i:=1 to nombre_especes_0 do malili.Add(noms_especes_0[i-1]); nombre_couples_redox:=0; if true then begin nombre_especes_redox:=5; for i:=1 to nombre_especes_0 do for j:=i+1 to nombre_especes_0 do if ((noms_especes_0[i-1]<>'H2O') and (noms_especes_0[i-1]<>'O2(aq)') and (noms_especes_0[i-1]<>'H2(aq)') and (noms_especes_0[i-1]<>'H[+]') and (noms_especes_0[j-1]<>'H2O') and (noms_especes_0[j-1]<>'O2(aq)') and (noms_especes_0[j-1]<>'H[+]') and (noms_especes_0[j-1]<>'H2(aq)')) then begin setlength(noms_especes_redox,nombre_especes_redox); setlength(formules_brutes_redox,nombre_especes_redox); setlength(tableau_moles_initiales_redox,nombre_especes_redox); setlength(potentiels_standards_redox,nombre_especes_redox); noms_especes_redox[0]:='H2O'; noms_especes_redox[1]:='O2(aq)'; noms_especes_redox[2]:='H[+]'; noms_especes_redox[3]:=noms_especes_0[i-1]; noms_especes_redox[4]:=noms_especes_0[j-1]; formules_brutes_redox[0]:='H2O'; formules_brutes_redox[1]:='O2'; formules_brutes_redox[2]:='H[+]'; formules_brutes_redox[3]:=fofo[i-1]; formules_brutes_redox[4]:=fofo[j-1]; tableau_moles_initiales_redox[0]:=tableau_moles_initiales_0[malili.indexof('H2O')]; tableau_moles_initiales_redox[1]:=tableau_moles_initiales_0[malili.indexof('O2(aq)')]; tableau_moles_initiales_redox[2]:=tableau_moles_initiales_0[malili.indexof('H[+]')]; tableau_moles_initiales_redox[3]:=tableau_moles_initiales_0[i-1]; tableau_moles_initiales_redox[4]:=tableau_moles_initiales_0[j-1]; potentiels_standards_redox[0]:=potentiels_standards_0[malili.indexof('H2O')]; potentiels_standards_redox[1]:=potentiels_standards_0[malili.indexof('O2(aq)')]; potentiels_standards_redox[2]:=potentiels_standards_0[malili.indexof('H[+]')]; potentiels_standards_redox[3]:=potentiels_standards_0[i-1]; potentiels_standards_redox[4]:=potentiels_standards_0[j-1]; DonneMatriceCoefficients(formules_brutes_redox,matrice_redox, nombre_especes_redox,nombre_atomes_redox); DetermineReactions(matrice_redox, tableau_moles_initiales_redox, nombre_especes_redox,nombre_atomes_redox, noms_especes_redox,formules_brutes_redox, rang_redox,reac_redox, reactions_redox,equations_conservation_redox,equations_avancements_redox, aaa_redox, b_redox, coeff_stoechio_redox, potentiels_standards_redox, deltarG0_redox,logK_redox, temperature); if reac_redox=1 then if coeff_stoechio_redox[0,1]*coeff_stoechio_redox[0,3]*coeff_stoechio_redox[0,4]<>0 then begin {on a trouve un couple redox} inc(nombre_couples_redox); setlength(liste_couples_redox,nombre_couples_redox); liste_couples_redox[nombre_couples_redox-1].potentiel_standard_redox:= 1.2715+rtfln10*logK_redox[0]/4/coeff_stoechio_redox[0,1]; {determination des coef pour la formule de Nernst} noms_especes_redox[0]:='H2O'; noms_especes_redox[1]:='[-]'; noms_especes_redox[2]:='H[+]'; noms_especes_redox[3]:=noms_especes_0[i-1]; noms_especes_redox[4]:=noms_especes_0[j-1]; formules_brutes_redox[0]:='H2O'; formules_brutes_redox[1]:='[-]'; formules_brutes_redox[2]:='H[+]'; formules_brutes_redox[3]:=fofo[i-1]; formules_brutes_redox[4]:=fofo[j-1]; tableau_moles_initiales_redox[0]:=tableau_moles_initiales_0[malili.indexof('H2O')]; tableau_moles_initiales_redox[1]:=1; tableau_moles_initiales_redox[2]:=tableau_moles_initiales_0[malili.indexof('H[+]')]; tableau_moles_initiales_redox[3]:=tableau_moles_initiales_0[i-1]; tableau_moles_initiales_redox[4]:=tableau_moles_initiales_0[j-1]; potentiels_standards_redox[0]:=potentiels_standards_0[malili.indexof('H2O')]; potentiels_standards_redox[1]:=0; potentiels_standards_redox[2]:=potentiels_standards_0[malili.indexof('H[+]')]; potentiels_standards_redox[3]:=potentiels_standards_0[i-1]; potentiels_standards_redox[4]:=potentiels_standards_0[j-1]; DonneMatriceCoefficients(formules_brutes_redox,matrice_redox, nombre_especes_redox,nombre_atomes_redox); DetermineReactions(matrice_redox, tableau_moles_initiales_redox, nombre_especes_redox,nombre_atomes_redox, noms_especes_redox,formules_brutes_redox, rang_redox,reac_redox, reactions_redox,equations_conservation_redox,equations_avancements_redox, aaa_redox, b_redox, coeff_stoechio_redox, potentiels_standards_redox, deltarG0_redox,logK_redox, temperature); if coeff_stoechio_redox[0,1]<0 then for k:=1 to 5 do coeff_stoechio_redox[0,k-1]:=-coeff_stoechio_redox[0,k-1]; {si espece1 est le reducteur, on le met en premier de facon que ce soit toujours RedOx} if coeff_stoechio_redox[0,3]<0 then begin liste_couples_redox[nombre_couples_redox-1].espece1:=noms_especes_0[i-1]; liste_couples_redox[nombre_couples_redox-1].formule_brute_espece1:=fofo[i-1]; liste_couples_redox[nombre_couples_redox-1].coef_1:=coeff_stoechio_redox[0,3]; liste_couples_redox[nombre_couples_redox-1].espece2:=noms_especes_0[j-1]; liste_couples_redox[nombre_couples_redox-1].formule_brute_espece2:=fofo[j-1]; liste_couples_redox[nombre_couples_redox-1].coef_2:=coeff_stoechio_redox[0,4]; end else begin liste_couples_redox[nombre_couples_redox-1].espece2:=noms_especes_0[i-1]; liste_couples_redox[nombre_couples_redox-1].formule_brute_espece2:=fofo[i-1]; liste_couples_redox[nombre_couples_redox-1].coef_2:=coeff_stoechio_redox[0,3]; liste_couples_redox[nombre_couples_redox-1].espece1:=noms_especes_0[j-1]; liste_couples_redox[nombre_couples_redox-1].formule_brute_espece1:=fofo[j-1]; liste_couples_redox[nombre_couples_redox-1].coef_1:=coeff_stoechio_redox[0,4]; end; liste_couples_redox[nombre_couples_redox-1].coef_Hp:=coeff_stoechio_redox[0,2]; liste_couples_redox[nombre_couples_redox-1].coef_e:=coeff_stoechio_redox[0,1]; end; end; end; malili.free; {modif version 2.5} end; procedure TForm1.BitBtn3Click(Sender: TObject); var i,j,vovo:integer; save_cursor:tcursor; rep:boolean; pas_volume,variation_max_log:float; label 112; begin mode_faisceau:=false; try if reac_0>0 then for i:=1 to reac_0 do logk_0[i-1]:=mystrtofloat(stringgridreactions.Cells[1,i]); except application.MessageBox(pchar(rsLaValeurDUnD), pchar(rsAttention), mb_ok); exit; end; {on stocke les valeurs de logk eventuellement modifiees par l'utilisateur pour lui remettre si il reprend les memes reactions ensuite} {liste_reacs.Clear; liste_ctes.Clear; } for i:=1 to reac_0 do if liste_reacs.IndexOf(stringgridreactions.Cells[0,i])>=0 then liste_ctes[liste_reacs.IndexOf(stringgridreactions.Cells[0,i])]:=stringgridreactions.Cells[1,i] else begin liste_reacs.Add(stringgridreactions.Cells[0,i]); liste_ctes.Add(stringgridreactions.Cells[1,i]); end; DetermineMu0(coeff_stoechio_0, logk_0,potentiels_standards_0, nombre_especes_0,reac_0,temperature); nombre_points_calcul_0:=form5.SpinEdit1.Value; nombre_points_calcul:=form5.SpinEdit1.Value; nombre_precipites_0:=0; nombre_solutes_0:=0; setlength(indices_solutes,nombre_especes_0); setlength(indices_precipites,nombre_especes_0); for i:=1 to nombre_especes_0 do begin indices_solutes[i-1]:=0; indices_precipites[i-1]:=0; end; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin indice_solvant:=i; potentiel_chimique_standard_solvant_0:=potentiels_standards_0[i-1]; setlength(t_n_a_p_e_solvant_0,nombre_atomes_differents_0); for j:=1 to nombre_atomes_differents_0 do t_n_a_p_e_solvant_0[j-1]:=matrice_0[j-1,i-1]; nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); setlength(indices_precipites_inverses,nombre_precipites_0); indices_precipites_inverses[nombre_precipites_0-1]:=i; indices_precipites[i-1]:=nombre_precipites_0; setlength(t_n_a_p_e_precipites_0,nombre_atomes_differents_0,nombre_precipites_0); setlength(tableau_nombre_initial_moles_precipites_0,nombre_precipites_0); setlength(potentiels_chimiques_standards_precipites_0,nombre_precipites_0); setlength(noms_precipites_0,nombre_precipites_0); potentiels_chimiques_standards_precipites_0[nombre_precipites_0-1]:= potentiels_standards_0[i-1]; tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; noms_precipites_0[nombre_precipites_0-1]:=noms_especes_0[i-1]; for j:=1 to nombre_atomes_differents_0 do t_n_a_p_e_precipites_0[j-1,nombre_precipites_0-1]:= matrice_0[j-1,i-1]; end else begin inc(nombre_solutes_0); setlength(indices_solutes_inverses,nombre_solutes_0); indices_solutes_inverses[nombre_solutes_0-1]:=i; indices_solutes[i-1]:=nombre_solutes_0; setlength(t_n_a_p_e_solutes_0,nombre_atomes_differents_0,nombre_solutes_0); setlength(tableau_nombre_initial_moles_solutes_0,nombre_solutes_0); setlength(potentiels_chimiques_standards_solutes_0,nombre_solutes_0); setlength(noms_solutes_0,nombre_solutes_0); setlength(conductivites_solutes_0,nombre_solutes_0); setlength(charges_solutes_0,nombre_solutes_0); setlength(rayons_solutes_0,nombre_solutes_0); potentiels_chimiques_standards_solutes_0[nombre_solutes_0-1]:= potentiels_standards_0[i-1]; tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; noms_solutes_0[nombre_solutes_0-1]:=noms_especes_0[i-1]; conductivites_solutes_0[nombre_solutes_0-1]:=tableau_conductivites_0[i-1]; charges_solutes_0[nombre_solutes_0-1]:=tableau_charges_0[i-1]; rayons_solutes_0[nombre_solutes_0-1]:=tableau_rayons_0[i-1]; for j:=1 to nombre_atomes_differents_0 do t_n_a_p_e_solutes_0[j-1,nombre_solutes_0-1]:= matrice_0[j-1,i-1]; end; end; stringgridresultats.RowCount:=3+nombre_points_calcul; {} for i:=1 to nombre_solutes_0 do begin stringgridresultats.Cells[i,0]:=noms_solutes_0[i-1]; stringgridresultats.Cells[i, 1]:=rsConcMolL; end; {} for i:=1 to nombre_precipites_0 do begin stringgridresultats.Cells[nombre_solutes_0+i,0]:=noms_precipites_0[i-1]; stringgridresultats.Cells[nombre_solutes_0+i, 1]:=rsNbeDeMoles; end; {} stringgridresultats.Cells[0, 0]:=rsVolumeVers; stringgridresultats.Cells[0, 1]:=rsML; {} stringgridresultats.AutoSizeColumns; progressbar1.Max:=nombre_points_calcul; progressbar1.Position:=0; editpourcentage.Text:='0%'; {la boucle des volumes} if not(pas_adaptatif) then for vovo:=0 to nombre_points_calcul do begin {0 then volume_verse:=volume_burette_max*vovo/nombre_points_calcul-pas_derivee else volume_verse:=volume_burette_max*vovo/nombre_points_calcul; if arret_demande then exit; calcul_en_cours:=true; for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; //Save_Cursor := Screen.Cursor; try //screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally // Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_gauche[0]:=(volume_verse)*1000; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats_gauche[i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_gauche[i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do tableau_resultats_gauche[i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} {if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0; } {modif version 2.5} end; end; {de l'affichage des resultats} volume_verse:=volume_burette_max*vovo/nombre_points_calcul+pas_derivee; if arret_demande then exit; calcul_en_cours:=true; for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; //Save_Cursor := Screen.Cursor; try //screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally //Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_droite[0]:=(volume_verse)*1000; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats_droite[i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_droite[i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do tableau_resultats_droite[i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} {if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; end; {de l'affichage des resultats} {et maintenant calcul des derivees} for i:=1 to nombre_solutes_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i])) and not(isnanorinfinite(tableau_resultats_gauche[i]))) then if vovo<>0 then tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i]-tableau_resultats_gauche[i])/pas_derivee/2 else tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i]-tableau_resultats_gauche[i])/pas_derivee else tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]:=NAN; if debye_0 then if isnanorinfinite(tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]) then stringgridresultats.Cells[i+2*nombre_solutes_0+nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+2*nombre_solutes_0+nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats) else if isnanorinfinite(tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]) then stringgridresultats.Cells[i+nombre_solutes_0+nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+nombre_solutes_0+nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats); //if debye_0 then begin //stringgridresultats.AutoSizeColumns; //end else begin // stringgridresultats.AutoSizeColumns; //end; end; for i:=1 to nombre_solutes_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0])) and not(isnanorinfinite(tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0]))) then if vovo<>0 then tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]- tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0])/pas_derivee/2 else tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]- tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0])/pas_derivee else tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:=NAN; if debye_0 then begin if isnanorinfinite(tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]) then stringgridresultats.Cells[i+3*nombre_solutes_0+2*nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+3*nombre_solutes_0+2*nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats); //stringgridresultats.AutoSizeColumns; end; end; for i:=1 to nombre_precipites_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i+nombre_solutes_0])) and not(isnanorinfinite(tableau_resultats_gauche[i+nombre_solutes_0]))) then if vovo<>0 then tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0]- tableau_resultats_gauche[i+nombre_solutes_0])/pas_derivee/2 else tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0]- tableau_resultats_gauche[i+nombre_solutes_0])/pas_derivee else tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]:=NAN; if debye_0 then begin if isnanorinfinite(tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]) then stringgridresultats.Cells[i+3*nombre_solutes_0+nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+3*nombre_solutes_0+nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats); // stringgridresultats.AutoSizeColumns; end else begin if isnanorinfinite(tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]) then stringgridresultats.Cells[i+2*nombre_solutes_0+nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+2*nombre_solutes_0+nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats); //stringgridresultats.AutoSizeColumns; end; end; end; {ajout version 1.10>} //application.ProcessMessages; if arret_demande then exit; calcul_en_cours:=true; volume_verse:=volume_burette_max*vovo/nombre_points_calcul; for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; // Save_Cursor := Screen.Cursor; try //screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally //Screen.Cursor := Save_Cursor; progressbar1.StepBy(1); application.ProcessMessages; editpourcentage.Text:=inttostr(trunc(vovo/nombre_points_calcul*100))+'%'; { Revient toujours à normal } end; stringgridresultats.Cells[0,vovo+2]:=floattostrf((volume_verse)*1000,ffgeneral, nombre_chiffres_resultats,nombre_chiffres_resultats); tableau_resultats[vovo,0]:=(volume_verse)*1000; //stringgridresultats.AutoSizeColumns; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0 do stringgridresultats.Cells[i,vovo+2]:='NC'; for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats[vovo,i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats[vovo,i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; if ((nombre_moles_equilibre_solutes_0[i-1]>pluspetiteconcentrationsignificative) or (nombre_moles_equilibre_solutes_0[i-1]=0)) then {} end; //stringgridresultats.AutoSizeColumns; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do begin tableau_resultats[vovo,i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; if ((nombre_moles_equilibre_precipites_0[i-1]>pluspetiteconcentrationsignificative)) then stringgridresultats.Cells[i+nombre_solutes_0,vovo+2]:= floattostrf(nombre_moles_equilibre_precipites_0[i-1],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats) else if ((nombre_moles_equilibre_precipites_0[i-1]=0)) then stringgridresultats.Cells[i+nombre_solutes_0, vovo+2]:=rsABSENT else begin stringgridresultats.Cells[i+nombre_solutes_0, vovo+2]:=rsTraces; {tableau_resultats[vovo,i+nombre_solutes_0]:=0;} end; //stringgridresultats.AutoSizeColumns; end; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats[vovo,i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} {if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0; } {modif version 2.5} end; end; {de l'affichage des resultats} end;{de la boucle des volumes} calcul_en_cours:=false; arret_demande:=false; {la boucle des volumes} if pas_adaptatif then begin calcul_en_cours:=true; arret_demande:=false; {calcul premier point} volume_verse:=0; vovo:=0; pas_volume:=math.max(volume_burette_max/nombre_points_calcul, limite_inferieure_pas/1000); {=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; //Save_Cursor := Screen.Cursor; try // screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally // Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_gauche[0]:=(volume_verse)*1000; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats_gauche[i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_gauche[i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do tableau_resultats_gauche[i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0; } {modif version 2.5} end; end; {de l'affichage des resultats} volume_verse:=pas_derivee; //application.ProcessMessages; if arret_demande then exit; calcul_en_cours:=true; for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; // Save_Cursor := Screen.Cursor; try //screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally //Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_droite[0]:=(volume_verse)*1000; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats_droite[i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_droite[i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do tableau_resultats_droite[i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; end; {de l'affichage des resultats} {et maintenant calcul des derivees} for i:=1 to nombre_solutes_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i])) and not(isnanorinfinite(tableau_resultats_gauche[i]))) then tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i]-tableau_resultats_gauche[i])/pas_derivee else tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]:=NAN; if debye_0 then if isnanorinfinite(tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]) then stringgridresultats.Cells[i+2*nombre_solutes_0+nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+2*nombre_solutes_0+nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats) else if isnanorinfinite(tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]) then stringgridresultats.Cells[i+nombre_solutes_0+nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+nombre_solutes_0+nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats); //if debye_0 then begin //stringgridresultats.AutoSizeColumns; //end else begin //stringgridresultats.AutoSizeColumns; //end; end; for i:=1 to nombre_solutes_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0])) and not(isnanorinfinite(tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0]))) then tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]- tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0])/pas_derivee else tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:=NAN; if debye_0 then begin if isnanorinfinite(tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]) then stringgridresultats.Cells[i+3*nombre_solutes_0+2*nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+3*nombre_solutes_0+2*nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats); //stringgridresultats.AutoSizeColumns; end; end; for i:=1 to nombre_precipites_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i+nombre_solutes_0])) and not(isnanorinfinite(tableau_resultats_gauche[i+nombre_solutes_0]))) then tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0]- tableau_resultats_gauche[i+nombre_solutes_0])/pas_derivee else tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]:=NAN; if debye_0 then begin if isnanorinfinite(tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]) then stringgridresultats.Cells[i+3*nombre_solutes_0+nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+3*nombre_solutes_0+nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats); //stringgridresultats.AutoSizeColumns; end else begin if isnanorinfinite(tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]) then stringgridresultats.Cells[i+2*nombre_solutes_0+nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+2*nombre_solutes_0+nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats); //stringgridresultats.AutoSizeColumns; end; end; end; {ajout version 1.10>} volume_verse:=0; for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; // Save_Cursor := Screen.Cursor; try //screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally //Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; stringgridresultats.Cells[0,vovo+2]:=floattostrf((volume_verse)*1000,ffgeneral, nombre_chiffres_resultats,nombre_chiffres_resultats); tableau_resultats[vovo,0]:=(volume_verse)*1000; //stringgridresultats.AutoSizeColumns; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0 do stringgridresultats.Cells[i,vovo+2]:='NC'; for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats[vovo,i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats[vovo,i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; if ((nombre_moles_equilibre_solutes_0[i-1]>pluspetiteconcentrationsignificative) or (nombre_moles_equilibre_solutes_0[i-1]=0)) then stringgridresultats.Cells[i,vovo+2]:=floattostrf(nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse),ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats) else begin stringgridresultats.Cells[i, vovo+2]:=rsTraces; {tableau_resultats[vovo,i]:=0;} end; // stringgridresultats.AutoSizeColumns; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do begin tableau_resultats[vovo,i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; if ((nombre_moles_equilibre_precipites_0[i-1]>pluspetiteconcentrationsignificative)) then stringgridresultats.Cells[i+nombre_solutes_0,vovo+2]:= floattostrf(nombre_moles_equilibre_precipites_0[i-1],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats) else if ((nombre_moles_equilibre_precipites_0[i-1]=0)) then stringgridresultats.Cells[i+nombre_solutes_0, vovo+2]:=rsABSENT else begin stringgridresultats.Cells[i+nombre_solutes_0, vovo+2]:=rsTraces; {tableau_resultats[vovo,i+nombre_solutes_0]:=0; } end; //stringgridresultats.AutoSizeColumns; end; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats[vovo,i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; end; {de l'affichage des resultats} {fin premier pôint} while (volume_versevolume_burette_max then volume_verse:=volume_burette_max; for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; // Save_Cursor := Screen.Cursor; try //screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally //Screen.Cursor := Save_Cursor; progressbar1.Position:=trunc(volume_verse/volume_burette_max*100); application.ProcessMessages; editpourcentage.Text:=inttostr(trunc(volume_verse/volume_burette_max*100))+'%'; { Revient toujours à normal } end; {calcul de la variation max du log des concentrations} variation_max_log:=0; if rep then begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do if not(isnanorinfinite(tableau_resultats[vovo,i])) then if ((tableau_resultats[vovo,i]>pluspetiteconcentrationsignificative) and (nombre_moles_equilibre_solutes_0[i-1]/(volume_becher+volume_verse)> pluspetiteconcentrationsignificative)) then variation_max_log:= math.max(variation_max_log, abs(ln(nombre_moles_equilibre_solutes_0[i-1]/(volume_becher+volume_verse))- ln(tableau_resultats[vovo,i]))/ln(10)); if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do if not(isnanorinfinite(tableau_resultats[vovo,i+nombre_solutes_0])) then if ((tableau_resultats[vovo,i+nombre_solutes_0]>pluspetiteconcentrationsignificative) and (nombre_moles_equilibre_precipites_0[i-1]> pluspetiteconcentrationsignificative)) then variation_max_log:= math.max(variation_max_log, abs(ln(nombre_moles_equilibre_precipites_0[i-1])- ln(tableau_resultats[vovo,i+nombre_solutes_0]))/ln(10)); end; {fin calcul variation max} {si la variation max est trop grande, on diminue le pas et on reprend le calcul} if ((variation_max_log>var_log_max) and (pas_volume/2>limite_inferieure_pas/1000)) then begin volume_verse:=volume_verse-pas_volume; pas_volume:=pas_volume/2; goto 112; end; {pas_volume/100 then pas_derivee:=pas_volume/100 else pas_derivee:=volume_burette_max/diviseur_pas_derivee; {ajout version 1.10>} {si elle est trop petite, on revient au pas d'origine pour la suite} if variation_max_log} stringgridresultats.RowCount:=3+vovo; stringgridresultats.Cells[0,vovo+2]:=floattostrf((volume_verse)*1000,ffgeneral, nombre_chiffres_resultats,nombre_chiffres_resultats); tableau_resultats[vovo,0]:=(volume_verse)*1000; //stringgridresultats.AutoSizeColumns; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0 do stringgridresultats.Cells[i,vovo+2]:='NC'; for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats[vovo,i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats[vovo,i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; if ((nombre_moles_equilibre_solutes_0[i-1]>pluspetiteconcentrationsignificative) or (nombre_moles_equilibre_solutes_0[i-1]=0)) then {} end; //stringgridresultats.AutoSizeColumns; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do begin tableau_resultats[vovo,i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; if ((nombre_moles_equilibre_precipites_0[i-1]>pluspetiteconcentrationsignificative)) then stringgridresultats.Cells[i+nombre_solutes_0,vovo+2]:= floattostrf(nombre_moles_equilibre_precipites_0[i-1],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats) else if ((nombre_moles_equilibre_precipites_0[i-1]=0)) then stringgridresultats.Cells[i+nombre_solutes_0, vovo+2]:=rsABSENT else begin stringgridresultats.Cells[i+nombre_solutes_0, vovo+2]:=rsTraces; {tableau_resultats[vovo,i+nombre_solutes_0]:=0;} end; // stringgridresultats.AutoSizeColumns; end; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats[vovo,i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} end; end; {=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*(volume_verse-pas_derivee); if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+(volume_verse-pas_derivee))*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; // Save_Cursor := Screen.Cursor; try // screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+(volume_verse-pas_derivee),temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally // Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_gauche[0]:=((volume_verse-pas_derivee))*1000; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats_gauche[i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_gauche[i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+(volume_verse-pas_derivee)); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do tableau_resultats_gauche[i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; end; {de l'affichage des resultats} //application.ProcessMessages; if arret_demande then exit; calcul_en_cours:=true; for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*(volume_verse+pas_derivee); if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+(volume_verse+pas_derivee))*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; //Save_Cursor := Screen.Cursor; try //screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+(volume_verse+pas_derivee),temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally //Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_droite[0]:=((volume_verse+pas_derivee))*1000; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats_droite[i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_droite[i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+(volume_verse+pas_derivee)); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do tableau_resultats_droite[i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; end; {de l'affichage des resultats} {et maintenant calcul des derivees} for i:=1 to nombre_solutes_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i])) and not(isnanorinfinite(tableau_resultats_gauche[i]))) then if vovo<>0 then tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i]-tableau_resultats_gauche[i])/pas_derivee/2 else tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i]-tableau_resultats_gauche[i])/pas_derivee else tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]:=NAN; if debye_0 then if isnanorinfinite(tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]) then stringgridresultats.Cells[i+2*nombre_solutes_0+nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+2*nombre_solutes_0+nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats) else if isnanorinfinite(tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0]) then stringgridresultats.Cells[i+nombre_solutes_0+nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+nombre_solutes_0+nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+2*nombre_solutes_0+nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats); // if debye_0 then begin //stringgridresultats.AutoSizeColumns; //end else begin // stringgridresultats.AutoSizeColumns; //end; end; for i:=1 to nombre_solutes_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0])) and not(isnanorinfinite(tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0]))) then if vovo<>0 then tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]- tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0])/pas_derivee/2 else tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]- tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0])/pas_derivee else tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:=NAN; if debye_0 then begin if isnanorinfinite(tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]) then stringgridresultats.Cells[i+3*nombre_solutes_0+2*nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+3*nombre_solutes_0+2*nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats); // stringgridresultats.AutoSizeColumns; end; end; for i:=1 to nombre_precipites_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i+nombre_solutes_0])) and not(isnanorinfinite(tableau_resultats_gauche[i+nombre_solutes_0]))) then if vovo<>0 then tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0]- tableau_resultats_gauche[i+nombre_solutes_0])/pas_derivee/2 else tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0]- tableau_resultats_gauche[i+nombre_solutes_0])/pas_derivee else tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]:=NAN; if debye_0 then begin if isnanorinfinite(tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]) then stringgridresultats.Cells[i+3*nombre_solutes_0+nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+3*nombre_solutes_0+nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats); //stringgridresultats.AutoSizeColumns; end else begin if isnanorinfinite(tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0]) then stringgridresultats.Cells[i+2*nombre_solutes_0+nombre_precipites_0,vovo+2]:='NC' else stringgridresultats.Cells[i+2*nombre_solutes_0+nombre_precipites_0,vovo+2]:= floattostrf(tableau_resultats[vovo,i+3*nombre_solutes_0+nombre_precipites_0],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats); // stringgridresultats.AutoSizeColumns; end; end; end; {ajout version 1.10>} end;{de la boucle des volumes} calcul_en_cours:=false; arret_demande:=false; nombre_points_calcul:=vovo; {} end; stringgridresultats.AutoSizeColumns; etape:=resultats; pagecontrol4.ActivePage:=tabsheetresultats; end; procedure TForm1.BitBtn3KeyPress(Sender: TObject; var Key: Char); begin if not(calcul_en_cours) then begin key:=#0; exit; end; if key=chr(VK_Escape) then if application.MessageBox(pchar(rsArrTerLesCal), pchar(rsDemandeDArrT), mb_yesno)=idyes then begin arret_demande:=true; end; end; procedure TForm1.BitBtn4Click(Sender: TObject); begin popupmenu1.Popup(BitBtn4.Left+BitBtn4.Width,BitBtn4.Top+BitBtn4.Height); end; procedure TForm1.BitBtn4_Click(Sender: TObject); begin popupmenu2.Popup(BitBtn4_.Left+BitBtn4_.Width,BitBtn4_.Top+BitBtn4_.Height); end; procedure TForm1.BitBtn5Click(Sender: TObject); begin popupmenubrut.PopUp; end; procedure TForm1.BitBtn6Click(Sender: TObject); var i,j,k,popo:integer; parseressai:TCalculateurFonction; expression,expression_explicite:string; liste_variables:tableauchaine; nombre_variables,nouveau_nombre_ordonnees:integer; erreur_syntaxe:boolean; tableau_erreur_syntaxe:array of boolean; begin mode_faisceau:=false; erreur_syntaxe:=false; {verification de la coherence de l'expression de l'bacisse et de l'orodnnee s'il en existe deja} if expression_abscisse_explicite<>'' then begin expression_explicite:=expression_abscisse_explicite; expression_explicite_vers_expression(expression_explicite,expression); expression_vers_expression_explicite(expression,expression_explicite,liste_variables, nombre_variables); try parseressai:=TCalculateurFonction.Create(expression,liste_variables,nombre_variables); except {l'ancienne abscisse a une syntaxe incorrecte: on la vire} erreur_syntaxe:=true; editabscisse.Text:=''; expression_abscisse:=''; expression_abscisse_explicite:=''; end; if not(erreur_syntaxe) then begin expression_explicite_vers_expression(expression_abscisse_explicite,expression_abscisse); expression_vers_expression_explicite( expression_abscisse,expression_abscisse_explicite, liste_variables_abscisse,nombre_variables_abscisse); Parser_abscisse:=TCalculateurFonction.Create(expression_abscisse,liste_variables_abscisse,nombre_variables_abscisse); labelx:=expression_abscisse_explicite; finalize(liste_variables); parseressai.Destroy; end; end; nouveau_nombre_ordonnees:=0; if nombre_ordonnees>0 then begin setlength(tableau_erreur_syntaxe,nombre_ordonnees); for j:=1 to nombre_ordonnees do begin tableau_erreur_syntaxe[j-1]:=false; inc(nouveau_nombre_ordonnees); expression_explicite:=expression_ordonnees_explicites[j-1]; expression_explicite_vers_expression(expression_explicite,expression); expression_vers_expression_explicite(expression,expression_explicite,liste_variables, nombre_variables); try parseressai:=TCalculateurFonction.Create(expression,liste_variables,nombre_variables); except {l'ancienne ordonnee a une syntaxe incorrecte: on la compte fausse} tableau_erreur_syntaxe[j-1]:=true; dec(nouveau_nombre_ordonnees); end; if not tableau_erreur_syntaxe[j-1] then begin parseressai.Destroy; finalize(liste_variables); end; end; {de la boucle en j} end; { du cas nombre_ordonnees>0} if nouveau_nombre_ordonnees>0 then stringgridordonnees.RowCount:=1+nouveau_nombre_ordonnees else begin stringgridordonnees.RowCount:=2; for i:=1 to stringgridordonnees.ColCount do stringgridordonnees.Cells[i-1,1]:=''; end; if nombre_ordonnees>0 then begin j:=0; for i:=1 to nombre_ordonnees do if not(tableau_erreur_syntaxe[i-1]) then begin inc(j); expression_ordonnees_explicites[j-1]:=expression_ordonnees_explicites[i-1]; expression_explicite_vers_expression(expression_ordonnees_explicites[j-1], expression_ordonnees[j-1]); expression_vers_expression_explicite(expression_ordonnees[j-1], expression_ordonnees_explicites[j-1],liste_variables_ordonnees[j-1], nombre_variables_ordonnees[j-1]); if nombre_variables_ordonnees[j-1]>0 then Parser_ordonnees[j-1].Create(expression_ordonnees[j-1],liste_variables_ordonnees[j-1],nombre_variables_ordonnees[j-1]); stringgridordonnees.Rows[j]:=stringgridordonnees.Rows[i]; liste_styles_ordonnees[j-1]:=liste_styles_ordonnees[i-1]; liste_couleurs_ordonnees[j-1]:=liste_couleurs_ordonnees[i-1]; liste_tailles_ordonnees[j-1]:=liste_tailles_ordonnees[i-1]; liste_tracerok_ordonnees[j-1]:=liste_tracerok_ordonnees[i-1]; liste_epaisseurs_ordonnees[j-1]:=liste_epaisseurs_ordonnees[i-1]; end; if nouveau_nombre_ordonnees} {modif version 2.5} else if copy(liste_variables_ordonnees[j-1][k-1],1,2)='Po' then begin icouple:=strtoint(copy(liste_variables_ordonnees[j-1][k-1],3, length(liste_variables_ordonnees[j-1][k-1])-2)); {on teste si un des elements du couple est un solide absent, auquel cas potentiel:=NAN} imin1:=0; imin2:=0; isol1:=0; isol2:=0; if nombre_precipites_0>0 then begin imin1:=1; while imin1<=nombre_precipites_0 do if noms_precipites_0[imin1-1]=liste_couples_redox[icouple-1].espece1 then break else inc(imin1); if imin1<=nombre_precipites_0 then begin if tableau_resultats[i,nombre_precipites_0+imin1]=0 then begin Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; goto 6446; end; end else imin1:=0; end; if nombre_precipites_0>0 then begin imin2:=1; while imin2<=nombre_precipites_0 do if noms_precipites_0[imin2-1]=liste_couples_redox[icouple-1].espece2 then break else inc(imin2); if imin2<=nombre_precipites_0 then begin if tableau_resultats[i,nombre_precipites_0+imin2]=0 then begin Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; goto 6446; end; end else imin2:=0; end; {on teste si un des elements du couple est un solute absent, auquel cas potentiel:=NAN} if nombre_solutes_0>0 then begin isol1:=1; while isol1<=nombre_solutes_0 do if noms_solutes_0[isol1-1]=liste_couples_redox[icouple-1].espece1 then break else inc(isol1); if isol1<=nombre_solutes_0 then begin if tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+isol1]=0 then begin Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; goto 6446; end; end else isol1:=0; end; if nombre_solutes_0>0 then begin isol2:=1; while isol2<=nombre_solutes_0 do if noms_solutes_0[isol2-1]=liste_couples_redox[icouple-1].espece2 then break else inc(isol2); if isol2<=nombre_solutes_0 then begin if tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+isol2]=0 then begin Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; goto 6446; end; end else isol2:=0; end; try poto:=liste_couples_redox[icouple-1].potentiel_standard_redox; if isol1>0 then poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_1*ln(tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+isol1])/ln(10); if isol2>0 then poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_2*ln(tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+isol2])/ln(10); poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_Hp*ln(tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+indice_pH])/ln(10); Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=poto; except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end; 6446: end {modif version 2.5} else if copy(liste_variables_ordonnees[j-1][k-1],1,2)='pc' then try Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=-log10( tableau_resultats[i,strtoint(copy(liste_variables_ordonnees[j-1][k-1],3, length(liste_variables_ordonnees[j-1][k-1])-2))]); except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if copy(liste_variables_ordonnees[j-1][k-1],1,2)='pa' then try Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=-log10( tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+ strtoint(copy(liste_variables_ordonnees[j-1][k-1],3, length(liste_variables_ordonnees[j-1][k-1])-2))]); except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if liste_variables_ordonnees[j-1][k-1][1]='c' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := tableau_resultats[i,strtoint(copy(liste_variables_ordonnees[j-1][k-1],2, length(liste_variables_ordonnees[j-1][k-1])-1))] else if liste_variables_ordonnees[j-1][k-1][1]='a' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+ strtoint(copy(liste_variables_ordonnees[j-1][k-1],2, length(liste_variables_ordonnees[j-1][k-1])-1))] else if copy(liste_variables_ordonnees[j-1][k-1],1,2)='pn' then try Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=-log10( tableau_resultats[i,strtoint(copy(liste_variables_ordonnees[j-1][k-1],3, length(liste_variables_ordonnees[j-1][k-1])-2))+nombre_solutes_0]); except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if liste_variables_ordonnees[j-1][k-1][1]='n' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := tableau_resultats[i,strtoint(copy(liste_variables_ordonnees[j-1][k-1],2, length(liste_variables_ordonnees[j-1][k-1])-1))+nombre_solutes_0]; try tableau_grandeurs_tracees[i,j]:=Parser_ordonnees[j-1].value; except tableau_grandeurs_tracees[i,j]:=NAN; end; end; for k:=1 to nombre_variables_abscisse do if liste_variables_abscisse[k-1]='gamma' then try conductivite_actuelle:=0; for kkk:=1 to nombre_solutes_0 do conductivite_actuelle:=conductivite_actuelle+ tableau_resultats[i,kkk]*conductivites_solutes_0[kkk-1]* abs(charges_solutes_0[kkk-1])*0.1; parser_abscisse.Variable[liste_variables_abscisse[k-1]] := conductivite_actuelle; except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if liste_variables_abscisse[k-1]='Vtotal' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := tableau_resultats[i,0]+volume_becher*1000 else if liste_variables_abscisse[k-1]='V0' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := volume_becher*1000 else if liste_variables_abscisse[k-1]='V' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := tableau_resultats[i,0] else if liste_variables_abscisse[k-1]='pH' then try parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=-log10( tableau_resultats[i,indice_ph+nombre_solutes_0+nombre_precipites_0]); except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if liste_variables_abscisse[k-1]='pOH' then try parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=-log10( tableau_resultats[i,indice_poh+nombre_solutes_0+nombre_precipites_0]); except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else {} {modif version 2.5} else if copy(liste_variables_abscisse[k-1],1,2)='Po' then begin icouple:=strtoint(copy(liste_variables_abscisse[k-1],3, length(liste_variables_abscisse[k-1])-2)); {on teste si un des elements du couple est un solide absent, auquel cas potentiel:=NAN} imin1:=0; imin2:=0; isol1:=0; isol2:=0; if nombre_precipites_0>0 then begin imin1:=1; while imin1<=nombre_precipites_0 do if noms_precipites_0[imin1-1]=liste_couples_redox[icouple-1].espece1 then break else inc(imin1); if imin1<=nombre_precipites_0 then begin if tableau_resultats[i,nombre_precipites_0+imin1]=0 then begin Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; goto 6447; end; end else imin1:=0; end; if nombre_precipites_0>0 then begin imin2:=1; while imin2<=nombre_precipites_0 do if noms_precipites_0[imin2-1]=liste_couples_redox[icouple-1].espece2 then break else inc(imin2); if imin2<=nombre_precipites_0 then begin if tableau_resultats[i,nombre_precipites_0+imin2]=0 then begin Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; goto 6447; end; end else imin2:=0; end; {on teste si un des elements du couple est un solute absent, auquel cas potentiel:=NAN} if nombre_solutes_0>0 then begin isol1:=1; while isol1<=nombre_solutes_0 do if noms_solutes_0[isol1-1]=liste_couples_redox[icouple-1].espece1 then break else inc(isol1); if isol1<=nombre_solutes_0 then begin if tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+isol1]=0 then begin Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; goto 6447; end; end else isol1:=0; end; if nombre_solutes_0>0 then begin isol2:=1; while isol2<=nombre_solutes_0 do if noms_solutes_0[isol2-1]=liste_couples_redox[icouple-1].espece2 then break else inc(isol2); if isol2<=nombre_solutes_0 then begin if tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+isol2]=0 then begin Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; goto 6447; end; end else isol2:=0; end; try poto:=liste_couples_redox[icouple-1].potentiel_standard_redox; if isol1>0 then poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_1*ln(tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+isol1])/ln(10); if isol2>0 then poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_2*ln(tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+isol2])/ln(10); poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_Hp*ln(tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+indice_pH])/ln(10); Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=poto; except Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end; 6447: end {modif version 2.5} else if copy(liste_variables_abscisse[k-1],1,2)='pc' then try parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=-log10( tableau_resultats[i,strtoint(copy(liste_variables_abscisse[k-1],3, length(liste_variables_abscisse[k-1])-2))]); except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if copy(liste_variables_abscisse[k-1],1,2)='pa' then try parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=-log10( tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+ strtoint(copy(liste_variables_abscisse[k-1],3, length(liste_variables_abscisse[k-1])-2))]); except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if liste_variables_abscisse[k-1][1]='c' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := tableau_resultats[i,strtoint(copy(liste_variables_abscisse[k-1],2, length(liste_variables_abscisse[k-1])-1))] else if liste_variables_abscisse[k-1][1]='a' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := tableau_resultats[i,nombre_solutes_0+nombre_precipites_0+ strtoint(copy(liste_variables_abscisse[k-1],2, length(liste_variables_abscisse[k-1])-1))] else if copy(liste_variables_abscisse[k-1],1,2)='pn' then try parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=-log10( tableau_resultats[i,strtoint(copy(liste_variables_abscisse[k-1],3, length(liste_variables_abscisse[k-1])-2))+nombre_solutes_0]); except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if liste_variables_abscisse[k-1][1]='n' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := tableau_resultats[i,strtoint(copy(liste_variables_abscisse[k-1],2, length(liste_variables_abscisse[k-1])-1))+nombre_solutes_0]; try tableau_grandeurs_tracees[i,0]:= parser_abscisse.value; except tableau_grandeurs_tracees[i,0]:=NAN; end; end; {} if not(form1.calcule_echelles) then exit; {si la page d'affichage ds courbes a été quittée dans un état où la fenetre d'affichage des valeurs pour un point particulier est affichee, il faut la ramener à l'état standard} pagecontrol4.ActivePage:=tabsheettracecourbes; speedbuttoncalculer.Visible:=false; spinedit1pourcent.Visible:=false; spinedit01pourcent.Visible:=false; spinedit001pourcent.Visible:=false; spinedit0001pourcent.Visible:=false; SpeedButtonfermer.Visible:=false; Label22.Visible:=false; Label21.Visible:=false; Editvolumepp.Visible:=false; memo_resultats_point_particulier.Visible:=false; memo_resultats_point_particulier.Clear; mode_1point:=false; form1.Image1.Align:=alclient; form1.dessinegraphe; // mc.Left:=0; // mc.Width:=tabsheettracecourbes.ClientWidth; //application.ProcessMessages; end; procedure TForm1.BitBtn8Click(Sender: TObject); var dede:string; i:integer; label 222; begin saisieexpression:=Tsaisieexpression.create(self); unit6.mypos:=0; with saisieexpression do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; 222: saisieexpression.Editexpression.Text:=expression_abscisse; if mode_script then begin saisieexpression.show; saisieexpression.BitBtn1click(sender); end else if saisieexpression.showmodal<>mrok then exit; editabscisse.text:=unit6.expression_explicite; expression_abscisse:=unit6.expression; if expression_abscisse_explicite<>unit6.expression_explicite then etape:=choisir_courbes; expression_abscisse_explicite:=unit6.expression_explicite; expression_vers_expression_explicite( expression_abscisse,expression_abscisse_explicite, liste_variables_abscisse,nombre_variables_abscisse); Parser_abscisse:=TCalculateurFonction.Create(expression_abscisse,liste_variables_abscisse,nombre_variables_abscisse); labelx:=expression_abscisse_explicite; end; procedure TForm1.BitBtn9Click(Sender: TObject); var dede:string; i:integer; label 222; begin saisieexpression:=Tsaisieexpression.create(self); unit6.mypos:=0; with saisieexpression do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; if mode_script then begin saisieexpression.Editexpression.Text:=intermediaire; saisieexpression.show; saisieexpression.BitBtn1click(sender); end else begin 222: saisieexpression.Editexpression.Text:=''; if saisieexpression.showmodal<>mrok then exit; end; inc(nombre_ordonnees); stringgridordonnees.RowCount:=nombre_ordonnees+1; stringgridordonnees.cells[0, nombre_ordonnees]:=rsSupprimerCet; stringgridordonnees.cells[1,nombre_ordonnees]:=unit6.expression_explicite; setlength(liste_echelles,nombre_ordonnees); setlength(liste_legendes,nombre_ordonnees); setlength(expression_ordonnees,nombre_ordonnees); setlength(expression_ordonnees_explicites,nombre_ordonnees); setlength(liste_variables_ordonnees,nombre_ordonnees); setlength(liste_couleurs_ordonnees,nombre_ordonnees); setlength(liste_styles_ordonnees,nombre_ordonnees); setlength(liste_tailles_ordonnees,nombre_ordonnees); setlength(liste_epaisseurs_ordonnees,nombre_ordonnees); setlength(liste_tracerok_ordonnees,nombre_ordonnees); setlength(nombre_variables_ordonnees,nombre_ordonnees); setlength(parser_ordonnees,nombre_ordonnees); liste_echelles[nombre_ordonnees-1]:=e_gauche; case nombre_ordonnees of 1: liste_couleurs_ordonnees[nombre_ordonnees-1]:=clblue; 2: liste_couleurs_ordonnees[nombre_ordonnees-1]:=clred; 3: liste_couleurs_ordonnees[nombre_ordonnees-1]:=clgreen; 4: liste_couleurs_ordonnees[nombre_ordonnees-1]:=clyellow; 5: liste_couleurs_ordonnees[nombre_ordonnees-1]:=clfuchsia; 6: liste_couleurs_ordonnees[nombre_ordonnees-1]:=clmaroon; 7: liste_couleurs_ordonnees[nombre_ordonnees-1]:=clolive; 8: liste_couleurs_ordonnees[nombre_ordonnees-1]:=claqua; 9: liste_couleurs_ordonnees[nombre_ordonnees-1]:=clgray; 10: liste_couleurs_ordonnees[nombre_ordonnees-1]:=clblack; 11: liste_couleurs_ordonnees[nombre_ordonnees-1]:=clpurple; 12: liste_couleurs_ordonnees[nombre_ordonnees-1]:=clnavy; else liste_couleurs_ordonnees[nombre_ordonnees-1]:=clblue; end; liste_styles_ordonnees[nombre_ordonnees-1]:=disque; liste_tailles_ordonnees[nombre_ordonnees-1]:=2; liste_epaisseurs_ordonnees[nombre_ordonnees-1]:=1; liste_tracerok_ordonnees[nombre_ordonnees-1]:=false; stringgridordonnees.cells[3,nombre_ordonnees]:=inttostr(liste_tailles_ordonnees[nombre_ordonnees-1]); stringgridordonnees.cells[2,nombre_ordonnees]:=' .'; stringgridordonnees.cells[5, nombre_ordonnees]:=rsNON; stringgridordonnees.cells[6,nombre_ordonnees]:='1'; stringgridordonnees.cells[7, nombre_ordonnees]:=rsGauche; expression_ordonnees[nombre_ordonnees-1]:=unit6.expression; expression_vers_expression_explicite( expression_ordonnees[nombre_ordonnees-1],dede, liste_variables_ordonnees[nombre_ordonnees-1],nombre_variables_ordonnees[nombre_ordonnees-1]); expression_ordonnees_explicites[nombre_ordonnees-1]:=dede; parser_ordonnees[nombre_ordonnees-1]:=TCalculateurFonction.Create(expression_ordonnees[nombre_ordonnees-1], liste_variables_ordonnees[nombre_ordonnees-1],nombre_variables_ordonnees[nombre_ordonnees-1]); liste_legendes[nombre_ordonnees-1]:=expression_ordonnees_explicites[nombre_ordonnees-1]; stringgridordonnees.cells[8,nombre_ordonnees]:=liste_legendes[nombre_ordonnees-1]; etape:=choisir_courbes; stringgridordonnees.AutoSizeColumns; end; procedure TForm1.Calculdesdrives1Click(Sender: TObject); begin saisie_derivees:=tsaisie_derivees.create(self); with saisie_derivees do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; checkboxderivees.Checked:=calcul_derivees; spineditderivee.Value:=diviseur_pas_derivee; end; if saisie_derivees.showmodal=mrok then begin calcul_derivees:=saisie_derivees.checkboxderivees.checked; diviseur_pas_derivee:=saisie_derivees.spineditderivee.Value; pas_derivee:=volume_burette_max/diviseur_pas_derivee; {modif version 2.5} Calculdesdrives1.Checked:=calcul_derivees; {modif version 2.5} if ((etape=resultats) or (etape=choisir_courbes) or (etape=tracer_courbes)) then begin etape:=verifier; pagecontrol4.activepage:=tabsheetverifier; bitbtn3click(sender); end; end; end; procedure TForm1.CheckBoxaxesChange(Sender: TObject); begin end; procedure TForm1.CheckBoxaxesClick(Sender: TObject); begin if not(mode_script) then begin cadrepresent:=not(cadrepresent); form1.dessinegraphe; tabsheettracecourbes.Refresh; end; end; procedure TForm1.CheckBoxexpClick(Sender: TObject); begin if etape=choisir_becher then exit; if not((nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then begin form1.CheckBoxexp.Checked:=false; exit; end; mode_experience:=not(mode_experience); form1.calcule_echelles; form1.dessinegraphe; tabsheettracecourbes.Refresh; end; procedure TForm1.CheckBoxgraduationsClick(Sender: TObject); begin if not(mode_script) then begin graduationspresentes:=not(graduationspresentes); form1.dessinegraphe; tabsheettracecourbes.Refresh; end; end; procedure TForm1.CheckBoxgrilledroiteClick(Sender: TObject); begin if not(mode_script) then begin grille_echelle_droite:=not(grille_echelle_droite); Form1.dessinegraphe; tabsheettracecourbes.Refresh; end; end; procedure TForm1.CheckBoxgrillegaucheClick(Sender: TObject); begin if not(mode_script) then begin grille_echelle_gauche:=not(grille_echelle_gauche); Form1.dessinegraphe; tabsheettracecourbes.Refresh; end; end; procedure TForm1.CheckBoxlegendeClick(Sender: TObject); begin if not(mode_script) then begin legendepresente:=not(legendepresente); Form1.dessinegraphe; tabsheettracecourbes.Refresh; end; end; procedure TForm1.CheckBoxsuperpositionChange(Sender: TObject); begin end; procedure TForm1.CheckBoxsuperpositionClick(Sender: TObject); begin if checkboxsuperposition.state=cbchecked then begin mode_faisceau:=false; mode_superposition:=true; end else begin mode_superposition:=false; mode_faisceau:=false; end; Form1.dessinegraphe; tabsheettracecourbes.Refresh; end; procedure TForm1.CheckListBox1Click(Sender: TObject); begin end; procedure TForm1.CheckListBox1ClickCheck(Sender: TObject); begin end; procedure TForm1.CheckListBox1ItemClick(Sender: TObject; Index: integer); begin if ((checklistbox1.itemindex>=0) and (checklistbox1.itemindex= 0)) then begin if avec_checklistbox1[Index]='false' then CheckListBox1.Checked[Index] := not CheckListBox1.Checked[Index] else CheckListBox1.Checked[Index] :=true; CheckListBox1.Invalidate; end; end; procedure TForm1.CheckListBoxSauveClickCheck(Sender: TObject); begin etape:=eliminer; end; procedure TForm1.Chiffressignificatifs1Click(Sender: TObject); begin saisiechiffressignificatifs:= tsaisiechiffressignificatifs.create(self); with saisiechiffressignificatifs do begin spinedit1.Value:=nombre_chiffres_constantes; spinedit2.Value:=nombre_chiffres_resultats; if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; showmodal; end; end; procedure TForm1.ComboBox1Change(Sender: TObject); begin form1.dessinegraphe; end; procedure TForm1.EditabscisseClick(Sender: TObject); begin Form1.BitBtn8Click(Sender); end; procedure TForm1.editxmaxChange(Sender: TObject); begin etape:=choisir_courbes; end; procedure TForm1.EditxminChange(Sender: TObject); begin etape:=choisir_courbes; end; procedure TForm1.EditymaxdroiteChange(Sender: TObject); begin etape:=choisir_courbes; end; procedure TForm1.EditymaxgaucheChange(Sender: TObject); begin etape:=choisir_courbes; end; procedure TForm1.EditymindroiteChange(Sender: TObject); begin etape:=choisir_courbes; end; procedure TForm1.editymingaucheChange(Sender: TObject); begin etape:=choisir_courbes; end; procedure TForm1.Enregistrerlefilmdelasimulation1Click(Sender: TObject); var f:textfile; ns,ligne,dede:string; i,j,k:integer; label 178; begin if etape<>tracer_courbes then begin application.MessageBox(pchar(Format(rsImpossibleDE4, ['"', '"'])), pchar(rsHLas), mb_ok); exit; end; 178: savedialog3.InitialDir:=repertoire_dosage_perso; savedialog3.FileName:=''; if not(savedialog3.Execute) then exit else ns:=savedialog3.FileName; if lowercase(extractfileext(ns))<>'.doz' then ns:=copy(ns,1,length(ns)-length(extractfileext(ns)))+'.doz'; if fileexists(ns) then if application.MessageBox(pchar(rsEcraserLeFic), pchar(rsCeNomDeFichi), mb_okcancel)=idcancel then goto 178; assignfile(f,(ns)); try rewrite(f); except application.MessageBox(pchar(rsImpossibleDe), pchar(rsMaisEuhhhh), mb_ok); exit; end; {} writeln(f,'Debye Huckel'); if debye_0 then writeln(f,'TRUE') else writeln(f,'FALSE'); writeln(f,'Empecher redox'); if empecher_redox_eau then writeln(f,'TRUE') else writeln(f,'FALSE'); writeln(f,'Afficher avertissement redox'); if afficher_avertissement_redox then writeln(f,'TRUE') else writeln(f,'FALSE'); writeln(f,'Point décimal export'); if point_decimal_export then writeln(f,'TRUE') else writeln(f,'FALSE'); writeln(f,'Nombre points calcul'); writeln(f,nombre_points_calcul); writeln(f,'Pas adaptatif'); if pas_adaptatif then writeln(f,'TRUE') else writeln(f,'FALSE'); writeln(f,'Variation log max'); writeln(f,var_log_max); writeln(f,'Limite inférieure pas'); writeln(f,limite_inferieure_pas); writeln(f,'Volume bécher'); writeln(f,editvolume.text); writeln(f,'Espéces bécher'); writeln(f,stringgridreactifs_becher.RowCount-1); for i:=1 to stringgridreactifs_becher.RowCount-1 do begin writeln(f,'Début espéce'); writeln(f,'Identifiant'); writeln(f,stringgridreactifs_becher.cells[1,i]); writeln(f,'Concentration'); writeln(f,stringgridreactifs_becher.cells[2,i]); writeln(f,'Fin espéce'); end; writeln(f,'Fin espéces bécher'); writeln(f,'Volume burette'); writeln(f,editvolume_burette.text); writeln(f,'Espéces burette'); writeln(f,stringgridreactifs_burette.RowCount-1); for i:=1 to stringgridreactifs_burette.RowCount-1 do begin writeln(f,'Début espéce'); writeln(f,'Identifiant'); writeln(f,stringgridreactifs_burette.cells[1,i]); writeln(f,'Concentration'); writeln(f,stringgridreactifs_burette.cells[2,i]); writeln(f,'Fin espéce'); end; writeln(f,'Fin espéces burette'); writeln(f,'Validation des espéces'); writeln(f,checklistbox1.Items.Count); for i:=1 to checklistbox1.Items.Count do begin writeln(f,checklistbox1.items[i-1]); if checklistbox1.Checked[i-1] then writeln(f,'TRUE') else writeln(f,'FALSE'); end; writeln(f,'Fin validation des espéces'); writeln(f,'Réactions et constantes'); writeln(f,stringgridreactions.RowCount-1); for i:=1 to stringgridreactions.RowCount-1 do begin writeln(f,'Début réaction'); writeln(f,'Réaction'); writeln(f,stringgridreactions.cells[0,i]); writeln(f,'logk'); writeln(f,stringgridreactions.cells[1,i]); writeln(f,'Fin réaction'); end; writeln(f,'Fin réactions et constantes'); writeln(f,'Grandeurs à tracer'); writeln(f,'Abscisse'); writeln(f,expression_abscisse_explicite); writeln(f,'Ordonnées'); writeln(f,nombre_ordonnees); for i:=1 to nombre_ordonnees do begin writeln(f,'Début ordonnée'); writeln(f,'Expression'); writeln(f,expression_ordonnees_explicites[i-1]); writeln(f,'Couleur'); writeln(f,liste_couleurs_ordonnees[i-1]); writeln(f,'Taille point'); writeln(f,liste_tailles_ordonnees[i-1]); writeln(f,'Epaisseur trait'); writeln(f,liste_epaisseurs_ordonnees[i-1]); writeln(f,'Style'); case liste_styles_ordonnees[i-1] of cercle: writeln(f,'Cercle'); disque: writeln(f,'Disque'); croix: writeln(f,'Croix'); plus: writeln(f,'Plus'); end; writeln(f,'Joindre'); if liste_tracerok_ordonnees[i-1] then writeln(f,'TRUE') else writeln(f,'FALSE'); writeln(f,'Echelle'); if liste_echelles[i-1]=e_gauche then writeln(f,'Gauche') else writeln(f,'Droite'); writeln(f,'Legende'); writeln(f,liste_legendes[i-1]); writeln(f,'Fin ordonnée'); end; writeln(f,'Echelle gauche automatique'); if radioechelleverticalegauche.ItemIndex=1 then writeln(f,'FALSE') else writeln(f,'TRUE'); writeln(f,'Echelle droite automatique'); if radioechelleverticaledroite.ItemIndex=1 then writeln(f,'FALSE') else writeln(f,'TRUE'); writeln(f,'Echelle horizontale automatique'); if radioechellehorizontale.ItemIndex=1 then writeln(f,'FALSE') else writeln(f,'TRUE'); writeln(f,'Abscisse minimale'); writeln(f,abscisse_min); writeln(f,'Abscisse maximale'); writeln(f,abscisse_max); writeln(f,'Ordonnée minimale gauche'); writeln(f,ordonnee_gauche_min); writeln(f,'Ordonnée maximale gauche'); writeln(f,ordonnee_gauche_max); writeln(f,'Ordonnée minimale droite'); writeln(f,ordonnee_droite_min); writeln(f,'Ordonnée maximale droite'); writeln(f,ordonnee_droite_max); writeln(f,'Fin grandeurs à tracer'); writeln(f,'Début embellissement graphique'); writeln(f,'Légende présente'); if legendepresente then writeln(f,'TRUE') else writeln(f,'FALSE'); writeln(f,'Legende a part presente'); if legendeapartpresente then writeln(f,'TRUE') else writeln(f,'FALSE'); writeln(f,'Titre'); writeln(f,titregraphe); writeln(f,'Label x'); writeln(f,labelx); writeln(f,'Label y gauche'); writeln(f,labely1); writeln(f,'Label y droit'); writeln(f,labely2); writeln(f,'Unité x'); writeln(f,unitex); writeln(f,'Unité y gauche'); writeln(f,unitey1); writeln(f,'Unité y droit'); writeln(f,unitey2); writeln(f,'Grille droite'); if grille_echelle_droite then writeln(f,'TRUE') else writeln(f,'FALSE'); writeln(f,'Grille gauche'); if grille_echelle_gauche then writeln(f,'TRUE') else writeln(f,'FALSE'); writeln(f,'Cadre présent'); if cadrepresent then writeln(f,'TRUE') else writeln(f,'FALSE'); writeln(f,'Graduations'); if graduationspresentes then writeln(f,'TRUE') else writeln(f,'FALSE'); writeln(f,'Couleur fond'); writeln(f, coucoufond); writeln(f,'Couleur grille gauche'); writeln(f, coucougrille1); writeln(f,'Couleur grille droite'); writeln(f, coucougrille2); writeln(f,'Couleur axes'); writeln(f, coucoucadre); writeln(f,'Couleur graduations'); writeln(f, coucougraduation); writeln(f,'Fin embellissement graphique'); closefile(f); end; procedure TForm1.Exporttableurtexte1Click(Sender: TObject); begin formoptionscsv:=tformoptionscsv.create(self); with formoptionscsv do begin if point_decimal_export then radiogroupseparateurdecimal.ItemIndex:=1 else radiogroupseparateurdecimal.ItemIndex:=0; if separateur_csv=' ' then radiogroupseparateur_csv.ItemIndex:=1 else radiogroupseparateur_csv.ItemIndex:=0; if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; showmodal; end; end; procedure TForm1.Expriencefichierformattableautexte1Click(Sender: TObject); var ns,s1,s2,s3,s4:string; f:textfile; novar:array of string; boubou:integer; i,j:integer; valeurs:array of float; begin opendialog3.InitialDir:=repertoire_dosage_perso; opendialog3.FileName:=''; if not(opendialog3.Execute) then exit; ns:=opendialog3.FileName; assignfile(f,(ns)); try reset(f); except application.MessageBox(pchar(rsFichierImpos), pchar(rsHLas), mb_ok); exit; end; nombre_points_exp:=0; try {lecture fichier tableur texte} if ((lowercase(extractfileext(ns))='.txt') or (lowercase(extractfileext(ns))='.csv')) then begin s1:=''; s2:=''; s3:=''; s4:=''; if not(eof(f)) then readln(f,s1); if not(eof(f)) then readln(f,s2); if not(eof(f)) then readln(f,s3); if not(eof(f)) then readln(f,s4); saisiefichiertableur:=tsaisiefichiertableur.create(self); with saisiefichiertableur do begin memo1.Clear; memo1.Lines.Add(s1); memo1.Lines.Add(s2); memo1.Lines.Add(s3); memo1.Lines.Add(s4); if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; if showmodal<>mrok then exit; end; reset(f); for i:=1 to premiere_ligne_e-1 do if not(eof(f)) then readln(f,s1) else begin application.MessageBox(pchar(rsPasDeDonnEsS), pchar(rsHLas), mb_ok); nombre_points_exp:=0; exit; end; while not(eof(f)) do begin readln(f,s1); setlength(valeurs,nombre_valeurs_par_ligne_e); {analyse de la ligne} for j:=1 to nombre_valeurs_par_ligne_e-1 do begin {elimination des espaces éventuels en début de ligne} while s1[1]=' ' do delete(s1,1,1); {recherche du séparateur de valeur} if not(separateur_espace_e) then i:=pos(';',s1) else i:=pos(' ',s1); if i<=0 then begin application.MessageBox(pchar(Format(rsSParateurSpC, [inttostr(premiere_ligne_e+ nombre_points_exp)])), pchar(rsHLas), mb_ok); exit; end; s2:=copy(s1,1,i-1); {transformation eventuelle du separateur decimal en .} if pos(',',s2)>0 then s2[pos(',',s2)]:='.'; if pos('NAN',uppercase(s2))>0 then begin if jindice_abscisse_e then valeurs[j-1]:=NAN; end else begin try mystrtofloat(s2); except application.MessageBox(pchar(Format(rsFormatValeur, [inttostr(premiere_ligne_e+ nombre_points_exp)])), pchar(rsHLas), mb_ok); exit; end; if jindice_abscisse_e then valeurs[j-1]:=mystrtofloat(s2); end; s1:=copy(s1,i+1,length(s1)-i); end; {de la boucle en j des n-1 premieres valeurs de la ligne} {reste la derniere de la ligne} while s1[1]=' ' do delete(s1,1,1); if not(separateur_espace_e) then i:=pos(';',s1) else i:=pos(' ',s1); if i<=0 then s2:=s1 else s2:=copy(s1,1,i-1); {transformation eventuelle du separateur decimal en .} if pos(',',s2)>0 then s2[pos(',',s2)]:='.'; if pos('NAN',uppercase(s2))>0 then begin j:=nombre_valeurs_par_ligne_e; if jindice_abscisse_e then valeurs[j-1]:=NAN; end else begin try mystrtofloat(s2); except application.MessageBox(pchar(Format(rsFormatValeur, [inttostr(premiere_ligne_e+ nombre_points_exp)])), pchar(rsHLas), mb_ok); exit; end; j:=nombre_valeurs_par_ligne_e; if jindice_abscisse_e then valeurs[j-1]:=mystrtofloat(s2); end; {on valide les valeurs}; inc(nombre_points_exp); setlength(tableau_donnees_exp,nombre_points_exp,nombre_valeurs_par_ligne_e); for j:=1 to nombre_valeurs_par_ligne_e do tableau_donnees_exp[nombre_points_exp-1,j-1]:=valeurs[j-1]; end;{du while not(eof)} end; {du cas tableur texte} {lecture fichier regressi} if (lowercase(extractfileext(ns))='.rw3') then begin nombre_points_exp:=0; try repeat readln(f,s1); until pos('NOM VAR',s1)>0; except application.MessageBox(pchar(rsFichierCorro), pchar(rsHLas2), mb_ok); exit; end; try nombre_valeurs_par_ligne_e:= strtoint(copy(s1,pos(chr(163),s1)+1,pos(' NOM',s1)-pos(chr(163),s1)-1)); except application.MessageBox(pchar(rsFichierCorro), pchar(rsHLas2), mb_ok); exit; end; setlength(novar,nombre_valeurs_par_ligne_e); for i:=1 to nombre_valeurs_par_ligne_e do readln(f,novar[i-1]); repeat readln(f,s1); until pos('GENRE VAR',s1)>0; boubou:=0; for i:=1 to nombre_valeurs_par_ligne_e do begin readln(f,s1); if s1='0' then inc(boubou); end; nombre_valeurs_par_ligne_e:=boubou; try saisieregressi:=tsaisieregressi.create(self); with saisieregressi do begin spinedit1.Minvalue:=1; spinedit1.Maxvalue:=nombre_valeurs_par_ligne_e; memo1.Clear; for i:=1 to nombre_valeurs_par_ligne_e do begin memo1.Lines.Add(novar[i-1]); end; finalize(novar); if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; if showmodal<>mrok then exit; end; except application.MessageBox(pchar(rsFichierCorro), pchar(rsHLas2), mb_ok); nombre_points_exp:=0; exit; end; try repeat readln(f,s1); until pos('VALEUR VAR',s1)>0; except application.MessageBox(pchar(rsFichierCorro), pchar(rsHLas2), mb_ok); nombre_points_exp:=0; exit; end; try nombre_points_exp:= strtoint(copy(s1,pos('&',s1)+1,pos(' VALEUR',s1)-pos('&',s1)-1)); except application.MessageBox(pchar(rsFichierCorro), pchar(rsHLas2), mb_ok); nombre_points_exp:=0; exit; end; setlength(tableau_donnees_exp,nombre_points_exp,nombre_valeurs_par_ligne_e); setlength(valeurs,nombre_valeurs_par_ligne_e); try for i:=1 to nombre_points_exp do begin readln(f,s1); while s1[1]=' ' do delete(s1,1,1); for j:=1 to nombre_valeurs_par_ligne_e do begin if pos(' ',s1)>0 then s2:=copy(s1,1,pos(' ',s1)-1) else s2:=s1; delete(s1,1,pos(' ',s1)); if length(s1)>0 then while s1[1]=' ' do delete(s1,1,1); if jindice_abscisse_e then valeurs[j-1]:=mystrtofloat(s2); end; for j:=1 to nombre_valeurs_par_ligne_e do tableau_donnees_exp[i-1,j-1]:=valeurs[j-1]; end; except application.MessageBox(pchar(rsFichierCorro), pchar(rsHLas2), mb_ok); nombre_points_exp:=0; exit; end; end; {du cas regressi} finally closefile(f); finalize(valeurs); checkboxexp.Checked:=true; mode_experience:=true; if form1.calcule_echelles then form1.dessinegraphe; end; end; procedure TForm1.FormActivate(Sender: TObject); begin {{$ifdef windows} SendMessage(Self.Handle, WM_SYSCOMMAND, SC_MAXIMIZE, 0); application.ProcessMessages; {$ELSE} form1.WindowState:=wsmaximized; {$endif}} if creation then begin creation:=false; if parametre_ligne_commande then Jouerunfilmdesimulation(Sender,''); end; end; procedure TForm1.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; stringgridordonnees.ColCount:=9; avec_checklistbox1:=tstringlist.create; policetitre:=tfont.Create; policetitre.Assign(form1.Font); policetitre.Style:=[fsbold,fsunderline]; policetitre.Size:=12; policetitre.Color:=clblue; policegraduation:=tfont.Create; policegraduation.Assign(form1.font); policegraduation.Size:=10; coucougraduation:=clblack; policegraduation.Color:=coucougraduation; policelegende:=tfont.Create; policelegende.Assign(form1.font); policelegende.Size:=12; policelegende.Style:=[fsbold]; nombre_simulations:=0; calcul_en_cours:=false; arret_demande:=false; {form1.Width:=screen.Width; form1.Height:=screen.Height; form1.Top:=0; form1.Left:=0; refresh;} stringgridreactifs_becher.ColCount:=3; stringgridreactifs_becher.RowCount:=2; stringgridreactifs_becher.cells[1, 0]:=rsIdentifiant; stringgridreactifs_becher.cells[2, 0]:=rsConcentratio2; largeur_col1_reactifs_becher:=stringgridreactifs_becher.Canvas. TextWidth(stringgridreactifs_becher.cells[1,0])+30; largeur_col2_reactifs_becher:=stringgridreactifs_becher.Canvas. TextWidth(stringgridreactifs_becher.cells[2,0])+30; stringgridreactifs_becher.AutoSizeColumns; pagecontrol1.ActivePage:=tabsheetaqueux; pagecontrol3.ActivePage:=tabsheet10; pagecontrol2.ActivePage:=tabsheet2; stringgridreactifs_burette.ColCount:=3; stringgridreactifs_burette.RowCount:=2; stringgridreactifs_burette.cells[1, 0]:=rsIdentifiant; stringgridreactifs_burette.cells[2, 0]:=rsConcentratio2; largeur_col1_reactifs_burette:=stringgridreactifs_burette.Canvas. TextWidth(stringgridreactifs_burette.cells[1,0])+30; largeur_col2_reactifs_burette:=stringgridreactifs_burette.Canvas. TextWidth(stringgridreactifs_burette.cells[2,0])+30; stringgridreactifs_burette.AutoSizeColumns; pagecontrol1_.ActivePage:=tabsheetaqueux_; pagecontrol3_.ActivePage:=tabsheet10_; pagecontrol2_.ActivePage:=tabsheet2_; pagecontrol4.ActivePage:=tabsheetchoisir; SpeedButton2Click(Sender); setlength( liste_valeurs_faisceau,0); // pagecontrol4.ActivePage:=TabSheetverifier; // pagecontrol4.ActivePage:=TabSheetresultats; // pagecontrol4.ActivePage:=TabSheetchoixcourbes; stringgridordonnees.ColCount:=9; setlength(parser_ordonnees,0); setlength(liste_variables_abscisse,0); setlength(liste_variables_ordonnees,0); setlength(liste_couleurs_ordonnees,0); setlength(liste_echelles,0); setlength(liste_styles_ordonnees,0); setlength(liste_tailles_ordonnees,0); setlength(liste_epaisseurs_ordonnees,0); setlength(liste_tracerok_ordonnees,0); setlength(liste_noms_e,0); setlength(liste_couleurs_ordonnees_e,0); setlength(liste_echelles_e,0); setlength(liste_styles_ordonnees_e,0); setlength(liste_tailles_ordonnees_e,0); setlength(liste_epaisseurs_ordonnees_e,0); setlength(liste_nepastracer_e,0); setlength(liste_tracerok_ordonnees_e,0); setlength(nombre_variables_ordonnees,0); setlength(expression_ordonnees,0); setlength(expression_ordonnees_explicites,0); {} {modif version 2.5} setlength(liste_couples_redox,0); {modif version 2.5} stringgridordonnees.Cells[0,0]:=''; stringgridordonnees.Cells[1, 0]:=rsExpression; stringgridordonnees.Cells[2, 0]:=rsStylePoints; stringgridordonnees.Cells[3, 0]:=rsTaillePoints; stringgridordonnees.Cells[4, 0]:=rsCouleur; stringgridordonnees.Cells[5, 0]:=rsJoindrePoint; stringgridordonnees.Cells[6, 0]:=rsEpaisseurTra; stringgridordonnees.Cells[7, 0]:=rsEchelle; stringgridordonnees.Cells[8, 0]:=rsLGende; stringgridordonnees.AutoSizeColumns;; liste_reacs:=TStringList.Create; liste_ctes:=TStringList.Create; //scalefont(self); end; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var x_cursor,y_cursor:extended; posi:tpoint; begin if not(indicateur_present) then exit; {sous gtk2, ca ne suit pas le mouvement de la souris: on rerecupere la position du curseur, pas actualisee assez rapidement} getcursorpos(posi); image1.OnMouseMove:=nil; application.ProcessMessages; image1.OnMouseMove:=@image1mousemove; posi:=image1.ScreenToClient(posi); x:=posi.x; y:=posi.y; mc.Convert(x,y,x_cursor,y_cursor,true); if (degrade_vertical and (ordonnee_gauche_est_ph or ordonnee_droite_est_ph)) then if debut_translation then begin if x_cursor+largeur_bande_indic/2*(abscisse_max-abscisse_min)>abscisse_max then abscisse_centre_bande_indic:=1-largeur_bande_indic/2 else if x_cursor-largeur_bande_indic/2*(abscisse_max-abscisse_min)ordonnee_gauche_max then ordonnee_centre_bande_indic:=1-largeur_bande_indic/2 else if y_cursor-largeur_bande_indic/2*(ordonnee_gauche_max-ordonnee_gauche_min)abscisse_max then abscisse_centre_bande_indic:=1-largeur_bande_indic/2 else if x_cursor-largeur_bande_indic/2*(abscisse_max-abscisse_min)ordonnee_gauche_max then ordonnee_centre_bande_indic:=1-largeur_bande_indic/2 else if y_cursor-largeur_bande_indic/2*(ordonnee_gauche_max-ordonnee_gauche_min)} if s1='Debye Huckel' then begin inc(iii); s:=liste_lignes_fichier_doz[iii]; if s='TRUE' then begin debye_0:=true; UtiliserDebyeetHckel1.Checked:=true; end; end; {modif version 2.5} if s1='Empecher redox' then begin inc(iii); s:=liste_lignes_fichier_doz[iii]; if s='TRUE' then begin empecher_redox_eau:=true; Autoriserractionsredox1.Checked:=false; end else begin empecher_redox_eau:=false; Autoriserractionsredox1.Checked:=true; end; end; {modif version 2.5} if s1='Afficher avertissement redox' then begin inc(iii); s:=liste_lignes_fichier_doz[iii]; if s='TRUE' then Afficher_avertissement_redox:=true else Afficher_avertissement_redox:=false; end; if s1='Point décimal export' then begin inc(iii); s:=liste_lignes_fichier_doz[iii]; if s='TRUE' then Point_decimal_export:=true else Point_decimal_export:=false; end; if s1='Nombre points calcul' then begin inc(iii); nombre_points_calcul:=strtoint(liste_lignes_fichier_doz[iii]); end; if s1='Pas adaptatif' then begin inc(iii); s:=liste_lignes_fichier_doz[iii]; if s='TRUE' then Pas_adaptatif:=true else Pas_adaptatif:=false; end; if s1='Variation log max' then begin inc(iii); var_log_max:=mystrtofloat(liste_lignes_fichier_doz[iii]); end; if s1='Limite inférieure pas' then begin inc(iii); limite_inferieure_pas:=mystrtofloat(liste_lignes_fichier_doz[iii]); end; if s1='Volume bécher' then begin inc(iii); volume_becher:=mystrtofloat(liste_lignes_fichier_doz[iii]); editvolume.Text:=floattostr(volume_becher); volume_becher:=volume_becher/1000; end; if s1='Espéces bécher' then begin inc(iii); nono:=strtoint(liste_lignes_fichier_doz[iii]); stringgridreactifs_becher.RowCount:=1+nono; for i:=1 to nono do begin stringgridreactifs_becher.Cells[0,i]:='Supprimer'; inc(iii); s2:=liste_lignes_fichier_doz[iii]; {s2 doit etre egal a 'Début espéce'} repeat inc(iii); s2:=liste_lignes_fichier_doz[iii]; if s2='Identifiant' then begin inc(iii); s3:=liste_lignes_fichier_doz[iii]; stringgridreactifs_becher.Cells[1,i]:=s3; stringgridreactifs_becher.AutoSizeColumns; end; if s2='Concentration' then begin inc(iii); s3:=liste_lignes_fichier_doz[iii]; stringgridreactifs_becher.Cells[2,i]:=s3; stringgridreactifs_becher.AutoSizeColumns; end; until(s2='Fin espéce'); end; {de la boucle des especes becher} end; {especes becher} if s1='Fin espéces bécher' then begin application.ProcessMessages; script:=tscript.create(self); with script do begin label1.Caption:=rsChoixDesRAct; label1.Font.Color:=clblue; if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; show; update; application.ProcessMessages; end; sleep(temporisation_film); script.Close; form1.BitBtn1Click(sender); application.ProcessMessages; end; if s1='Volume burette' then begin inc(iii); volume_burette_max:=mystrtofloat(liste_lignes_fichier_doz[iii]); editvolume_burette.Text:=floattostr(volume_burette_max); volume_burette_max:=volume_burette_max/1000; end; {} if s1='Espéces burette' then begin inc(iii); nono:=strtoint(liste_lignes_fichier_doz[iii]); stringgridreactifs_burette.RowCount:=1+nono; for i:=1 to nono do begin stringgridreactifs_burette.Cells[0,i]:='Supprimer'; inc(iii); s2:=liste_lignes_fichier_doz[iii]; {s2 doit etre egal a 'Début espéce'} repeat inc(iii); s2:=liste_lignes_fichier_doz[iii]; if s2='Identifiant' then begin inc(iii); s3:=liste_lignes_fichier_doz[iii]; stringgridreactifs_burette.Cells[1,i]:=s3; stringgridreactifs_burette.AutoSizeColumns; end; if s2='Concentration' then begin inc(iii); s3:=liste_lignes_fichier_doz[iii]; stringgridreactifs_burette.Cells[2,i]:=s3; stringgridreactifs_burette.AutoSizeColumns; end; until(s2='Fin espéce'); end; {de la boucle des especes burette} end; {especes burette} if s1='Fin espéces burette' then begin application.ProcessMessages; script:=tscript.create(self); with script do begin label1.Caption:=rsChoixDesRAct2; label1.Font.Color:=clblue; refresh; if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; show;update; application.ProcessMessages; end; sleep(temporisation_film); script.Close; form1.BitBtn1_Click(sender); end; if s1='Validation des espéces' then begin inc(iii); nono:=strtoint(liste_lignes_fichier_doz[iii]); for i:=1 to nono do begin inc(iii); s2:=liste_lignes_fichier_doz[iii]; inc(iii); s3:=liste_lignes_fichier_doz[iii]; if checklistbox1.Items.IndexOf(s2)>=0 then if s3='TRUE' then checklistbox1.Checked[checklistbox1.Items.IndexOf(s2)]:=true else checklistbox1.Checked[checklistbox1.Items.IndexOf(s2)]:=false; end; {de la boucle des validations} end; {de la validation des especes} if s1='Fin validation des espéces' then begin application.ProcessMessages; script:=tscript.create(self); with script do begin label1.Caption:=rsValidationDe; label1.Font.Color:=clblue; refresh; if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; show; update; application.ProcessMessages; end; sleep(temporisation_film); script.Close; form1.BitBtn2Click(sender); end; if s1='Réactions et constantes' then begin inc(iii); nono:=strtoint(liste_lignes_fichier_doz[iii]); for i:=1 to nono do begin inc(iii); s2:=liste_lignes_fichier_doz[iii]; {s2 doit contenir Début réaction} repeat inc(iii); s2:=liste_lignes_fichier_doz[iii]; if s2='Réaction' then inc(iii); s3:=liste_lignes_fichier_doz[iii]; if s2='logk' then inc(iii); s4:=liste_lignes_fichier_doz[iii]; until s2='Fin réaction'; if StringGridReactions.Cols[0].IndexOf(s3)>=0 then begin StringGridReactions.Cells[1,StringGridReactions.Cols[0].IndexOf(s3)]:= floattostrf(mystrtofloat(s4),ffgeneral,nombre_chiffres_constantes, nombre_chiffres_constantes); stringgridreactions.AutoSizeColumns; end; end; { de la boucle des reactions} end; {des reactions} if s1='Fin réactions et constantes' then begin application.ProcessMessages; script:=tscript.create(self); with script do begin label1.Caption:=rsValidationDe2; label1.Font.Color:=clblue; refresh; if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; show; update; application.ProcessMessages; end; sleep(temporisation_film); script.Close; form1.BitBtn3Click(sender); {affichage des resultats} application.ProcessMessages; script:=tscript.create(self); with script do begin label1.Caption:=rsAffichageDes; label1.Font.Color:=clblue; refresh; if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; show; update; application.ProcessMessages; end; sleep(temporisation_film); script.Close; form1.BitBtn6Click(sender); end; if s1='Abscisse' then begin inc(iii); s2:=liste_lignes_fichier_doz[iii]; expression_explicite_vers_expression(s2,expression_abscisse); Form1.BitBtn8Click(Sender); sleep(trunc(temporisation_film/20)); saisieexpression.Close; end; {de abscisse} if s1='Ordonnées' then begin inc(iii); nono:=strtoint(liste_lignes_fichier_doz[iii]); for i:=1 to nono do begin inc(iii); s2:=liste_lignes_fichier_doz[iii]; {s2 doit contenir Début ordonnée} repeat inc(iii); s2:=liste_lignes_fichier_doz[iii]; if s2='Expression' then begin inc(iii); s3:=liste_lignes_fichier_doz[iii]; expression_explicite_vers_expression(s3,intermediaire); BitBtn9Click(sender); sleep(trunc(temporisation_film/20)); saisieexpression.Close; end; {de expression} if s2='Couleur' then begin inc(iii); liste_couleurs_ordonnees[nombre_ordonnees-1]:=strtoint(liste_lignes_fichier_doz[iii]); end; if s2='Taille point' then begin inc(iii); liste_tailles_ordonnees[nombre_ordonnees-1]:=strtoint(liste_lignes_fichier_doz[iii]); StringGridordonnees.Cells[3,nombre_ordonnees]:= inttostr(liste_tailles_ordonnees[nombre_ordonnees-1]); end; if s2='Epaisseur trait' then begin inc(iii); liste_epaisseurs_ordonnees[nombre_ordonnees-1]:=strtoint(liste_lignes_fichier_doz[iii]); StringGridordonnees.Cells[6,nombre_ordonnees]:= inttostr(liste_epaisseurs_ordonnees[nombre_ordonnees-1]); end; {style} if s2='Style' then begin inc(iii); s3:=liste_lignes_fichier_doz[iii]; if s3='Disque' then begin liste_styles_ordonnees[nombre_ordonnees-1]:=disque; StringGridordonnees.Cells[2,nombre_ordonnees]:=' .'; end; if s3='Cercle' then begin liste_styles_ordonnees[nombre_ordonnees-1]:=cercle; StringGridordonnees.Cells[2,nombre_ordonnees]:=' o'; end; if s3='Croix' then begin liste_styles_ordonnees[nombre_ordonnees-1]:=croix; StringGridordonnees.Cells[2,nombre_ordonnees]:=' x'; end; if s3='Plus' then begin liste_styles_ordonnees[nombre_ordonnees-1]:=plus; StringGridordonnees.Cells[2,nombre_ordonnees]:=' +'; end; end; {fin style} if s2='Joindre' then begin inc(iii); s3:=liste_lignes_fichier_doz[iii]; if s3='TRUE' then begin liste_tracerok_ordonnees[nombre_ordonnees-1]:=true; StringGridordonnees.Cells[5,nombre_ordonnees]:='OUI'; end else begin liste_tracerok_ordonnees[nombre_ordonnees-1]:=false; StringGridordonnees.Cells[5,nombre_ordonnees]:='NON'; end; end;{de joindre} if s2='Echelle' then begin inc(iii); s3:=liste_lignes_fichier_doz[iii]; if s3='Gauche' then begin liste_echelles[nombre_ordonnees-1]:=e_gauche; StringGridordonnees.Cells[7,nombre_ordonnees]:='Gauche'; end else begin liste_echelles[nombre_ordonnees-1]:=e_droite; StringGridordonnees.Cells[7,nombre_ordonnees]:='Droite'; end; end;{de echelle} if s2='Legende' then begin inc(iii); s3:=liste_lignes_fichier_doz[iii]; liste_legendes[nombre_ordonnees-1]:=s3; StringGridordonnees.Cells[8,nombre_ordonnees]:=s3; end;{de legende} until s2='Fin ordonnée'; end; {de la boucle des ordonnees} end; { de ordonnees} if s1='Echelle gauche automatique' then begin inc(iii); s2:=liste_lignes_fichier_doz[iii]; if s2='TRUE' then radioechelleverticalegauche.ItemIndex:=0 else radioechelleverticalegauche.ItemIndex:=1; editymingauche.Enabled:= not(s2='TRUE'); editymaxgauche.Enabled:= not(s2='TRUE'); end; if s1='Echelle droite automatique' then begin inc(iii); s2:=liste_lignes_fichier_doz[iii]; if s2='TRUE' then radioechelleverticaledroite.ItemIndex:=0 else radioechelleverticaledroite.ItemIndex:=1; editymindroite.Enabled:= not(s2='TRUE'); editymaxdroite.Enabled:= not(s2='TRUE'); end; if s1='Echelle horizontale automatique' then begin inc(iii); s2:=liste_lignes_fichier_doz[iii]; if s2='TRUE' then radioechellehorizontale.ItemIndex:=0 else radioechellehorizontale.ItemIndex:=1; editxmin.Enabled:= not(s2='TRUE'); editxmax.Enabled:= not(s2='TRUE'); end; if s1='Abscisse minimale' then begin inc(iii); abscisse_min:=mystrtofloat(liste_lignes_fichier_doz[iii]); editxmin.Text:=floattostr(abscisse_min); end; if s1='Abscisse maximale' then begin inc(iii); abscisse_max:=mystrtofloat(liste_lignes_fichier_doz[iii]); editxmax.Text:=floattostr(abscisse_max); end; if s1='Ordonnée minimale gauche' then begin inc(iii); ordonnee_gauche_min:=mystrtofloat(liste_lignes_fichier_doz[iii]); editymingauche.Text:=floattostr(ordonnee_gauche_min); end; if s1='Ordonnée maximale gauche' then begin inc(iii); ordonnee_gauche_max:=mystrtofloat(liste_lignes_fichier_doz[iii]); editymaxgauche.Text:=floattostr(ordonnee_gauche_max); end; if s1='Ordonnée minimale droite' then begin inc(iii); ordonnee_droite_min:=mystrtofloat(liste_lignes_fichier_doz[iii]); editymindroite.Text:=floattostr(ordonnee_droite_min); end; if s1='Ordonnée maximale droite' then begin inc(iii); ordonnee_droite_max:=mystrtofloat(liste_lignes_fichier_doz[iii]); editymaxdroite.Text:=floattostr(ordonnee_droite_max); end; if s1='Fin grandeurs à tracer' then begin application.ProcessMessages; script:=tscript.create(self); with script do begin label1.Caption:=rsChoixDesGran; label1.Font.Color:=clblue; refresh; if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; show; update; application.ProcessMessages; end; sleep(temporisation_film); script.Close; form1.BitBtn7Click(sender); end; if s1='Légende présente' then begin inc(iii); s2:=liste_lignes_fichier_doz[iii]; legendepresente:=(s2='TRUE'); checkboxlegende.Checked:=legendepresente; end; if s1='Legende a part presente' then begin inc(iii); s2:=liste_lignes_fichier_doz[iii]; legendeapartpresente:=(s2='TRUE'); checkboxlegendeapart.Checked:=legendeapartpresente; end; if s1='Titre' then begin inc(iii); titregraphe:=liste_lignes_fichier_doz[iii]; end; if s1='Label x' then begin inc(iii); labelx:=liste_lignes_fichier_doz[iii]; end; if s1='Label y gauche' then begin inc(iii); labely1:=liste_lignes_fichier_doz[iii]; end; if s1='Label y droit' then begin inc(iii); labely2:=liste_lignes_fichier_doz[iii]; end; if s1='Unité x' then begin inc(iii); unitex:=liste_lignes_fichier_doz[iii]; end; if s1='Unité y gauche' then begin inc(iii); unitey1:=liste_lignes_fichier_doz[iii]; end; if s1='Unité y droit' then begin inc(iii);unitey2:=liste_lignes_fichier_doz[iii]; end; if s1='Grille droite' then begin inc(iii); s2:=liste_lignes_fichier_doz[iii]; grille_echelle_droite:=(s2='TRUE'); CheckBoxgrilledroite.Checked:=grille_echelle_droite; end; if s1='Grille gauche' then begin inc(iii); s2:=liste_lignes_fichier_doz[iii]; grille_echelle_gauche:=(s2='TRUE'); CheckBoxgrillegauche.Checked:=grille_echelle_gauche; end; if s1='Cadre présent' then begin inc(iii); s2:=liste_lignes_fichier_doz[iii]; cadrepresent:=(s2='TRUE'); CheckBoxaxes.Checked:=cadrepresent; end; if s1='Graduations' then begin inc(iii); s2:=liste_lignes_fichier_doz[iii]; graduationspresentes:=(s2='TRUE'); CheckBoxgraduations.Checked:=graduationspresentes; end; if s1='Couleur fond' then begin inc(iii); coucoufond:=strtoint(liste_lignes_fichier_doz[iii]); end; if s1='Couleur grille gauche' then begin inc(iii); coucougrille1:=strtoint(liste_lignes_fichier_doz[iii]); end; if s1='Couleur grille droite' then begin inc(iii); coucougrille2:=strtoint(liste_lignes_fichier_doz[iii]); end; if s1='Couleur axes' then begin inc(iii); coucoucadre:=strtoint(liste_lignes_fichier_doz[iii]); end; if s1='Couleur graduations' then begin inc(iii); coucougraduation:=strtoint(liste_lignes_fichier_doz[iii]); end; if s1='Fin embellissement graphique' then begin form1.calcule_echelles; form1.dessinegraphe; application.ProcessMessages; end; end; {de la boucle de lecture} finally liste_lignes_fichier_doz.Free; mode_script:=false; mode_superposition:=false; checkboxexp.Checked:=false; mode_experience:=false; checkboxsuperposition.Checked:=false; application.ProcessMessages; end; // application.MessageBox('ok','',mb_ok); end; procedure TForm1.EditvolumeKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm1.EditvolumeppKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm1.Editvolume_buretteKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm1.editxmaxKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm1.EditxminKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm1.EditymaxdroiteKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm1.EditymaxgaucheKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm1.EditymindroiteKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm1.editymingaucheKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm1.Image1Resize(Sender: TObject); begin if (pagecontrol4.ActivePage=tabsheettracecourbes) {and not(mode_1point)} then form1.dessinegraphe; end; procedure TForm1.EdittemperatureKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm1.EditpourcentageKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm1.EditabscisseKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm1.CheckBoxlegendeapartClick(Sender: TObject); begin if not(mode_script) then begin legendeapartpresente:=not(legendeapartpresente); Form1.dessinegraphe; //tabsheet_trace.Refresh; end; end; procedure TForm1.EditvolumeChange(Sender: TObject); begin end; procedure TForm1.LicenseGPL1Click(Sender: TObject); begin formgpl:=tformgpl.create(self); formgpl.memo1.lines.loadfromfile((repertoire_executable+'gpl.txt')); //application.messagebox(pchar( extractfilepath(application.ExeName)+'gpl.txt'),'',mb_ok); with formgpl do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; showmodal; end; end; procedure TForm1.MenuItem11Click(Sender: TObject); begin if degrade_vertical then options_indicateur.RadioGroup1.ItemIndex:=0 else options_indicateur.RadioGroup1.ItemIndex:=1; options_indicateur.showmodal; degrade_vertical:=(options_indicateur.RadioGroup1.ItemIndex=0); if ((etape=tracer_courbes) and (combobox1.ItemIndex>0)) then form1.BitBtn7Click(sender); end; procedure TForm1.MenuItem12Click(Sender: TObject); var v: THTMLBrowserHelpViewer; BrowserPath, BrowserParams: string; p: LongInt; URL: String; BrowserProcess: TProcessUTF8; begin v:=THTMLBrowserHelpViewer.Create(nil); try v.FindDefaultBrowser(BrowserPath,BrowserParams); //debugln(['Path=',BrowserPath,' Params=',BrowserParams]); url:='http://jeanmarie.biansan.free.fr/logiciel.html'; p:=System.Pos('%s', BrowserParams); System.Delete(BrowserParams,p,2); System.Insert(URL,BrowserParams,p); // start browser BrowserProcess:=TProcessUTF8.Create(nil); try BrowserProcess.CommandLine:=BrowserPath+' '+BrowserParams; BrowserProcess.Execute; finally BrowserProcess.Free; end; finally v.Free; end; end; procedure TForm1.MenuItem14Click(Sender: TObject); var v: THTMLBrowserHelpViewer; BrowserPath, BrowserParams: string; p: LongInt; URL: String; BrowserProcess: TProcessUTF8; begin v:=THTMLBrowserHelpViewer.Create(nil); try v.FindDefaultBrowser(BrowserPath,BrowserParams); //debugln(['Path=',BrowserPath,' Params=',BrowserParams]); url:='file:///'+repertoire_executable+'historique.html'; p:=System.Pos('%s', BrowserParams); System.Delete(BrowserParams,p,2); System.Insert(URL,BrowserParams,p); // start browser BrowserProcess:=TProcessUTF8.Create(nil); try BrowserProcess.CommandLine:=BrowserPath+' '+BrowserParams; BrowserProcess.Execute; finally BrowserProcess.Free; end; finally v.Free; end; end; procedure TForm1.MenuItem15Click(Sender: TObject); begin memo_resultats_point_particulier.SelectAll; memo_resultats_point_particulier.CopyToClipboard; end; procedure TForm1.MenuItem16Click(Sender: TObject); begin memo_resultats_point_particulier.CopyToClipboard; end; procedure TForm1.MenuItem8Click(Sender: TObject); begin end; procedure TForm1.MenuItem_jpgClick(Sender: TObject); var nom_f: String; hjpeg:tmyjpeg; ede:string; i,j,k,kk,mmmm,nbe_nuances:integer; lastx,lasty,largeurlegende,hauteurlegende:float; faut_superposer:boolean; plus_grande_largeur:integer; x1,x2,y1,y2:extended; x_reel,y_reel:extended; {} label 167,168; begin savedialog2.Filter:='JPEG|*.jpg'; savedialog2.FileName:=''; savedialog2.InitialDir:=repertoire_dosage_perso; SaveDialog2.DefaultExt := '.jpg'; if not SaveDialog2.execute then exit; nom_f := (SaveDialog2.Filename); if ansiuppercase(extractfileext(nom_f))<>'.JPG' then begin delete(nom_f,length(nom_f)-length(extractfileext(nom_f))+1, length(extractfileext(nom_f))); nom_f:=nom_f+'.jpg'; end; SaisieTailleImage:=TSaisieTailleImage.Create(self); with SaisieTailleImage do begin SpinEditLargeur.Value:=form1.Image1.Width; SpinEditHauteur.Value:=form1.Image1.Height; if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; showmodal; end; {*******************JPEG************************************} image_jpeg_pour_export:= Tjpegimage.Create; image_jpeg_pour_export.Width:=SaisieTailleImage.SpinEditLargeur.Value; image_jpeg_pour_export.height:=SaisieTailleImage.SpinEditHauteur.Value; faut_superposer:=false; if nombre_simulations>1 then for i:=1 to nombre_simulations-1 do faut_superposer:=faut_superposer or stockage_simulation_superposee[i-1]; faut_superposer:=mode_superposition and faut_superposer; if faut_superposer then begin mode_faisceau:=false; existe_gauche:=false; existe_droite:=false; for i:=1 to nombre_simulations do if (stockage_simulation_superposee[i-1] or (i=nombre_simulations)) then begin existe_gauche:=existe_gauche or stockage_existe_gauche[i-1]; existe_droite:=existe_droite or stockage_existe_droite[i-1]; end; abscisse_min:=stockage_abscisse_min[nombre_simulations-1]; abscisse_max:=stockage_abscisse_max[nombre_simulations-1]; for j:=1 to nombre_simulations-1 do if stockage_simulation_superposee[j-1] then begin abscisse_min:=math.min(abscisse_min,stockage_abscisse_min[j-1]); abscisse_max:=math.max(abscisse_max,stockage_abscisse_max[j-1]); end; if not(existe_gauche) then begin ordonnee_gauche_min:=0; ordonnee_gauche_max:=0; end else begin i:=0; repeat inc(i); until ( (stockage_existe_gauche[i-1] and stockage_simulation_superposee[i-1]) or (i=nombre_simulations)); ordonnee_gauche_min:=stockage_ordonnee_gauche_min[i-1]; ordonnee_gauche_max:=stockage_ordonnee_gauche_max[i-1]; if i=(k-1)*(hjpeg.Xmax-hjpeg.Xmin)/nombre_ordonnees) or (stockage_resultats[j-1,i,0]+largeurlegende>hjpeg.Xmax)) then begin if ( ( (stockage_liste_echelles[j-1,k-1]=e_gauche) and (stockage_resultats[j-1,i,k]+hauteurlegende>hjpeg.Ymax1) ) or ( (stockage_liste_echelles[j-1,k-1]=e_droite) and (stockage_resultats[j-1,i,k]+hauteurlegende>hjpeg.Ymax2) ) ) then {on ecrit en dessous} hjpeg.ecrire(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_expression_ordonnees_explicites[j-1,k-1], stockage_liste_echelles[j-1,k-1]=e_gauche,policelegende) else {on ecrit au dessus} hjpeg.ecrire(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k]+hauteurlegende, stockage_expression_ordonnees_explicites[j-1,k-1], stockage_liste_echelles[j-1,k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case stockage_styles_ordonnees[j-1,k-1] of cercle: hjpeg.cercle(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],1, stockage_couleurs_ordonnees[j-1,k-1],pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); disque: hjpeg.disque2(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],stockage_couleurs_ordonnees[j-1,k-1], stockage_couleurs_ordonnees[j-1,k-1], stockage_liste_echelles[j-1,k-1]=e_gauche); croix: hjpeg.croixx(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],1, stockage_couleurs_ordonnees[j-1,k-1],pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); plus: hjpeg.croixp(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],1, stockage_couleurs_ordonnees[j-1,k-1],pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); end; if (point_ok and stockage_tracerok_ordonnees[j-1,k-1]) then hjpeg.Trait(lastx,lasty,stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_epaisseurs_ordonnees[j-1,k-1], stockage_couleurs_ordonnees[j-1,k-1],pssolid,pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); point_ok:=true; lastx:=stockage_resultats[j-1,i,0]; lasty:=stockage_resultats[j-1,i,k]; end else point_ok:=false; end end; end; if not(faut_superposer) then begin if not(mode_faisceau) then form1.calcule_echelles; {ajout version 1.02 >} grille_echelle_gauche:=grille_echelle_gauche and existe_gauche; grille_echelle_droite:=grille_echelle_droite and existe_droite; checkboxgrillegauche.Checked:=grille_echelle_gauche; checkboxgrilledroite.Checked:=grille_echelle_droite; image_jpeg_pour_export.Canvas.Brush.Color:=clwhite; image_jpeg_pour_export.Canvas.Brush.Style:=bssolid; image_jpeg_pour_export.Canvas.Rectangle(0,0,image_jpeg_pour_export.Width,image_jpeg_pour_export.Height); hjpeg.LimitesEtAxes(abscisse_min,abscisse_max,ordonnee_gauche_min ,ordonnee_gauche_max,ordonnee_droite_min,ordonnee_droite_max,image_jpeg_pour_export.Width, image_jpeg_pour_export.height,titregraphe,policetitre,true,coucoufond,cadrepresent,epaisseur_cadre,coucoucadre, graduationspresentes, 1,4,coucougraduation,policegraduation, grille_echelle_gauche,grille_echelle_droite,1,coucougrille1, coucougrille2,labelx,labely1,labely2,unitex,unitey1,unitey2, false,existe_gauche,existe_droite,0,0,0,0); nbe_nuances:=480; indicateur_present:=( ( (degrade_vertical and (ordonnee_gauche_est_ph or ordonnee_droite_est_ph)) or (not(degrade_vertical) and abscisse_est_v)) and (combobox1.ItemIndex>0)); if indicateur_present then begin if (degrade_vertical and (ordonnee_gauche_est_ph or ordonnee_droite_est_ph)) then begin for mmmm:=0 to nbe_nuances-1 do begin if ordonnee_gauche_est_ph then hjpeg.MonRectangle(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*mmmm/nbe_nuances, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*(mmmm+1)/nbe_nuances, liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur(ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*(mmmm+0.5)/nbe_nuances) ,true) else hjpeg.MonRectangle(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*mmmm/nbe_nuances, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*(mmmm+1)/nbe_nuances, liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur(ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*(mmmm+0.5)/nbe_nuances) ,false); end; if ordonnee_gauche_est_ph then begin hjpeg.Trait(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); hjpeg.Trait(abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); hjpeg.Trait(abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); end else begin hjpeg.Trait(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); hjpeg.Trait(abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); hjpeg.Trait(abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); end; end else begin {si c'est le degrade en fonction du volume} for i:=0 to nombre_points_calcul-1 do begin hjpeg.MonRectangle(tableau_resultats[i,0], ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), tableau_resultats[i+1,0], ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur( -log10( tableau_resultats[i,indice_ph+nombre_solutes_0+nombre_precipites_0])) ,true); end; hjpeg.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); hjpeg.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); hjpeg.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); end; hjpeg.LimitesEtAxes(abscisse_min,abscisse_max,ordonnee_gauche_min ,ordonnee_gauche_max,ordonnee_droite_min,ordonnee_droite_max,image_jpeg_pour_export.Width, image_jpeg_pour_export.height,titregraphe,policetitre,false,coucoufond,cadrepresent,epaisseur_cadre,coucoucadre, graduationspresentes, 1,4,coucougraduation,policegraduation, grille_echelle_gauche,grille_echelle_droite,1,coucougrille1, coucougrille2,labelx,labely1,labely2,unitex,unitey1,unitey2, false,existe_gauche,existe_droite,0,0,0,0); end; {} if not(mode_faisceau) then for k:=1 to nombre_ordonnees do begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_calcul do if ( not(isnanorinfinite(tableau_grandeurs_tracees[i,0])) and not (isnanorinfinite(tableau_grandeurs_tracees[i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=liste_couleurs_ordonnees[k-1]; image_jpeg_pour_export.canvas.Font:=policelegende; hjpeg.Convert(image_jpeg_pour_export.canvas.TextWidth(expression_ordonnees_explicites[k-1])+ hjpeg.BordureGauche, image_jpeg_pour_export.canvas.TextHeight(expression_ordonnees_explicites[k-1])+ hjpeg.BordureHaute, largeurlegende,hauteurlegende,liste_echelles[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-hjpeg.Xmin); if liste_echelles[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-hjpeg.Ymax1) else hauteurlegende:=abs(hauteurlegende-hjpeg.Ymax2); if ( (tableau_grandeurs_tracees[i,0]-hjpeg.Xmin>=(k-1)*(hjpeg.Xmax-hjpeg.Xmin)/nombre_ordonnees) or (tableau_grandeurs_tracees[i,0]+largeurlegende>hjpeg.Xmax)) then begin if ( ( (liste_echelles[k-1]=e_gauche) and (tableau_grandeurs_tracees[i,k]+hauteurlegende>hjpeg.Ymax1) ) or ( (liste_echelles[k-1]=e_droite) and (tableau_grandeurs_tracees[i,k]+hauteurlegende>hjpeg.Ymax2) ) ) then {on ecrit en dessous} hjpeg.ecrire(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende) else {on ecrit au dessus} hjpeg.ecrire(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k]+hauteurlegende, expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees[k-1] of cercle: hjpeg.cercle(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); disque: hjpeg.disque2(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], liste_echelles[k-1]=e_gauche); croix: hjpeg.croixx(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); plus: hjpeg.croixp(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); end; if (point_ok and liste_tracerok_ordonnees[k-1]) then hjpeg.Trait(lastx,lasty,tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_epaisseurs_ordonnees[k-1], liste_couleurs_ordonnees[k-1],pssolid,pmcopy, liste_echelles[k-1]=e_gauche); point_ok:=true; lastx:=tableau_grandeurs_tracees[i,0]; lasty:=tableau_grandeurs_tracees[i,k]; end else point_ok:=false; end else begin {cas d'un faisceau} {} for kk:=1 to nombre_valeurs_faisceau do for k:=1 to nombre_ordonnees do begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_calcul_faisceau[kk-1] do if ( not(isnanorinfinite(tableau_grandeurs_tracees_faisceau[kk-1,i,0])) and not (isnanorinfinite(tableau_grandeurs_tracees_faisceau[kk-1,i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=couleurs_faisceau[k-1][kk-1]; {version 1.02} image_jpeg_pour_export.canvas.Font:=policelegende; hjpeg.Convert(image_jpeg_pour_export.canvas.TextWidth(expression_ordonnees_explicites[k-1])+ hjpeg.BordureGauche, image_jpeg_pour_export.canvas.TextHeight(expression_ordonnees_explicites[k-1])+ hjpeg.BordureHaute, largeurlegende,hauteurlegende,liste_echelles[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-hjpeg.Xmin); if liste_echelles[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-hjpeg.Ymax1) else hauteurlegende:=abs(hauteurlegende-hjpeg.Ymax2); if ( (tableau_grandeurs_tracees_faisceau[kk-1,i,0]-hjpeg.Xmin>=(k-1)*(hjpeg.Xmax-hjpeg.Xmin)/nombre_ordonnees) or (tableau_grandeurs_tracees_faisceau[kk-1,i,0]+largeurlegende>hjpeg.Xmax)) then begin if ( ( (liste_echelles[k-1]=e_gauche) and (tableau_grandeurs_tracees_faisceau[kk-1,i,k]+hauteurlegende>hjpeg.Ymax1) ) or ( (liste_echelles[k-1]=e_droite) and (tableau_grandeurs_tracees_faisceau[kk-1,i,k]+hauteurlegende>hjpeg.Ymax2) ) ) then {on ecrit en dessous} hjpeg.ecrire(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende) else {on ecrit au dessus} hjpeg.ecrire(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k]+hauteurlegende, expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees[k-1] of cercle: hjpeg.cercle(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],1,couleurs_faisceau[k-1][kk-1],pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} disque: hjpeg.disque2(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],couleurs_faisceau[k-1][kk-1],couleurs_faisceau[k-1][kk-1], liste_echelles[k-1]=e_gauche);{version 1.02} croix: hjpeg.croixx(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],1,couleurs_faisceau[k-1][kk-1],pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} plus: hjpeg.croixp(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],1,couleurs_faisceau[k-1][kk-1],pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} end; if (point_ok and liste_tracerok_ordonnees[k-1]) then hjpeg.Trait(lastx,lasty,tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_epaisseurs_ordonnees[k-1], couleurs_faisceau[k-1][kk-1],pssolid,pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} point_ok:=true; lastx:=tableau_grandeurs_tracees_faisceau[kk-1,i,0]; lasty:=tableau_grandeurs_tracees_faisceau[kk-1,i,k]; end else point_ok:=false; end; finalize(couleurs_faisceau); end; {affichage donnees experiemntales} if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then begin for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_exp-1 do begin if ( not(isnanorinfinite(tableau_donnees_exp[i,0])) and not (isnanorinfinite(tableau_donnees_exp[i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=liste_couleurs_ordonnees_e[k-1]; image_jpeg_pour_export.canvas.Font:=policelegende; hjpeg.Convert(image_jpeg_pour_export.canvas.TextWidth(liste_noms_e[k-1])+ hjpeg.BordureGauche, image_jpeg_pour_export.canvas.TextHeight(liste_noms_e[k-1])+ hjpeg.BordureHaute, largeurlegende,hauteurlegende,liste_echelles_e[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-hjpeg.Xmin); if liste_echelles_e[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-hjpeg.Ymax1) else hauteurlegende:=abs(hauteurlegende-hjpeg.Ymax2); if ( (tableau_donnees_exp[i,0]-hjpeg.Xmin>=(k-1)*(hjpeg.Xmax-hjpeg.Xmin)/(nombre_valeurs_par_ligne_e-1)) or (tableau_donnees_exp[i,0]+largeurlegende>hjpeg.Xmax)) then begin if ( ( (liste_echelles_e[k-1]=e_gauche) and (tableau_donnees_exp[i,k]+hauteurlegende>hjpeg.Ymax1) ) or ( (liste_echelles_e[k-1]=e_droite) and (tableau_donnees_exp[i,k]+hauteurlegende>hjpeg.Ymax2) ) ) then {on ecrit en dessous} hjpeg.ecrire(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_noms_e[k-1],liste_echelles_e[k-1]=e_gauche,policelegende) else {on ecrit au dessus} hjpeg.ecrire(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k]+hauteurlegende, liste_noms_e[k-1],liste_echelles_e[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees_e[k-1] of cercle: hjpeg.cercle(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); disque: hjpeg.disque2(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], liste_echelles_e[k-1]=e_gauche); croix: hjpeg.croixx(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); plus: hjpeg.croixp(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); end; if (point_ok and liste_tracerok_ordonnees_e[k-1]) then hjpeg.Trait(lastx,lasty,tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_epaisseurs_ordonnees_e[k-1], liste_couleurs_ordonnees_e[k-1],pssolid,pmcopy, liste_echelles_e[k-1]=e_gauche); point_ok:=true; lastx:=tableau_donnees_exp[i,0]; lasty:=tableau_donnees_exp[i,k]; end else point_ok:=false; end; end; end; {fin affichage donnees experiences} {nouvelle légende******************************************} if legendeapartpresente then begin policelegende.Color:=clblack; image_jpeg_pour_export.Canvas.Font:=policelegende; plus_grande_largeur:=image_jpeg_pour_export.Canvas.TextWidth(liste_legendes[0]); for k:=1 to nombre_ordonnees do plus_grande_largeur:=max(plus_grande_largeur, image_jpeg_pour_export.Canvas.TextWidth(liste_legendes[k-1])); if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then plus_grande_largeur:=max(plus_grande_largeur, image_jpeg_pour_export.Canvas.TextWidth(liste_noms_e[k-1])); largeur_cadre_legende_en_pixels:=plus_grande_largeur+{10+10+50}image_jpeg_pour_export.Canvas.TextWidth('ABC'); hauteur_cadre_legende_en_pixels:=image_jpeg_pour_export.Canvas.TextHeight('A'); for k:=1 to nombre_ordonnees do hauteur_cadre_legende_en_pixels:=hauteur_cadre_legende_en_pixels +image_jpeg_pour_export.Canvas.TextHeight(liste_legendes[k-1])+{10} image_jpeg_pour_export.Canvas.TextHeight('A') div 2; if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then hauteur_cadre_legende_en_pixels:=hauteur_cadre_legende_en_pixels +image_jpeg_pour_export.Canvas.TextHeight(liste_noms_e[k-1])+{10} image_jpeg_pour_export.Canvas.TextHeight('A') div 2; largeur_cadre_legende_relle:=largeur_cadre_legende_en_pixels*(hjpeg.xmax-hjpeg.xmin)/ (hjpeg.largeur-hjpeg.BordureGauche-hjpeg.BordureDroite) ; if existe_gauche then begin hauteur_cadre_legende_relle:=hauteur_cadre_legende_en_pixels*(hjpeg.ymax1-hjpeg.ymin1)/ (hjpeg.hauteur-hjpeg.BordureHaute-hjpeg.BordureBasse) ; x1:=hjpeg.Xmin+(hjpeg.Xmax-hjpeg.Xmin-largeur_cadre_legende_relle)/100*x_legende_pourcentage; x2:=x1+largeur_cadre_legende_relle; y1:=hjpeg.Ymin1+(hjpeg.Ymax1-hjpeg.Ymin1-hauteur_cadre_legende_relle)/100*y_legende_pourcentage; y2:=y1+hauteur_cadre_legende_relle; hjpeg.MonRectangle(x1,y1,x2,y2, clwhite,true); hjpeg.Trait(x1,y1,x2,y1, 2,clblack, pssolid,pmcopy,true); hjpeg.Trait(x2,y1,x2,y2, 2,clblack, pssolid,pmcopy,true); hjpeg.Trait(x2,y2,x1,y2, 2,clblack, pssolid,pmcopy,true); hjpeg.Trait(x1,y2,x1,y1, 2,clblack, pssolid,pmcopy,true); x_reel:=x1; x_reel:=x_reel+10/hjpeg.largeur*(hjpeg.Xmax-hjpeg.xmin); y_reel:=y2; {x_reel, y_reel:angle supérieur gauche du cadre de légende} for k:=1 to nombre_ordonnees do begin y_reel:=y_reel-(image_jpeg_pour_export.Canvas.TextHeight(liste_legendes[k-1])+ (image_jpeg_pour_export.Canvas.TextHeight('A') div 2))/hjpeg.hauteur*(hjpeg.ymax1-hjpeg.ymin1); case liste_styles_ordonnees[k-1] of cercle: hjpeg.cercle(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); disque: hjpeg.disque2(x_reel,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], true); croix: hjpeg.croixx(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); plus: hjpeg.croixp(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); end; if liste_tracerok_ordonnees[k-1] then hjpeg.Trait(x_reel,y_reel,x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_epaisseurs_ordonnees[k-1], liste_couleurs_ordonnees[k-1],pssolid,pmcopy,true); case liste_styles_ordonnees[k-1] of cercle: hjpeg.cercle(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); disque: hjpeg.disque2(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], true); croix: hjpeg.croixx(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); plus: hjpeg.croixp(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); end; hjpeg.ecrire(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/100, y_reel+image_jpeg_pour_export.Canvas.TextHeight(liste_legendes[k-1])/2/hjpeg.hauteur *(hjpeg.Ymax1-hjpeg.Ymin1),liste_legendes[k-1],true,policelegende); end; {si mode experience, il faut les rajouter a la legende} if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then begin y_reel:=y_reel-(image_jpeg_pour_export.Canvas.TextHeight(liste_noms_e[k-1])+ (image_jpeg_pour_export.Canvas.TextHeight('A') div 2))/hjpeg.hauteur*(hjpeg.ymax1-hjpeg.ymin1); case liste_styles_ordonnees_e[k-1] of cercle: hjpeg.cercle(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); disque: hjpeg.disque2(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], true); croix: hjpeg.croixx(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); plus: hjpeg.croixp(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); end; if liste_tracerok_ordonnees_e[k-1] then hjpeg.Trait(x_reel,y_reel,x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_epaisseurs_ordonnees_e[k-1], liste_couleurs_ordonnees_e[k-1],pssolid,pmcopy,true); case liste_styles_ordonnees_e[k-1] of cercle: hjpeg.cercle(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); disque: hjpeg.disque2(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], true); croix: hjpeg.croixx(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); plus: hjpeg.croixp(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); end; hjpeg.ecrire(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/100, y_reel+image_jpeg_pour_export.Canvas.TextHeight(liste_noms_e[k-1])/2/hjpeg.hauteur *(hjpeg.Ymax1-hjpeg.Ymin1),liste_noms_e[k-1],true,policelegende); end; {du cas experience} end else begin hauteur_cadre_legende_relle:=hauteur_cadre_legende_en_pixels*(hjpeg.ymax2-hjpeg.ymin2)/ (hjpeg.hauteur-hjpeg.BordureHaute-hjpeg.BordureBasse) ; x1:=hjpeg.Xmin+(hjpeg.Xmax-hjpeg.Xmin-largeur_cadre_legende_relle)/100*x_legende_pourcentage; x2:=x1+largeur_cadre_legende_relle; y1:=hjpeg.Ymin2+(hjpeg.Ymax2-hjpeg.Ymin2-hauteur_cadre_legende_relle)/100*y_legende_pourcentage; y2:=y1+hauteur_cadre_legende_relle; hjpeg.MonRectangle(x1,y1,x2,y2, clwhite,false); hjpeg.Trait(x1,y1,x2,y1, 2,clblack, pssolid,pmcopy,false); hjpeg.Trait(x2,y1,x2,y2, 2,clblack, pssolid,pmcopy,false); hjpeg.Trait(x2,y2,x1,y2, 2,clblack, pssolid,pmcopy,false); hjpeg.Trait(x1,y2,x1,y1, 2,clblack, pssolid,pmcopy,false); x_reel:=x1; x_reel:=x_reel+10/hjpeg.largeur*(hjpeg.Xmax-hjpeg.xmin); y_reel:=y2; {x_reel, y_reel:angle supérieur gauche du cadre de légende} for k:=1 to nombre_ordonnees do begin y_reel:=y_reel-(image_jpeg_pour_export.Canvas.TextHeight(liste_legendes[k-1])+ (image_jpeg_pour_export.Canvas.TextHeight('A') div 2))/hjpeg.hauteur*(hjpeg.ymax2-hjpeg.ymin2); case liste_styles_ordonnees[k-1] of cercle: hjpeg.cercle(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); disque: hjpeg.disque2(x_reel,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], false); croix: hjpeg.croixx(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); plus: hjpeg.croixp(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); end; if liste_tracerok_ordonnees[k-1] then hjpeg.Trait(x_reel,y_reel,x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_epaisseurs_ordonnees[k-1], liste_couleurs_ordonnees[k-1],pssolid,pmcopy,false); case liste_styles_ordonnees[k-1] of cercle: hjpeg.cercle(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); disque: hjpeg.disque2(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], false); croix: hjpeg.croixx(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); plus: hjpeg.croixp(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); end; hjpeg.ecrire(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/100, y_reel+image_jpeg_pour_export.Canvas.TextHeight(liste_legendes[k-1])/2/hjpeg.hauteur *(hjpeg.Ymax2-hjpeg.Ymin2),expression_ordonnees_explicites[k-1],false,policelegende); end; {si mode experience, il faut les rajouter a la legende} if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then begin y_reel:=y_reel-(image_jpeg_pour_export.Canvas.TextHeight(liste_noms_e[k-1])+ (image_jpeg_pour_export.Canvas.TextHeight('A') div 2))/hjpeg.hauteur*(hjpeg.ymax2-hjpeg.ymin2); case liste_styles_ordonnees_e[k-1] of cercle: hjpeg.cercle(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); disque: hjpeg.disque2(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], false); croix: hjpeg.croixx(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); plus: hjpeg.croixp(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); end; if liste_tracerok_ordonnees_e[k-1] then hjpeg.Trait(x_reel,y_reel,x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_epaisseurs_ordonnees_e[k-1], liste_couleurs_ordonnees_e[k-1],pssolid,pmcopy,false); case liste_styles_ordonnees_e[k-1] of cercle: hjpeg.cercle(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); disque: hjpeg.disque2(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], false); croix: hjpeg.croixx(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); plus: hjpeg.croixp(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); end; hjpeg.ecrire(x_reel+(hjpeg.Xmax-hjpeg.Xmin)/100, y_reel+image_jpeg_pour_export.Canvas.TextHeight(liste_noms_e[k-1])/2/hjpeg.hauteur *(hjpeg.Ymax2-hjpeg.Ymin2),liste_noms_e[k-1],false,policelegende); end; {du cas experience} end; end; {nouvelle légende******************************************} image_jpeg_pour_export.SaveToFile((nom_f)); image_jpeg_pour_export.Free; {*******************************************************} end; procedure TForm1.MenuItem_pngClick(Sender: TObject); var nom_f: String; hpng:tmypng; ede:string; i,j,k,kk,nbe_nuances,mmmm:integer; lastx,lasty,largeurlegende,hauteurlegende:float; faut_superposer:boolean; plus_grande_largeur:integer; x1,x2,y1,y2:extended; x_reel,y_reel:extended; {} label 167,168; begin savedialog2.Filter:='Portable Network Graphic (PNG)|*.png'; savedialog2.FileName:=''; savedialog2.InitialDir:=repertoire_dosage_perso; SaveDialog2.DefaultExt := '.png'; if not SaveDialog2.execute then exit; nom_f := (SaveDialog2.Filename); if ansiuppercase(extractfileext(nom_f))<>'.PNG' then begin delete(nom_f,length(nom_f)-length(extractfileext(nom_f))+1, length(extractfileext(nom_f))); nom_f:=nom_f+'.png'; end; SaisieTailleImage:=TSaisieTailleImage.Create(self); with SaisieTailleImage do begin SpinEditLargeur.Value:=form1.Image1.Width; SpinEditHauteur.Value:=form1.Image1.Height; if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; showmodal; end; {*******************PNG************************************} image_pour_export:= TPortableNetworkGraphic.Create; image_pour_export.Width:=SaisieTailleImage.SpinEditLargeur.Value; image_pour_export.height:=SaisieTailleImage.SpinEditHauteur.Value; faut_superposer:=false; if nombre_simulations>1 then for i:=1 to nombre_simulations-1 do faut_superposer:=faut_superposer or stockage_simulation_superposee[i-1]; faut_superposer:=mode_superposition and faut_superposer; if faut_superposer then begin mode_faisceau:=false; existe_gauche:=false; existe_droite:=false; for i:=1 to nombre_simulations do if (stockage_simulation_superposee[i-1] or (i=nombre_simulations)) then begin existe_gauche:=existe_gauche or stockage_existe_gauche[i-1]; existe_droite:=existe_droite or stockage_existe_droite[i-1]; end; abscisse_min:=stockage_abscisse_min[nombre_simulations-1]; abscisse_max:=stockage_abscisse_max[nombre_simulations-1]; for j:=1 to nombre_simulations-1 do if stockage_simulation_superposee[j-1] then begin abscisse_min:=math.min(abscisse_min,stockage_abscisse_min[j-1]); abscisse_max:=math.max(abscisse_max,stockage_abscisse_max[j-1]); end; if not(existe_gauche) then begin ordonnee_gauche_min:=0; ordonnee_gauche_max:=0; end else begin i:=0; repeat inc(i); until ( (stockage_existe_gauche[i-1] and stockage_simulation_superposee[i-1]) or (i=nombre_simulations)); ordonnee_gauche_min:=stockage_ordonnee_gauche_min[i-1]; ordonnee_gauche_max:=stockage_ordonnee_gauche_max[i-1]; if i=(k-1)*(hpng.Xmax-hpng.Xmin)/nombre_ordonnees) or (stockage_resultats[j-1,i,0]+largeurlegende>hpng.Xmax)) then begin if ( ( (stockage_liste_echelles[j-1,k-1]=e_gauche) and (stockage_resultats[j-1,i,k]+hauteurlegende>hpng.Ymax1) ) or ( (stockage_liste_echelles[j-1,k-1]=e_droite) and (stockage_resultats[j-1,i,k]+hauteurlegende>hpng.Ymax2) ) ) then {on ecrit en dessous} hpng.ecrire(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_expression_ordonnees_explicites[j-1,k-1], stockage_liste_echelles[j-1,k-1]=e_gauche,policelegende) else {on ecrit au dessus} hpng.ecrire(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k]+hauteurlegende, stockage_expression_ordonnees_explicites[j-1,k-1], stockage_liste_echelles[j-1,k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case stockage_styles_ordonnees[j-1,k-1] of cercle: hpng.cercle(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],1, stockage_couleurs_ordonnees[j-1,k-1],pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); disque: hpng.disque2(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],stockage_couleurs_ordonnees[j-1,k-1], stockage_couleurs_ordonnees[j-1,k-1], stockage_liste_echelles[j-1,k-1]=e_gauche); croix: hpng.croixx(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],1, stockage_couleurs_ordonnees[j-1,k-1],pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); plus: hpng.croixp(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],1, stockage_couleurs_ordonnees[j-1,k-1],pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); end; if (point_ok and stockage_tracerok_ordonnees[j-1,k-1]) then hpng.Trait(lastx,lasty,stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_epaisseurs_ordonnees[j-1,k-1], stockage_couleurs_ordonnees[j-1,k-1],pssolid,pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); point_ok:=true; lastx:=stockage_resultats[j-1,i,0]; lasty:=stockage_resultats[j-1,i,k]; end else point_ok:=false; end end; end; if not(faut_superposer) then begin if not(mode_faisceau) then form1.calcule_echelles; {ajout version 1.02 >} grille_echelle_gauche:=grille_echelle_gauche and existe_gauche; grille_echelle_droite:=grille_echelle_droite and existe_droite; checkboxgrillegauche.Checked:=grille_echelle_gauche; checkboxgrilledroite.Checked:=grille_echelle_droite; image_pour_export.Canvas.Brush.Color:=clwhite; image_pour_export.Canvas.Brush.Style:=bssolid; image_pour_export.Canvas.Rectangle(0,0,image_pour_export.Width,image_pour_export.Height); hpng.LimitesEtAxes(abscisse_min,abscisse_max,ordonnee_gauche_min ,ordonnee_gauche_max,ordonnee_droite_min,ordonnee_droite_max,image_pour_export.Width, image_pour_export.height,titregraphe,policetitre,true,coucoufond,cadrepresent,epaisseur_cadre,coucoucadre, graduationspresentes, 1,4,coucougraduation,policegraduation, grille_echelle_gauche,grille_echelle_droite,1,coucougrille1, coucougrille2,labelx,labely1,labely2,unitex,unitey1,unitey2, false,existe_gauche,existe_droite,0,0,0,0); nbe_nuances:=480; indicateur_present:=( ( (degrade_vertical and (ordonnee_gauche_est_ph or ordonnee_droite_est_ph)) or (not(degrade_vertical) and abscisse_est_v)) and (combobox1.ItemIndex>0)); if indicateur_present then begin if (degrade_vertical and (ordonnee_gauche_est_ph or ordonnee_droite_est_ph)) then begin for mmmm:=0 to nbe_nuances-1 do begin if ordonnee_gauche_est_ph then hpng.MonRectangle(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*mmmm/nbe_nuances, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*(mmmm+1)/nbe_nuances, liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur(ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*(mmmm+0.5)/nbe_nuances) ,true) else hpng.MonRectangle(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*mmmm/nbe_nuances, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*(mmmm+1)/nbe_nuances, liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur(ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*(mmmm+0.5)/nbe_nuances) ,false); end; if ordonnee_gauche_est_ph then begin hpng.Trait(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); hpng.Trait(abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); hpng.Trait(abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); end else begin hpng.Trait(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); hpng.Trait(abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); hpng.Trait(abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); end; end else begin {si c'est le degrade en fonction du volume} for i:=0 to nombre_points_calcul-1 do begin hpng.MonRectangle(tableau_resultats[i,0], ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), tableau_resultats[i+1,0], ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur( -log10( tableau_resultats[i,indice_ph+nombre_solutes_0+nombre_precipites_0])) ,true); end; hpng.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); hpng.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); hpng.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); end; hpng.LimitesEtAxes(abscisse_min,abscisse_max,ordonnee_gauche_min ,ordonnee_gauche_max,ordonnee_droite_min,ordonnee_droite_max,image_pour_export.Width, image_pour_export.height,titregraphe,policetitre,false,coucoufond,cadrepresent,epaisseur_cadre,coucoucadre, graduationspresentes, 1,4,coucougraduation,policegraduation, grille_echelle_gauche,grille_echelle_droite,1,coucougrille1, coucougrille2,labelx,labely1,labely2,unitex,unitey1,unitey2, false,existe_gauche,existe_droite,0,0,0,0); end; {} if not(mode_faisceau) then for k:=1 to nombre_ordonnees do begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_calcul do if ( not(isnanorinfinite(tableau_grandeurs_tracees[i,0])) and not (isnanorinfinite(tableau_grandeurs_tracees[i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=liste_couleurs_ordonnees[k-1]; image_pour_export.canvas.Font:=policelegende; hpng.Convert(image_pour_export.canvas.TextWidth(expression_ordonnees_explicites[k-1])+ hpng.BordureGauche, image_pour_export.canvas.TextHeight(expression_ordonnees_explicites[k-1])+ hpng.BordureHaute, largeurlegende,hauteurlegende,liste_echelles[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-hpng.Xmin); if liste_echelles[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-hpng.Ymax1) else hauteurlegende:=abs(hauteurlegende-hpng.Ymax2); if ( (tableau_grandeurs_tracees[i,0]-hpng.Xmin>=(k-1)*(hpng.Xmax-hpng.Xmin)/nombre_ordonnees) or (tableau_grandeurs_tracees[i,0]+largeurlegende>hpng.Xmax)) then begin if ( ( (liste_echelles[k-1]=e_gauche) and (tableau_grandeurs_tracees[i,k]+hauteurlegende>hpng.Ymax1) ) or ( (liste_echelles[k-1]=e_droite) and (tableau_grandeurs_tracees[i,k]+hauteurlegende>hpng.Ymax2) ) ) then {on ecrit en dessous} hpng.ecrire(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende) else {on ecrit au dessus} hpng.ecrire(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k]+hauteurlegende, expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees[k-1] of cercle: hpng.cercle(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); disque: hpng.disque2(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], liste_echelles[k-1]=e_gauche); croix: hpng.croixx(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); plus: hpng.croixp(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); end; if (point_ok and liste_tracerok_ordonnees[k-1]) then hpng.Trait(lastx,lasty,tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_epaisseurs_ordonnees[k-1], liste_couleurs_ordonnees[k-1],pssolid,pmcopy, liste_echelles[k-1]=e_gauche); point_ok:=true; lastx:=tableau_grandeurs_tracees[i,0]; lasty:=tableau_grandeurs_tracees[i,k]; end else point_ok:=false; end else begin {cas d'un faisceau} {} for kk:=1 to nombre_valeurs_faisceau do for k:=1 to nombre_ordonnees do begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_calcul_faisceau[kk-1] do if ( not(isnanorinfinite(tableau_grandeurs_tracees_faisceau[kk-1,i,0])) and not (isnanorinfinite(tableau_grandeurs_tracees_faisceau[kk-1,i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=couleurs_faisceau[k-1][kk-1]; {version 1.02} image_pour_export.canvas.Font:=policelegende; hpng.Convert(image_pour_export.canvas.TextWidth(expression_ordonnees_explicites[k-1])+ hpng.BordureGauche, image_pour_export.canvas.TextHeight(expression_ordonnees_explicites[k-1])+ hpng.BordureHaute, largeurlegende,hauteurlegende,liste_echelles[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-hpng.Xmin); if liste_echelles[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-hpng.Ymax1) else hauteurlegende:=abs(hauteurlegende-hpng.Ymax2); if ( (tableau_grandeurs_tracees_faisceau[kk-1,i,0]-hpng.Xmin>=(k-1)*(hpng.Xmax-hpng.Xmin)/nombre_ordonnees) or (tableau_grandeurs_tracees_faisceau[kk-1,i,0]+largeurlegende>hpng.Xmax)) then begin if ( ( (liste_echelles[k-1]=e_gauche) and (tableau_grandeurs_tracees_faisceau[kk-1,i,k]+hauteurlegende>hpng.Ymax1) ) or ( (liste_echelles[k-1]=e_droite) and (tableau_grandeurs_tracees_faisceau[kk-1,i,k]+hauteurlegende>hpng.Ymax2) ) ) then {on ecrit en dessous} hpng.ecrire(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende) else {on ecrit au dessus} hpng.ecrire(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k]+hauteurlegende, expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees[k-1] of cercle: hpng.cercle(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],1,couleurs_faisceau[k-1][kk-1],pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} disque: hpng.disque2(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],couleurs_faisceau[k-1][kk-1],couleurs_faisceau[k-1][kk-1], liste_echelles[k-1]=e_gauche);{version 1.02} croix: hpng.croixx(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],1,couleurs_faisceau[k-1][kk-1],pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} plus: hpng.croixp(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],1,couleurs_faisceau[k-1][kk-1],pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} end; if (point_ok and liste_tracerok_ordonnees[k-1]) then hpng.Trait(lastx,lasty,tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_epaisseurs_ordonnees[k-1], couleurs_faisceau[k-1][kk-1],pssolid,pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} point_ok:=true; lastx:=tableau_grandeurs_tracees_faisceau[kk-1,i,0]; lasty:=tableau_grandeurs_tracees_faisceau[kk-1,i,k]; end else point_ok:=false; end; finalize(couleurs_faisceau); end; {affichage donnees experiemntales} if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then begin for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_exp-1 do begin if ( not(isnanorinfinite(tableau_donnees_exp[i,0])) and not (isnanorinfinite(tableau_donnees_exp[i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=liste_couleurs_ordonnees_e[k-1]; image_pour_export.canvas.Font:=policelegende; hpng.Convert(image_pour_export.canvas.TextWidth(liste_noms_e[k-1])+ hpng.BordureGauche, image_pour_export.canvas.TextHeight(liste_noms_e[k-1])+ hpng.BordureHaute, largeurlegende,hauteurlegende,liste_echelles_e[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-hpng.Xmin); if liste_echelles_e[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-hpng.Ymax1) else hauteurlegende:=abs(hauteurlegende-hpng.Ymax2); if ( (tableau_donnees_exp[i,0]-hpng.Xmin>=(k-1)*(hpng.Xmax-hpng.Xmin)/(nombre_valeurs_par_ligne_e-1)) or (tableau_donnees_exp[i,0]+largeurlegende>hpng.Xmax)) then begin if ( ( (liste_echelles_e[k-1]=e_gauche) and (tableau_donnees_exp[i,k]+hauteurlegende>hpng.Ymax1) ) or ( (liste_echelles_e[k-1]=e_droite) and (tableau_donnees_exp[i,k]+hauteurlegende>hpng.Ymax2) ) ) then {on ecrit en dessous} hpng.ecrire(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_noms_e[k-1],liste_echelles_e[k-1]=e_gauche,policelegende) else {on ecrit au dessus} hpng.ecrire(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k]+hauteurlegende, liste_noms_e[k-1],liste_echelles_e[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees_e[k-1] of cercle: hpng.cercle(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); disque: hpng.disque2(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], liste_echelles_e[k-1]=e_gauche); croix: hpng.croixx(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); plus: hpng.croixp(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); end; if (point_ok and liste_tracerok_ordonnees_e[k-1]) then hpng.Trait(lastx,lasty,tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_epaisseurs_ordonnees_e[k-1], liste_couleurs_ordonnees_e[k-1],pssolid,pmcopy, liste_echelles_e[k-1]=e_gauche); point_ok:=true; lastx:=tableau_donnees_exp[i,0]; lasty:=tableau_donnees_exp[i,k]; end else point_ok:=false; end; end; end; {fin affichage donnees experiences} {nouvelle légende******************************************} if legendeapartpresente then begin policelegende.Color:=clblack; image_pour_export.Canvas.Font:=policelegende; plus_grande_largeur:=image_pour_export.Canvas.TextWidth(liste_legendes[0]); for k:=1 to nombre_ordonnees do plus_grande_largeur:=max(plus_grande_largeur, image_pour_export.Canvas.TextWidth(liste_legendes[k-1])); if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then plus_grande_largeur:=max(plus_grande_largeur, image_pour_export.Canvas.TextWidth(liste_noms_e[k-1])); largeur_cadre_legende_en_pixels:=plus_grande_largeur+{10+10+50}image_pour_export.Canvas.TextWidth('ABC'); hauteur_cadre_legende_en_pixels:=image_pour_export.Canvas.TextHeight('A'); for k:=1 to nombre_ordonnees do hauteur_cadre_legende_en_pixels:=hauteur_cadre_legende_en_pixels +image_pour_export.Canvas.TextHeight(liste_legendes[k-1])+{10} image_pour_export.Canvas.TextHeight('A') div 2; if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then hauteur_cadre_legende_en_pixels:=hauteur_cadre_legende_en_pixels +image_pour_export.Canvas.TextHeight(liste_noms_e[k-1])+{10} image_pour_export.Canvas.TextHeight('A') div 2; largeur_cadre_legende_relle:=largeur_cadre_legende_en_pixels*(hpng.xmax-hpng.xmin)/ (hpng.largeur-hpng.BordureGauche-hpng.BordureDroite) ; if existe_gauche then begin hauteur_cadre_legende_relle:=hauteur_cadre_legende_en_pixels*(hpng.ymax1-hpng.ymin1)/ (hpng.hauteur-hpng.BordureHaute-hpng.BordureBasse) ; x1:=hpng.Xmin+(hpng.Xmax-hpng.Xmin-largeur_cadre_legende_relle)/100*x_legende_pourcentage; x2:=x1+largeur_cadre_legende_relle; y1:=hpng.Ymin1+(hpng.Ymax1-hpng.Ymin1-hauteur_cadre_legende_relle)/100*y_legende_pourcentage; y2:=y1+hauteur_cadre_legende_relle; hpng.MonRectangle(x1,y1,x2,y2, clwhite,true); hpng.Trait(x1,y1,x2,y1, 2,clblack, pssolid,pmcopy,true); hpng.Trait(x2,y1,x2,y2, 2,clblack, pssolid,pmcopy,true); hpng.Trait(x2,y2,x1,y2, 2,clblack, pssolid,pmcopy,true); hpng.Trait(x1,y2,x1,y1, 2,clblack, pssolid,pmcopy,true); x_reel:=x1; x_reel:=x_reel+10/hpng.largeur*(hpng.Xmax-hpng.xmin); y_reel:=y2; {x_reel, y_reel:angle supérieur gauche du cadre de légende} for k:=1 to nombre_ordonnees do begin y_reel:=y_reel-(image_pour_export.Canvas.TextHeight(liste_legendes[k-1])+ (image_pour_export.Canvas.TextHeight('A') div 2))/hpng.hauteur*(hpng.ymax1-hpng.ymin1); case liste_styles_ordonnees[k-1] of cercle: hpng.cercle(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); disque: hpng.disque2(x_reel,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], true); croix: hpng.croixx(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); plus: hpng.croixp(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); end; if liste_tracerok_ordonnees[k-1] then hpng.Trait(x_reel,y_reel,x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_epaisseurs_ordonnees[k-1], liste_couleurs_ordonnees[k-1],pssolid,pmcopy,true); case liste_styles_ordonnees[k-1] of cercle: hpng.cercle(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); disque: hpng.disque2(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], true); croix: hpng.croixx(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); plus: hpng.croixp(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); end; hpng.ecrire(x_reel+(hpng.Xmax-hpng.Xmin)/100, y_reel+image_pour_export.Canvas.TextHeight(liste_legendes[k-1])/2/hpng.hauteur *(hpng.Ymax1-hpng.Ymin1),liste_legendes[k-1],true,policelegende); end; {si mode experience, il faut les rajouter a la legende} if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then begin y_reel:=y_reel-(image_pour_export.Canvas.TextHeight(liste_noms_e[k-1])+ (image_pour_export.Canvas.TextHeight('A') div 2))/hpng.hauteur*(hpng.ymax1-hpng.ymin1); case liste_styles_ordonnees_e[k-1] of cercle: hpng.cercle(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); disque: hpng.disque2(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], true); croix: hpng.croixx(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); plus: hpng.croixp(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); end; if liste_tracerok_ordonnees_e[k-1] then hpng.Trait(x_reel,y_reel,x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_epaisseurs_ordonnees_e[k-1], liste_couleurs_ordonnees_e[k-1],pssolid,pmcopy,true); case liste_styles_ordonnees_e[k-1] of cercle: hpng.cercle(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); disque: hpng.disque2(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], true); croix: hpng.croixx(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); plus: hpng.croixp(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); end; hpng.ecrire(x_reel+(hpng.Xmax-hpng.Xmin)/100, y_reel+image_pour_export.Canvas.TextHeight(liste_noms_e[k-1])/2/hpng.hauteur *(hpng.Ymax1-hpng.Ymin1),liste_noms_e[k-1],true,policelegende); end; {du cas experience} end else begin hauteur_cadre_legende_relle:=hauteur_cadre_legende_en_pixels*(hpng.ymax2-hpng.ymin2)/ (hpng.hauteur-hpng.BordureHaute-hpng.BordureBasse) ; x1:=hpng.Xmin+(hpng.Xmax-hpng.Xmin-largeur_cadre_legende_relle)/100*x_legende_pourcentage; x2:=x1+largeur_cadre_legende_relle; y1:=hpng.Ymin2+(hpng.Ymax2-hpng.Ymin2-hauteur_cadre_legende_relle)/100*y_legende_pourcentage; y2:=y1+hauteur_cadre_legende_relle; hpng.MonRectangle(x1,y1,x2,y2, clwhite,false); hpng.Trait(x1,y1,x2,y1, 2,clblack, pssolid,pmcopy,false); hpng.Trait(x2,y1,x2,y2, 2,clblack, pssolid,pmcopy,false); hpng.Trait(x2,y2,x1,y2, 2,clblack, pssolid,pmcopy,false); hpng.Trait(x1,y2,x1,y1, 2,clblack, pssolid,pmcopy,false); x_reel:=x1; x_reel:=x_reel+10/hpng.largeur*(hpng.Xmax-hpng.xmin); y_reel:=y2; {x_reel, y_reel:angle supérieur gauche du cadre de légende} for k:=1 to nombre_ordonnees do begin y_reel:=y_reel-(image_pour_export.Canvas.TextHeight(liste_legendes[k-1])+ (image_pour_export.Canvas.TextHeight('A') div 2))/hpng.hauteur*(hpng.ymax2-hpng.ymin2); case liste_styles_ordonnees[k-1] of cercle: hpng.cercle(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); disque: hpng.disque2(x_reel,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], false); croix: hpng.croixx(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); plus: hpng.croixp(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); end; if liste_tracerok_ordonnees[k-1] then hpng.Trait(x_reel,y_reel,x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_epaisseurs_ordonnees[k-1], liste_couleurs_ordonnees[k-1],pssolid,pmcopy,false); case liste_styles_ordonnees[k-1] of cercle: hpng.cercle(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); disque: hpng.disque2(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], false); croix: hpng.croixx(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); plus: hpng.croixp(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); end; hpng.ecrire(x_reel+(hpng.Xmax-hpng.Xmin)/100, y_reel+image_pour_export.Canvas.TextHeight(liste_legendes[k-1])/2/hpng.hauteur *(hpng.Ymax2-hpng.Ymin2),expression_ordonnees_explicites[k-1],false,policelegende); end; {si mode experience, il faut les rajouter a la legende} if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then begin y_reel:=y_reel-(image_pour_export.Canvas.TextHeight(liste_noms_e[k-1])+ (image_pour_export.Canvas.TextHeight('A') div 2))/hpng.hauteur*(hpng.ymax2-hpng.ymin2); case liste_styles_ordonnees_e[k-1] of cercle: hpng.cercle(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); disque: hpng.disque2(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], false); croix: hpng.croixx(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); plus: hpng.croixp(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); end; if liste_tracerok_ordonnees_e[k-1] then hpng.Trait(x_reel,y_reel,x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_epaisseurs_ordonnees_e[k-1], liste_couleurs_ordonnees_e[k-1],pssolid,pmcopy,false); case liste_styles_ordonnees_e[k-1] of cercle: hpng.cercle(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); disque: hpng.disque2(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], false); croix: hpng.croixx(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); plus: hpng.croixp(x_reel+(hpng.Xmax-hpng.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); end; hpng.ecrire(x_reel+(hpng.Xmax-hpng.Xmin)/100, y_reel+image_pour_export.Canvas.TextHeight(liste_noms_e[k-1])/2/hpng.hauteur *(hpng.Ymax2-hpng.Ymin2),liste_noms_e[k-1],false,policelegende); end; {du cas experience} end; end; {nouvelle légende******************************************} image_pour_export.SaveToFile((nom_f)); image_pour_export.Free; {*******************************************************} end; procedure TForm1.MenuItem_sauve_brut_csvClick(Sender: TObject); var f:textfile; ns,ligne:string; i,j:integer; begin savedialog1.FileName:=''; savedialog1.InitialDir:=repertoire_dosage_perso; SaveDialog1.DefaultExt := rsCsv; SaveDialog1.Filter := rsTableurTexte2; if not(savedialog1.Execute) then exit else ns:=savedialog1.FileName; assignfile(f,(ns)); try rewrite(f); except application.MessageBox(pchar(rsImpossibleDe), pchar(rsMaisEuhhhh), mb_ok); exit; end; {sauvegarde format tableur texte} if ((lowercase(extractfileext(ns))='.csv') or (lowercase(extractfileext(ns))='.txt')) then begin ligne:='Volume'; if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do ligne:=ligne+separateur_csv+noms_solutes_0[i-1]; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do ligne:=ligne+separateur_csv+noms_precipites_0[i-1]; if debye_0 then if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do ligne:=ligne+separateur_csv+noms_solutes_0[i-1]; {0 then for i:=1 to nombre_solutes_0 do ligne:=ligne+separateur_csv+noms_solutes_0[i-1]; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do ligne:=ligne+separateur_csv+noms_precipites_0[i-1]; if debye_0 then if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do ligne:=ligne+separateur_csv+noms_solutes_0[i-1]; end; {ajout version 1.10>} writeln(f,ligne); ligne:='mL'; if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do ligne:=Format(rsConcMolL2, [ligne+separateur_csv]); if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do ligne:=Format(rsQuantitMol, [ligne+separateur_csv]); if debye_0 then if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do ligne:=Format(rsActivit2, [ligne+separateur_csv]); {0 then for i:=1 to nombre_solutes_0 do ligne:=Format(rsDC_dVMolL, [ligne+separateur_csv]); if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do ligne:=Format(rsDN_dVMolL, [ligne+separateur_csv]); if debye_0 then if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do ligne:=Format(rsDa_dV1L, [ligne+separateur_csv]); end; {ajout version 1.10>} writeln(f,ligne); for i:=1 to nombre_points_calcul+1 do begin ligne:=remplace_point_decimal(floattostr(tableau_resultats[i-1,0])); {} writeln(f,'V'); for i:=1 to nombre_solutes_0 do writeln(f,'conc'+inttostr(i)); for i:=1 to nombre_precipites_0 do writeln(f,'nmoles'+inttostr(i)); if debye_0 then for i:=1 to nombre_solutes_0 do writeln(f,'activ'+inttostr(i)); {} {} {} {} writeln(f,'mL'); for i:=1 to nombre_solutes_0 do writeln(f,'mol/L'); for i:=1 to nombre_precipites_0 do writeln(f,'mol'); if debye_0 then for i:=1 to nombre_solutes_0 do writeln(f); {} {} {} writeln(f,chr(163)+'1 TRIGO'); writeln(f,'0'); writeln(f,chr(163)+'1 LOG'); writeln(f,'0'); {} for i:=1 to nombre_solutes_0 do writeln(f,'''conc'+inttostr(i)+': concentration en '+noms_solutes_0[i-1]); for i:=1 to nombre_precipites_0 do writeln(f,'''nmoles'+inttostr(i)+': nombre de moles de '+noms_precipites_0[i-1]); if debye_0 then for i:=1 to nombre_solutes_0 do writeln(f,'''activ'+inttostr(i)+': activite de: '+noms_solutes_0[i-1]); {} writeln(f,chr(163)+'2 ACQUISITION'); writeln(f,'CLAVIER'); writeln(f); writeln(f,chr(163)+'0 GRAPHE VAR'); writeln(f,'&5 X'); writeln(f,'V'); writeln(f); writeln(f); writeln(f); writeln(f); writeln(f,'&5 Y'); writeln(f,'conc1'); writeln(f); writeln(f); writeln(f); writeln(f); writeln(f,'&5 MONDE'); writeln(f,'1'); writeln(f,'1'); writeln(f,'1'); writeln(f,'1'); writeln(f,'1'); writeln(f,'&2 GRADUATION'); writeln(f,'0'); writeln(f,'0'); writeln(f,'&2 ZERO'); writeln(f,'0'); writeln(f,'0'); writeln(f,'&5 OPTIONS'); writeln(f,'8'); writeln(f,'0'); writeln(f,'1'); writeln(f,'3'); writeln(f,'4'); writeln(f,chr(163)+'1 PAGE COMMENT'); writeln(f); writeln(f,'&'+inttostr(nombre_points_calcul+1)+' VALEUR VAR'); for i:=1 to nombre_points_calcul+1 do begin ligne:=floattostr(tableau_resultats[i-1,0])+' '; {} writeln(f,ligne); end; closefile(f); end; procedure TForm1.Nombredepointsdecalcul1Click(Sender: TObject); begin with form5 do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; form5.SpinEdit1.Value:=nombre_points_calcul_0; form5.Editvarmax.Text:=floattostr(var_log_max); form5.Editpasmin.Text:=floattostr(limite_inferieure_pas); if pas_adaptatif then form5.Radiogroup1.ItemIndex:=1 else form5.Radiogroup1.ItemIndex:=0; form5.ShowModal; if ((etape=resultats) or (etape=choisir_courbes) or (etape=tracer_courbes)) then begin etape:=verifier; pagecontrol4.activepage:=tabsheetverifier; bitbtn3click(sender); end; end; procedure TForm1.Nouvellesimulation1Click(Sender: TObject); begin largeur_bande_indic:=0.05; abscisse_centre_bande_indic:=0.5; ordonnee_centre_bande_indic:=0.5; combobox1.ItemIndex:=0; calcul_en_cours:=false; arret_demande:=false; Form1.SpeedButtonviderbecherClick(Sender); Form1.SpeedButtonviderburetteClick(Sender); checklistbox1.Clear; checklistboxsauve.Clear; etape:=choisir_becher; combobox1.ItemIndex:=0; pagecontrol4.ActivePage:=tabsheetchoisir; mode_faisceau:=false; mode_script:=false; mode_experience:=false; mode_1point:=false; checkboxexp.Checked:=false; mode_superposition:=false; // checkboxsuperposition.Checked:=false; empecher_redox_eau:=true; Autoriserractionsredox1.Checked:=false; debye_0:=false; UtiliserDebyeetHckel1.Checked:=false; {} end; procedure TForm1.PageControl4Change(Sender: TObject); begin progressbar1.Position:=0; editpourcentage.Text:='0%'; if ((etape=choisir_becher) and (PageControl4.ActivePageIndex>0)) then PageControl4.ActivePageIndex:= Old_Index ; if ((etape=choisir_burette) and (PageControl4.ActivePageIndex>1)) then PageControl4.ActivePageIndex:= Old_Index ; if ((etape=eliminer) and (PageControl4.ActivePageIndex>2)) then PageControl4.ActivePageIndex:= Old_Index ; if ((etape=verifier) and (PageControl4.ActivePageIndex>3)) then PageControl4.ActivePageIndex:= Old_Index ; if ((etape=resultats) and (PageControl4.ActivePageIndex>4)) then PageControl4.ActivePageIndex:= Old_Index ; if ((etape=choisir_courbes) and (PageControl4.ActivePageIndex>5)) then PageControl4.ActivePageIndex:= Old_Index ; if ((etape=tracer_courbes) and (PageControl4.ActivePageIndex>6)) then PageControl4.ActivePageIndex:= Old_Index ; end; procedure TForm1.PageControl4Changing(Sender: TObject; var AllowChange: Boolean); begin Old_Index := PageControl4.ActivePageIndex ; end; procedure TForm1.Parfomulebrute1Click(Sender: TObject); begin form4:=tform4.create(self); with form4 do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; //form4.Hide; unit4.mypos:=0; form4.showmodal; end; procedure TForm1.Parformulebrute1Click(Sender: TObject); begin form4b:=tform4b.create(self); with form4b do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; //form4b.Hide; unit4b.mypos:=0; form4b.showmodal; end; procedure TForm1.Paridentifiantousynonyme1Click(Sender: TObject); begin form26:=tform26.create(self); with form26 do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; //form26.Hide; form26.showmodal; end; procedure TForm1.Paridentifiantousynonyme2Click(Sender: TObject); begin form26b:=tform26b.create(self); with form26b do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; //form26b.Hide; form26b.showmodal; end; procedure TForm1.RadioechellehorizontaleClick(Sender: TObject); begin etape:=choisir_courbes; if Radioechellehorizontale.ItemIndex=1 then begin editxmin.Enabled:=true; editxmax.Enabled:=true; end else begin editxmin.Enabled:=false; editxmax.Enabled:=false; end; end; procedure TForm1.RadioechelleverticaledroiteClick(Sender: TObject); begin etape:=choisir_courbes; if Radioechelleverticaledroite.ItemIndex=1 then begin editymindroite.Enabled:=true; editymaxdroite.Enabled:=true; end else begin editymindroite.Enabled:=false; editymaxdroite.Enabled:=false; end; end; procedure TForm1.RadioechelleverticalegaucheClick(Sender: TObject); begin etape:=choisir_courbes; if Radioechelleverticalegauche.ItemIndex=1 then begin editymingauche.Enabled:=true; editymaxgauche.Enabled:=true; end else begin editymingauche.Enabled:=false; editymaxgauche.Enabled:=false; end; end; procedure TForm1.SpeedButton10Click(Sender: TObject); begin popupmenuraffine.PopUp; tabsheettracecourbes.Refresh; end; procedure TForm1.SpeedButton11Click(Sender: TObject); begin {if mode_1point then begin mc.Align:=alright; mc.Width:=tabsheettracecourbes.ClientWidth-(speedbuttoncalculer.Left+speedbuttoncalculer.Width+30); end else mc.Align:=alclient; application.ProcessMessages; form1.mcPaint(sender);} tabsheettracecourbes.Refresh; end; procedure TForm1.SpeedButton12Click(Sender: TObject); var iiii:integer; bord_b,bord_h,bord_g,bord_d,nbe_nuances,mmmm:integer; printDialog : TPrintDialog; hPrinter : TMyimprimante; dede:string; i,j,k,kk:integer; lastx,lasty,largeurlegende,hauteurlegende:float; faut_superposer:boolean; plus_grande_largeur:integer; x1,x2,y1,y2:extended; x_reel,y_reel:extended; {} label 167,168; begin abandonimpression:=true; case graphehorizontal of tgauche: configimpression.radiogroupehorizontal.itemindex:=1; tdroite: configimpression.radiogroupehorizontal.itemindex:=0; tcentreh: configimpression.radiogroupehorizontal.itemindex:=2; end; case graphevertical of thaut: configimpression.radiogroupevertical.itemindex:=0; tbas: configimpression.radiogroupevertical.itemindex:=1; tcentrev: configimpression.radiogroupevertical.itemindex:=2; end; configimpression.spinpourcentagehorizontal.value:=taillegraphehorizontal; configimpression.spinpourcentagevertical.value:=taillegraphevertical; configimpression.spinnombrecopies.value:=1; with configimpression do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; showmodal; end; tabsheettracecourbes.Refresh; if abandonimpression then exit; printer.orientation:=orientation_impression; printDialog := TPrintDialog.Create(Form1); if not(printDialog.Execute) then begin tabsheettracecourbes.Refresh; exit; end; imprimante:=printer; tabsheettracecourbes.Refresh; case graphehorizontal of tgauche: begin bord_g:=0; bord_d:=trunc(imprimante.pagewidth-imprimante.pagewidth/100*taillegraphehorizontal); end; tdroite: begin bord_d:=0; bord_g:=trunc(imprimante.pagewidth-imprimante.pagewidth/100*taillegraphehorizontal); end; tcentreh: begin bord_g:=trunc((imprimante.pagewidth-imprimante.pagewidth/100*taillegraphehorizontal)/2); bord_d:=bord_g; end; end; case graphevertical of thaut: begin bord_h:=0; bord_b:=trunc(imprimante.pageheight-imprimante.pageheight/100*taillegraphevertical); end; tbas: begin bord_b:=0; bord_h:=trunc(imprimante.pageheight-imprimante.pageheight/100*taillegraphevertical); end; tcentrev: begin bord_b:=trunc((imprimante.pageheight-imprimante.pageheight/100*taillegraphevertical)/2); bord_h:=bord_b; end; end; for iiii:=1 to nombrecopies do begin imprimante.begindoc; {*********************} faut_superposer:=false; if nombre_simulations>1 then for i:=1 to nombre_simulations-1 do faut_superposer:=faut_superposer or stockage_simulation_superposee[i-1]; faut_superposer:=mode_superposition and faut_superposer; if faut_superposer then begin mode_faisceau:=false; existe_gauche:=false; existe_droite:=false; for i:=1 to nombre_simulations do if (stockage_simulation_superposee[i-1] or (i=nombre_simulations)) then begin existe_gauche:=existe_gauche or stockage_existe_gauche[i-1]; existe_droite:=existe_droite or stockage_existe_droite[i-1]; end; abscisse_min:=stockage_abscisse_min[nombre_simulations-1]; abscisse_max:=stockage_abscisse_max[nombre_simulations-1]; for j:=1 to nombre_simulations-1 do if stockage_simulation_superposee[j-1] then begin abscisse_min:=math.min(abscisse_min,stockage_abscisse_min[j-1]); abscisse_max:=math.max(abscisse_max,stockage_abscisse_max[j-1]); end; if not(existe_gauche) then begin ordonnee_gauche_min:=0; ordonnee_gauche_max:=0; end else begin i:=0; repeat inc(i); until ( (stockage_existe_gauche[i-1] and stockage_simulation_superposee[i-1]) or (i=nombre_simulations)); ordonnee_gauche_min:=stockage_ordonnee_gauche_min[i-1]; ordonnee_gauche_max:=stockage_ordonnee_gauche_max[i-1]; if i=(k-1)*(hprinter.Xmax-hprinter.Xmin)/nombre_ordonnees) or (stockage_resultats[j-1,i,0]+largeurlegende>hprinter.Xmax)) then begin if ( ( (stockage_liste_echelles[j-1,k-1]=e_gauche) and (stockage_resultats[j-1,i,k]+hauteurlegende>hprinter.Ymax1) ) or ( (stockage_liste_echelles[j-1,k-1]=e_droite) and (stockage_resultats[j-1,i,k]+hauteurlegende>hprinter.Ymax2) ) ) then {on ecrit en dessous} hprinter.ecrire(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_expression_ordonnees_explicites[j-1,k-1], stockage_liste_echelles[j-1,k-1]=e_gauche,policelegende) else {on ecrit au dessus} hprinter.ecrire(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k]+hauteurlegende, stockage_expression_ordonnees_explicites[j-1,k-1], stockage_liste_echelles[j-1,k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case stockage_styles_ordonnees[j-1,k-1] of cercle: hprinter.cercle(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],1, stockage_couleurs_ordonnees[j-1,k-1],pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); disque: hprinter.disque2(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],stockage_couleurs_ordonnees[j-1,k-1], stockage_couleurs_ordonnees[j-1,k-1], stockage_liste_echelles[j-1,k-1]=e_gauche); croix: hprinter.croixx(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],1, stockage_couleurs_ordonnees[j-1,k-1],pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); plus: hprinter.croixp(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],1, stockage_couleurs_ordonnees[j-1,k-1],pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); end; if (point_ok and stockage_tracerok_ordonnees[j-1,k-1]) then hprinter.Trait(lastx,lasty,stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_epaisseurs_ordonnees[j-1,k-1], stockage_couleurs_ordonnees[j-1,k-1],pssolid,pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); point_ok:=true; lastx:=stockage_resultats[j-1,i,0]; lasty:=stockage_resultats[j-1,i,k]; end else point_ok:=false; end end; end; if not(faut_superposer) then begin if not(mode_faisceau) then form1.calcule_echelles; {ajout version 1.02 >} grille_echelle_gauche:=grille_echelle_gauche and existe_gauche; grille_echelle_droite:=grille_echelle_droite and existe_droite; checkboxgrillegauche.Checked:=grille_echelle_gauche; checkboxgrilledroite.Checked:=grille_echelle_droite; hprinter.LimitesEtAxes(abscisse_min,abscisse_max,ordonnee_gauche_min ,ordonnee_gauche_max,ordonnee_droite_min,ordonnee_droite_max,imprimante.pagewidth, imprimante.pageHeight,titregraphe,policetitre,true,coucoufond,cadrepresent,epaisseur_cadre,coucoucadre, graduationspresentes, 1,4,coucougraduation,policegraduation, grille_echelle_gauche,grille_echelle_droite,1,coucougrille1, coucougrille2,labelx,labely1,labely2,unitex,unitey1,unitey2, false,existe_gauche,existe_droite,bord_g,bord_d,bord_b,bord_h, screen.Width,screen.Height,imprimante.pagewidth, imprimante.pageHeight); nbe_nuances:=480; indicateur_present:=( ( (degrade_vertical and (ordonnee_gauche_est_ph or ordonnee_droite_est_ph)) or (not(degrade_vertical) and abscisse_est_v)) and (combobox1.ItemIndex>0)); if indicateur_present then begin if (degrade_vertical and (ordonnee_gauche_est_ph or ordonnee_droite_est_ph)) then begin for mmmm:=0 to nbe_nuances-1 do begin if ordonnee_gauche_est_ph then hprinter.MonRectangle(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*mmmm/nbe_nuances, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*(mmmm+1)/nbe_nuances, liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur(ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*(mmmm+0.5)/nbe_nuances) ,true) else hprinter.MonRectangle(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*mmmm/nbe_nuances, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*(mmmm+1)/nbe_nuances, liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur(ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*(mmmm+0.5)/nbe_nuances) ,false); end; if ordonnee_gauche_est_ph then begin hprinter.Trait(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); hprinter.Trait(abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); hprinter.Trait(abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); end else begin hprinter.Trait(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); hprinter.Trait(abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); hprinter.Trait(abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); end; end else begin {si c'est le degrade en fonction du volume} for i:=0 to nombre_points_calcul-1 do begin hprinter.MonRectangle(tableau_resultats[i,0], ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), tableau_resultats[i+1,0], ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur( -log10( tableau_resultats[i,indice_ph+nombre_solutes_0+nombre_precipites_0])) ,true); end; hprinter.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); hprinter.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); hprinter.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); end; hprinter.LimitesEtAxes(abscisse_min,abscisse_max,ordonnee_gauche_min ,ordonnee_gauche_max,ordonnee_droite_min,ordonnee_droite_max,imprimante.pagewidth, imprimante.pageHeight,titregraphe,policetitre,false,coucoufond,cadrepresent,epaisseur_cadre,coucoucadre, graduationspresentes, 1,4,coucougraduation,policegraduation, grille_echelle_gauche,grille_echelle_droite,1,coucougrille1, coucougrille2,labelx,labely1,labely2,unitex,unitey1,unitey2, false,existe_gauche,existe_droite,bord_g,bord_d,bord_b,bord_h, screen.Width,screen.Height,imprimante.pagewidth, imprimante.pageHeight); end; {} if not(mode_faisceau) then for k:=1 to nombre_ordonnees do begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_calcul do if ( not(isnanorinfinite(tableau_grandeurs_tracees[i,0])) and not (isnanorinfinite(tableau_grandeurs_tracees[i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=liste_couleurs_ordonnees[k-1]; imprimante.canvas.Font:=policelegende; hprinter.Convert(imprimante.canvas.TextWidth(expression_ordonnees_explicites[k-1])+ hprinter.BordureGauche, imprimante.canvas.TextHeight(expression_ordonnees_explicites[k-1])+ hprinter.BordureHaute, largeurlegende,hauteurlegende,liste_echelles[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-hprinter.Xmin); if liste_echelles[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-hprinter.Ymax1) else hauteurlegende:=abs(hauteurlegende-hprinter.Ymax2); if ( (tableau_grandeurs_tracees[i,0]-hprinter.Xmin>=(k-1)*(hprinter.Xmax-hprinter.Xmin)/nombre_ordonnees) or (tableau_grandeurs_tracees[i,0]+largeurlegende>hprinter.Xmax)) then begin if ( ( (liste_echelles[k-1]=e_gauche) and (tableau_grandeurs_tracees[i,k]+hauteurlegende>hprinter.Ymax1) ) or ( (liste_echelles[k-1]=e_droite) and (tableau_grandeurs_tracees[i,k]+hauteurlegende>hprinter.Ymax2) ) ) then {on ecrit en dessous} hprinter.ecrire(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende) else {on ecrit au dessus} hprinter.ecrire(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k]+hauteurlegende, expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees[k-1] of cercle: hprinter.cercle(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); disque: hprinter.disque2(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], liste_echelles[k-1]=e_gauche); croix: hprinter.croixx(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); plus: hprinter.croixp(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); end; if (point_ok and liste_tracerok_ordonnees[k-1]) then hprinter.Trait(lastx,lasty,tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_epaisseurs_ordonnees[k-1], liste_couleurs_ordonnees[k-1],pssolid,pmcopy, liste_echelles[k-1]=e_gauche); point_ok:=true; lastx:=tableau_grandeurs_tracees[i,0]; lasty:=tableau_grandeurs_tracees[i,k]; end else point_ok:=false; end else begin {cas d'un faisceau} {} for kk:=1 to nombre_valeurs_faisceau do for k:=1 to nombre_ordonnees do begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_calcul_faisceau[kk-1] do if ( not(isnanorinfinite(tableau_grandeurs_tracees_faisceau[kk-1,i,0])) and not (isnanorinfinite(tableau_grandeurs_tracees_faisceau[kk-1,i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=couleurs_faisceau[k-1][kk-1]; {version 1.02} imprimante.canvas.Font:=policelegende; hprinter.Convert(imprimante.canvas.TextWidth(expression_ordonnees_explicites[k-1])+ hprinter.BordureGauche, imprimante.canvas.TextHeight(expression_ordonnees_explicites[k-1])+ hprinter.BordureHaute, largeurlegende,hauteurlegende,liste_echelles[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-hprinter.Xmin); if liste_echelles[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-hprinter.Ymax1) else hauteurlegende:=abs(hauteurlegende-hprinter.Ymax2); if ( (tableau_grandeurs_tracees_faisceau[kk-1,i,0]-hprinter.Xmin>=(k-1)*(hprinter.Xmax-hprinter.Xmin)/nombre_ordonnees) or (tableau_grandeurs_tracees_faisceau[kk-1,i,0]+largeurlegende>hprinter.Xmax)) then begin if ( ( (liste_echelles[k-1]=e_gauche) and (tableau_grandeurs_tracees_faisceau[kk-1,i,k]+hauteurlegende>hprinter.Ymax1) ) or ( (liste_echelles[k-1]=e_droite) and (tableau_grandeurs_tracees_faisceau[kk-1,i,k]+hauteurlegende>hprinter.Ymax2) ) ) then {on ecrit en dessous} hprinter.ecrire(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende) else {on ecrit au dessus} hprinter.ecrire(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k]+hauteurlegende, expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees[k-1] of cercle: hprinter.cercle(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],1,couleurs_faisceau[k-1][kk-1],pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} disque: hprinter.disque2(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],couleurs_faisceau[k-1][kk-1],couleurs_faisceau[k-1][kk-1], liste_echelles[k-1]=e_gauche);{version 1.02} croix: hprinter.croixx(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],1,couleurs_faisceau[k-1][kk-1],pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} plus: hprinter.croixp(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],1,couleurs_faisceau[k-1][kk-1],pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} end; if (point_ok and liste_tracerok_ordonnees[k-1]) then hprinter.Trait(lastx,lasty,tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_epaisseurs_ordonnees[k-1], couleurs_faisceau[k-1][kk-1],pssolid,pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} point_ok:=true; lastx:=tableau_grandeurs_tracees_faisceau[kk-1,i,0]; lasty:=tableau_grandeurs_tracees_faisceau[kk-1,i,k]; end else point_ok:=false; end; finalize(couleurs_faisceau); end; {affichage donnees experiemntales} if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then begin for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_exp-1 do begin if ( not(isnanorinfinite(tableau_donnees_exp[i,0])) and not (isnanorinfinite(tableau_donnees_exp[i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=liste_couleurs_ordonnees_e[k-1]; imprimante.canvas.Font:=policelegende; hprinter.Convert(imprimante.canvas.TextWidth(liste_noms_e[k-1])+ hprinter.BordureGauche, imprimante.canvas.TextHeight(liste_noms_e[k-1])+ hprinter.BordureHaute, largeurlegende,hauteurlegende,liste_echelles_e[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-hprinter.Xmin); if liste_echelles_e[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-hprinter.Ymax1) else hauteurlegende:=abs(hauteurlegende-hprinter.Ymax2); if ( (tableau_donnees_exp[i,0]-hprinter.Xmin>=(k-1)*(hprinter.Xmax-hprinter.Xmin)/(nombre_valeurs_par_ligne_e-1)) or (tableau_donnees_exp[i,0]+largeurlegende>hprinter.Xmax)) then begin if ( ( (liste_echelles_e[k-1]=e_gauche) and (tableau_donnees_exp[i,k]+hauteurlegende>hprinter.Ymax1) ) or ( (liste_echelles_e[k-1]=e_droite) and (tableau_donnees_exp[i,k]+hauteurlegende>hprinter.Ymax2) ) ) then {on ecrit en dessous} hprinter.ecrire(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_noms_e[k-1],liste_echelles_e[k-1]=e_gauche,policelegende) else {on ecrit au dessus} hprinter.ecrire(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k]+hauteurlegende, liste_noms_e[k-1],liste_echelles_e[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees_e[k-1] of cercle: hprinter.cercle(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); disque: hprinter.disque2(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], liste_echelles_e[k-1]=e_gauche); croix: hprinter.croixx(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); plus: hprinter.croixp(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); end; if (point_ok and liste_tracerok_ordonnees_e[k-1]) then hprinter.Trait(lastx,lasty,tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_epaisseurs_ordonnees_e[k-1], liste_couleurs_ordonnees_e[k-1],pssolid,pmcopy, liste_echelles_e[k-1]=e_gauche); point_ok:=true; lastx:=tableau_donnees_exp[i,0]; lasty:=tableau_donnees_exp[i,k]; end else point_ok:=false; end; end; end; {fin affichage donnees experiences} {nouvelle légende******************************************} if legendeapartpresente then begin policelegende.Color:=clblack; imprimante.Canvas.Font:=policelegende; plus_grande_largeur:=imprimante.Canvas.TextWidth(liste_legendes[0]); for k:=1 to nombre_ordonnees do plus_grande_largeur:=max(plus_grande_largeur, imprimante.Canvas.TextWidth(liste_legendes[k-1])); if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then plus_grande_largeur:=max(plus_grande_largeur, imprimante.Canvas.TextWidth(liste_noms_e[k-1])); largeur_cadre_legende_en_pixels:=plus_grande_largeur+imprimante.Canvas.TextWidth('ABC'); hauteur_cadre_legende_en_pixels:=imprimante.Canvas.TextHeight('A'); for k:=1 to nombre_ordonnees do hauteur_cadre_legende_en_pixels:=hauteur_cadre_legende_en_pixels +imprimante.Canvas.TextHeight(liste_legendes[k-1])+imprimante.Canvas.TextHeight('A') div 2; if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then hauteur_cadre_legende_en_pixels:=hauteur_cadre_legende_en_pixels +imprimante.Canvas.TextHeight(liste_noms_e[k-1])+{10} imprimante.Canvas.TextHeight('A') div 2; largeur_cadre_legende_relle:=largeur_cadre_legende_en_pixels*(hprinter.xmax-hprinter.xmin)/ (hprinter.largeur-hprinter.BordureGauche-hprinter.BordureDroite) ; if existe_gauche then begin hauteur_cadre_legende_relle:=hauteur_cadre_legende_en_pixels*(hprinter.ymax1-hprinter.ymin1)/ (hprinter.hauteur-hprinter.BordureHaute-hprinter.BordureBasse) ; x1:=hprinter.Xmin+(hprinter.Xmax-hprinter.Xmin-largeur_cadre_legende_relle)/100*x_legende_pourcentage; x2:=x1+largeur_cadre_legende_relle; y1:=hprinter.Ymin1+(hprinter.Ymax1-hprinter.Ymin1-hauteur_cadre_legende_relle)/100*y_legende_pourcentage; y2:=y1+hauteur_cadre_legende_relle; hprinter.MonRectangle(x1,y1,x2,y2, clwhite,true); hprinter.Trait(x1,y1,x2,y1, 2,clblack, pssolid,pmcopy,true); hprinter.Trait(x2,y1,x2,y2, 2,clblack, pssolid,pmcopy,true); hprinter.Trait(x2,y2,x1,y2, 2,clblack, pssolid,pmcopy,true); hprinter.Trait(x1,y2,x1,y1, 2,clblack, pssolid,pmcopy,true); x_reel:=x1; x_reel:=x_reel+10/hprinter.largeur*(hprinter.Xmax-hprinter.xmin); y_reel:=y2; {x_reel, y_reel:angle supérieur gauche du cadre de légende} for k:=1 to nombre_ordonnees do begin y_reel:=y_reel-(imprimante.Canvas.TextHeight(liste_legendes[k-1])+(imprimante.Canvas.TextHeight('A') div 2))/hprinter.hauteur*(hprinter.ymax1-hprinter.ymin1); case liste_styles_ordonnees[k-1] of cercle: hprinter.cercle(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); disque: hprinter.disque2(x_reel,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], true); croix: hprinter.croixx(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); plus: hprinter.croixp(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); end; if liste_tracerok_ordonnees[k-1] then hprinter.Trait(x_reel,y_reel,x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_epaisseurs_ordonnees[k-1], liste_couleurs_ordonnees[k-1],pssolid,pmcopy,true); case liste_styles_ordonnees[k-1] of cercle: hprinter.cercle(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); disque: hprinter.disque2(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], true); croix: hprinter.croixx(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); plus: hprinter.croixp(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); end; hprinter.ecrire(x_reel+(hprinter.Xmax-hprinter.Xmin)/100, y_reel+imprimante.Canvas.TextHeight(liste_legendes[k-1])/2/hprinter.hauteur *(hprinter.Ymax1-hprinter.Ymin1),liste_legendes[k-1],true,policelegende); end; {si mode experience, il faut les rajouter a la legende} if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then begin y_reel:=y_reel-(imprimante.Canvas.TextHeight(liste_noms_e[k-1])+ (imprimante.Canvas.TextHeight('A') div 2))/hprinter.hauteur*(hprinter.ymax1-hprinter.ymin1); case liste_styles_ordonnees_e[k-1] of cercle: hprinter.cercle(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); disque: hprinter.disque2(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], true); croix: hprinter.croixx(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); plus: hprinter.croixp(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); end; if liste_tracerok_ordonnees_e[k-1] then hprinter.Trait(x_reel,y_reel,x_reel+(hprinter.Xmax-hprinter.Xmin)/200, y_reel, liste_epaisseurs_ordonnees_e[k-1], liste_couleurs_ordonnees_e[k-1],pssolid,pmcopy,true); case liste_styles_ordonnees_e[k-1] of cercle: hprinter.cercle(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); disque: hprinter.disque2(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], true); croix: hprinter.croixx(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); plus: hprinter.croixp(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); end; hprinter.ecrire(x_reel+(hprinter.Xmax-hprinter.Xmin)/100, y_reel+imprimante.Canvas.TextHeight(liste_noms_e[k-1])/2/hprinter.hauteur *(hprinter.Ymax1-hprinter.Ymin1),liste_noms_e[k-1],true,policelegende); end; {du cas experience} end else begin hauteur_cadre_legende_relle:=hauteur_cadre_legende_en_pixels*(hprinter.ymax2-hprinter.ymin2)/ (hprinter.hauteur-hprinter.BordureHaute-hprinter.BordureBasse) ; x1:=hprinter.Xmin+(hprinter.Xmax-hprinter.Xmin-largeur_cadre_legende_relle)/100*x_legende_pourcentage; x2:=x1+largeur_cadre_legende_relle; y1:=hprinter.Ymin2+(hprinter.Ymax2-hprinter.Ymin2-hauteur_cadre_legende_relle)/100*y_legende_pourcentage; y2:=y1+hauteur_cadre_legende_relle; hprinter.MonRectangle(x1,y1,x2,y2, clwhite,false); hprinter.Trait(x1,y1,x2,y1, 2,clblack, pssolid,pmcopy,false); hprinter.Trait(x2,y1,x2,y2, 2,clblack, pssolid,pmcopy,false); hprinter.Trait(x2,y2,x1,y2, 2,clblack, pssolid,pmcopy,false); hprinter.Trait(x1,y2,x1,y1, 2,clblack, pssolid,pmcopy,false); x_reel:=x1; x_reel:=x_reel+10/hprinter.largeur*(hprinter.Xmax-hprinter.xmin); y_reel:=y2; {x_reel, y_reel:angle supérieur gauche du cadre de légende} for k:=1 to nombre_ordonnees do begin y_reel:=y_reel-(imprimante.Canvas.TextHeight(liste_legendes[k-1])+(imprimante.Canvas.TextHeight('A') div 2))/hprinter.hauteur*(hprinter.ymax2-hprinter.ymin2); case liste_styles_ordonnees[k-1] of cercle: hprinter.cercle(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); disque: hprinter.disque2(x_reel,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], false); croix: hprinter.croixx(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); plus: hprinter.croixp(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); end; if liste_tracerok_ordonnees[k-1] then hprinter.Trait(x_reel,y_reel,x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_epaisseurs_ordonnees[k-1], liste_couleurs_ordonnees[k-1],pssolid,pmcopy,false); case liste_styles_ordonnees[k-1] of cercle: hprinter.cercle(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); disque: hprinter.disque2(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], false); croix: hprinter.croixx(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); plus: hprinter.croixp(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); end; hprinter.ecrire(x_reel+(hprinter.Xmax-hprinter.Xmin)/100, y_reel+imprimante.Canvas.TextHeight(liste_legendes[k-1])/2/hprinter.hauteur *(hprinter.Ymax2-hprinter.Ymin2),expression_ordonnees_explicites[k-1],false,policelegende); end; {si mode experience, il faut les rajouter a la legende} if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then begin y_reel:=y_reel-(imprimante.Canvas.TextHeight(liste_noms_e[k-1])+ (imprimante.Canvas.TextHeight('A') div 2))/hprinter.hauteur*(hprinter.ymax2-hprinter.ymin2); case liste_styles_ordonnees_e[k-1] of cercle: hprinter.cercle(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); disque: hprinter.disque2(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], false); croix: hprinter.croixx(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); plus: hprinter.croixp(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); end; if liste_tracerok_ordonnees_e[k-1] then hprinter.Trait(x_reel,y_reel,x_reel+(hprinter.Xmax-hprinter.Xmin)/200, y_reel, liste_epaisseurs_ordonnees_e[k-1], liste_couleurs_ordonnees_e[k-1],pssolid,pmcopy,false); case liste_styles_ordonnees_e[k-1] of cercle: hprinter.cercle(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); disque: hprinter.disque2(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], false); croix: hprinter.croixx(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); plus: hprinter.croixp(x_reel+(hprinter.Xmax-hprinter.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); end; hprinter.ecrire(x_reel+(hprinter.Xmax-hprinter.Xmin)/100, y_reel+imprimante.Canvas.TextHeight(liste_noms_e[k-1])/2/hprinter.hauteur *(hprinter.Ymax2-hprinter.Ymin2),liste_noms_e[k-1],false,policelegende); end; {du cas experience} end; end; {nouvelle légende******************************************} {**********************} printer.enddoc; end; end; procedure TForm1.SpeedButton13Click(Sender: TObject); begin popupmenu_image.Popup; tabsheettracecourbes.Refresh; end; procedure TForm1.SpeedButton14Click(Sender: TObject); begin Clipboard.Assign(form1.Image1.Picture.Bitmap); end; procedure TForm1.SpeedButton15Click(Sender: TObject); begin if mode_1point then exit; mode_1point:=true; mode_faisceau:=false; mode_superposition:=false; checkboxsuperposition.state:=cbunchecked; speedbuttoncalculer.Visible:=true; spinedit1pourcent.Visible:=true; spinedit01pourcent.Visible:=true; spinedit001pourcent.Visible:=true; spinedit0001pourcent.Visible:=true; SpeedButtonfermer.Visible:=true; Label22.Visible:=true; Label21.Visible:=true; Editvolumepp.Visible:=true; editvolumepp.Text:=floattostr(volume_burette_max*1000/2); memo_resultats_point_particulier.Visible:=true; memo_resultats_point_particulier.Clear; memo_resultats_point_particulier.Width:=speedbuttoncalculer.Width; // form1.Image1.Align:=alright; // form1.Image1.Width:=tabsheettracecourbes.ClientWidth-(speedbuttoncalculer.Left+speedbuttoncalculer.Width+30); form1.Image1.AnchorSideLeft.Control:=speedbuttoncalculer; form1.Image1.AnchorSideLeft.Side:=asrbottom; form1.Image1.Anchors:= form1.Image1.Anchors + [akLeft]; form1.SpeedButtoncalculerclick(sender); { form1.dessinegraphe; } end; procedure TForm1.SpeedButton16Click(Sender: TObject); var i,j,k,kk,kkk,vovo:integer; old_valeur_reelle,pas_volume, variation_max_log:float; old_valeur_chaine:string; save_cursor:tcursor; rep:boolean; tableau_resultats_faisceau:array of array of array of float; nombre_points_calcul_faisceau_max:integer; conductivite_actuelle:float; faut_superposer:boolean; label 112,167,168; {ajout version 2.5} var imin1,imin2,isol1,isol2,icouple:integer; poto:float; label 16446,16447; {ajout version 2.5} begin if mode_1point then exit; {} saisiefaisceau:=tsaisiefaisceau.create(self); with saisiefaisceau do begin listbox1.Items.Clear; listbox1.Items.Add(rsVolumeBCherM); listbox1.Items.Add(rsVolumeMaxima); panel1.Color:=clsilver; unit19.couleur_limite_degrade:=clsilver; if stringgridreactifs_becher.RowCount>1 then for i:=1 to stringgridreactifs_becher.RowCount-1 do listbox1.Items.Add(Format(rsBCherNombreD, [stringgridreactifs_becher.Cells[1, i] ])); if stringgridreactifs_burette.RowCount>1 then for i:=1 to stringgridreactifs_burette.RowCount-1 do listbox1.Items.Add(Format(rsBuretteNombr, [stringgridreactifs_burette.Cells[1, i ]])); if stringgridreactions.RowCount>1 then for i:=1 to stringgridreactions.RowCount-1 do listbox1.Items.Add(Format(rsLogkPour, [stringgridreactions.cells[0, i]])); if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; if saisiefaisceau.ShowModal=mrcancel then exit; nombre_points_calcul_0:=form5.SpinEdit1.Value; { nombre_points_calcul:=form5.SpinEdit1.Value;} nombre_points_calcul_faisceau_max:=nombre_points_calcul_0; setlength( nombre_points_calcul_faisceau,nombre_valeurs_faisceau); for i:=1 to nombre_valeurs_faisceau do nombre_points_calcul_faisceau[i-1]:=nombre_points_calcul_0; for k:=1 to nombre_valeurs_faisceau do begin {stockage des anciennes valeurs et mise en place des nouvelles} if indice_valeur_a_modifier=0 then begin old_valeur_reelle:=volume_becher; volume_becher:=liste_valeurs_faisceau[k-1]/1000; end; if indice_valeur_a_modifier=1 then begin old_valeur_reelle:=volume_burette_max; volume_burette_max:=liste_valeurs_faisceau[k-1]/1000; end; if stringgridreactifs_becher.RowCount>1 then if ((indice_valeur_a_modifier>1) and (indice_valeur_a_modifier<=1+stringgridreactifs_becher.RowCount-1)) then begin old_valeur_chaine:=stringgridreactifs_becher.cells[2,indice_valeur_a_modifier-1]; stringgridreactifs_becher.cells[2,indice_valeur_a_modifier-1]:=floattostr(liste_valeurs_faisceau[k-1]); end; if stringgridreactifs_burette.RowCount>1 then if ((indice_valeur_a_modifier>1+stringgridreactifs_becher.RowCount-1) and (indice_valeur_a_modifier<=1+stringgridreactifs_becher.RowCount-1+ stringgridreactifs_burette.RowCount-1)) then begin old_valeur_chaine:=stringgridreactifs_burette.cells[2,indice_valeur_a_modifier-1 -(stringgridreactifs_becher.RowCount-1)]; stringgridreactifs_becher.cells[2,indice_valeur_a_modifier-1 -(stringgridreactifs_becher.RowCount-1)]:=floattostr(liste_valeurs_faisceau[k-1]); end; if stringgridreactions.RowCount>1 then if ((indice_valeur_a_modifier>1+stringgridreactifs_becher.RowCount-1+ stringgridreactifs_burette.RowCount-1) and (indice_valeur_a_modifier<=1+stringgridreactifs_becher.RowCount-1+ stringgridreactifs_burette.RowCount-1+stringgridreactions.RowCount-1)) then begin old_valeur_chaine:=stringgridreactions.cells[1,indice_valeur_a_modifier-1 -(stringgridreactifs_becher.RowCount-1)-(stringgridreactifs_burette.RowCount-1)]; stringgridreactions.cells[1,indice_valeur_a_modifier-1 -(stringgridreactifs_becher.RowCount-1)-(stringgridreactifs_burette.RowCount-1)] :=floattostr(liste_valeurs_faisceau[k-1]); end; {fin stockage anciennes valeurs et mise ne place des nouvelles} nombre_especes_0:=0; {recalcul des concentrations initiales} for i:=1 to checklistbox1.Items.Count do if checklistbox1.Checked[i-1] then begin inc(nombre_especes_0); setlength(noms_especes_0,nombre_especes_0); setlength(tableau_moles_initiales_0,nombre_especes_0); noms_especes_0[nombre_especes_0-1]:=checklistbox1.Items[i-1]; if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[nombre_especes_0-1])>=0 then tableau_moles_initiales_0[nombre_especes_0-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[nombre_especes_0-1])])*volume_becher else tableau_moles_initiales_0[nombre_especes_0-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[nombre_especes_0-1])>=0 then tableau_moles_initiales_0[nombre_especes_0-1]:=tableau_moles_initiales_0[nombre_especes_0-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[nombre_especes_0-1])])*volume_burette_max; if ((noms_especes_0[nombre_especes_0-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[nombre_especes_0-1]:=(volume_becher+volume_burette_max)*1000/18; end; {remise en place des logk} if reac_0>0 then for i:=1 to reac_0 do logk_0[i-1]:=mystrtofloat(stringgridreactions.Cells[1,i]); DetermineMu0(coeff_stoechio_0, logk_0,potentiels_standards_0, nombre_especes_0,reac_0,temperature); nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin potentiel_chimique_standard_solvant_0:=potentiels_standards_0[i-1]; setlength(t_n_a_p_e_solvant_0,nombre_atomes_differents_0); for j:=1 to nombre_atomes_differents_0 do t_n_a_p_e_solvant_0[j-1]:=matrice_0[j-1,i-1]; nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); setlength(t_n_a_p_e_precipites_0,nombre_atomes_differents_0,nombre_precipites_0); setlength(tableau_nombre_initial_moles_precipites_0,nombre_precipites_0); setlength(potentiels_chimiques_standards_precipites_0,nombre_precipites_0); setlength(noms_precipites_0,nombre_precipites_0); potentiels_chimiques_standards_precipites_0[nombre_precipites_0-1]:= potentiels_standards_0[i-1]; tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; noms_precipites_0[nombre_precipites_0-1]:=noms_especes_0[i-1]; for j:=1 to nombre_atomes_differents_0 do t_n_a_p_e_precipites_0[j-1,nombre_precipites_0-1]:= matrice_0[j-1,i-1]; end else begin inc(nombre_solutes_0); setlength(t_n_a_p_e_solutes_0,nombre_atomes_differents_0,nombre_solutes_0); setlength(tableau_nombre_initial_moles_solutes_0,nombre_solutes_0); setlength(potentiels_chimiques_standards_solutes_0,nombre_solutes_0); setlength(noms_solutes_0,nombre_solutes_0); potentiels_chimiques_standards_solutes_0[nombre_solutes_0-1]:= potentiels_standards_0[i-1]; tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; noms_solutes_0[nombre_solutes_0-1]:=noms_especes_0[i-1]; for j:=1 to nombre_atomes_differents_0 do t_n_a_p_e_solutes_0[j-1,nombre_solutes_0-1]:= matrice_0[j-1,i-1]; end; end; {} {la boucle des volumes} if not(pas_adaptatif) then for vovo:=0 to nombre_points_calcul_faisceau[k-1] do begin {0 then volume_verse:=volume_burette_max*vovo/nombre_points_calcul_faisceau[k-1]-pas_derivee else volume_verse:=volume_burette_max*vovo/nombre_points_calcul_faisceau[k-1]; application.ProcessMessages; if arret_demande then exit; calcul_en_cours:=true; for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; Save_Cursor := Screen.Cursor; try screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_gauche[0]:=(volume_verse)*1000; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats_gauche[i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_gauche[i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do tableau_resultats_gauche[i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; end; {de l'affichage des resultats} volume_verse:=volume_burette_max*vovo/nombre_points_calcul+pas_derivee; application.ProcessMessages; if arret_demande then exit; calcul_en_cours:=true; for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; Save_Cursor := Screen.Cursor; try screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_droite[0]:=(volume_verse)*1000; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats_droite[i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_droite[i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do tableau_resultats_droite[i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; end; {de l'affichage des resultats} {et maintenant calcul des derivees} for i:=1 to nombre_solutes_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i])) and not(isnanorinfinite(tableau_resultats_gauche[i]))) then if vovo<>0 then tableau_resultats_faisceau[k-1,vovo,i+2*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i]-tableau_resultats_gauche[i])/pas_derivee/2 else tableau_resultats_faisceau[k-1,vovo,i+2*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i]-tableau_resultats_gauche[i])/pas_derivee else tableau_resultats_faisceau[k-1,vovo,i+2*nombre_solutes_0+nombre_precipites_0]:=NAN; end; for i:=1 to nombre_solutes_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0])) and not(isnanorinfinite(tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0]))) then if vovo<>0 then tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]- tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0])/pas_derivee/2 else tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]- tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0])/pas_derivee else tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:=NAN; end; for i:=1 to nombre_precipites_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i+nombre_solutes_0])) and not(isnanorinfinite(tableau_resultats_gauche[i+nombre_solutes_0]))) then if vovo<>0 then tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0]- tableau_resultats_gauche[i+nombre_solutes_0])/pas_derivee/2 else tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0]- tableau_resultats_gauche[i+nombre_solutes_0])/pas_derivee else tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+nombre_precipites_0]:=NAN; end; end; {ajout version 1.10>} volume_verse:=volume_burette_max*vovo/nombre_points_calcul_faisceau[k-1]; for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; Save_Cursor := Screen.Cursor; try screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_faisceau[k-1,vovo,0]:=(volume_verse)*1000; if not (rep) then for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats_faisceau[k-1,vovo,i]:=NAN else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_faisceau[k-1,vovo,i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; if ((nombre_moles_equilibre_solutes_0[i-1]>pluspetiteconcentrationsignificative) or (nombre_moles_equilibre_solutes_0[i-1]=0)) then else begin tableau_resultats_faisceau[k-1,vovo,i]:=NAN; end; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do begin tableau_resultats_faisceau[k-1,vovo,i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; if ((nombre_moles_equilibre_precipites_0[i-1]>pluspetiteconcentrationsignificative)) then else if ((nombre_moles_equilibre_precipites_0[i-1]=0)) then else begin tableau_resultats_faisceau[k-1,vovo,i+nombre_solutes_0]:=NAN; end; end; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_faisceau[k-1,vovo,i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; end; {de l'affichage des resultats} end;{de la boucle des volumes} {la boucle des volumes} if pas_adaptatif then begin {calcul premier point} volume_verse:=0; vovo:=0; pas_volume:=math.max(volume_burette_max/nombre_points_calcul_faisceau[k-1], limite_inferieure_pas/1000); {=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; Save_Cursor := Screen.Cursor; try screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_gauche[0]:=(volume_verse)*1000; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats_gauche[i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_gauche[i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do tableau_resultats_gauche[i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; end; {de l'affichage des resultats} volume_verse:=pas_derivee; application.ProcessMessages; if arret_demande then exit; calcul_en_cours:=true; for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; Save_Cursor := Screen.Cursor; try screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_droite[0]:=(volume_verse)*1000; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats_droite[i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_droite[i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do tableau_resultats_droite[i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; end; {de l'affichage des resultats} {et maintenant calcul des derivees} for i:=1 to nombre_solutes_0 do if (not(isnanorinfinite(tableau_resultats_droite[i])) and not(isnanorinfinite(tableau_resultats_gauche[i]))) then tableau_resultats_faisceau[k-1,vovo,i+2*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i]-tableau_resultats_gauche[i])/pas_derivee else tableau_resultats_faisceau[k-1,vovo,i+2*nombre_solutes_0+nombre_precipites_0]:=NAN; for i:=1 to nombre_solutes_0 do if (not(isnanorinfinite(tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0])) and not(isnanorinfinite(tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0]))) then tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]- tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0])/pas_derivee else tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:=NAN; for i:=1 to nombre_precipites_0 do if (not(isnanorinfinite(tableau_resultats_droite[i+nombre_solutes_0])) and not(isnanorinfinite(tableau_resultats_gauche[i+nombre_solutes_0]))) then tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0]- tableau_resultats_gauche[i+nombre_solutes_0])/pas_derivee else tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+nombre_precipites_0]:=NAN; end; {ajout version 1.10>} for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; Save_Cursor := Screen.Cursor; try screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_faisceau[k-1,vovo,0]:=(volume_verse)*1000; if not (rep) then for i:=1 to nombre_solutes_0+nombre_precipites_0 do begin tableau_resultats_faisceau[k-1,vovo,i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_faisceau[k-1,vovo,i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; if ((nombre_moles_equilibre_solutes_0[i-1]>pluspetiteconcentrationsignificative) or (nombre_moles_equilibre_solutes_0[i-1]=0)) then else begin tableau_resultats_faisceau[k-1,vovo,i]:=NAN; end; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do begin tableau_resultats_faisceau[k-1,vovo,i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; if ((nombre_moles_equilibre_precipites_0[i-1]>pluspetiteconcentrationsignificative)) then else if ((nombre_moles_equilibre_precipites_0[i-1]=0)) then else begin tableau_resultats_faisceau[k-1,vovo,i+nombre_solutes_0]:=NAN; end; end; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_faisceau[k-1,vovo,i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; end; {de l'affichage des resultats} {fin premier pôint} while (volume_versevolume_burette_max then volume_verse:=volume_burette_max; for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; Save_Cursor := Screen.Cursor; try screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally Screen.Cursor := Save_Cursor; end; {calcul de la variation max du log des concentrations} variation_max_log:=0; if rep then begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do if not(isnanorinfinite(tableau_resultats_faisceau[k-1,vovo,i])) then if ((tableau_resultats_faisceau[k-1,vovo,i]>pluspetiteconcentrationsignificative) and (nombre_moles_equilibre_solutes_0[i-1]/(volume_becher+volume_verse)> pluspetiteconcentrationsignificative)) then variation_max_log:= math.max(variation_max_log, abs(ln(nombre_moles_equilibre_solutes_0[i-1]/(volume_becher+volume_verse))- ln(tableau_resultats_faisceau[k-1,vovo,i]))/ln(10)); if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do if not(isnanorinfinite(tableau_resultats_faisceau[k-1,vovo,i+nombre_solutes_0])) then if ((tableau_resultats_faisceau[k-1,vovo,i+nombre_solutes_0]>pluspetiteconcentrationsignificative) and (nombre_moles_equilibre_precipites_0[i-1]> pluspetiteconcentrationsignificative)) then variation_max_log:= math.max(variation_max_log, abs(ln(nombre_moles_equilibre_precipites_0[i-1])- ln(tableau_resultats_faisceau[k-1,vovo,i+nombre_solutes_0]))/ln(10)); end; {fin calcul variation max} {si la variation max est trop grande, on diminue le pas et on reprend le calcul} if ((variation_max_log>var_log_max) and (pas_volume/2>limite_inferieure_pas/1000)) then begin volume_verse:=volume_verse-pas_volume; pas_volume:=pas_volume/2; goto 112; end; {pas_volume/100 then pas_derivee:=pas_volume/100 else pas_derivee:=volume_burette_max/diviseur_pas_derivee; {ajout version 1.10>} {si elle est trop petite, on revient au pas d'origine pour la suite} if variation_max_lognombre_points_calcul_faisceau[k-1] then nombre_points_calcul_faisceau[k-1]:=vovo; if vovo>nombre_points_calcul_faisceau_max then begin nombre_points_calcul_faisceau_max:=vovo; {} end; tableau_resultats_faisceau[k-1,vovo,0]:=(volume_verse)*1000; if not (rep) then for i:=1 to nombre_solutes_0+nombre_precipites_0 do begin tableau_resultats_faisceau[k-1,vovo,i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_faisceau[k-1,vovo,i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+volume_verse); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; if ((nombre_moles_equilibre_solutes_0[i-1]>pluspetiteconcentrationsignificative) or (nombre_moles_equilibre_solutes_0[i-1]=0)) then else tableau_resultats_faisceau[k-1,vovo,i]:=NAN; end; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do begin tableau_resultats_faisceau[k-1,vovo,i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; if ((nombre_moles_equilibre_precipites_0[i-1]>pluspetiteconcentrationsignificative)) then else if ((nombre_moles_equilibre_precipites_0[i-1]=0)) then else begin tableau_resultats_faisceau[k-1,vovo,i+nombre_solutes_0]:=NAN; end; end; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_faisceau[k-1,vovo,i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; {=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*(volume_verse-pas_derivee); if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+(volume_verse-pas_derivee))*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; Save_Cursor := Screen.Cursor; try screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+(volume_verse-pas_derivee),temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_gauche[0]:=((volume_verse-pas_derivee))*1000; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats_gauche[i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_gauche[i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+(volume_verse-pas_derivee)); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do tableau_resultats_gauche[i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; end; {de l'affichage des resultats} application.ProcessMessages; if arret_demande then exit; calcul_en_cours:=true; for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*(volume_verse+pas_derivee); if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+(volume_verse+pas_derivee))*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; Save_Cursor := Screen.Cursor; try screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+(volume_verse+pas_derivee),temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally Screen.Cursor := Save_Cursor; { Revient toujours à normal } end; tableau_resultats_droite[0]:=((volume_verse+pas_derivee))*1000; if not (rep) then begin for i:=1 to nombre_solutes_0+nombre_precipites_0+nombre_solutes_0 do tableau_resultats_droite[i]:=NAN; end else begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_droite[i]:=nombre_moles_equilibre_solutes_0[i-1]/ (volume_becher+(volume_verse+pas_derivee)); if noms_solutes_0[i-1]='H[+]' then indice_ph:=i; if noms_solutes_0[i-1]='OH[-]' then indice_poh:=i; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do tableau_resultats_droite[i+nombre_solutes_0]:=nombre_moles_equilibre_precipites_0[i-1]; {activites} if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]:= activites_solutes_0[i-1]; {modif version 2.5} { if noms_solutes_0[i-1]:='H[+]' then indice_ph:=i+nombre_solutes_0+nombre_precipites_0; if noms_solutes_0[i-1]:='OH[-]' then indice_poh:=i+nombre_solutes_0+nombre_precipites_0;} {modif version 2.5} end; end; {de l'affichage des resultats} {et maintenant calcul des derivees} for i:=1 to nombre_solutes_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i])) and not(isnanorinfinite(tableau_resultats_gauche[i]))) then if vovo<>0 then tableau_resultats_faisceau[k-1,vovo,i+2*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i]-tableau_resultats_gauche[i])/pas_derivee/2 else tableau_resultats_faisceau[k-1,vovo,i+2*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i]-tableau_resultats_gauche[i])/pas_derivee else tableau_resultats_faisceau[k-1,vovo,i+2*nombre_solutes_0+nombre_precipites_0]:=NAN; end; for i:=1 to nombre_solutes_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0])) and not(isnanorinfinite(tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0]))) then if vovo<>0 then tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]- tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0])/pas_derivee/2 else tableau_resultats[vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0+nombre_precipites_0]- tableau_resultats_gauche[i+nombre_solutes_0+nombre_precipites_0])/pas_derivee else tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+2*nombre_precipites_0]:=NAN; end; for i:=1 to nombre_precipites_0 do begin if (not(isnanorinfinite(tableau_resultats_droite[i+nombre_solutes_0])) and not(isnanorinfinite(tableau_resultats_gauche[i+nombre_solutes_0]))) then if vovo<>0 then tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0]- tableau_resultats_gauche[i+nombre_solutes_0])/pas_derivee/2 else tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+nombre_precipites_0]:= (tableau_resultats_droite[i+nombre_solutes_0]- tableau_resultats_gauche[i+nombre_solutes_0])/pas_derivee else tableau_resultats_faisceau[k-1,vovo,i+3*nombre_solutes_0+nombre_precipites_0]:=NAN; end; end; {ajout version 1.10>} end;{de la boucle des volumes} end;{du cas pas adaptatif} {remise en place des anciennes valeurs} if indice_valeur_a_modifier=0 then begin volume_becher:=old_valeur_reelle; end; if indice_valeur_a_modifier=1 then begin volume_burette_max:=old_valeur_reelle; end; if stringgridreactifs_becher.RowCount>1 then if ((indice_valeur_a_modifier>1) and (indice_valeur_a_modifier<=1+stringgridreactifs_becher.RowCount-1)) then begin stringgridreactifs_becher.cells[2,indice_valeur_a_modifier-1]:=old_valeur_chaine; end; if stringgridreactifs_burette.RowCount>1 then if ((indice_valeur_a_modifier>1+stringgridreactifs_becher.RowCount-1) and (indice_valeur_a_modifier<=1+stringgridreactifs_becher.RowCount-1+ stringgridreactifs_burette.RowCount-1)) then begin stringgridreactifs_becher.cells[2,indice_valeur_a_modifier-1 -(stringgridreactifs_becher.RowCount-1)]:=old_valeur_chaine; end; if stringgridreactions.RowCount>1 then if ((indice_valeur_a_modifier>1+stringgridreactifs_becher.RowCount-1+ stringgridreactifs_burette.RowCount-1) and (indice_valeur_a_modifier<=1+stringgridreactifs_becher.RowCount-1+ stringgridreactifs_burette.RowCount-1+stringgridreactions.RowCount-1)) then begin stringgridreactions.cells[1,indice_valeur_a_modifier-1 -(stringgridreactifs_becher.RowCount-1)-(stringgridreactifs_burette.RowCount-1)] :=old_valeur_chaine; end; nombre_especes_0:=0; {recalcul des concentrations initiales} for i:=1 to checklistbox1.Items.Count do if checklistbox1.Checked[i-1] then begin inc(nombre_especes_0); setlength(noms_especes_0,nombre_especes_0); setlength(tableau_moles_initiales_0,nombre_especes_0); noms_especes_0[nombre_especes_0-1]:=checklistbox1.Items[i-1]; if stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[nombre_especes_0-1])>=0 then tableau_moles_initiales_0[nombre_especes_0-1]:= mystrtofloat(stringgridreactifs_becher.cells[2,stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[nombre_especes_0-1])])*volume_becher else tableau_moles_initiales_0[nombre_especes_0-1]:=0; if stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[nombre_especes_0-1])>=0 then tableau_moles_initiales_0[nombre_especes_0-1]:=tableau_moles_initiales_0[nombre_especes_0-1]+ mystrtofloat(stringgridreactifs_burette.cells[2,stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[nombre_especes_0-1])])*volume_burette_max; if ((noms_especes_0[nombre_especes_0-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]:=0)}) then tableau_moles_initiales_0[nombre_especes_0-1]:=(volume_becher+volume_burette_max)*1000/18; end; {remise en place des logk} if reac_0>0 then for i:=1 to reac_0 do logk_0[i-1]:=mystrtofloat(stringgridreactions.Cells[1,i]); DetermineMu0(coeff_stoechio_0, logk_0,potentiels_standards_0, nombre_especes_0,reac_0,temperature); nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin potentiel_chimique_standard_solvant_0:=potentiels_standards_0[i-1]; setlength(t_n_a_p_e_solvant_0,nombre_atomes_differents_0); for j:=1 to nombre_atomes_differents_0 do t_n_a_p_e_solvant_0[j-1]:=matrice_0[j-1,i-1]; nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); setlength(t_n_a_p_e_precipites_0,nombre_atomes_differents_0,nombre_precipites_0); setlength(tableau_nombre_initial_moles_precipites_0,nombre_precipites_0); setlength(potentiels_chimiques_standards_precipites_0,nombre_precipites_0); setlength(noms_precipites_0,nombre_precipites_0); potentiels_chimiques_standards_precipites_0[nombre_precipites_0-1]:= potentiels_standards_0[i-1]; tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; noms_precipites_0[nombre_precipites_0-1]:=noms_especes_0[i-1]; for j:=1 to nombre_atomes_differents_0 do t_n_a_p_e_precipites_0[j-1,nombre_precipites_0-1]:= matrice_0[j-1,i-1]; end else begin inc(nombre_solutes_0); setlength(t_n_a_p_e_solutes_0,nombre_atomes_differents_0,nombre_solutes_0); setlength(tableau_nombre_initial_moles_solutes_0,nombre_solutes_0); setlength(potentiels_chimiques_standards_solutes_0,nombre_solutes_0); setlength(noms_solutes_0,nombre_solutes_0); potentiels_chimiques_standards_solutes_0[nombre_solutes_0-1]:= potentiels_standards_0[i-1]; tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; noms_solutes_0[nombre_solutes_0-1]:=noms_especes_0[i-1]; for j:=1 to nombre_atomes_differents_0 do t_n_a_p_e_solutes_0[j-1,nombre_solutes_0-1]:= matrice_0[j-1,i-1]; end; end; {fin remise anciennes valeurs} end; {de la boucle des differentes valeurs du faisceau} setlength(tableau_grandeurs_tracees_faisceau,nombre_valeurs_faisceau, 1+nombre_points_calcul_faisceau_max,1+nombre_ordonnees); for kk:=1 to nombre_valeurs_faisceau do for i:=0 to nombre_points_calcul_faisceau[kk-1] do begin for j:=1 to nombre_ordonnees do begin for k:=1 to nombre_variables_ordonnees[j-1] do if liste_variables_ordonnees[j-1][k-1]='gamma' then try conductivite_actuelle:=0; for kkk:=1 to nombre_solutes_0 do conductivite_actuelle:=conductivite_actuelle+ tableau_resultats_faisceau[kk-1,i,kkk]*conductivites_solutes_0[kkk-1]* abs(charges_solutes_0[kkk-1])*0.1; Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := conductivite_actuelle; except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if liste_variables_ordonnees[j-1][k-1]='Vtotal' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := tableau_resultats_faisceau[kk-1,i,0]+volume_becher*1000 else if liste_variables_ordonnees[j-1][k-1]='V0' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := volume_becher*1000 else if liste_variables_ordonnees[j-1][k-1]='V' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := tableau_resultats_faisceau[kk-1,i,0] else if liste_variables_ordonnees[j-1][k-1]='pH' then try Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=-log10( tableau_resultats_faisceau[kk-1,i,indice_ph+nombre_solutes_0+nombre_precipites_0]); except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if liste_variables_ordonnees[j-1][k-1]='pOH' then try Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=-log10( tableau_resultats_faisceau[kk-1,i,indice_poh+nombre_solutes_0+nombre_precipites_0]); except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else {} {modif version 2.5} if copy(liste_variables_ordonnees[j-1][k-1],1,2)='Po' then begin icouple:=strtoint(copy(liste_variables_ordonnees[j-1][k-1],3, length(liste_variables_ordonnees[j-1][k-1])-2)); {on teste si un des elements du couple est un solide absent, auquel cas potentiel:=NAN} imin1:=0; imin2:=0; isol1:=0; isol2:=0; if nombre_precipites_0>0 then begin imin1:=1; while imin1<=nombre_precipites_0 do if noms_precipites_0[imin1-1]=liste_couples_redox[icouple-1].espece1 then break else inc(imin1); if imin1<=nombre_precipites_0 then begin if tableau_resultats_faisceau[kk-1,i,nombre_precipites_0+imin1]=0 then begin Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; goto 16446; end; end else imin1:=0; end; if nombre_precipites_0>0 then begin imin2:=1; while imin2<=nombre_precipites_0 do if noms_precipites_0[imin2-1]=liste_couples_redox[icouple-1].espece2 then break else inc(imin2); if imin2<=nombre_precipites_0 then begin if tableau_resultats_faisceau[kk-1,i,nombre_precipites_0+imin2]=0 then begin Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; goto 16446; end; end else imin2:=0; end; {on teste si un des elements du couple est un solute absent, auquel cas potentiel:=NAN} if nombre_solutes_0>0 then begin isol1:=1; while isol1<=nombre_solutes_0 do if noms_solutes_0[isol1-1]=liste_couples_redox[icouple-1].espece1 then break else inc(isol1); if isol1<=nombre_solutes_0 then begin if tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+isol1]=0 then begin Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; goto 16446; end; end else isol1:=0; end; if nombre_solutes_0>0 then begin isol2:=1; while isol2<=nombre_solutes_0 do if noms_solutes_0[isol2-1]=liste_couples_redox[icouple-1].espece2 then break else inc(isol2); if isol2<=nombre_solutes_0 then begin if tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+isol2]=0 then begin Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; goto 16446; end; end else isol2:=0; end; try poto:=liste_couples_redox[icouple-1].potentiel_standard_redox; if isol1>0 then poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_1*ln(tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+isol1])/ln(10); if isol2>0 then poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_2*ln(tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+isol2])/ln(10); poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_Hp*ln(tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+indice_pH])/ln(10); Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=poto; except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end; 16446: end else {modif version 2.5} if copy(liste_variables_ordonnees[j-1][k-1],1,2)='pc' then try Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=-log10( tableau_resultats_faisceau[kk-1,i,strtoint(copy(liste_variables_ordonnees[j-1][k-1],3, length(liste_variables_ordonnees[j-1][k-1])-2))]); except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if copy(liste_variables_ordonnees[j-1][k-1],1,2)='pa' then try Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=-log10( tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+ strtoint(copy(liste_variables_ordonnees[j-1][k-1],3, length(liste_variables_ordonnees[j-1][k-1])-2))]); except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if liste_variables_ordonnees[j-1][k-1][1]='c' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := tableau_resultats_faisceau[kk-1,i,strtoint(copy(liste_variables_ordonnees[j-1][k-1],2, length(liste_variables_ordonnees[j-1][k-1])-1))] else if liste_variables_ordonnees[j-1][k-1][1]='a' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+ strtoint(copy(liste_variables_ordonnees[j-1][k-1],2, length(liste_variables_ordonnees[j-1][k-1])-1))] else if copy(liste_variables_ordonnees[j-1][k-1],1,2)='pn' then try Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=-log10( tableau_resultats_faisceau[kk-1,i,strtoint(copy(liste_variables_ordonnees[j-1][k-1],3, length(liste_variables_ordonnees[j-1][k-1])-2))+nombre_solutes_0]); except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if liste_variables_ordonnees[j-1][k-1][1]='n' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := tableau_resultats_faisceau[kk-1,i,strtoint(copy(liste_variables_ordonnees[j-1][k-1],2, length(liste_variables_ordonnees[j-1][k-1])-1))+nombre_solutes_0]; try tableau_grandeurs_tracees_faisceau[kk-1,i,j]:=Parser_ordonnees[j-1].value; except tableau_grandeurs_tracees_faisceau[kk-1,i,j]:=NAN; end; end; for k:=1 to nombre_variables_abscisse do if liste_variables_abscisse[k-1]='gamma' then try conductivite_actuelle:=0; for kkk:=1 to nombre_solutes_0 do conductivite_actuelle:=conductivite_actuelle+ tableau_resultats_faisceau[kk-1,i,kkk]*conductivites_solutes_0[kkk-1]* abs(charges_solutes_0[kkk-1])*0.1; parser_abscisse.Variable[liste_variables_abscisse[k-1]] := conductivite_actuelle; except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if liste_variables_abscisse[k-1]='Vtotal' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := tableau_resultats_faisceau[kk-1,i,0]+volume_becher*1000 else if liste_variables_abscisse[k-1]='V0' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := volume_becher*1000 else if liste_variables_abscisse[k-1]='V' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := tableau_resultats_faisceau[kk-1,i,0] else if liste_variables_abscisse[k-1]='pH' then try parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=-log10( tableau_resultats_faisceau[kk-1,i,indice_ph+nombre_solutes_0+nombre_precipites_0]); except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if liste_variables_abscisse[k-1]='pOH' then try parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=-log10( tableau_resultats_faisceau[kk-1,i,indice_poh+nombre_solutes_0+nombre_precipites_0]); except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else {} {modif version 2.5} if copy(liste_variables_abscisse[k-1],1,2)='Po' then begin icouple:=strtoint(copy(liste_variables_abscisse[k-1],3, length(liste_variables_abscisse[k-1])-2)); {on teste si un des elements du couple est un solide absent, auquel cas potentiel:=NAN} imin1:=0; imin2:=0; isol1:=0; isol2:=0; if nombre_precipites_0>0 then begin imin1:=1; while imin1<=nombre_precipites_0 do if noms_precipites_0[imin1-1]=liste_couples_redox[icouple-1].espece1 then break else inc(imin1); if imin1<=nombre_precipites_0 then begin if tableau_resultats_faisceau[kk-1,i,nombre_precipites_0+imin1]=0 then begin Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; goto 16447; end; end else imin1:=0; end; if nombre_precipites_0>0 then begin imin2:=1; while imin2<=nombre_precipites_0 do if noms_precipites_0[imin2-1]=liste_couples_redox[icouple-1].espece2 then break else inc(imin2); if imin2<=nombre_precipites_0 then begin if tableau_resultats_faisceau[kk-1,i,nombre_precipites_0+imin2]=0 then begin Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; goto 16447; end; end else imin2:=0; end; {on teste si un des elements du couple est un solute absent, auquel cas potentiel:=NAN} if nombre_solutes_0>0 then begin isol1:=1; while isol1<=nombre_solutes_0 do if noms_solutes_0[isol1-1]=liste_couples_redox[icouple-1].espece1 then break else inc(isol1); if isol1<=nombre_solutes_0 then begin if tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+isol1]=0 then begin Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; goto 16447; end; end else isol1:=0; end; if nombre_solutes_0>0 then begin isol2:=1; while isol2<=nombre_solutes_0 do if noms_solutes_0[isol2-1]=liste_couples_redox[icouple-1].espece2 then break else inc(isol2); if isol2<=nombre_solutes_0 then begin if tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+isol2]=0 then begin Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; goto 16447; end; end else isol2:=0; end; try poto:=liste_couples_redox[icouple-1].potentiel_standard_redox; if isol1>0 then poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_1*ln(tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+isol1])/ln(10); if isol2>0 then poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_2*ln(tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+isol2])/ln(10); poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_Hp*ln(tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+indice_pH])/ln(10); Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=poto; except Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end; 16447: end else {modif version 2.5} if copy(liste_variables_abscisse[k-1],1,2)='pc' then try parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=-log10( tableau_resultats_faisceau[kk-1,i,strtoint(copy(liste_variables_abscisse[k-1],3, length(liste_variables_abscisse[k-1])-2))]); except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if copy(liste_variables_abscisse[k-1],1,2)='pa' then try parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=-log10( tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+ strtoint(copy(liste_variables_abscisse[k-1],3, length(liste_variables_abscisse[k-1])-2))]); except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if liste_variables_abscisse[k-1][1]='c' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := tableau_resultats_faisceau[kk-1,i,strtoint(copy(liste_variables_abscisse[k-1],2, length(liste_variables_abscisse[k-1])-1))] else if liste_variables_abscisse[k-1][1]='a' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := tableau_resultats_faisceau[kk-1,i,nombre_solutes_0+nombre_precipites_0+ strtoint(copy(liste_variables_abscisse[k-1],2, length(liste_variables_abscisse[k-1])-1))] else if copy(liste_variables_abscisse[k-1],1,2)='pn' then try parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=-log10( tableau_resultats_faisceau[kk-1,i,strtoint(copy(liste_variables_abscisse[k-1],3, length(liste_variables_abscisse[k-1])-2))+nombre_solutes_0]); except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if liste_variables_abscisse[k-1][1]='n' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := tableau_resultats_faisceau[kk-1,i,strtoint(copy(liste_variables_abscisse[k-1],2, length(liste_variables_abscisse[k-1])-1))+nombre_solutes_0]; try tableau_grandeurs_tracees_faisceau[kk-1,i,0]:= parser_abscisse.value; except tableau_grandeurs_tracees_faisceau[kk-1,i,0]:=NAN; end; end; mode_faisceau:=true; abscisse_min:=0; abscisse_max:=0; if radioechellehorizontale.ItemIndex=1 then begin {echelle horizontale manuelle} try abscisse_min:=mystrtofloat(editxmin.Text); except application.MessageBox(pchar(rsSyntaxeIncor), pchar(rsAttention), mb_ok); exit; end; try abscisse_max:=mystrtofloat(editxmax.Text); except application.MessageBox(pchar(rsSyntaxeIncor2), pchar(rsAttention), mb_ok); exit; end; if abscisse_min>abscisse_max then begin echange(abscisse_min,abscisse_max); editxmin.Text:=floattostr(abscisse_min); editxmax.Text:=floattostr(abscisse_max); end; end else begin {echelle horizontale automatique} i:=-1; repeat inc(i); until ((not(isnanorinfinite(tableau_grandeurs_tracees_faisceau[0,i,0]))) or (i=nombre_points_calcul_faisceau[0])); if iabscisse_max)) then abscisse_max:=tableau_grandeurs_tracees_faisceau[0,j,0]; end; end; if nombre_valeurs_faisceau>1 then for kk:=2 to nombre_valeurs_faisceau do begin for j:=i+1 to nombre_points_calcul_faisceau[kk-1] do begin if not(isnanorinfinite(tableau_grandeurs_tracees_faisceau[kk-1,j,0]))then if ((tableau_grandeurs_tracees_faisceau[kk-1,j,0]abscisse_max)) then abscisse_max:=tableau_grandeurs_tracees_faisceau[kk-1,j,0]; end; end; end; if (abs(abscisse_min-abscisse_max)<=math.max(abs(abscisse_min),abs(abscisse_max))*1e-10) then begin application.MessageBox(pchar(rsLAbscisseMin2), pchar(rsTracImpossib), mb_ok); exit; end; existe_droite:=false; existe_gauche:=false; if nombre_ordonnees>0 then for i:=1 to nombre_ordonnees do begin existe_droite:=existe_droite or (liste_echelles[i-1]=e_droite); existe_gauche:=existe_gauche or (liste_echelles[i-1]=e_gauche); end; {form1.CheckBoxgrillegauche.Checked:=existe_gauche; form1.CheckBoxgrilledroite.Checked:=existe_droite; } if existe_droite then begin if radioechelleverticaledroite.ItemIndex=1 then begin {echelle verticale droite manuelle} try ordonnee_droite_min:=mystrtofloat(editymindroite.Text); except application.MessageBox(pchar(rsSyntaxeIncor3), pchar(rsAttention), mb_ok); exit; end; try ordonnee_droite_max:=mystrtofloat(editymaxdroite.Text); except application.MessageBox(pchar(rsSyntaxeIncor4), pchar(rsAttention), mb_ok); exit; end; if ordonnee_droite_min>ordonnee_droite_max then begin echange(ordonnee_droite_min,ordonnee_droite_max); editymindroite.Text:=floattostr(ordonnee_droite_min); editymaxdroite.Text:=floattostr(ordonnee_droite_max); end; end else begin {echelle droite automatique} for k:=1 to nombre_ordonnees do if liste_echelles[k-1]=e_droite then for i:=0 to nombre_points_calcul_faisceau[0] do if not(isnanorinfinite(tableau_grandeurs_tracees_faisceau[0,i,k])) then begin ordonnee_droite_min:=tableau_grandeurs_tracees_faisceau[0,i,k]; ordonnee_droite_max:=tableau_grandeurs_tracees_faisceau[0,i,k]; goto 167; end; 167: for k:=1 to nombre_ordonnees do if liste_echelles[k-1]=e_droite then for i:=0 to nombre_points_calcul_faisceau[0] do if not(isnanorinfinite(tableau_grandeurs_tracees_faisceau[0,i,k])) then begin if tableau_grandeurs_tracees_faisceau[0,i,k]ordonnee_droite_max then ordonnee_droite_max:=tableau_grandeurs_tracees_faisceau[0,i,k]; end; if nombre_valeurs_faisceau>1 then for kk:=2 to nombre_valeurs_faisceau do begin for k:=1 to nombre_ordonnees do if liste_echelles[k-1]=e_droite then for i:=0 to nombre_points_calcul_faisceau[kk-1] do if not(isnanorinfinite(tableau_grandeurs_tracees_faisceau[kk-1,i,k])) then begin if tableau_grandeurs_tracees_faisceau[kk-1,i,k]ordonnee_droite_max then ordonnee_droite_max:=tableau_grandeurs_tracees_faisceau[kk-1,i,k]; end; end; end; if ( (abs(ordonnee_droite_min-ordonnee_droite_max)<=math.max(abs(ordonnee_droite_min), abs(ordonnee_droite_max))*1e-10) and existe_droite ) then begin application.MessageBox(pchar(rsLOrdonnEMini3), pchar(rsTracImpossib), mb_ok); exit; end; end; if existe_gauche then begin ordonnee_gauche_min:=0; ordonnee_gauche_max:=0; if radioechelleverticalegauche.ItemIndex=1 then begin {echelle verticale gauche manuelle} try ordonnee_gauche_min:=mystrtofloat(editymingauche.Text); except application.MessageBox(pchar(rsSyntaxeIncor5), pchar(rsAttention), mb_ok); exit; end; try ordonnee_gauche_max:=mystrtofloat(editymaxgauche.Text); except application.MessageBox(pchar(rsSyntaxeIncor6), pchar(rsAttention), mb_ok); exit; end; if ordonnee_gauche_min>ordonnee_gauche_max then begin echange(ordonnee_gauche_min,ordonnee_gauche_max); editymingauche.Text:=floattostr(ordonnee_gauche_min); editymaxgauche.Text:=floattostr(ordonnee_gauche_max); end; end else begin {echelle gauche automatique} for k:=1 to nombre_ordonnees do if liste_echelles[k-1]=e_gauche then for i:=0 to nombre_points_calcul_faisceau[0] do if not(isnanorinfinite(tableau_grandeurs_tracees_faisceau[0,i,k])) then begin ordonnee_gauche_min:=tableau_grandeurs_tracees_faisceau[0,i,k]; ordonnee_gauche_max:=tableau_grandeurs_tracees_faisceau[0,i,k]; goto 168; end; 168: for k:=1 to nombre_ordonnees do if liste_echelles[k-1]=e_gauche then for i:=0 to nombre_points_calcul_faisceau[0] do if not(isnanorinfinite(tableau_grandeurs_tracees_faisceau[0,i,k])) then begin if tableau_grandeurs_tracees_faisceau[0,i,k]ordonnee_gauche_max then ordonnee_gauche_max:=tableau_grandeurs_tracees_faisceau[0,i,k]; end; if nombre_valeurs_faisceau>1 then for kk:=2 to nombre_valeurs_faisceau do begin for k:=1 to nombre_ordonnees do if liste_echelles[k-1]=e_gauche then for i:=0 to nombre_points_calcul_faisceau[kk-1] do if not(isnanorinfinite(tableau_grandeurs_tracees_faisceau[kk-1,i,k])) then begin if tableau_grandeurs_tracees_faisceau[kk-1,i,k]ordonnee_gauche_max then ordonnee_gauche_max:=tableau_grandeurs_tracees_faisceau[kk-1,i,k]; end; end; end; if ( (abs(ordonnee_gauche_min-ordonnee_gauche_max)<=math.max(abs(ordonnee_gauche_min), abs(ordonnee_gauche_max))*1e-10) and existe_gauche ) then begin application.MessageBox(pchar(rsLOrdonnEMini4), pchar(rsTracImpossib), mb_ok); exit; end; end; finalize( tableau_resultats_faisceau); tabsheettracecourbes.Refresh; form1.dessinegraphe; end; procedure TForm1.SpeedButton17Click(Sender: TObject); var ns,s1,s2,s3,s4:string; f:textfile; novar:array of string; boubou:integer; i,j:integer; valeurs:array of float; begin if mode_1point then exit; popupmenusuperposer.Popup(SpeedButton17.Left+SpeedButton17.Width+ toolbar2.left+tabsheettracecourbes.Left+pagecontrol4.Left ,SpeedButton17.Top+SpeedButton17.Height+toolbar2.Top+toolbar2.Height +tabsheettracecourbes.Top+pagecontrol4.Top); tabsheettracecourbes.Refresh; end; procedure TForm1.SpeedButton1Click(Sender: TObject); var i:integer; begin for i:=1 to checklistbox1.Items.Count do checklistbox1.Checked[i-1]:=true; end; procedure TForm1.SpeedButton2Click(Sender: TObject); var i,j,k,longueurmax_acide,longueurmax_aminoacide,longueurmax_alc, longueurmax_alcool,longueurmax_benzene,longueurmax_complexe, longueurmax_aldehyd_cetone,longueurmax_amid_amin, longueurmax,i_acide,i_aminoacide,i_alc, i_alcool,i_benzene,i_complexe, i_aldehyd_cetone,i_amid_amin:integer; sasa:string; nas,ncs,nc,nab,indice_ligne_h,indice_ligne_oh:longint; begin stringgridcationssimples.ColCount:=5; stringgridcationssimples.RowCount:=nb_cations_simples+1; stringgridcationssimples.Cells[0, 0]:=rsIdentifiant; stringgridcationssimples.Cells[1, 0]:=rsConductivit0; stringgridcationssimples.Cells[2, 0]:=rsSynonyme; stringgridcationssimples.Cells[3, 0]:=rsFormule; stringgridcationssimples.Cells[4, 0]:=rsMGMol; stringgridions.ColCount:=5; stringgridions.RowCount:=nb_ions+1; stringgridions.Cells[0, 0]:=rsIdentifiant; stringgridions.Cells[1, 0]:=rsConductivit0; stringgridions.Cells[2, 0]:=rsSynonyme; stringgridions.Cells[3, 0]:=rsFormule; stringgridions.Cells[4, 0]:=rsMGMol; stringgridmolecules.ColCount:=5; stringgridmolecules.RowCount:=nb_molecules+1; stringgridmolecules.Cells[0, 0]:=rsIdentifiant; stringgridmolecules.Cells[1, 0]:=rsConductivit0; stringgridmolecules.Cells[2, 0]:=rsSynonyme; stringgridmolecules.Cells[3, 0]:=rsFormule; stringgridmolecules.Cells[4, 0]:=rsMGMol; stringgridanionssimples.ColCount:=5; stringgridanionssimples.RowCount:=nb_anions_simples+1; stringgridanionssimples.Cells[0, 0]:=rsIdentifiant; stringgridanionssimples.Cells[1, 0]:=rsConductivit0; stringgridanionssimples.Cells[2, 0]:=rsSynonyme; stringgridanionssimples.Cells[3, 0]:=rsFormule; stringgridanionssimples.Cells[4, 0]:=rsMGMol; stringgridaqueuxcomplexes.ColCount:=5; stringgridaqueuxcomplexes.RowCount:=nb_complexes+1; stringgridaqueuxcomplexes.Cells[0, 0]:=rsIdentifiant; stringgridaqueuxcomplexes.Cells[1, 0]:=rsConductivit0; stringgridaqueuxcomplexes.Cells[2, 0]:=rsSynonyme; stringgridaqueuxcomplexes.Cells[3, 0]:=rsFormule; stringgridaqueuxcomplexes.Cells[4, 0]:=rsMGMol; stringgridaqueuxab.ColCount:=5; stringgridaqueuxab.RowCount:=nb_ab+1; stringgridaqueuxab.Cells[0, 0]:=rsIdentifiant; stringgridaqueuxab.Cells[1, 0]:=rsConductivit0; stringgridaqueuxab.Cells[2, 0]:=rsSynonyme; stringgridaqueuxab.Cells[3, 0]:=rsFormule; stringgridaqueuxab.Cells[4, 0]:=rsMGMol; for i:=1 to nb_ab do begin stringgridaqueuxab.cells[0,i]:=tableau_ab[i-1].identifiant; if ((tableau_ab[i-1].charge<>0) and (tableau_ab[i-1].conductivite=0)) then stringgridaqueuxab.cells[1,i]:='?' else stringgridaqueuxab.cells[1,i]:=floattostr(tableau_ab[i-1].conductivite); stringgridaqueuxab.cells[2,i]:=tableau_ab[i-1].synonyme; stringgridaqueuxab.cells[3,i]:=tableau_ab[i-1].formule; stringgridaqueuxab.cells[4,i]:=floattostr(tableau_ab[i-1].masse_molaire); end; for i:=1 to nb_cations_simples do begin stringgridcationssimples.cells[0,i]:=tableau_cations_simples[i-1].identifiant; if ((tableau_cations_simples[i-1].charge<>0) and (tableau_cations_simples[i-1].conductivite=0)) then stringgridcationssimples.cells[1,i]:='?' else stringgridcationssimples.cells[1,i]:=floattostr(tableau_cations_simples[i-1].conductivite); stringgridcationssimples.cells[2,i]:=tableau_cations_simples[i-1].synonyme; stringgridcationssimples.cells[3,i]:=tableau_cations_simples[i-1].formule; stringgridcationssimples.cells[4,i]:=floattostr(tableau_cations_simples[i-1].masse_molaire); end; for i:=1 to nb_anions_simples do begin stringgridanionssimples.cells[0,i]:=tableau_anions_simples[i-1].identifiant; if ((tableau_anions_simples[i-1].charge<>0) and (tableau_anions_simples[i-1].conductivite=0)) then stringgridanionssimples.cells[1,i]:='?' else stringgridanionssimples.cells[1,i]:=floattostr(tableau_anions_simples[i-1].conductivite); stringgridanionssimples.cells[2,i]:=tableau_anions_simples[i-1].synonyme; stringgridanionssimples.cells[3,i]:=tableau_anions_simples[i-1].formule; stringgridanionssimples.cells[4,i]:=floattostr(tableau_anions_simples[i-1].masse_molaire); end; for i:=1 to nb_ions do begin stringgridions.cells[0,i]:=tableau_ions[i-1].identifiant; if ((tableau_ions[i-1].charge<>0) and (tableau_ions[i-1].conductivite=0)) then stringgridions.cells[1,i]:='?' else stringgridions.cells[1,i]:=floattostr(tableau_ions[i-1].conductivite); stringgridions.cells[2,i]:=tableau_ions[i-1].synonyme; stringgridions.cells[3,i]:=tableau_ions[i-1].formule; stringgridions.cells[4,i]:=floattostr(tableau_ions[i-1].masse_molaire); end; for i:=1 to nb_molecules do begin stringgridmolecules.cells[0,i]:=tableau_molecules[i-1].identifiant; stringgridmolecules.cells[1,i]:=floattostr(tableau_molecules[i-1].conductivite); stringgridmolecules.cells[2,i]:=tableau_molecules[i-1].synonyme; stringgridmolecules.cells[3,i]:=tableau_molecules[i-1].formule; stringgridmolecules.cells[4,i]:=floattostr(tableau_molecules[i-1].masse_molaire); end; for i:=1 to nb_complexes do begin stringgridaqueuxcomplexes.cells[0,i]:=tableau_complexes[i-1].identifiant; if ((tableau_complexes[i-1].charge<>0) and (tableau_complexes[i-1].conductivite=0)) then stringgridaqueuxcomplexes.cells[1,i]:='?' else stringgridaqueuxcomplexes.cells[1,i]:=floattostr(tableau_complexes[i-1].conductivite); stringgridaqueuxcomplexes.cells[2,i]:=tableau_complexes[i-1].synonyme; stringgridaqueuxcomplexes.cells[3,i]:=tableau_complexes[i-1].formule; stringgridaqueuxcomplexes.cells[4,i]:=floattostr(tableau_complexes[i-1].masse_molaire); end; StringGridaqueuxab.SortColRow(true,0); indice_ligne_h:=StringGridaqueuxab.Cols[0].IndexOf('H[+]'); if indice_ligne_h>1 then StringGridaqueuxab.MoveColRow(false,indice_ligne_h,1); indice_ligne_oh:=StringGridaqueuxab.Cols[0].IndexOf('OH[-]'); if indice_ligne_oh>1 then StringGridaqueuxab.MoveColRow(false,indice_ligne_oh,2); stringgridcationssimples.SortOrder:=soAscending; stringgridcationssimples.SortColRow(true,0); stringgridanionssimples.SortOrder:=soAscending; stringgridanionssimples.SortColRow(true,0); stringgridions.SortOrder:=soAscending; stringgridions.SortColRow(true,0); stringgridmolecules.SortOrder:=soAscending; stringgridmolecules.SortColRow(true,0); stringgridcationssimples.AutoSizeColumns; stringgridanionssimples.AutoSizeColumns; stringgridions.AutoSizeColumns; stringgridmolecules.AutoSizeColumns; StringGridaqueuxab.AutoSizeColumns; StringGridaqueuxcomplexes.AutoSizeColumns; stringgridgazeux.ColCount:=3; stringgridgazeux.RowCount:=nombre_elements_gazeux+1; stringgridgazeux.Cells[0, 0]:=rsIdentifiant; stringgridgazeux.Cells[1, 0]:=rsMGMol; stringgridgazeux.Cells[2, 0]:=rsFormule; for i:=1 to nombre_elements_gazeux do begin stringgridgazeux.Cells[0,i]:=tableau_elements_gazeux[i-1].identifiant; stringgridgazeux.Cells[1,i]:=floattostr(tableau_elements_gazeux[i-1].masse_molaire); stringgridgazeux.Cells[2,i]:= tableau_elements_gazeux[i-1].formule; end; stringgridgazeux.AutoSizeColumns; stringgridmineraux.ColCount:=4; stringgridmineraux.Cells[0, 0]:=rsIdentifiant; stringgridmineraux.Cells[1, 0]:=rsMGMol; stringgridmineraux.Cells[2, 0]:=rsFormule; stringgridmineraux.Cells[3, 0]:=rsSynonyme; stringgridmineraux.RowCount:=nombre_elements_mineraux+1; for i:=1 to nombre_elements_mineraux do begin stringgridmineraux.Cells[0,i]:=tableau_elements_mineraux[i-1].identifiant; stringgridmineraux.Cells[1,i]:=floattostr(tableau_elements_mineraux[i-1].masse_molaire); stringgridmineraux.Cells[2,i]:=tableau_elements_mineraux[i-1].formule; stringgridmineraux.Cells[3,i]:=tableau_elements_mineraux[i-1].synonyme; end; stringgridmineraux.AutoSizeColumns; stringgridorganiques_acide.ColCount:=5; stringgridorganiques_aminoacide.ColCount:=5; stringgridorganiques_alc.ColCount:=5; stringgridorganiques_alcool.ColCount:=5; stringgridorganiques_benzene.ColCount:=5; stringgridorganiques_complexe.ColCount:=5; stringgridorganiques_amid_amin.ColCount:=5; stringgridorganiques_amid_amin.ColCount:=5; stringgridorganiques_acide.Cells[0, 0]:=rsIdentifiant; stringgridorganiques_acide.Cells[1, 0]:=rsConductivit0; stringgridorganiques_acide.Cells[2, 0]:=rsSynonyme; stringgridorganiques_acide.Cells[3, 0]:=rsFormule; stringgridorganiques_acide.Cells[4, 0]:=rsMGMol; stringgridorganiques_amid_amin.Cells[0, 0]:=rsIdentifiant; stringgridorganiques_amid_amin.Cells[1, 0]:=rsConductivit0; stringgridorganiques_amid_amin.Cells[2, 0]:=rsSynonyme; stringgridorganiques_amid_amin.Cells[3, 0]:=rsFormule; stringgridorganiques_amid_amin.Cells[4, 0]:=rsMGMol; stringgridorganiques_aminoacide.Cells[0, 0]:=rsIdentifiant; stringgridorganiques_aminoacide.Cells[1, 0]:=rsConductivit0; stringgridorganiques_aminoacide.Cells[2, 0]:=rsSynonyme; stringgridorganiques_aminoacide.Cells[3, 0]:=rsFormule; stringgridorganiques_aminoacide.Cells[4, 0]:=rsMGMol; stringgridorganiques_alcool.Cells[0, 0]:=rsIdentifiant; stringgridorganiques_alcool.Cells[1, 0]:=rsConductivit0; stringgridorganiques_alcool.Cells[2, 0]:=rsSynonyme; stringgridorganiques_alcool.Cells[3, 0]:=rsFormule; stringgridorganiques_alcool.Cells[4, 0]:=rsMGMol; stringgridorganiques_alc.Cells[0, 0]:=rsIdentifiant; stringgridorganiques_alc.Cells[1, 0]:=rsConductivit0; stringgridorganiques_alc.Cells[2, 0]:=rsSynonyme; stringgridorganiques_alc.Cells[3, 0]:=rsFormule; stringgridorganiques_alc.Cells[4, 0]:=rsMGMol; stringgridorganiques_benzene.Cells[0, 0]:=rsIdentifiant; stringgridorganiques_benzene.Cells[1, 0]:=rsConductivit0; stringgridorganiques_benzene.Cells[2, 0]:=rsSynonyme; stringgridorganiques_benzene.Cells[3, 0]:=rsFormule; stringgridorganiques_benzene.Cells[4, 0]:=rsMGMol; stringgridorganiques_complexe.Cells[0, 0]:=rsIdentifiant; stringgridorganiques_complexe.Cells[1, 0]:=rsConductivit0; stringgridorganiques_complexe.Cells[2, 0]:=rsSynonyme; stringgridorganiques_complexe.Cells[3, 0]:=rsFormule; stringgridorganiques_complexe.Cells[4, 0]:=rsMGMol; stringgridorganiques_aldehyd_cetone.Cells[0, 0]:=rsIdentifiant; stringgridorganiques_aldehyd_cetone.Cells[1, 0]:=rsConductivit0; stringgridorganiques_aldehyd_cetone.Cells[2, 0]:=rsSynonyme; stringgridorganiques_aldehyd_cetone.Cells[3, 0]:=rsFormule; stringgridorganiques_aldehyd_cetone.Cells[4, 0]:=rsMGMol; stringgridorganiques_acide.RowCount:=nombre_elements_organiques_acide+1; stringgridorganiques_aminoacide.RowCount:=nombre_elements_organiques_aminoacide+1; stringgridorganiques_alc.RowCount:=nombre_elements_organiques_alc+1; stringgridorganiques_alcool.RowCount:=nombre_elements_organiques_alcool+1; stringgridorganiques_amid_amin.RowCount:=nombre_elements_organiques_amid_amin+1; stringgridorganiques_benzene.RowCount:=nombre_elements_organiques_benzene+1; stringgridorganiques_complexe.RowCount:=nombre_elements_organiques_complexe+1; stringgridorganiques_aldehyd_cetone.RowCount:=nombre_elements_organiques_aldehyd_cetone+1; i_acide:=0; i_aminoacide:=0; i_alc:=0; i_alcool:=0; i_benzene:=0; i_complexe:=0; i_aldehyd_cetone:=0; i_amid_amin:=0; for i:=1 to nombre_elements_organiques do case tableau_elements_organiques[i-1].genre of acide: begin inc(i_acide); stringgridorganiques_acide.Cells[0,i_acide]:=tableau_elements_organiques[i-1].identifiant; if ((tableau_elements_organiques[i-1].charge<>0) and (tableau_elements_organiques[i-1].conductivite=0)) then stringgridorganiques_acide.Cells[1,i_acide]:='?' else stringgridorganiques_acide.Cells[1,i_acide]:=floattostr(tableau_elements_organiques[i-1].conductivite); stringgridorganiques_acide.Cells[2,i_acide]:= tableau_elements_organiques[i-1].synonyme; stringgridorganiques_acide.Cells[3,i_acide]:= tableau_elements_organiques[i-1].formule; stringgridorganiques_acide.Cells[4,i_acide]:=floattostr(tableau_elements_organiques[i-1].masse_molaire); end; aminoacide: begin inc(i_aminoacide); stringgridorganiques_aminoacide.Cells[0,i_aminoacide]:=tableau_elements_organiques[i-1].identifiant; if ((tableau_elements_organiques[i-1].charge<>0) and (tableau_elements_organiques[i-1].conductivite=0)) then stringgridorganiques_aminoacide.Cells[1,i_aminoacide]:='?' else stringgridorganiques_aminoacide.Cells[1,i_aminoacide]:=floattostr(tableau_elements_organiques[i-1].conductivite); stringgridorganiques_aminoacide.Cells[2,i_aminoacide]:= tableau_elements_organiques[i-1].synonyme; stringgridorganiques_aminoacide.Cells[3,i_aminoacide]:= tableau_elements_organiques[i-1].formule; stringgridorganiques_aminoacide.Cells[4,i_aminoacide]:=floattostr(tableau_elements_organiques[i-1].masse_molaire); end; amid_amin: begin inc(i_amid_amin); stringgridorganiques_amid_amin.Cells[0,i_amid_amin]:=tableau_elements_organiques[i-1].identifiant; if ((tableau_elements_organiques[i-1].charge<>0) and (tableau_elements_organiques[i-1].conductivite=0)) then stringgridorganiques_amid_amin.Cells[1,i_amid_amin]:='?' else stringgridorganiques_amid_amin.Cells[1,i_amid_amin]:=floattostr(tableau_elements_organiques[i-1].conductivite); stringgridorganiques_amid_amin.Cells[2,i_amid_amin]:= tableau_elements_organiques[i-1].synonyme; stringgridorganiques_amid_amin.Cells[3,i_amid_amin]:= tableau_elements_organiques[i-1].formule; stringgridorganiques_amid_amin.Cells[4,i_amid_amin]:=floattostr(tableau_elements_organiques[i-1].masse_molaire); end; alcool: begin inc(i_alcool); stringgridorganiques_alcool.Cells[0,i_alcool]:=tableau_elements_organiques[i-1].identifiant; if ((tableau_elements_organiques[i-1].charge<>0) and (tableau_elements_organiques[i-1].conductivite=0)) then stringgridorganiques_alcool.Cells[1,i_alcool]:='?' else stringgridorganiques_alcool.Cells[1,i_alcool]:=floattostr(tableau_elements_organiques[i-1].conductivite); stringgridorganiques_alcool.Cells[2,i_alcool]:= tableau_elements_organiques[i-1].synonyme; stringgridorganiques_alcool.Cells[3,i_alcool]:= tableau_elements_organiques[i-1].formule; stringgridorganiques_alcool.Cells[4,i_alcool]:=floattostr(tableau_elements_organiques[i-1].masse_molaire); end; alc: begin inc(i_alc); stringgridorganiques_alc.Cells[0,i_alc]:=tableau_elements_organiques[i-1].identifiant; if ((tableau_elements_organiques[i-1].charge<>0) and (tableau_elements_organiques[i-1].conductivite=0)) then stringgridorganiques_alc.Cells[1,i_alc]:='?' else stringgridorganiques_alc.Cells[1,i_alc]:=floattostr(tableau_elements_organiques[i-1].conductivite); stringgridorganiques_alc.Cells[2,i_alc]:= tableau_elements_organiques[i-1].synonyme; stringgridorganiques_alc.Cells[3,i_alc]:= tableau_elements_organiques[i-1].formule; stringgridorganiques_alc.Cells[4,i_alc]:=floattostr(tableau_elements_organiques[i-1].masse_molaire); end; benzene: begin inc(i_benzene); stringgridorganiques_benzene.Cells[0,i_benzene]:=tableau_elements_organiques[i-1].identifiant; if ((tableau_elements_organiques[i-1].charge<>0) and (tableau_elements_organiques[i-1].conductivite=0)) then stringgridorganiques_benzene.Cells[1,i_benzene]:='?' else stringgridorganiques_benzene.Cells[1,i_benzene]:=floattostr(tableau_elements_organiques[i-1].conductivite); stringgridorganiques_benzene.Cells[2,i_benzene]:= tableau_elements_organiques[i-1].synonyme; stringgridorganiques_benzene.Cells[3,i_benzene]:= tableau_elements_organiques[i-1].formule; stringgridorganiques_benzene.Cells[4,i_benzene]:=floattostr(tableau_elements_organiques[i-1].masse_molaire); end; complexe: begin inc(i_complexe); stringgridorganiques_complexe.Cells[0,i_complexe]:=tableau_elements_organiques[i-1].identifiant; if ((tableau_elements_organiques[i-1].charge<>0) and (tableau_elements_organiques[i-1].conductivite=0)) then stringgridorganiques_complexe.Cells[1,i_complexe]:='?' else stringgridorganiques_complexe.Cells[1,i_complexe]:=floattostr(tableau_elements_organiques[i-1].conductivite); stringgridorganiques_complexe.Cells[2,i_complexe]:= tableau_elements_organiques[i-1].synonyme; stringgridorganiques_complexe.Cells[3,i_complexe]:= tableau_elements_organiques[i-1].formule; stringgridorganiques_complexe.Cells[4,i_complexe]:=floattostr(tableau_elements_organiques[i-1].masse_molaire); end; aldehyd_cetone: begin inc(i_aldehyd_cetone); stringgridorganiques_aldehyd_cetone.Cells[0,i_aldehyd_cetone]:=tableau_elements_organiques[i-1].identifiant; if ((tableau_elements_organiques[i-1].charge<>0) and (tableau_elements_organiques[i-1].conductivite=0)) then stringgridorganiques_aldehyd_cetone.Cells[1,i_aldehyd_cetone]:='?' else stringgridorganiques_aldehyd_cetone.Cells[1,i_aldehyd_cetone]:=floattostr(tableau_elements_organiques[i-1].conductivite); stringgridorganiques_aldehyd_cetone.Cells[2,i_aldehyd_cetone]:= tableau_elements_organiques[i-1].synonyme; stringgridorganiques_aldehyd_cetone.Cells[3,i_aldehyd_cetone]:= tableau_elements_organiques[i-1].formule; stringgridorganiques_aldehyd_cetone.Cells[4,i_aldehyd_cetone]:=floattostr(tableau_elements_organiques[i-1].masse_molaire); end; end; stringgridorganiques_acide.AutoSizeColumns; stringgridorganiques_acide.SortOrder:=soAscending; stringgridorganiques_acide.SortColRow(true,0); stringgridorganiques_aminoacide.AutoSizeColumns; stringgridorganiques_aminoacide.SortOrder:=soAscending; stringgridorganiques_aminoacide.SortColRow(true,0); stringgridorganiques_alc.AutoSizeColumns; stringgridorganiques_alc.SortOrder:=soAscending; stringgridorganiques_alc.SortColRow(true,0); stringgridorganiques_alcool.AutoSizeColumns; stringgridorganiques_alcool.SortOrder:=soAscending; stringgridorganiques_alcool.SortColRow(true,0); stringgridorganiques_amid_amin.AutoSizeColumns; stringgridorganiques_amid_amin.SortOrder:=soAscending; stringgridorganiques_amid_amin.SortColRow(true,0); stringgridorganiques_benzene.AutoSizeColumns; stringgridorganiques_benzene.SortOrder:=soAscending; stringgridorganiques_benzene.SortColRow(true,0); stringgridorganiques_complexe.AutoSizeColumns; stringgridorganiques_complexe.SortOrder:=soAscending; stringgridorganiques_complexe.SortColRow(true,0); stringgridorganiques_aldehyd_cetone.AutoSizeColumns; stringgridorganiques_aldehyd_cetone.SortOrder:=soAscending; stringgridorganiques_aldehyd_cetone.SortColRow(true,0); {pour la burette} stringgridcationssimples_.ColCount:=5; stringgridcationssimples_.RowCount:=nb_cations_simples+1; stringgridcationssimples_.Cells[0, 0]:=rsIdentifiant; stringgridcationssimples_.Cells[1, 0]:=rsConductivit0; stringgridcationssimples_.Cells[2, 0]:=rsSynonyme; stringgridcationssimples_.Cells[3, 0]:=rsFormule; stringgridcationssimples_.Cells[4, 0]:=rsMGMol; stringgridions_.ColCount:=5; stringgridions_.RowCount:=nb_ions+1; stringgridions_.Cells[0, 0]:=rsIdentifiant; stringgridions_.Cells[1, 0]:=rsConductivit0; stringgridions_.Cells[2, 0]:=rsSynonyme; stringgridions_.Cells[3, 0]:=rsFormule; stringgridions_.Cells[4, 0]:=rsMGMol; stringgridmolecules_.ColCount:=5; stringgridmolecules_.RowCount:=nb_molecules+1; stringgridmolecules_.Cells[0, 0]:=rsIdentifiant; stringgridmolecules_.Cells[1, 0]:=rsConductivit0; stringgridmolecules_.Cells[2, 0]:=rsSynonyme; stringgridmolecules_.Cells[3, 0]:=rsFormule; stringgridmolecules_.Cells[4, 0]:=rsMGMol; stringgridanionssimples_.ColCount:=5; stringgridanionssimples_.RowCount:=nb_anions_simples+1; stringgridanionssimples_.Cells[0, 0]:=rsIdentifiant; stringgridanionssimples_.Cells[1, 0]:=rsConductivit0; stringgridanionssimples_.Cells[2, 0]:=rsSynonyme; stringgridanionssimples_.Cells[3, 0]:=rsFormule; stringgridanionssimples_.Cells[4, 0]:=rsMGMol; stringgridaqueuxcomplexes_.ColCount:=5; stringgridaqueuxcomplexes_.RowCount:=nb_complexes+1; stringgridaqueuxcomplexes_.Cells[0, 0]:=rsIdentifiant; stringgridaqueuxcomplexes_.Cells[1, 0]:=rsConductivit0; stringgridaqueuxcomplexes_.Cells[2, 0]:=rsSynonyme; stringgridaqueuxcomplexes_.Cells[3, 0]:=rsFormule; stringgridaqueuxcomplexes_.Cells[4, 0]:=rsMGMol; stringgridaqueuxab_.ColCount:=5; stringgridaqueuxab_.RowCount:=nb_ab+1; stringgridaqueuxab_.Cells[0, 0]:=rsIdentifiant; stringgridaqueuxab_.Cells[1, 0]:=rsConductivit0; stringgridaqueuxab_.Cells[2, 0]:=rsSynonyme; stringgridaqueuxab_.Cells[3, 0]:=rsFormule; stringgridaqueuxab_.Cells[4, 0]:=rsMGMol; for i:=1 to nb_ab do begin stringgridaqueuxab_.cells[0,i]:=tableau_ab[i-1].identifiant; if ((tableau_ab[i-1].charge<>0) and (tableau_ab[i-1].conductivite=0)) then stringgridaqueuxab_.cells[1,i]:='?' else stringgridaqueuxab_.cells[1,i]:=floattostr(tableau_ab[i-1].conductivite); stringgridaqueuxab_.cells[2,i]:=tableau_ab[i-1].synonyme; stringgridaqueuxab_.cells[3,i]:=tableau_ab[i-1].formule; stringgridaqueuxab_.cells[4,i]:=floattostr(tableau_ab[i-1].masse_molaire); end; for i:=1 to nb_cations_simples do begin stringgridcationssimples_.cells[0,i]:=tableau_cations_simples[i-1].identifiant; if ((tableau_cations_simples[i-1].charge<>0) and (tableau_cations_simples[i-1].conductivite=0)) then stringgridcationssimples_.cells[1,i]:='?' else stringgridcationssimples_.cells[1,i]:=floattostr(tableau_cations_simples[i-1].conductivite); stringgridcationssimples_.cells[2,i]:=tableau_cations_simples[i-1].synonyme; stringgridcationssimples_.cells[3,i]:=tableau_cations_simples[i-1].formule; stringgridcationssimples_.cells[4,i]:=floattostr(tableau_cations_simples[i-1].masse_molaire); end; for i:=1 to nb_anions_simples do begin stringgridanionssimples_.cells[0,i]:=tableau_anions_simples[i-1].identifiant; if ((tableau_anions_simples[i-1].charge<>0) and (tableau_anions_simples[i-1].conductivite=0)) then stringgridanionssimples_.cells[1,i]:='?' else stringgridanionssimples_.cells[1,i]:=floattostr(tableau_anions_simples[i-1].conductivite); stringgridanionssimples_.cells[2,i]:=tableau_anions_simples[i-1].synonyme; stringgridanionssimples_.cells[3,i]:=tableau_anions_simples[i-1].formule; stringgridanionssimples_.cells[4,i]:=floattostr(tableau_anions_simples[i-1].masse_molaire); end; for i:=1 to nb_ions do begin stringgridions_.cells[0,i]:=tableau_ions[i-1].identifiant; if ((tableau_ions[i-1].charge<>0) and (tableau_ions[i-1].conductivite=0)) then stringgridions_.cells[1,i]:='?' else stringgridions_.cells[1,i]:=floattostr(tableau_ions[i-1].conductivite); stringgridions_.cells[2,i]:=tableau_ions[i-1].synonyme; stringgridions_.cells[3,i]:=tableau_ions[i-1].formule; stringgridions_.cells[4,i]:=floattostr(tableau_ions[i-1].masse_molaire); end; for i:=1 to nb_molecules do begin stringgridmolecules_.cells[0,i]:=tableau_molecules[i-1].identifiant; stringgridmolecules_.cells[1,i]:=floattostr(tableau_molecules[i-1].conductivite); stringgridmolecules_.cells[2,i]:=tableau_molecules[i-1].synonyme; stringgridmolecules_.cells[3,i]:=tableau_molecules[i-1].formule; stringgridmolecules_.cells[4,i]:=floattostr(tableau_molecules[i-1].masse_molaire); end; for i:=1 to nb_complexes do begin stringgridaqueuxcomplexes_.cells[0,i]:=tableau_complexes[i-1].identifiant; if ((tableau_complexes[i-1].charge<>0) and (tableau_complexes[i-1].conductivite=0)) then stringgridaqueuxcomplexes_.cells[1,i]:='?' else stringgridaqueuxcomplexes_.cells[1,i]:=floattostr(tableau_complexes[i-1].conductivite); stringgridaqueuxcomplexes_.cells[2,i]:=tableau_complexes[i-1].synonyme; stringgridaqueuxcomplexes_.cells[3,i]:=tableau_complexes[i-1].formule; stringgridaqueuxcomplexes_.cells[4,i]:=floattostr(tableau_complexes[i-1].masse_molaire); end; StringGridaqueuxab_.SortColRow(true,0); indice_ligne_h:=StringGridaqueuxab_.Cols[0].IndexOf('H[+]'); if indice_ligne_h>1 then StringGridaqueuxab_.MoveColRow(false,indice_ligne_h,1); indice_ligne_oh:=StringGridaqueuxab_.Cols[0].IndexOf('OH[-]'); if indice_ligne_oh>1 then StringGridaqueuxab_.MoveColRow(false,indice_ligne_oh,2); stringgridcationssimples_.SortOrder:=soAscending; stringgridcationssimples_.SortColRow(true,0); stringgridanionssimples_.SortOrder:=soAscending; stringgridanionssimples_.SortColRow(true,0); stringgridions_.SortOrder:=soAscending; stringgridions_.SortColRow(true,0); stringgridmolecules_.SortOrder:=soAscending; stringgridmolecules_.SortColRow(true,0); stringgridcationssimples_.AutoSizeColumns; stringgridanionssimples_.AutoSizeColumns; stringgridions_.AutoSizeColumns; stringgridmolecules_.AutoSizeColumns; StringGridaqueuxab_.AutoSizeColumns; StringGridaqueuxcomplexes_.AutoSizeColumns; stringgridgazeux_.ColCount:=3; stringgridgazeux_.RowCount:=nombre_elements_gazeux+1; stringgridgazeux_.Cells[0, 0]:=rsIdentifiant; stringgridgazeux_.Cells[1, 0]:=rsMGMol; stringgridgazeux_.Cells[2, 0]:=rsFormule; for i:=1 to nombre_elements_gazeux do begin stringgridgazeux_.Cells[0,i]:=tableau_elements_gazeux[i-1].identifiant; stringgridgazeux_.Cells[1,i]:=floattostr(tableau_elements_gazeux[i-1].masse_molaire); stringgridgazeux_.Cells[2,i]:= tableau_elements_gazeux[i-1].formule; end; stringgridgazeux_.AutoSizeColumns; stringgridmineraux_.ColCount:=4; stringgridmineraux_.Cells[0, 0]:=rsIdentifiant; stringgridmineraux_.Cells[1, 0]:=rsMGMol; stringgridmineraux_.Cells[2, 0]:=rsFormule; stringgridmineraux_.Cells[3, 0]:=rsSynonyme; stringgridmineraux_.RowCount:=nombre_elements_mineraux+1; for i:=1 to nombre_elements_mineraux do begin stringgridmineraux_.Cells[0,i]:=tableau_elements_mineraux[i-1].identifiant; stringgridmineraux_.Cells[1,i]:=floattostr(tableau_elements_mineraux[i-1].masse_molaire); stringgridmineraux_.Cells[2,i]:=tableau_elements_mineraux[i-1].formule; stringgridmineraux_.Cells[3,i]:=tableau_elements_mineraux[i-1].synonyme; end; stringgridmineraux_.AutoSizeColumns; stringgridorganiques_acide_.ColCount:=stringgridorganiques_acide.ColCount; stringgridorganiques_aminoacide_.ColCount:=stringgridorganiques_aminoacide.ColCount; stringgridorganiques_alc_.ColCount:=stringgridorganiques_alc.ColCount; stringgridorganiques_alcool_.ColCount:=stringgridorganiques_alcool.ColCount; stringgridorganiques_benzene_.ColCount:=stringgridorganiques_benzene.ColCount; stringgridorganiques_complexe_.ColCount:=stringgridorganiques_complexe.ColCount; stringgridorganiques_amid_amin_.ColCount:=stringgridorganiques_amid_amin.ColCount; stringgridorganiques_acide_.RowCount:=nombre_elements_organiques_acide+1; stringgridorganiques_aminoacide_.RowCount:=nombre_elements_organiques_aminoacide+1; stringgridorganiques_alc_.RowCount:=nombre_elements_organiques_alc+1; stringgridorganiques_alcool_.RowCount:=nombre_elements_organiques_alcool+1; stringgridorganiques_amid_amin_.RowCount:=nombre_elements_organiques_amid_amin+1; stringgridorganiques_benzene_.RowCount:=nombre_elements_organiques_benzene+1; stringgridorganiques_complexe_.RowCount:=nombre_elements_organiques_complexe+1; stringgridorganiques_aldehyd_cetone_.RowCount:=nombre_elements_organiques_aldehyd_cetone+1; for i:=0 to nombre_elements_organiques_acide do for j:=0 to 4 do stringgridorganiques_acide_.Cells[j,i]:=stringgridorganiques_acide.Cells[j,i]; for i:=0 to nombre_elements_organiques_aminoacide do for j:=0 to 4 do stringgridorganiques_aminoacide_.Cells[j,i]:=stringgridorganiques_aminoacide.Cells[j,i]; for i:=0 to nombre_elements_organiques_amid_amin do for j:=0 to 4 do stringgridorganiques_amid_amin_.Cells[j,i]:=stringgridorganiques_amid_amin.Cells[j,i]; for i:=0 to nombre_elements_organiques_alcool do for j:=0 to 4 do stringgridorganiques_alcool_.Cells[j,i]:=stringgridorganiques_alcool.Cells[j,i]; for i:=0 to nombre_elements_organiques_alc do for j:=0 to 4 do stringgridorganiques_alc_.Cells[j,i]:=stringgridorganiques_alc.Cells[j,i]; for i:=0 to nombre_elements_organiques_benzene do for j:=0 to 4 do stringgridorganiques_benzene_.Cells[j,i]:=stringgridorganiques_benzene.Cells[j,i]; for i:=0 to nombre_elements_organiques_complexe do for j:=0 to 4 do stringgridorganiques_complexe_.Cells[j,i]:=stringgridorganiques_complexe.Cells[j,i]; for i:=0 to nombre_elements_organiques_aldehyd_cetone do for j:=0 to 4 do stringgridorganiques_aldehyd_cetone_.Cells[j,i]:=stringgridorganiques_aldehyd_cetone.Cells[j,i]; stringgridorganiques_acide_.AutoSizeColumns; stringgridorganiques_acide_.SortOrder:=soAscending; stringgridorganiques_acide_.SortColRow(true,0); stringgridorganiques_aminoacide_.AutoSizeColumns; stringgridorganiques_aminoacide_.SortOrder:=soAscending; stringgridorganiques_aminoacide_.SortColRow(true,0); stringgridorganiques_alc_.AutoSizeColumns; stringgridorganiques_alc_.SortOrder:=soAscending; stringgridorganiques_alc_.SortColRow(true,0); stringgridorganiques_alcool_.AutoSizeColumns; stringgridorganiques_alcool_.SortOrder:=soAscending; stringgridorganiques_alcool_.SortColRow(true,0); stringgridorganiques_amid_amin_.AutoSizeColumns; stringgridorganiques_amid_amin_.SortOrder:=soAscending; stringgridorganiques_amid_amin_.SortColRow(true,0); stringgridorganiques_benzene_.AutoSizeColumns; stringgridorganiques_benzene_.SortOrder:=soAscending; stringgridorganiques_benzene_.SortColRow(true,0); stringgridorganiques_complexe_.AutoSizeColumns; stringgridorganiques_complexe_.SortOrder:=soAscending; stringgridorganiques_complexe_.SortColRow(true,0); stringgridorganiques_aldehyd_cetone_.AutoSizeColumns; stringgridorganiques_aldehyd_cetone_.SortOrder:=soAscending; stringgridorganiques_aldehyd_cetone_.SortColRow(true,0); {fin burette} end; procedure tform1.dessinegraphe; var dede,dodo:string; i,j,k,kk,kkk,mmmm:integer; lastx,lasty,largeurlegende,hauteurlegende,ordo, absc:float; conductivite_actuelle:float; faut_superposer:boolean; rep:boolean; abscisse_ok,ordonnee_ok:boolean; {} label 167,168; label 26446,26447,909090; begin if etape<> tracer_courbes then exit; if mode_1point then goto 909090; faut_superposer:=false; if nombre_simulations>1 then for i:=1 to nombre_simulations-1 do faut_superposer:=faut_superposer or stockage_simulation_superposee[i-1]; faut_superposer:=mode_superposition and faut_superposer; if faut_superposer then begin mode_faisceau:=false; existe_gauche:=false; existe_droite:=false; for i:=1 to nombre_simulations do if (stockage_simulation_superposee[i-1] or (i=nombre_simulations)) then begin existe_gauche:=existe_gauche or stockage_existe_gauche[i-1]; existe_droite:=existe_droite or stockage_existe_droite[i-1]; end; abscisse_min:=stockage_abscisse_min[nombre_simulations-1]; abscisse_max:=stockage_abscisse_max[nombre_simulations-1]; for j:=1 to nombre_simulations-1 do if stockage_simulation_superposee[j-1] then begin abscisse_min:=math.min(abscisse_min,stockage_abscisse_min[j-1]); abscisse_max:=math.max(abscisse_max,stockage_abscisse_max[j-1]); end; if not(existe_gauche) then begin ordonnee_gauche_min:=0; ordonnee_gauche_max:=0; end else begin i:=0; repeat inc(i); until ( (stockage_existe_gauche[i-1] and stockage_simulation_superposee[i-1]) or (i=nombre_simulations)); ordonnee_gauche_min:=stockage_ordonnee_gauche_min[i-1]; ordonnee_gauche_max:=stockage_ordonnee_gauche_max[i-1]; if i=(k-1)*(mc.Xmax-mc.Xmin)/nombre_ordonnees) or (stockage_resultats[j-1,i,0]+largeurlegende>mc.Xmax)) then begin if ( ( (stockage_liste_echelles[j-1,k-1]=e_gauche) and (stockage_resultats[j-1,i,k]+hauteurlegende>mc.Ymax1) ) or ( (stockage_liste_echelles[j-1,k-1]=e_droite) and (stockage_resultats[j-1,i,k]+hauteurlegende>mc.Ymax2) ) ) then {on ecrit en dessous} mc.ecrire(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_expression_ordonnees_explicites[j-1,k-1], stockage_liste_echelles[j-1,k-1]=e_gauche,policelegende) else {on ecrit au dessus} mc.ecrire(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k]+hauteurlegende, stockage_expression_ordonnees_explicites[j-1,k-1], stockage_liste_echelles[j-1,k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case stockage_styles_ordonnees[j-1,k-1] of cercle: mc.cercle(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],1, stockage_couleurs_ordonnees[j-1,k-1],pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); disque: mc.disque2(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],stockage_couleurs_ordonnees[j-1,k-1], stockage_couleurs_ordonnees[j-1,k-1], stockage_liste_echelles[j-1,k-1]=e_gauche); croix: mc.croixx(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],1, stockage_couleurs_ordonnees[j-1,k-1],pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); plus: mc.croixp(stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_tailles_ordonnees[j-1,k-1],1, stockage_couleurs_ordonnees[j-1,k-1],pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); end; if (point_ok and stockage_tracerok_ordonnees[j-1,k-1]) then mc.Trait(lastx,lasty,stockage_resultats[j-1,i,0],stockage_resultats[j-1,i,k], stockage_epaisseurs_ordonnees[j-1,k-1], stockage_couleurs_ordonnees[j-1,k-1],pssolid,pmcopy, stockage_liste_echelles[j-1,k-1]=e_gauche); point_ok:=true; lastx:=stockage_resultats[j-1,i,0]; lasty:=stockage_resultats[j-1,i,k]; end else point_ok:=false; end end; end; if not(faut_superposer) then begin if not(mode_faisceau) then form1.calcule_echelles; {ajout version 1.02 >} grille_echelle_gauche:=grille_echelle_gauche and existe_gauche; grille_echelle_droite:=grille_echelle_droite and existe_droite; checkboxgrillegauche.Checked:=grille_echelle_gauche; checkboxgrilledroite.Checked:=grille_echelle_droite; mc.LimitesEtAxes(@image1,abscisse_min,abscisse_max,ordonnee_gauche_min ,ordonnee_gauche_max,ordonnee_droite_min,ordonnee_droite_max,form1.Image1.width, form1.Image1.Height,titregraphe,policetitre,true,coucoufond,cadrepresent,epaisseur_cadre,coucoucadre, graduationspresentes, 1,4,coucougraduation,policegraduation, grille_echelle_gauche,grille_echelle_droite,1,coucougrille1, coucougrille2,labelx,labely1,labely2,unitex,unitey1,unitey2, false,existe_gauche,existe_droite); nbe_nuances:=480; indicateur_present:=( ( (degrade_vertical and (ordonnee_gauche_est_ph or ordonnee_droite_est_ph)) or (not(degrade_vertical) and abscisse_est_v)) and (combobox1.ItemIndex>0)); if indicateur_present then begin if (degrade_vertical and (ordonnee_gauche_est_ph or ordonnee_droite_est_ph)) then begin for mmmm:=0 to nbe_nuances-1 do begin if ordonnee_gauche_est_ph then mc.MonRectangle(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*mmmm/nbe_nuances, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*(mmmm+1)/nbe_nuances, liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur(ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*(mmmm+0.5)/nbe_nuances) ,true) else mc.MonRectangle(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*mmmm/nbe_nuances, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*(mmmm+1)/nbe_nuances, liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur(ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*(mmmm+0.5)/nbe_nuances) ,false); end; if ordonnee_gauche_est_ph then begin mc.Trait(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); mc.Trait(abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); mc.Trait(abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); end else begin mc.Trait(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); mc.Trait(abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); mc.Trait(abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); end; end else begin {si c'est le degrade en fonction du volume} for i:=0 to nombre_points_calcul-1 do begin mc.MonRectangle(tableau_resultats[i,0], ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), tableau_resultats[i+1,0], ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur( -log10( tableau_resultats[i,indice_ph+nombre_solutes_0+nombre_precipites_0])) ,true); end; mc.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); mc.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); mc.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); end; mc.LimitesEtAxes(@image1,abscisse_min,abscisse_max,ordonnee_gauche_min ,ordonnee_gauche_max,ordonnee_droite_min,ordonnee_droite_max,form1.Image1.width, form1.Image1.Height,titregraphe,policetitre,false,coucoufond,cadrepresent,epaisseur_cadre,coucoucadre, graduationspresentes, 1,4,coucougraduation,policegraduation, grille_echelle_gauche,grille_echelle_droite,1,coucougrille1, coucougrille2,labelx,labely1,labely2,unitex,unitey1,unitey2, false,existe_gauche,existe_droite); end; {} if not(mode_faisceau) then for k:=1 to nombre_ordonnees do begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_calcul do if ( not(isnanorinfinite(tableau_grandeurs_tracees[i,0])) and not (isnanorinfinite(tableau_grandeurs_tracees[i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=liste_couleurs_ordonnees[k-1]; form1.Image1.Picture.Bitmap.Canvas.Font:=policelegende; mc.Convert(form1.Image1.Picture.Bitmap.Canvas.TextWidth(expression_ordonnees_explicites[k-1])+ mc.BordureGauche, form1.Image1.Picture.Bitmap.Canvas.TextHeight(expression_ordonnees_explicites[k-1])+ mc.BordureHaute, largeurlegende,hauteurlegende,liste_echelles[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-mc.Xmin); if liste_echelles[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-mc.Ymax1) else hauteurlegende:=abs(hauteurlegende-mc.Ymax2); if ( (tableau_grandeurs_tracees[i,0]-mc.Xmin>=(k-1)*(mc.Xmax-mc.Xmin)/nombre_ordonnees) or (tableau_grandeurs_tracees[i,0]+largeurlegende>mc.Xmax)) then begin if ( ( (liste_echelles[k-1]=e_gauche) and (tableau_grandeurs_tracees[i,k]+hauteurlegende>mc.Ymax1) ) or ( (liste_echelles[k-1]=e_droite) and (tableau_grandeurs_tracees[i,k]+hauteurlegende>mc.Ymax2) ) ) then {on ecrit en dessous} mc.ecrire(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende) else {on ecrit au dessus} mc.ecrire(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k]+hauteurlegende, expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees[k-1] of cercle: mc.cercle(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); disque: mc.disque2(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], liste_echelles[k-1]=e_gauche); croix: mc.croixx(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); plus: mc.croixp(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); end; if (point_ok and liste_tracerok_ordonnees[k-1]) then mc.Trait(lastx,lasty,tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_epaisseurs_ordonnees[k-1], liste_couleurs_ordonnees[k-1],pssolid,pmcopy, liste_echelles[k-1]=e_gauche); point_ok:=true; lastx:=tableau_grandeurs_tracees[i,0]; lasty:=tableau_grandeurs_tracees[i,k]; end else point_ok:=false; end else begin {cas d'un faisceau} {} for kk:=1 to nombre_valeurs_faisceau do for k:=1 to nombre_ordonnees do begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_calcul_faisceau[kk-1] do if ( not(isnanorinfinite(tableau_grandeurs_tracees_faisceau[kk-1,i,0])) and not (isnanorinfinite(tableau_grandeurs_tracees_faisceau[kk-1,i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=couleurs_faisceau[k-1][kk-1]; {version 1.02} form1.Image1.Picture.Bitmap.Canvas.Font:=policelegende; mc.Convert(form1.Image1.Picture.Bitmap.Canvas.TextWidth(expression_ordonnees_explicites[k-1])+ mc.BordureGauche, form1.Image1.Picture.Bitmap.Canvas.TextHeight(expression_ordonnees_explicites[k-1])+ mc.BordureHaute, largeurlegende,hauteurlegende,liste_echelles[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-mc.Xmin); if liste_echelles[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-mc.Ymax1) else hauteurlegende:=abs(hauteurlegende-mc.Ymax2); if ( (tableau_grandeurs_tracees_faisceau[kk-1,i,0]-mc.Xmin>=(k-1)*(mc.Xmax-mc.Xmin)/nombre_ordonnees) or (tableau_grandeurs_tracees_faisceau[kk-1,i,0]+largeurlegende>mc.Xmax)) then begin if ( ( (liste_echelles[k-1]=e_gauche) and (tableau_grandeurs_tracees_faisceau[kk-1,i,k]+hauteurlegende>mc.Ymax1) ) or ( (liste_echelles[k-1]=e_droite) and (tableau_grandeurs_tracees_faisceau[kk-1,i,k]+hauteurlegende>mc.Ymax2) ) ) then {on ecrit en dessous} mc.ecrire(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende) else {on ecrit au dessus} mc.ecrire(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k]+hauteurlegende, expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees[k-1] of cercle: mc.cercle(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],1,couleurs_faisceau[k-1][kk-1],pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} disque: mc.disque2(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],couleurs_faisceau[k-1][kk-1],couleurs_faisceau[k-1][kk-1], liste_echelles[k-1]=e_gauche);{version 1.02} croix: mc.croixx(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],1,couleurs_faisceau[k-1][kk-1],pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} plus: mc.croixp(tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_tailles_ordonnees[k-1],1,couleurs_faisceau[k-1][kk-1],pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} end; if (point_ok and liste_tracerok_ordonnees[k-1]) then mc.Trait(lastx,lasty,tableau_grandeurs_tracees_faisceau[kk-1,i,0],tableau_grandeurs_tracees_faisceau[kk-1,i,k], liste_epaisseurs_ordonnees[k-1], couleurs_faisceau[k-1][kk-1],pssolid,pmcopy, liste_echelles[k-1]=e_gauche); {version 1.02} point_ok:=true; lastx:=tableau_grandeurs_tracees_faisceau[kk-1,i,0]; lasty:=tableau_grandeurs_tracees_faisceau[kk-1,i,k]; end else point_ok:=false; end; finalize(couleurs_faisceau); end; {affichage donnees experiemntales} if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then begin for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_exp-1 do begin if ( not(isnanorinfinite(tableau_donnees_exp[i,0])) and not (isnanorinfinite(tableau_donnees_exp[i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=liste_couleurs_ordonnees_e[k-1]; form1.Image1.Picture.Bitmap.Canvas.Font:=policelegende; mc.Convert(form1.Image1.Picture.Bitmap.Canvas.TextWidth(liste_noms_e[k-1])+ mc.BordureGauche, form1.Image1.Picture.Bitmap.Canvas.TextHeight(liste_noms_e[k-1])+ mc.BordureHaute, largeurlegende,hauteurlegende,liste_echelles_e[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-mc.Xmin); if liste_echelles_e[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-mc.Ymax1) else hauteurlegende:=abs(hauteurlegende-mc.Ymax2); if ( (tableau_donnees_exp[i,0]-mc.Xmin>=(k-1)*(mc.Xmax-mc.Xmin)/(nombre_valeurs_par_ligne_e-1)) or (tableau_donnees_exp[i,0]+largeurlegende>mc.Xmax)) then begin if ( ( (liste_echelles_e[k-1]=e_gauche) and (tableau_donnees_exp[i,k]+hauteurlegende>mc.Ymax1) ) or ( (liste_echelles_e[k-1]=e_droite) and (tableau_donnees_exp[i,k]+hauteurlegende>mc.Ymax2) ) ) then {on ecrit en dessous} mc.ecrire(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_noms_e[k-1],liste_echelles_e[k-1]=e_gauche,policelegende) else {on ecrit au dessus} mc.ecrire(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k]+hauteurlegende, liste_noms_e[k-1],liste_echelles_e[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees_e[k-1] of cercle: mc.cercle(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); disque: mc.disque2(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], liste_echelles_e[k-1]=e_gauche); croix: mc.croixx(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); plus: mc.croixp(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); end; if (point_ok and liste_tracerok_ordonnees_e[k-1]) then mc.Trait(lastx,lasty,tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_epaisseurs_ordonnees_e[k-1], liste_couleurs_ordonnees_e[k-1],pssolid,pmcopy, liste_echelles_e[k-1]=e_gauche); point_ok:=true; lastx:=tableau_donnees_exp[i,0]; lasty:=tableau_donnees_exp[i,k]; end else point_ok:=false; end; end; end; {fin affichage donnees experiences} {nouvelle légende******************************************} if legendeapartpresente then begin policelegende.Color:=clblack; form1.Image1.Picture.Bitmap.Canvas.Font:=policelegende; plus_grande_largeur:=form1.Image1.Picture.Bitmap.Canvas.TextWidth(liste_legendes[0]); for k:=1 to nombre_ordonnees do plus_grande_largeur:=max(plus_grande_largeur, form1.Image1.Picture.Bitmap.Canvas.TextWidth(liste_legendes[k-1])); if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then plus_grande_largeur:=max(plus_grande_largeur, form1.Image1.Picture.Bitmap.Canvas.TextWidth(liste_noms_e[k-1])); largeur_cadre_legende_en_pixels:=plus_grande_largeur+{10+10+50}form1.Image1.Picture.Bitmap.Canvas.TextWidth('ABC'); hauteur_cadre_legende_en_pixels:=form1.Image1.Picture.Bitmap.Canvas.TextHeight('A'); for k:=1 to nombre_ordonnees do hauteur_cadre_legende_en_pixels:=hauteur_cadre_legende_en_pixels +form1.Image1.Picture.Bitmap.Canvas.TextHeight(liste_legendes[k-1])+{10} form1.Image1.Picture.Bitmap.Canvas.TextHeight('A') div 2; if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then hauteur_cadre_legende_en_pixels:=hauteur_cadre_legende_en_pixels +form1.Image1.Picture.Bitmap.Canvas.TextHeight(liste_noms_e[k-1])+{10} form1.Image1.Picture.Bitmap.Canvas.TextHeight('A') div 2; largeur_cadre_legende_relle:=largeur_cadre_legende_en_pixels*(mc.xmax-mc.xmin)/ (mc.largeur-mc.BordureGauche-mc.BordureDroite) ; if existe_gauche then begin hauteur_cadre_legende_relle:=hauteur_cadre_legende_en_pixels*(mc.ymax1-mc.ymin1)/ (mc.hauteur-mc.BordureHaute-mc.BordureBasse) ; x1:=mc.Xmin+(mc.Xmax-mc.Xmin-largeur_cadre_legende_relle)/100*x_legende_pourcentage; x2:=x1+largeur_cadre_legende_relle; y1:=mc.Ymin1+(mc.Ymax1-mc.Ymin1-hauteur_cadre_legende_relle)/100*y_legende_pourcentage; y2:=y1+hauteur_cadre_legende_relle; mc.MonRectangle(x1,y1,x2,y2, clwhite,true); mc.Trait(x1,y1,x2,y1, 2,clblack, pssolid,pmcopy,true); mc.Trait(x2,y1,x2,y2, 2,clblack, pssolid,pmcopy,true); mc.Trait(x2,y2,x1,y2, 2,clblack, pssolid,pmcopy,true); mc.Trait(x1,y2,x1,y1, 2,clblack, pssolid,pmcopy,true); x_reel:=x1; x_reel:=x_reel+10/mc.largeur*(mc.Xmax-mc.xmin); y_reel:=y2; {x_reel, y_reel:angle supérieur gauche du cadre de légende} for k:=1 to nombre_ordonnees do begin y_reel:=y_reel-(form1.Image1.Picture.Bitmap.Canvas.TextHeight(liste_legendes[k-1])+ (form1.Image1.Picture.Bitmap.Canvas.TextHeight('A') div 2))/mc.hauteur*(mc.ymax1-mc.ymin1); case liste_styles_ordonnees[k-1] of cercle: mc.cercle(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); disque: mc.disque2(x_reel,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], true); croix: mc.croixx(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); plus: mc.croixp(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); end; if liste_tracerok_ordonnees[k-1] then mc.Trait(x_reel,y_reel,x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_epaisseurs_ordonnees[k-1], liste_couleurs_ordonnees[k-1],pssolid,pmcopy,true); case liste_styles_ordonnees[k-1] of cercle: mc.cercle(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); disque: mc.disque2(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], true); croix: mc.croixx(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); plus: mc.croixp(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, true); end; mc.ecrire(x_reel+(mc.Xmax-mc.Xmin)/100, y_reel+form1.Image1.Picture.Bitmap.Canvas.TextHeight(liste_legendes[k-1])/2/mc.hauteur *(mc.Ymax1-mc.Ymin1),liste_legendes[k-1],true,policelegende); end; {si mode experience, il faut les rajouter a la legende} if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then begin y_reel:=y_reel-(form1.Image1.Picture.Bitmap.Canvas.TextHeight(liste_noms_e[k-1])+ (form1.Image1.Picture.Bitmap.Canvas.TextHeight('A') div 2))/mc.hauteur*(mc.ymax1-mc.ymin1); case liste_styles_ordonnees_e[k-1] of cercle: mc.cercle(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); disque: mc.disque2(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], true); croix: mc.croixx(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); plus: mc.croixp(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); end; if liste_tracerok_ordonnees_e[k-1] then mc.Trait(x_reel,y_reel,x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_epaisseurs_ordonnees_e[k-1], liste_couleurs_ordonnees_e[k-1],pssolid,pmcopy,true); case liste_styles_ordonnees_e[k-1] of cercle: mc.cercle(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); disque: mc.disque2(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], true); croix: mc.croixx(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); plus: mc.croixp(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, true); end; mc.ecrire(x_reel+(mc.Xmax-mc.Xmin)/100, y_reel+form1.Image1.Picture.Bitmap.Canvas.TextHeight(liste_noms_e[k-1])/2/mc.hauteur *(mc.Ymax1-mc.Ymin1),liste_noms_e[k-1],true,policelegende); end; {du cas experience} end else begin hauteur_cadre_legende_relle:=hauteur_cadre_legende_en_pixels*(mc.ymax2-mc.ymin2)/ (mc.hauteur-mc.BordureHaute-mc.BordureBasse) ; x1:=mc.Xmin+(mc.Xmax-mc.Xmin-largeur_cadre_legende_relle)/100*x_legende_pourcentage; x2:=x1+largeur_cadre_legende_relle; y1:=mc.Ymin2+(mc.Ymax2-mc.Ymin2-hauteur_cadre_legende_relle)/100*y_legende_pourcentage; y2:=y1+hauteur_cadre_legende_relle; mc.MonRectangle(x1,y1,x2,y2, clwhite,false); mc.Trait(x1,y1,x2,y1, 2,clblack, pssolid,pmcopy,false); mc.Trait(x2,y1,x2,y2, 2,clblack, pssolid,pmcopy,false); mc.Trait(x2,y2,x1,y2, 2,clblack, pssolid,pmcopy,false); mc.Trait(x1,y2,x1,y1, 2,clblack, pssolid,pmcopy,false); x_reel:=x1; x_reel:=x_reel+10/mc.largeur*(mc.Xmax-mc.xmin); y_reel:=y2; {x_reel, y_reel:angle supérieur gauche du cadre de légende} for k:=1 to nombre_ordonnees do begin y_reel:=y_reel-(form1.Image1.Picture.Bitmap.Canvas.TextHeight(liste_legendes[k-1])+ (form1.Image1.Picture.Bitmap.Canvas.TextHeight('A') div 2))/mc.hauteur*(mc.ymax2-mc.ymin2); case liste_styles_ordonnees[k-1] of cercle: mc.cercle(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); disque: mc.disque2(x_reel,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], false); croix: mc.croixx(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); plus: mc.croixp(x_reel,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); end; if liste_tracerok_ordonnees[k-1] then mc.Trait(x_reel,y_reel,x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_epaisseurs_ordonnees[k-1], liste_couleurs_ordonnees[k-1],pssolid,pmcopy,false); case liste_styles_ordonnees[k-1] of cercle: mc.cercle(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); disque: mc.disque2(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], false); croix: mc.croixx(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); plus: mc.croixp(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, false); end; mc.ecrire(x_reel+(mc.Xmax-mc.Xmin)/100, y_reel+form1.Image1.Picture.Bitmap.Canvas.TextHeight(liste_legendes[k-1])/2/mc.hauteur *(mc.Ymax2-mc.Ymin2),expression_ordonnees_explicites[k-1],false,policelegende); end; {si mode experience, il faut les rajouter a la legende} if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then begin y_reel:=y_reel-(form1.Image1.Picture.Bitmap.Canvas.TextHeight(liste_noms_e[k-1])+ (form1.Image1.Picture.Bitmap.Canvas.TextHeight('A') div 2))/mc.hauteur*(mc.ymax2-mc.ymin2); case liste_styles_ordonnees_e[k-1] of cercle: mc.cercle(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); disque: mc.disque2(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], false); croix: mc.croixx(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); plus: mc.croixp(x_reel,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); end; if liste_tracerok_ordonnees_e[k-1] then mc.Trait(x_reel,y_reel,x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_epaisseurs_ordonnees_e[k-1], liste_couleurs_ordonnees_e[k-1],pssolid,pmcopy,false); case liste_styles_ordonnees_e[k-1] of cercle: mc.cercle(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); disque: mc.disque2(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], false); croix: mc.croixx(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); plus: mc.croixp(x_reel+(mc.Xmax-mc.Xmin)/200,y_reel, liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, false); end; mc.ecrire(x_reel+(mc.Xmax-mc.Xmin)/100, y_reel+form1.Image1.Picture.Bitmap.Canvas.TextHeight(liste_noms_e[k-1])/2/mc.hauteur *(mc.Ymax1-mc.Ymin1),liste_noms_e[k-1],false,policelegende); end; {du cas experience} end; {du cas non(existe gauche)} end;{de nouvelle legende} {nouvelle légende******************************************} if not(mode_1point) then begin //image1.Refresh; exit; end; 909090: try mystrtofloat(editvolumepp.Text); except application.MessageBox(pchar(rsSyntaxeIncor7), pchar(rsMaisEuhhhh), mb_ok); //image1.Refresh; exit; end; volume_verse:=mystrtofloat(editvolumepp.Text)/1000; {on retrace le graphe} grille_echelle_gauche:=grille_echelle_gauche and existe_gauche; grille_echelle_droite:=grille_echelle_droite and existe_droite; checkboxgrillegauche.Checked:=grille_echelle_gauche; checkboxgrilledroite.Checked:=grille_echelle_droite; form1.Image1.Align:=alright; form1.Image1.Width:=tabsheettracecourbes.ClientWidth-(speedbuttoncalculer.Left+speedbuttoncalculer.Width+30); //mc.Left:=tabsheettracecourbes.ClientWidth-mc.width; // application.ProcessMessages; mc.LimitesEtAxes(@image1,abscisse_min,abscisse_max,ordonnee_gauche_min ,ordonnee_gauche_max,ordonnee_droite_min,ordonnee_droite_max,form1.Image1.width, form1.Image1.Height,titregraphe,policetitre,true,coucoufond,cadrepresent,epaisseur_cadre,coucoucadre, graduationspresentes, 1,4,coucougraduation,policegraduation, grille_echelle_gauche,grille_echelle_droite,1,coucougrille1, coucougrille2,labelx,labely1,labely2,unitex,unitey1,unitey2, false,existe_gauche,existe_droite); nbe_nuances:=480; indicateur_present:=( ( (degrade_vertical and (ordonnee_gauche_est_ph or ordonnee_droite_est_ph)) or (not(degrade_vertical) and abscisse_est_v)) and (combobox1.ItemIndex>0)); if indicateur_present then begin if (degrade_vertical and (ordonnee_gauche_est_ph or ordonnee_droite_est_ph)) then begin for mmmm:=0 to nbe_nuances-1 do begin if ordonnee_gauche_est_ph then mc.MonRectangle(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*mmmm/nbe_nuances, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*(mmmm+1)/nbe_nuances, liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur(ordonnee_gauche_min+(ordonnee_gauche_max- ordonnee_gauche_min)*(mmmm+0.5)/nbe_nuances) ,true) else mc.MonRectangle(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*mmmm/nbe_nuances, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min), ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*(mmmm+1)/nbe_nuances, liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur(ordonnee_droite_min+(ordonnee_droite_max- ordonnee_droite_min)*(mmmm+0.5)/nbe_nuances) ,false); end; if ordonnee_gauche_est_ph then begin mc.Trait(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); mc.Trait(abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); mc.Trait(abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_gauche_min, abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_gauche_max,1,clblack,psdot,pmcopy,true); end else begin mc.Trait(abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic-largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); mc.Trait(abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic+largeur_bande_indic/2)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); mc.Trait(abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_droite_min, abscisse_min+(abscisse_centre_bande_indic)* (abscisse_max-abscisse_min),ordonnee_droite_max,1,clblack,psdot,pmcopy,false); end; end else begin {si c'est le degrade en fonction du volume} for i:=0 to nombre_points_calcul-1 do begin mc.MonRectangle(tableau_resultats[i,0], ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), tableau_resultats[i+1,0], ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), liste_indic_ph[combobox1.ItemIndex-1]. donne_couleur( -log10( tableau_resultats[i,indice_ph+nombre_solutes_0+nombre_precipites_0])) ,true); end; mc.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic-largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); mc.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic+largeur_bande_indic/2)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); mc.Trait(abscisse_min,ordonnee_gauche_min+(ordonnee_centre_bande_indic)* (ordonnee_gauche_max-ordonnee_gauche_min), abscisse_max,ordonnee_gauche_min+(ordonnee_centre_bande_indic)* (ordonnee_gauche_max-ordonnee_gauche_min),1,clblack,psdot,pmcopy,true); end; mc.LimitesEtAxes(@image1,abscisse_min,abscisse_max,ordonnee_gauche_min ,ordonnee_gauche_max,ordonnee_droite_min,ordonnee_droite_max,form1.Image1.width, form1.Image1.Height,titregraphe,policetitre,false,coucoufond,cadrepresent,epaisseur_cadre,coucoucadre, graduationspresentes, 1,4,coucougraduation,policegraduation, grille_echelle_gauche,grille_echelle_droite,1,coucougrille1, coucougrille2,labelx,labely1,labely2,unitex,unitey1,unitey2, false,existe_gauche,existe_droite); end; for k:=1 to nombre_ordonnees do begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_calcul do if ( not(isnanorinfinite(tableau_grandeurs_tracees[i,0])) and not (isnanorinfinite(tableau_grandeurs_tracees[i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=liste_couleurs_ordonnees[k-1]; form1.Image1.Picture.Bitmap.Canvas.Font:=policelegende; mc.Convert(form1.Image1.Picture.Bitmap.Canvas.TextWidth(expression_ordonnees_explicites[k-1])+ mc.BordureGauche, form1.Image1.Picture.Bitmap.Canvas.TextHeight(expression_ordonnees_explicites[k-1])+ mc.BordureHaute, largeurlegende,hauteurlegende,liste_echelles[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-mc.Xmin); if liste_echelles[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-mc.Ymax1) else hauteurlegende:=abs(hauteurlegende-mc.Ymax2); if ( (tableau_grandeurs_tracees[i,0]-mc.Xmin>=(k-1)*(mc.Xmax-mc.Xmin)/nombre_ordonnees) or (tableau_grandeurs_tracees[i,0]+largeurlegende>mc.Xmax)) then begin if ( ( (liste_echelles[k-1]=e_gauche) and (tableau_grandeurs_tracees[i,k]+hauteurlegende>mc.Ymax1) ) or ( (liste_echelles[k-1]=e_droite) and (tableau_grandeurs_tracees[i,k]+hauteurlegende>mc.Ymax2) ) ) then {on ecrit en dessous} mc.ecrire(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende) else {on ecrit au dessus} mc.ecrire(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k]+hauteurlegende, expression_ordonnees_explicites[k-1],liste_echelles[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees[k-1] of cercle: mc.cercle(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); disque: mc.disque2(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],liste_couleurs_ordonnees[k-1],liste_couleurs_ordonnees[k-1], liste_echelles[k-1]=e_gauche); croix: mc.croixx(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); plus: mc.croixp(tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_tailles_ordonnees[k-1],1,liste_couleurs_ordonnees[k-1],pmcopy, liste_echelles[k-1]=e_gauche); end; if (point_ok and liste_tracerok_ordonnees[k-1]) then mc.Trait(lastx,lasty,tableau_grandeurs_tracees[i,0],tableau_grandeurs_tracees[i,k], liste_epaisseurs_ordonnees[k-1], liste_couleurs_ordonnees[k-1],pssolid,pmcopy, liste_echelles[k-1]=e_gauche); point_ok:=true; lastx:=tableau_grandeurs_tracees[i,0]; lasty:=tableau_grandeurs_tracees[i,k]; end else point_ok:=false; end; {fin trace graphe} {affichage donnees experiemntales} if (mode_experience and (nombre_valeurs_par_ligne_e>1) and (nombre_points_exp>1)) then begin for k:=1 to nombre_valeurs_par_ligne_e-1 do if not(liste_nepastracer_e[k-1]) then begin point_ok:=false; legende_ok:=false; for i:=0 to nombre_points_exp-1 do begin if ( not(isnanorinfinite(tableau_donnees_exp[i,0])) and not (isnanorinfinite(tableau_donnees_exp[i,k])) ) then begin {1er point, o, met la legende} if not(legende_ok) and legendepresente then begin policelegende.Color:=liste_couleurs_ordonnees_e[k-1]; form1.Image1.Picture.Bitmap.Canvas.Font:=policelegende; mc.Convert(form1.Image1.Picture.Bitmap.Canvas.TextWidth(liste_noms_e[k-1])+ mc.BordureGauche, form1.Image1.Picture.Bitmap.Canvas.TextHeight(liste_noms_e[k-1])+ mc.BordureHaute, largeurlegende,hauteurlegende,liste_echelles_e[k-1]=e_gauche); largeurlegende:=abs(largeurlegende-mc.Xmin); if liste_echelles_e[k-1]=e_gauche then hauteurlegende:=abs(hauteurlegende-mc.Ymax1) else hauteurlegende:=abs(hauteurlegende-mc.Ymax2); if ( (tableau_donnees_exp[i,0]-mc.Xmin>=(k-1)*(mc.Xmax-mc.Xmin)/(nombre_valeurs_par_ligne_e-1)) or (tableau_donnees_exp[i,0]+largeurlegende>mc.Xmax)) then begin if ( ( (liste_echelles_e[k-1]=e_gauche) and (tableau_donnees_exp[i,k]+hauteurlegende>mc.Ymax1) ) or ( (liste_echelles_e[k-1]=e_droite) and (tableau_donnees_exp[i,k]+hauteurlegende>mc.Ymax2) ) ) then {on ecrit en dessous} mc.ecrire(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_noms_e[k-1],liste_echelles_e[k-1]=e_gauche,policelegende) else {on ecrit au dessus} mc.ecrire(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k]+hauteurlegende, liste_noms_e[k-1],liste_echelles_e[k-1]=e_gauche,policelegende); legende_ok:=true; end; end; case liste_styles_ordonnees_e[k-1] of cercle: mc.cercle(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); disque: mc.disque2(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1],liste_couleurs_ordonnees_e[k-1], liste_echelles_e[k-1]=e_gauche); croix: mc.croixx(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); plus: mc.croixp(tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_tailles_ordonnees_e[k-1],1,liste_couleurs_ordonnees_e[k-1],pmcopy, liste_echelles_e[k-1]=e_gauche); end; if (point_ok and liste_tracerok_ordonnees_e[k-1]) then mc.Trait(lastx,lasty,tableau_donnees_exp[i,0],tableau_donnees_exp[i,k], liste_epaisseurs_ordonnees_e[k-1], liste_couleurs_ordonnees_e[k-1],pssolid,pmcopy, liste_echelles_e[k-1]=e_gauche); point_ok:=true; lastx:=tableau_donnees_exp[i,0]; lasty:=tableau_donnees_exp[i,k]; end else point_ok:=false; end; end; end; {fin affichage donnees experiences} for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if form1.stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if form1.stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_verse; if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; Save_Cursor := Screen.Cursor; try screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0,nombre_moles_equilibre_precipites_0, activites_solutes_0, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally Screen.Cursor := Save_Cursor; end; volume_solution:=volume_becher+volume_verse; memo_resultats_point_particulier.Clear; if not (rep) then begin memo_resultats_point_particulier.lines.Add(Format(rsRPonseNonTro, [inttostr(maxiter_0)])); exit; end; {0 then begin for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if form1.stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if form1.stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*(volume_verse-pas_derivee); if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse-pas_derivee)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; Save_Cursor := Screen.Cursor; try screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0_gauche,nombre_moles_equilibre_precipites_0_gauche, activites_solutes_0_gauche, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse-pas_derivee,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally Screen.Cursor := Save_Cursor; end; end{du cas pu volume_verse>0} else begin setlength(nombre_moles_equilibre_solutes_0_gauche,nombre_solutes_0); setlength(nombre_moles_equilibre_precipites_0_gauche,nombre_precipites_0); setlength(activites_solutes_0_gauche,nombre_solutes_0); for i:=1 to nombre_solutes_0 do nombre_moles_equilibre_solutes_0_gauche[i-1]:=nan; for i:=1 to nombre_solutes_0 do activites_solutes_0_gauche[i-1]:=nan; for i:=1 to nombre_precipites_0 do nombre_moles_equilibre_precipites_0_gauche[i-1]:=nan; end; if not(rep) then begin setlength(nombre_moles_equilibre_solutes_0_gauche,nombre_solutes_0); setlength(nombre_moles_equilibre_precipites_0_gauche,nombre_precipites_0); setlength(activites_solutes_0_gauche,nombre_solutes_0); for i:=1 to nombre_solutes_0 do nombre_moles_equilibre_solutes_0_gauche[i-1]:=nan; for i:=1 to nombre_solutes_0 do activites_solutes_0_gauche[i-1]:=nan; for i:=1 to nombre_precipites_0 do nombre_moles_equilibre_precipites_0_gauche[i-1]:=nan; end; if (rep) then begin for i:=1 to nombre_solutes_0 do nombre_moles_equilibre_solutes_0_gauche[i-1]:= nombre_moles_equilibre_solutes_0_gauche[i-1]/(volume_becher+volume_verse-pas_derivee); end; {du calcul a gauche} pas_derivee:=volume_burette_max/diviseur_pas_derivee; {calcul a droite} for i:=1 to nombre_especes_0 do begin setlength(tableau_moles_initiales_0,nombre_especes_0); if form1.stringgridreactifs_becher.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:= mystrtofloat(form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.Cols[1]. IndexOf(noms_especes_0[i-1])])*volume_becher else tableau_moles_initiales_0[i-1]:=0; if form1.stringgridreactifs_burette.Cols[1].IndexOf(noms_especes_0[i-1])>=0 then tableau_moles_initiales_0[i-1]:=tableau_moles_initiales_0[i-1]+ mystrtofloat(form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.Cols[1]. IndexOf(noms_especes_0[i-1])])*(volume_verse+pas_derivee); if ((noms_especes_0[i-1]= nom_solvant_0) {and (tableau_moles_initiales_0[nombre_especes_0-1]=0)}) then tableau_moles_initiales_0[i-1]:=(volume_becher+volume_verse+pas_derivee)*1000/18; end; nombre_precipites_0:=0; nombre_solutes_0:=0; for i:=1 to nombre_especes_0 do begin if noms_especes_0[i-1]=nom_solvant_0 then begin nombre_initial_moles_solvant_0:=tableau_moles_initiales_0[i-1]; end else if indice_element_mineral(noms_especes_0[i-1])>0 then begin inc(nombre_precipites_0); tableau_nombre_initial_moles_precipites_0[nombre_precipites_0-1]:= tableau_moles_initiales_0[i-1]; end else begin inc(nombre_solutes_0); tableau_nombre_initial_moles_solutes_0[nombre_solutes_0-1]:= tableau_moles_initiales_0[i-1]; end; end; Save_Cursor := Screen.Cursor; try screen.Cursor:=crhourglass; rep:=calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes_0,nombre_precipites_0,nombre_atomes_differents_0, nombre_initial_moles_solvant_0, tableau_nombre_initial_moles_solutes_0,tableau_nombre_initial_moles_precipites_0, t_n_a_p_e_solvant_0, t_n_a_p_e_solutes_0,t_n_a_p_e_precipites_0, nom_solvant_0, noms_solutes_0,noms_precipites_0, nombre_moles_equilibre_solvant_0, nombre_moles_equilibre_solutes_0_droite,nombre_moles_equilibre_precipites_0_droite, activites_solutes_0_droite, potentiel_chimique_standard_solvant_0, potentiels_chimiques_standards_solutes_0,potentiels_chimiques_standards_precipites_0, rayons_solutes_0, volume_becher+volume_verse+pas_derivee,temperature, maxresiduconservationrelatif_0, maxresiduactionmasserelatif_0,maxiter_0,iter_0, enthalpie_libre_0,debye_0); finally Screen.Cursor := Save_Cursor; end; if not(rep) then begin setlength(nombre_moles_equilibre_solutes_0_droite,nombre_solutes_0); setlength(nombre_moles_equilibre_precipites_0_droite,nombre_precipites_0); setlength(activites_solutes_0_droite,nombre_solutes_0); for i:=1 to nombre_solutes_0 do nombre_moles_equilibre_solutes_0_droite[i-1]:=nan; for i:=1 to nombre_solutes_0 do activites_solutes_0_droite[i-1]:=nan; for i:=1 to nombre_precipites_0 do nombre_moles_equilibre_precipites_0_droite[i-1]:=nan; end; if (rep) then begin for i:=1 to nombre_solutes_0 do nombre_moles_equilibre_solutes_0_droite[i-1]:= nombre_moles_equilibre_solutes_0_droite[i-1]/(volume_becher+volume_verse+pas_derivee); end; {du calcul a droite} {calcul des derivees} setlength(derivee_nombre_moles_equilibre_solutes_0,nombre_solutes_0); setlength(derivee_activites_solutes_0,nombre_solutes_0); setlength(derivee_nombre_moles_equilibre_precipites_0,nombre_precipites_0); for i:=1 to nombre_solutes_0 do begin {si existent droite et gauche} if not(isnanorinfinite(nombre_moles_equilibre_solutes_0_droite[i-1])) and not(isnanorinfinite(nombre_moles_equilibre_solutes_0_gauche[i-1])) then derivee_nombre_moles_equilibre_solutes_0[i-1]:=(nombre_moles_equilibre_solutes_0_droite[i-1]- nombre_moles_equilibre_solutes_0_gauche[i-1])/2/pas_derivee else {sinon, si existe centre} if not(isnanorinfinite(nombre_moles_equilibre_solutes_0[i-1])) then if not(isnanorinfinite(nombre_moles_equilibre_solutes_0_droite[i-1])) then derivee_nombre_moles_equilibre_solutes_0[i-1]:=(nombre_moles_equilibre_solutes_0_droite[i-1]- nombre_moles_equilibre_solutes_0[i-1]/(volume_becher+volume_verse))/pas_derivee else if not(isnanorinfinite(nombre_moles_equilibre_solutes_0_gauche[i-1])) then derivee_nombre_moles_equilibre_solutes_0[i-1]:=(nombre_moles_equilibre_solutes_0[i-1]/(volume_becher+volume_verse)- nombre_moles_equilibre_solutes_0_gauche[i-1])/pas_derivee else derivee_nombre_moles_equilibre_solutes_0[i-1]:=nan else derivee_nombre_moles_equilibre_solutes_0[i-1]:=nan; end; for i:=1 to nombre_solutes_0 do begin {si existent droite et gauche} if not(isnanorinfinite(activites_solutes_0_droite[i-1])) and not(isnanorinfinite(activites_solutes_0_gauche[i-1])) then derivee_activites_solutes_0[i-1]:=(activites_solutes_0_droite[i-1]- activites_solutes_0_gauche[i-1])/2/pas_derivee else {sinon, si existe centre} if not(isnanorinfinite(activites_solutes_0[i-1])) then if not(isnanorinfinite(activites_solutes_0_droite[i-1])) then derivee_activites_solutes_0[i-1]:=(activites_solutes_0_droite[i-1]- activites_solutes_0[i-1])/pas_derivee else if not(isnanorinfinite(activites_solutes_0_gauche[i-1])) then derivee_activites_solutes_0[i-1]:=(activites_solutes_0[i-1]- activites_solutes_0_gauche[i-1])/pas_derivee else derivee_activites_solutes_0[i-1]:=nan else derivee_activites_solutes_0[i-1]:=nan; end; for i:=1 to nombre_precipites_0 do begin {si existent droite et gauche} if not(isnanorinfinite(nombre_moles_equilibre_precipites_0_droite[i-1])) and not(isnanorinfinite(nombre_moles_equilibre_precipites_0_gauche[i-1])) then derivee_nombre_moles_equilibre_precipites_0[i-1]:=(nombre_moles_equilibre_precipites_0_droite[i-1]- nombre_moles_equilibre_precipites_0_gauche[i-1])/2/pas_derivee else {sinon, si existe centre} if not(isnanorinfinite(nombre_moles_equilibre_precipites_0[i-1])) then if not(isnanorinfinite(nombre_moles_equilibre_precipites_0_droite[i-1])) then derivee_nombre_moles_equilibre_precipites_0[i-1]:=(nombre_moles_equilibre_precipites_0_droite[i-1]- nombre_moles_equilibre_precipites_0[i-1])/pas_derivee else if not(isnanorinfinite(nombre_moles_equilibre_precipites_0_gauche[i-1])) then derivee_nombre_moles_equilibre_precipites_0[i-1]:=(nombre_moles_equilibre_precipites_0[i-1]- nombre_moles_equilibre_precipites_0_gauche[i-1])/pas_derivee else derivee_nombre_moles_equilibre_precipites_0[i-1]:=nan else derivee_nombre_moles_equilibre_precipites_0[i-1]:=nan; end; end; {ajout version 1.10>} memo_resultats_point_particulier.lines.Add(Format(rsVolumeTotalM, [floattostrf(volume_solution* 1000, ffgeneral, nombre_chiffres_resultats, nombre_chiffres_resultats)])); memo_resultats_point_particulier.lines.Add(''); if nombre_solutes_0>0 then begin memo_resultats_point_particulier.lines.Add(rs); memo_resultats_point_particulier.lines.Add(rsConcentratio); memo_resultats_point_particulier.lines.Add(rs); memo_resultats_point_particulier.lines.Add(''); for i:=1 to nombre_solutes_0 do begin memo_resultats_point_particulier.lines.Add('['+noms_solutes_0[i-1]+']= '); {} try dodo:=floattostrf(nombre_moles_equilibre_solutes_0[i-1]/volume_solution,ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats)+' mol/L'; except dodo:='NAN'; end; memo_resultats_point_particulier.lines.Add(dodo); if not((nombre_moles_equilibre_solutes_0[i-1]>pluspetiteconcentrationsignificative) or (nombre_moles_equilibre_solutes_0[i-1]=0)) then memo_resultats_point_particulier.lines.Add(rsTracesValeur); if not(debye_0) then if ((noms_solutes_0[i-1]='H[+]') and (nombre_moles_equilibre_solutes_0[i-1]>0)) then begin try dodo:='pH='+floattostrf(-ln( nombre_moles_equilibre_solutes_0[i-1]/volume_solution)/ln(10),ffgeneral, nombre_chiffres_resultats,nombre_chiffres_resultats); except dodo:='pH= NAN'; end; memo_resultats_point_particulier.lines.Add(dodo); end; if not(debye_0) then if ((noms_solutes_0[i-1]='OH[-]') and (nombre_moles_equilibre_solutes_0[i-1]>0)) then begin try dodo:='pOH='+floattostrf (-ln(nombre_moles_equilibre_solutes_0[i-1]/volume_solution)/ln(10),ffgeneral, nombre_chiffres_resultats,nombre_chiffres_resultats); except dodo:='pOH= NAN'; end; memo_resultats_point_particulier.lines.Add(dodo); end; end; end; if debye_0 then if nombre_solutes_0>0 then begin memo_resultats_point_particulier.lines.Add(rs); memo_resultats_point_particulier.lines.Add(rsActivitSDesE); memo_resultats_point_particulier.lines.Add(rs); memo_resultats_point_particulier.lines.Add(''); for i:=1 to nombre_solutes_0 do begin memo_resultats_point_particulier.lines.Add('a('+noms_solutes_0[i-1]+')= '); memo_resultats_point_particulier.lines.Add( floattostrf(activites_solutes_0[i-1],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats)); if not((activites_solutes_0[i-1]>pluspetiteconcentrationsignificative) or (activites_solutes_0[i-1]=0)) then memo_resultats_point_particulier.lines.Add(rsTracesValeur); if ((noms_solutes_0[i-1]='H[+]') and (activites_solutes_0[i-1]>0)) then memo_resultats_point_particulier.lines.Add('pH='+floattostrf(-ln( activites_solutes_0[i-1])/ln(10),ffgeneral, nombre_chiffres_resultats,nombre_chiffres_resultats)); if ((noms_solutes_0[i-1]='OH[-]') and (activites_solutes_0[i-1]>0)) then memo_resultats_point_particulier.lines.Add('pOH='+floattostrf (-ln(activites_solutes_0[i-1])/ln(10),ffgeneral, nombre_chiffres_resultats,nombre_chiffres_resultats)); end; end; if nombre_precipites_0>0 then begin memo_resultats_point_particulier.lines.Add(''); memo_resultats_point_particulier.lines.Add(rs2); memo_resultats_point_particulier.lines.Add(rsNombreDeMole); memo_resultats_point_particulier.lines.Add(rs2); memo_resultats_point_particulier.lines.Add(''); for i:=1 to nombre_precipites_0 do begin memo_resultats_point_particulier.lines.Add(noms_precipites_0[i-1]+': '); if ((nombre_moles_equilibre_precipites_0[i-1]<>0)) then memo_resultats_point_particulier.lines.Add(floattostrf(nombre_moles_equilibre_precipites_0[i-1],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats)+' mol'); if not((nombre_moles_equilibre_precipites_0[i-1]>pluspetiteconcentrationsignificative)) then if ((nombre_moles_equilibre_precipites_0[i-1]=0)) then memo_resultats_point_particulier.lines.Add(rsABSENT) else memo_resultats_point_particulier.lines.Add(rsTracesValeur2); end; end; {0) and calcul_derivees) then begin memo_resultats_point_particulier.lines.Add(rs); memo_resultats_point_particulier.lines.Add(rsDRivEsVDesCo); memo_resultats_point_particulier.lines.Add(rs); memo_resultats_point_particulier.lines.Add(''); for i:=1 to nombre_solutes_0 do begin memo_resultats_point_particulier.lines.Add('d['+noms_solutes_0[i-1]+']/dV= '); try dodo:=floattostrf(derivee_nombre_moles_equilibre_solutes_0[i-1],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats)+' mol/L²'; except dodo:='NAN'; end; memo_resultats_point_particulier.lines.Add(dodo); if not(debye_0) then if ((noms_solutes_0[i-1]='H[+]') and (nombre_moles_equilibre_solutes_0[i-1]>0) and not(isnanorinfinite(derivee_nombre_moles_equilibre_solutes_0[i-1]))) then begin try dodo:='dpH/dV='+floattostrf(-1/ln(10)/( nombre_moles_equilibre_solutes_0[i-1]/volume_solution)* derivee_nombre_moles_equilibre_solutes_0[i-1],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats)+' /L'; except dodo:='dpH/dV= NAN'; end; memo_resultats_point_particulier.lines.Add(dodo); end; if not(debye_0) then if ((noms_solutes_0[i-1]='OH[-]') and (nombre_moles_equilibre_solutes_0[i-1]>0)and not(isnanorinfinite(derivee_nombre_moles_equilibre_solutes_0[i-1]))) then begin try dodo:='dpOH/dV='+floattostrf(-1/ln(10)/( nombre_moles_equilibre_solutes_0[i-1]/volume_solution)* derivee_nombre_moles_equilibre_solutes_0[i-1],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats)+' /L'; except dodo:='dpOH/dV= NAN'; end; memo_resultats_point_particulier.lines.Add(dodo); end; end; end; if debye_0 and calcul_derivees then if nombre_solutes_0>0 then begin memo_resultats_point_particulier.lines.Add(rs); memo_resultats_point_particulier.lines.Add(rsDRivEsVDesAc); memo_resultats_point_particulier.lines.Add(rs); memo_resultats_point_particulier.lines.Add(''); for i:=1 to nombre_solutes_0 do begin memo_resultats_point_particulier.lines.Add('da('+noms_solutes_0[i-1]+')/dV= '); if not(isnanorinfinite(derivee_activites_solutes_0[i-1])) then memo_resultats_point_particulier.lines.Add( floattostrf(derivee_activites_solutes_0[i-1],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats)+' /L') else memo_resultats_point_particulier.lines.Add('NAN'); if ((noms_solutes_0[i-1]='H[+]') and (activites_solutes_0[i-1]>0) and not(isnanorinfinite(derivee_activites_solutes_0[i-1]))) then memo_resultats_point_particulier.lines.Add('dpH/dV='+floattostrf(-1/( activites_solutes_0[i-1])/ln(10)*derivee_activites_solutes_0[i-1],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats)+' /L'); if ((noms_solutes_0[i-1]='OH[-]') and (activites_solutes_0[i-1]>0)and not(isnanorinfinite(derivee_activites_solutes_0[i-1]))) then memo_resultats_point_particulier.lines.Add('dpOH/dV='+floattostrf (-1/(activites_solutes_0[i-1])/ln(10)*derivee_activites_solutes_0[i-1],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats)+' /L'); end; end; if (nombre_precipites_0>0) and calcul_derivees then begin memo_resultats_point_particulier.lines.Add(''); memo_resultats_point_particulier.lines.Add(rs3); memo_resultats_point_particulier.lines.Add(rsDRivEsVDesNo); memo_resultats_point_particulier.lines.Add(rs3); memo_resultats_point_particulier.lines.Add(''); for i:=1 to nombre_precipites_0 do begin memo_resultats_point_particulier.lines.Add('dN '+noms_precipites_0[i-1]+' /dV= '); if not(isnanorinfinite(derivee_nombre_moles_equilibre_precipites_0[i-1])) then memo_resultats_point_particulier.lines.Add(floattostrf(derivee_nombre_moles_equilibre_precipites_0[i-1],ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats)+' mol/L') else memo_resultats_point_particulier.lines.Add('NC'); end; end; {ajout version 1.10>} memo_resultats_point_particulier.lines.Add(''); memo_resultats_point_particulier.lines.Add(rs4); memo_resultats_point_particulier.lines.Add(rsGrandeursCal); memo_resultats_point_particulier.lines.Add(rs4); memo_resultats_point_particulier.lines.Add(''); for k:=1 to nombre_variables_abscisse do if liste_variables_abscisse[k-1]='gamma' then try conductivite_actuelle:=0; for kkk:=1 to nombre_solutes_0 do conductivite_actuelle:=conductivite_actuelle+ nombre_moles_equilibre_solutes_0[kkk-1]/(volume_becher+volume_verse) *conductivites_solutes_0[kkk-1]* abs(charges_solutes_0[kkk-1])*0.1; parser_abscisse.Variable[liste_variables_abscisse[k-1]] := conductivite_actuelle; except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if liste_variables_abscisse[k-1]='Vtotal' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := volume_verse*1000+volume_becher*1000 else if liste_variables_abscisse[k-1]='V0' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := volume_becher*1000 else if liste_variables_abscisse[k-1]='V' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := volume_verse*1000 else {} if copy(liste_variables_abscisse[k-1],1,2)='pc' then try parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=-log10( nombre_moles_equilibre_solutes_0[strtoint(copy(liste_variables_abscisse[k-1],3, length(liste_variables_abscisse[k-1])-2))-1]/(volume_becher+volume_verse)); except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if copy(liste_variables_abscisse[k-1],1,2)='pa' then try parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=-log10( activites_solutes_0[strtoint(copy(liste_variables_abscisse[k-1],3, length(liste_variables_abscisse[k-1])-2))-1]); except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if liste_variables_abscisse[k-1][1]='c' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := nombre_moles_equilibre_solutes_0[strtoint(copy(liste_variables_abscisse[k-1],2, length(liste_variables_abscisse[k-1])-1))-1]/(volume_becher+volume_verse) else if liste_variables_abscisse[k-1][1]='a' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := activites_solutes_0[strtoint(copy(liste_variables_abscisse[k-1],2, length(liste_variables_abscisse[k-1])-1))-1] else if copy(liste_variables_abscisse[k-1],1,2)='pn' then try parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=-log10( nombre_moles_equilibre_precipites_0[strtoint(copy(liste_variables_abscisse[k-1],3, length(liste_variables_abscisse[k-1])-2))-1]); except parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end else if liste_variables_abscisse[k-1][1]='n' then parser_abscisse.Variable[liste_variables_abscisse[k-1]] := nombre_moles_equilibre_precipites_0[strtoint(copy(liste_variables_abscisse[k-1],2, length(liste_variables_abscisse[k-1])-1))-1] {} {modif version 2.5} else if copy(liste_variables_abscisse[k-1],1,2)='Po' then begin icouple:=strtoint(copy(liste_variables_abscisse[k-1],3, length(liste_variables_abscisse[k-1])-2)); {on teste si un des elements du couple est un solide absent, auquel cas potentiel=NAN} imin1:=0; imin2:=0; isol1:=0; isol2:=0; if nombre_precipites_0>0 then begin imin1:=1; while imin1<=nombre_precipites_0 do if noms_precipites_0[imin1-1]=liste_couples_redox[icouple-1].espece1 then break else inc(imin1); if imin1<=nombre_precipites_0 then begin if nombre_moles_equilibre_precipites_0[imin1-1]=0 then begin Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; goto 26447; end; end else imin1:=0; end; if nombre_precipites_0>0 then begin imin2:=1; while imin2<=nombre_precipites_0 do if noms_precipites_0[imin2-1]=liste_couples_redox[icouple-1].espece2 then break else inc(imin2); if imin2<=nombre_precipites_0 then begin if nombre_moles_equilibre_precipites_0[imin2-1]=0 then begin Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; goto 26447; end; end else imin2:=0; end; {on teste si un des elements du couple est un solute absent, auquel cas potentiel=NAN} if nombre_solutes_0>0 then begin isol1:=1; while isol1<=nombre_solutes_0 do if noms_solutes_0[isol1-1]=liste_couples_redox[icouple-1].espece1 then break else inc(isol1); if isol1<=nombre_solutes_0 then begin if activites_solutes_0[isol1-1]=0 then begin Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; goto 26447; end; end else isol1:=0; end; if nombre_solutes_0>0 then begin isol2:=1; while isol2<=nombre_solutes_0 do if noms_solutes_0[isol2-1]=liste_couples_redox[icouple-1].espece2 then break else inc(isol2); if isol2<=nombre_solutes_0 then begin if activites_solutes_0[isol2-1]=0 then begin Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; goto 26447; end; end else isol2:=0; end; try poto:=liste_couples_redox[icouple-1].potentiel_standard_redox; if isol1>0 then poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_1*ln(activites_solutes_0[isol1-1])/ln(10); if isol2>0 then poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_2*ln(activites_solutes_0[isol2-1])/ln(10); poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_Hp*ln(activites_solutes_0[indice_pH-1])/ln(10); Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=poto; except Parser_abscisse.Variable[liste_variables_abscisse[k-1]] :=NAN; end; 26447: end; {modif version 2.5} memo_resultats_point_particulier.lines.Add(expression_abscisse_explicite+'= '); abscisse_ok:=true; try absc:=parser_abscisse.value; except abscisse_ok:=false; end; if abscisse_ok then memo_resultats_point_particulier.lines.Add(floattostrf(absc,ffgeneral, nombre_chiffres_resultats,nombre_chiffres_resultats)) else memo_resultats_point_particulier.lines.Add(rsNonCalculabl); for j:=1 to nombre_ordonnees do begin for k:=1 to nombre_variables_ordonnees[j-1] do if liste_variables_ordonnees[j-1][k-1]='gamma' then try conductivite_actuelle:=0; for kkk:=1 to nombre_solutes_0 do conductivite_actuelle:=conductivite_actuelle+ nombre_moles_equilibre_solutes_0[kkk-1]/(volume_becher+volume_verse) *conductivites_solutes_0[kkk-1]* abs(charges_solutes_0[kkk-1])*0.1; Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := conductivite_actuelle; except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if liste_variables_ordonnees[j-1][k-1]='Vtotal' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := volume_verse*1000+volume_becher*1000 else if liste_variables_ordonnees[j-1][k-1]='V0' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := volume_becher*1000 else if liste_variables_ordonnees[j-1][k-1]='V' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := volume_verse*1000 else if liste_variables_ordonnees[j-1][k-1]='pH' then try Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=-log10( activites_solutes_0[indice_ph-1]); except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if liste_variables_ordonnees[j-1][k-1]='pOH' then try Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=-log10( activites_solutes_0[indice_poh-1]); except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if copy(liste_variables_ordonnees[j-1][k-1],1,2)='pc' then try Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=-log10( nombre_moles_equilibre_solutes_0[strtoint(copy(liste_variables_ordonnees[j-1][k-1],3, length(liste_variables_ordonnees[j-1][k-1])-2))-1]/(volume_becher+volume_verse)); except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if copy(liste_variables_ordonnees[j-1][k-1],1,2)='pa' then try Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=-log10( activites_solutes_0[strtoint(copy(liste_variables_ordonnees[j-1][k-1],3, length(liste_variables_ordonnees[j-1][k-1])-2))-1]); except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if liste_variables_ordonnees[j-1][k-1][1]='c' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := nombre_moles_equilibre_solutes_0[strtoint(copy(liste_variables_ordonnees[j-1][k-1],2, length(liste_variables_ordonnees[j-1][k-1])-1))-1]/(volume_becher+volume_verse) else if liste_variables_ordonnees[j-1][k-1][1]='a' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := activites_solutes_0[strtoint(copy(liste_variables_ordonnees[j-1][k-1],2, length(liste_variables_ordonnees[j-1][k-1])-1))-1] else if copy(liste_variables_ordonnees[j-1][k-1],1,2)='pn' then try Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=-log10( nombre_moles_equilibre_precipites_0[strtoint(copy(liste_variables_ordonnees[j-1][k-1],3, length(liste_variables_ordonnees[j-1][k-1])-2))-1]); except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end else if liste_variables_ordonnees[j-1][k-1][1]='n' then Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] := nombre_moles_equilibre_precipites_0[strtoint(copy(liste_variables_ordonnees[j-1][k-1],2, length(liste_variables_ordonnees[j-1][k-1])-1))-1] else {} {modif version 2.5} else if copy(liste_variables_ordonnees[j-1][k-1],1,2)='Po' then begin icouple:=strtoint(copy(liste_variables_ordonnees[j-1][k-1],3, length(liste_variables_ordonnees[j-1][k-1])-2)); {on teste si un des elements du couple est un solide absent, auquel cas potentiel=NAN} imin1:=0; imin2:=0; isol1:=0; isol2:=0; if nombre_precipites_0>0 then begin imin1:=1; while imin1<=nombre_precipites_0 do if noms_precipites_0[imin1-1]=liste_couples_redox[icouple-1].espece1 then break else inc(imin1); if imin1<=nombre_precipites_0 then begin if nombre_moles_equilibre_precipites_0[imin1-1]=0 then begin Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; goto 26446; end; end else imin1:=0; end; if nombre_precipites_0>0 then begin imin2:=1; while imin2<=nombre_precipites_0 do if noms_precipites_0[imin2-1]=liste_couples_redox[icouple-1].espece2 then break else inc(imin2); if imin2<=nombre_precipites_0 then begin if nombre_moles_equilibre_precipites_0[imin2-1]=0 then begin Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; goto 26446; end; end else imin2:=0; end; {on teste si un des elements du couple est un solute absent, auquel cas potentiel=NAN} if nombre_solutes_0>0 then begin isol1:=1; while isol1<=nombre_solutes_0 do if noms_solutes_0[isol1-1]=liste_couples_redox[icouple-1].espece1 then break else inc(isol1); if isol1<=nombre_solutes_0 then begin if activites_solutes_0[isol1-1]=0 then begin Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; goto 26446; end; end else isol1:=0; end; if nombre_solutes_0>0 then begin isol2:=1; while isol2<=nombre_solutes_0 do if noms_solutes_0[isol2-1]=liste_couples_redox[icouple-1].espece2 then break else inc(isol2); if isol2<=nombre_solutes_0 then begin if activites_solutes_0[isol2-1]=0 then begin Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; goto 26446; end; end else isol2:=0; end; try poto:=liste_couples_redox[icouple-1].potentiel_standard_redox; if isol1>0 then poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_1*ln(activites_solutes_0[isol1-1])/ln(10); if isol2>0 then poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_2*ln(activites_solutes_0[isol2-1])/ln(10); poto:=poto+rtfln10/liste_couples_redox[icouple-1].coef_e* liste_couples_redox[icouple-1].coef_Hp*ln(activites_solutes_0[indice_pH-1])/ln(10); Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=poto; except Parser_ordonnees[j-1].Variable[liste_variables_ordonnees[j-1][k-1]] :=NAN; end; 26446: end; {modif version 2.5} memo_resultats_point_particulier.lines.Add(expression_ordonnees_explicites[j-1]+'= '); ordonnee_ok:=true; try ordo:=Parser_ordonnees[j-1].value; except ordonnee_ok:=false; end; ordonnee_ok:=ordonnee_ok and not(isnanorinfinite(ordo)); if ordonnee_ok then memo_resultats_point_particulier.lines.Add(floattostrf(ordo,ffexponent, nombre_chiffres_resultats,nombre_chiffres_resultats)) else memo_resultats_point_particulier.lines.Add(rsNonCalculabl); if abscisse_ok and ordonnee_ok then begin mc.Carreau(absc,ordo,10,2,liste_couleurs_ordonnees[j-1],pmcopy, liste_echelles[j-1]=e_gauche); case liste_styles_ordonnees[j-1] of cercle: mc.cercle(absc,ordo, liste_tailles_ordonnees[j-1],1,liste_couleurs_ordonnees[j-1],pmcopy, liste_echelles[j-1]=e_gauche); disque: mc.disque2(absc,ordo, liste_tailles_ordonnees[j-1],liste_couleurs_ordonnees[j-1],liste_couleurs_ordonnees[j-1], liste_echelles[j-1]=e_gauche); croix: mc.croixx(absc,ordo, liste_tailles_ordonnees[j-1],1,liste_couleurs_ordonnees[j-1],pmcopy, liste_echelles[j-1]=e_gauche); plus: mc.croixp(absc,ordo, liste_tailles_ordonnees[j-1],1,liste_couleurs_ordonnees[j-1],pmcopy, liste_echelles[j-1]=e_gauche); end; end; end; //image1.Refresh; end; initialization {$I unit1.lrs} {$ifndef darwin} application.UpdateFormatSettings:=false; {$endif} DefaultFormatSettings.DecimalSeparator:='.'; etape:=choisir_becher; maxiter_0:=300; nom_solvant_0:= 'H2O'; maxresiduconservationrelatif_0:=1e-13; maxresiduactionmasserelatif_0:=1e-13; volume_becher:=0.01; volume_burette_max:=0.02; nombre_points_calcul:=100; nombre_points_calcul_0:=100; parser_abscisse:=TCalculateurFonction.Create(''); nombre_ordonnees:=0; grille_echelle_droite:=true; grille_echelle_gauche:=true; cadrepresent:=true; titregraphe:=''; coucougrille1:=clblack; coucougrille2:=clblack; coucoufond:=clwhite; coucoucadre:=clblack; epaisseur_cadre:=1; graduationspresentes:=true; cadrepresent:=true; titregraphe:=''; labelx:=''; labely1:=''; labely2:=''; unitex:=''; unitey1:=''; unitey2:=''; legendepresente:=false; empecher_redox_eau:=true; afficher_avertissement_redox:=true; pas_adaptatif:=true; var_log_max:=0.5; point_decimal_export:=false; separateur_csv:=';'; limite_inferieure_pas:=0.01; bouton1pourcent:=0; bouton01pourcent:=0; bouton001pourcent:=0; bouton0001pourcent:=0; mode_script:=false; temporisation_film:=1000; nombre_valeurs_faisceau:=0; mode_faisceau:=false; nombre_points_exp:=0; mode_experience:=false; mode_superposition:=false; if not(directoryexists(repertoire_config_perso)) then try forcedirectories((repertoire_config_perso)); except; end; if not(directoryexists(repertoire_dosage_perso)) then try forcedirectories((repertoire_dosage_perso)); except; end; liste_langues:=tstringlist.create; chemin_po:=AppendPathDelim(repertoire_executable+'languages'); If sysutils.FindFirst(Chemin_po+'dozzzaqueux.*.po',faAnyFile,Search)=0 Then Begin Repeat if (Search.Name='.') or (Search.Name='..') or (Search.Name='') then continue; { liste_langues.Add(copy(Search.name,length(Search.name)-4,2)); } ID_lang:=copy(Search.name,length('dozzzaqueux.')+1, length(Search.Name)-length('dozzzaqueux..po')); if (ID_lang<>'') and (Pos('.',ID_lang)<1) and (liste_langues.IndexOf(ID_lang)<0) then liste_langues.Add(ID_lang); Until sysutils.FindNext(Search)<>0; sysutils.FindClose(Search); End; lang:=''; FallbackLang:=''; nom_ini_file:=repertoire_config_perso+'dozzzaqueux.ini'; if not(fileexists(nom_ini_file)) then begin GetLanguageIDs(lang,FallbackLang); if ((liste_langues.indexof(uppercase(lang))=-1) and (liste_langues.indexof(uppercase(FallbackLang))=-1)) then begin Lang:='fr_FR'; FallbackLang:='fr'; end; goto 1888; end; assignfile(f_ini,(nom_ini_file)); reset(f_ini); readln(f_ini,lang); readln(f_ini,FallbackLang); closefile(f_ini); //GetLanguageIDs(Lang, FallbackLang); // dans l'unité gettext 1888: PODirectory:=IncludeTrailingPathDelimiter( IncludeTrailingPathDelimiter( ExtractFilePath(Application.ExeName))+'languages'); TranslateUnitResourceStrings('LCLStrConsts', PODirectory + 'lclstrconsts.%s.po', Lang, FallbackLang); TranslateUnitResourceStrings('UChaines', PODirectory + 'dozzzaqueux.%s.po', Lang, FallbackLang); nombre_chiffres_constantes:=3; nombre_chiffres_resultats:=3; legendeapartpresente:=true; debye_0:=false; calcul_en_cours:=false; parametre_ligne_commande:=paramcount>=1; creation:=true; {} debut_translation:=false; debut_elargissement:=false; degrade_vertical:=true; largeur_bande_indic:=0.05; abscisse_centre_bande_indic:=0.5; ordonnee_centre_bande_indic:=0.5; x_legende_pourcentage:=100; y_legende_pourcentage:=100; end. dozzaqueux-3.51/unit14.lfm0000750000175000017500000000320313147330070015675 0ustar georgeskgeorgeskobject formavertissement: Tformavertissement Left = 340 Height = 426 Top = 156 Width = 450 ActiveControl = Memo1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = '!!! Attention !!!' ClientHeight = 426 ClientWidth = 450 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object BitBtn1: TBitBtn AnchorSideBottom.Control = CheckBox1 Left = 7 Height = 77 Top = 305 Width = 425 Anchors = [akLeft, akBottom] BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 0 end object CheckBox1: TCheckBox AnchorSideLeft.Control = Owner AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 24 Top = 392 Width = 377 Anchors = [akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Bottom = 10 Caption = 'Ne plus afficher ce message au cours de cette session' OnClick = CheckBox1Click TabOrder = 1 end object Memo1: TMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = BitBtn1 Left = 10 Height = 285 Top = 10 Width = 430 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Lines.Strings = ( '' '' '' '' '' '' '' '' '' ) TabOrder = 2 end end dozzaqueux-3.51/deplace_legende.pas0000750000175000017500000000143213147330070017640 0ustar georgeskgeorgeskunit deplace_legende; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls, Buttons; type { Tdeplace_legende } Tform_deplace_legende = class(TForm) BitBtn1: TBitBtn; TrackBar1: TTrackBar; TrackBar2: TTrackBar; procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { private declarations } public { public declarations } end; var form_deplace_legende: Tform_deplace_legende; implementation {$R *.lfm} { TForm3 } procedure Tform_deplace_legende.FormCreate(Sender: TObject); begin caption:='Déplacement légende'; end; procedure Tform_deplace_legende.BitBtn1Click(Sender: TObject); begin end; end. dozzaqueux-3.51/unit24.lrs0000750000175000017500000000535413147330070015731 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisiechiffressignificatifs','FORMDATA',[ 'TPF0'#28'Tsaisiechiffressignificatifs'#27'saisiechiffressignificatifs'#4'Lef' +'t'#3'P'#1#6'Height'#3#163#0#3'Top'#3#186#0#5'Width'#3#229#2#13'ActiveContro' +'l'#7#9'SpinEdit1'#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'B' +'orderStyle'#7#8'bsSingle'#7'Caption'#6#22'Chiffres significatifs'#12'Client' +'Height'#3#163#0#11'ClientWidth'#3#229#2#8'OnCreate'#7#10'FormCreate'#6'OnSh' +'ow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2.0'#0#6'TLabel'#6'Label1'#22'Anch' +'orSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left' +#2#10#6'Height'#2#20#3'Top'#2#10#5'Width'#3'W'#2#18'BorderSpacing.Left'#2#10 +#17'BorderSpacing.Top'#2#10#7'Caption'#6'XNombre de chiffres affich'#195#169 +'s et gard'#195#169's pour les logarithmes de constantes de r'#195#169'actio' +'n:'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6 +'TLabel'#6'Label2'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Si' +'de'#7#9'asrBottom'#4'Left'#2#8#6'Height'#2#20#3'Top'#2'('#5'Width'#3'H'#1#17 +'BorderSpacing.Top'#2#10#7'Caption'#6'2Nombre de chiffres affich'#195#169's ' +' pour les r'#195#169'sultats:'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor' +#8#10'ParentFont'#8#0#0#9'TSpinEdit'#9'SpinEdit1'#22'AnchorSideLeft.Control' +#7#6'Label1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control' +#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3'k'#2#6'Height'#2 +#28#3'Top'#2#6#5'Width'#2'/'#18'BorderSpacing.Left'#2#10#8'MaxValue'#2#15#8 +'MinValue'#2#1#8'TabOrder'#2#0#5'Value'#2#1#0#0#9'TSpinEdit'#9'SpinEdit2'#22 +'AnchorSideLeft.Control'#7#6'Label2'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrCenter' +#4'Left'#3'Z'#1#6'Height'#2#28#3'Top'#2'$'#5'Width'#2'+'#18'BorderSpacing.Le' +'ft'#2#10#8'MaxValue'#2#15#8'MinValue'#2#1#8'TabOrder'#2#1#5'Value'#2#1#0#0#7 +'TBitBtn'#7'BitBtn1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.' +'Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRig' +'ht.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSid' +'eBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left' +#2#10#6'Height'#2'I'#3'Top'#2'P'#5'Width'#3#209#2#7'Anchors'#11#5'akTop'#6'a' +'kLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#17'BorderSpacin' +'g.Top'#2#20#19'BorderSpacing.Right'#2#10#20'BorderSpacing.Bottom'#2#10#7'Ca' +'ption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#7'OnClic' +'k'#7#12'BitBtn1Click'#8'TabOrder'#2#2#0#0#0 ]); dozzaqueux-3.51/dozzzaqueux.lpr0000750000175000017500000000317113147330070017205 0ustar georgeskgeorgeskprogram dozzzaqueux; {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Interfaces, // this includes the LCL widgetset Forms,Crt { you can add units after this }, Unit1, pivotgauss, gibbs, UnitGaussJordan, Unit2, Unit10, Unit3, Unit_electroneutralite, Unit4, Unit4b, Unit26, Unit26b, Unit5, Unit6, Unit25, Unit29, Unit7, Unit9, Unit8, Unit14, Unit28, Unit19, Unit12, Unit24, Unit11, Unit13, Unit_imp, Printer4Lazarus, MonPNG, MonJPEG, Unit21, Unit23, Unit22, Unit16, Unit18, Unit20, UnitGPL, Unit15, Unit17, UChaines, UnitScaleFont, UnitSaisieTailleImage, MonBitmap, saisie_options_indicateur, UnitCalculateurFonction, charencstreams, Unit_dilution, unitsaisielegende, deplace_legende; {$IFDEF WINDOWS}{$R dozzzaqueux.rc}{$ENDIF} begin Application.Title:='Dozzzaqueux'; Application.Initialize; SplashScreen := TSplashScreen.Create(nil); with SplashScreen do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; SplashScreen.Show; SplashScreen.Update; delay(1000); application.ProcessMessages; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm5, Form5); Application.CreateForm(Tconfigimpression, configimpression); Application.CreateForm(Toptions_indicateur, options_indicateur); Application.CreateForm(Tform_deplace_legende, form_deplace_legende); //delay(2000); // SplashScreen.Close; // SplashScreen.Release; Application.Run; if (SplashScreen<>nil) then begin SplashScreen.Free; SplashScreen:=nil; end; end. dozzaqueux-3.51/unit25.pas0000750000175000017500000000310613147330070015706 0ustar georgeskgeorgeskunit Unit25; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,UChaines,UnitScaleFont,Unit_commune; type { Tsaisie_conductivite } Tsaisie_conductivite = class(TForm) BitBtn1: TBitBtn; Edit1: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; procedure BitBtn1Click(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: char); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisie_conductivite: Tsaisie_conductivite; implementation { Tsaisie_conductivite } procedure Tsaisie_conductivite.BitBtn1Click(Sender: TObject); begin try mystrtofloat(edit1.Text); except modalresult:=mrcancel; end; end; procedure Tsaisie_conductivite.Edit1KeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure Tsaisie_conductivite.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsSaisieConduc; Label1.Caption := rsLaConductivi ; Label3.Caption := rsNeFigurePasD ; Label4.Caption := rs01MSMMol; Label5.Caption := rsRemarqueCett; Label6.Caption := rsSiVousVoulez ; BitBtn1.Caption := rsOK; end; procedure Tsaisie_conductivite.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit25.lrs} end. dozzaqueux-3.51/unit_dilution.pas0000750000175000017500000000630313147330070017450 0ustar georgeskgeorgesk{ «Copyright 2005 Jean-Marie Biansan» This file is part of Dozzzaqueux. Dozzzaqueux is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Dozzzaqueux is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Dozzzaqueux; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA } unit Unit_dilution; {$mode objfpc} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,UChaines,UnitScaleFont,math,LCLType, ExtCtrls,Unit_commune; type { TForm_dilution } TForm_dilution = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; Edit1: TEdit; Label1: TLabel; Label2: TLabel; RadioGroup1: TRadioGroup; procedure BitBtn1Click(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: char); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure RadioGroup1SelectionChanged(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; genre_action=(multiplier_concentrations,ajouter_eau,imposer_volume_total); var Form_dilution: TForm_dilution; facteur:extended; action_dilution:genre_action; implementation { TForm_dilution } procedure TForm_dilution.FormCreate(Sender: TObject); begin encreation:=true; caption:=rsDilution; radiogroup1.Items.Clear; radiogroup1.Items.Add(rsMultiplierTo); radiogroup1.Items.Add(rsAjouterLeVol); radiogroup1.Items.Add(rsPorterLeVolu); radiogroup1.ItemIndex:=0; label2.Caption:=''; end; procedure TForm_dilution.BitBtn1Click(Sender: TObject); begin try facteur:=mystrtofloat(edit1.Text); except application.MessageBox(pchar(rsFormatDeVale4), pchar(rsAttention2), mb_ok); modalresult:=mrretry; exit; end; if facteur<=0 then begin application.MessageBox(pchar(rsCetteQuantit), pchar(rsAttention2), mb_ok); modalresult:=mrretry; exit; end; case radiogroup1.ItemIndex of 0: begin action_dilution:=multiplier_concentrations; end; 1: begin action_dilution:=ajouter_eau; end; 2: begin action_dilution:=imposer_volume_total; end; end; end; procedure TForm_dilution.Edit1KeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm_dilution.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; procedure TForm_dilution.RadioGroup1SelectionChanged(Sender: TObject); begin case RadioGroup1.ItemIndex of 0: label2.Caption:=''; 1: label2.Caption:='mL'; 2: label2.Caption:='mL'; end; end; initialization {$I unit_dilution.lrs} end. dozzaqueux-3.51/uchaines.pas0000750000175000017500000010556513147330070016373 0ustar georgeskgeorgeskunit UChaines; {$mode objfpc}{$H+} interface uses Classes, SysUtils; resourcestring rsindicateurcolore = 'Indicateur coloré'; rsPourLEspCeVe = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe2 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe3 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe4 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe5 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe6 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe7 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe8 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe9 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe10 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe11 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe12 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe13 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe14 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe15 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe16 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe17 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe18 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe19 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe20 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe21 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe22 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe23 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe24 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe25 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe26 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe27 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe28 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe29 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe30 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe31 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe32 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe33 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe34 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe35 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe36 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe37 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe38 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe39 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe40 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe41 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe42 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe43 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe44 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe45 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe46 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe47 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe48 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe49 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe50 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe51 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe52 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe53 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe54 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe55 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe56 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe57 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe58 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe59 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe60 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe61 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe62 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe63 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe64 = 'Pour l''espéce %s, veuillez introduire:'; rsChoixDesRAct = 'Choix des réactifs du bécher...'; rsChoixDesRAct2 = 'Choix des réactifs de la burette...'; rsValidationDe = 'Validation des espéces présentes à l''équilibre...'; rsValidationDe2 = 'Validation des constantes de réaction...'; rsAffichageDes = 'Affichage des résultats bruts...'; rsChoixDesGran = 'Choix des grandeurs à tracer...'; rsVersionDu = 'Version %s du %s'; rsVersionDeLaB = 'Version de la base'; rsSyntaxeIncor = 'Syntaxe incorrecte pour xmin.'; rsAttention = 'Attention'; rsSyntaxeIncor2 = 'Syntaxe incorrecte pour xmax.'; rsLAbscisseMin = 'L''abscisse minimale est trop proche de l''abscisse ' +'maximale...'; rsTracImpossib = 'Tracé impossible car:'; rsSyntaxeIncor3 = 'Syntaxe incorrecte pour ymindroit.'; rsSyntaxeIncor4 = 'Syntaxe incorrecte pour ymaxdroit.'; rsLOrdonnEMini = 'L''ordonnée minimale droite est trop proche de ' +'l''ordonnée maximale droite...'; rsSyntaxeIncor5 = 'Syntaxe incorrecte pour ymingauche.'; rsSyntaxeIncor6 = 'Syntaxe incorrecte pour ymaxgauche.'; rsLOrdonnEMini2 = 'L''ordonnée minimale gauche est trop proche de ' +'l''ordonnée maximale gauche...'; rsLaFormuleDeE = 'La formule de %s est: %s'; rsIdentificati = 'Identification'; rsPasDeReactif = 'pas de reactif ayant cette formule brute trouve'; rsSyntaxeIncor7 = 'Syntaxe incorrecte pour le volume'; rsMaisEuhhhh = 'Mais euhhhh !'; rsRPonseNonTro = 'Réponse non trouvée au terme des %s itérations.'; rsVolumeTotalM = 'Volume total: %smL'; rs = '***************************************'; rsConcentratio = 'Concentrations des espéces en solution:'; rsTracesValeur = ': traces (valeur non significative)'; rsActivitSDesE = 'Activités des espéces en solution:'; rs2 = '************************************'; rsNombreDeMole = 'Nombre de moles pour les précipités:'; rsABSENT = 'ABSENT'; rsTracesValeur2 = ' traces (valeur non significative) '; rsDRivEsVDesCo = 'Dérivées /V des concentrations des espéces en solution:'; rsDRivEsVDesAc = 'Dérivées /V des activités des espéces en solution:'; rs3 = '*****************************************************'; rsDRivEsVDesNo = 'Dérivées /V des nombres de moles pour les précipités:'; rs4 = '********************'; rsGrandeursCal = 'Grandeurs calculées:'; rsNonCalculabl = 'non calculable.'; rsVousAvezDJEn = 'Vous avez déjà entré ce réactif !'; rsQueNenni = 'Que nenni !'; rsSupprimer = 'Supprimer'; rsCouleur = 'Couleur'; rsDroite = 'Droite'; rsGauche = 'Gauche'; rsNON = 'NON'; rsOUI = 'OUI'; rsSupprimerCet = 'Supprimer cette grandeur'; rsValeurDeConc = 'Valeur de concentration de syntaxe incorrecte'; rsHLas = 'Hélas...'; rsUneSeuleSimu = 'Une seule simulation effectuée, rien à superposer !'; rsLePassageEnM = 'Le passage en mode superposition fait sortir du mode ' +'faisceau. Voulez-vous continuer ?'; rsUnNombreDeMo = 'Un nombre de moles ne peut être négatif! Pour éliminer ' +'cette espéce, cliquez sur %sSupprimer%s.'; rsSyntaxeIllGa = 'Syntaxe illégale pour un des nombres de moles !'; rsNeutraliserL = 'neutraliser la charge automatiquement en ajoutant des K[+] '; rsNeutraliserL2 = 'neutraliser la charge automatiquement en ajoutant des Na[+] '; rsNeutraliserL3 = 'neutraliser la charge automatiquement en ajoutant des Cl[-] '; rsLaValeurDeLa = 'La valeur de la température n''a pas une syntaxe correcte'; rsLaTempRature = 'La température doit être strictement positive'; rsMEnfin = 'M''enfin...'; rsLaValeurDuVo = 'La valeur du volume n''a pas une syntaxe correcte'; rsLeVolumeDoit = 'Le volume doit être strictement positif'; rsMEnfin2 = 'M''enfin...'; rsConsultezLeF = 'Consultez le fichier dozzzaqueux.html dans le répertoire ' +'Aide'; rsPourLAide = 'Pour l''aide,'; rsUnNombreDeMo2 = 'Un nombre de moles ne peut être négatif! Pour é' +'liminer cette espéce, cliquez sur %sSupprimer%s.'; rsLaValeurDuVo2 = 'La valeur du volume n''a pas une syntaxe correcte'; rsMEnfin3 = 'M''enfin...'; rsDosageDeML = 'Dosage de %smL'; rsDe = '%s de '; rsDEauPure = '%s d''eau pure'; rsParML = '%s par %smL '; rsDEauPure2 = '%s d''eau pure'; rsEquationDeRA = 'Equation de réaction'; rsLaValeurDUnD = 'La valeur d''un des log K n''a pas une syntaxe correcte'; rsConcMolL = 'Conc.(mol/L)'; rsActivit = 'Activité'; rsNbeDeMoles = 'Nbe de moles'; rsDCDVMolL = 'dC/dV (mol/L²)'; rsDaDV1L = 'da/dV (1/L)'; rsDNDVMolL = 'dN/dV (mol/L)'; rsVolumeVers = 'Volume versé'; rsML = '(mL)'; rsTraces = 'Traces'; rsArrTerLesCal = 'Arrêter les calculs ?'; rsDemandeDArrT = 'Demande d''arrêt'; rsImpossibleDe = 'Impossible de créér ce fichier !'; rsConcMolL2 = '%sConc.(mol/L)'; rsQuantitMol = '%sQuantité (mol)'; rsActivit2 = '%sActivité'; rsDC_dVMolL = '%sdC_dV(mol/L²)'; rsDN_dVMolL = '%sdN_dV (mol/L)'; rsDa_dV1L = '%sda_dV (1/L)'; rsImpossibleDE2 = 'Impossible d''effectuer le tracé: vous n''avez pas dé' +'fini de grandeur en ordonnée !'; rsImpossibleDE3 = 'Impossible d''effectuer le tracé: vous n''avez pas dé' +'fini de grandeur en abscisse !'; rsAbscisseOrdo = '%s Abscisse: %s Ordonnées: '; rsImpossibleDE4 = 'Impossible d''enregistrer: vous devez être au niveau %' +'sTracé des courbes%s'; rsEcraserLeFic = 'Ecraser le fichier existant ?'; rsCeNomDeFichi = 'Ce nom de fichier existe déjà'; rsFichierImpos = 'Fichier impossible à ouvrir'; rsPasDeDonnEsS = 'Pas de données sur la ligne spécifiée'; rsSParateurSpC = 'Séparateur spécifié introuvable à la ligne %s'; rsFormatValeur = 'Format valeur numérique incorrect à la ligne %s'; rsFichierCorro = 'Fichier corrompu...'; rsHLas2 = 'Hélas'; rsIdentifiant = 'Identifiant'; rsConcentratio2 = 'Concentration (mol/L)'; rsExpression = 'Expression'; rsStylePoints = 'Style points'; rsTaillePoints = 'Taille points'; rsJoindrePoint = 'Joindre points'; rsEpaisseurTra = 'Epaisseur trait'; rsEchelle = 'Echelle'; rsImpossibleDe5 = 'Impossible de lire ce fichier !'; rsLePassageEnM2 = 'Le passage en mode faisceau désactive la superposition ' +'de simulation. Etes-vous sûr de vouloir continuer ?'; rsAttention2 = 'Attention !'; rsVolumeBCherM = 'Volume bécher (mL)'; rsVolumeMaxima = 'Volume maximal burette (mL)'; rsBCherNombreD = '[Bécher] %s (nombre de moles pour 1L)'; rsBuretteNombr = '[Burette] %s (nombre de moles pour 1L)'; rsLogkPour = 'logk pour %s'; rsLAbscisseMin2 = 'L''abscisse minimale est trop proche de l''abscisse ' +'maximale...'; rsLOrdonnEMini3 = 'L''ordonnée minimale droite est trop proche de ' +'l''ordonnée maximale droite...'; rsLOrdonnEMini4 = 'L''ordonnée minimale gauche est trop proche de ' +'l''ordonnée maximale gauche...'; rsConductivit0 = 'Conductivité (0,1 mS.m²/mol)'; rsSynonyme = 'Synonyme'; rsFormule = 'Formule'; rsMGMol = 'M (g/mol)'; rsY = 'y'; rsDozzzaqueux = 'Dozzzaqueux'; rsAfficheBase = 'affiche base'; rsToutCocher = 'Tout cocher'; rsChoixDesRAct3 = 'Choix des réactifs:bécher'; rsBCher = 'Bécher'; rsVider = 'Vider'; rsX10 = 'x10'; rs10 = '/10'; rsVolumeInitia = 'Volume initial='; rsML2 = 'mL'; rsTempRature = 'Température='; rsK = 'K'; rsRActifsChois = 'Réactifs choisis:'; rsBaseDeRActif = 'Base de réactifs (clic en tête de colonne pour modifier l''ordre de tri):'; rsRechercherUn = 'Rechercher une espéce'; rsPourSLection = 'Pour sélectionner un réactif, faites un clic simple sur ' +'sa ligne.'; rsInorganiques = 'Inorganiques'; rsCationsSimpl = 'Cations simples'; rsAnionsSimple = 'Anions simples'; rsAcidesEtBase = 'Acides et bases'; rsComplexesEtD = 'Complexes et divers'; rsIons = 'Ions'; rsAtomesEtMolC = 'Atomes et molécules'; rsSolides = 'Solides'; rsOrganiques = 'Organiques'; rsAcidesEtBase2 = 'Acides et bases organiques'; rsComplexesLig = 'Complexes à ligands organiques, et divers'; rsBenzNeEtDRiv = 'Benzéne et dérivés'; rsAminesEtAmid = 'Amines et amides'; rsAlcools = 'Alcools'; rsAlcanesAlcNe = 'Alcanes, alcénes, alcynes'; rsAmminoacides = 'Amminoacides'; rsAldHydesEtCT = 'Aldéhydes et cétones'; rsValiderEtPas = 'Valider et passer à la burette >>>>>'; rsChoixDesRAct4 = 'Choix des réactifs:burette'; rsBurette = 'Burette'; rsVolumeMaxima2 = 'Volume maximal à verser='; rsPourSLection2 = 'Pour sélectionner un réactif, faites un clic simple ' +'sur sa ligne.'; rsValiderEtPas2 = 'Valider et passer au recensement >>>>>'; rsEspCesPrSent = 'Espéces présentes'; rsVoiciLaListe = 'Voici la liste des espéces susceptibles d''être pré' +'sentes à l''équilibre.'; rsSiVousPensez = 'Si vous pensez que certaines ne seront pas présentes (' +'blocage cinétique par exemple), il suffit de les décocher.'; rsToutDCocher = 'Tout décocher'; rsPourObtenirL = 'Pour obtenir la formule brute d''une espéce, sé' +'lectionnez la puis cliquez sur le bouton ci-contre:'; rsFormuleBrute = 'Formule brute ?'; rsValiderEtPas3 = 'Valider et passer aux constantes de réaction >>>>>'; rsRActionsEtCo = 'Réactions et constantes'; rsVoiciUnEnsem = 'Voici un ensemble d''équations de réactions liné' +'airement indépendantes entre elles décrivant le système chimique.'; rsVousPouvezMo = 'Vous pouvez modifier les logarithmes des constantes d''é' +'quilibre si vous pensez en avoir de meilleures estimations.'; rsValiderEtLan = 'Valider et lancer les calculs>>>>>>'; rsRSultats = 'Résultats'; rsChoisirLesCo = 'Choisir les courbes à tracer >>>>>>>'; rsSauvegarderL = 'Sauvegarder les résultats numériques pour une ' +'exploitation avec tableur ou avec Régressi'; rsExportRSulta = 'Export résultats bruts'; rsChoixDesCour = 'Choix des courbes'; rsXmin = 'Xmin='; rsXmax = 'Xmax='; rsYmax = 'Ymax='; rsYmin = 'Ymin='; rsToutSupprime = 'Tout supprimer'; rsAjouterUneGr = 'Ajouter une grandeur en ordonnée'; rsDFinirLaGran = 'Définir la grandeur portée en abscisse'; rsEchelleHoriz = 'Echelle horizontale'; rsAutomatique = 'Automatique'; rsManuelle = 'Manuelle'; rsEchelleVerti = 'Echelle verticale droite'; rsEchelleVerti2 = 'Echelle verticale gauche'; rsValiderEtTra = 'Valider et tracer les courbes >>>>>'; rsExporterLesR = 'Exporter les résultats numériques pour une exploitation ' +'avec tableur ou Régressi'; rsTracDesCourb = 'Tracé des courbes'; rsFermer = 'Fermer'; rsV = 'V='; rsCalculer = 'Calculer'; rsAjouterModif = 'Ajouter/modifier titre'; rsTitre = 'Titre'; rsAjouterModif2 = 'Ajouter/modifier unité et labels des axes'; rsUnitSLabels = 'Unités/labels'; rsModifierCoul = 'Modifier couleurs'; rsGrilleChelle = 'Grille échelle gauche'; rsGrilleChelle2 = 'Grille échelle droite'; rsGraduations = 'Graduations'; rsAxes = 'Axes'; rsLGende = 'Légende'; rsActiverDSact = 'Activer/désactiver l''affichage du fichier expérimental'; rsExp = 'Exp.'; rsActiverDSact2 = 'Activer/désactiver la superposition'; rsSuperp = 'Superp.'; rsExportRSulta2 = 'Export résultats'; rsImprimerLeGr = 'Imprimer le graphe'; rsImprimer = 'Imprimer'; rsEnregistrerL = 'Enregistrer le graphe sur le disque comme image'; rsExportGraphe = 'Export graphe'; rsCopierDansLe = 'Copier dans le presse papier'; rsCopier = 'Copier'; rsPointParticu = 'Point particulier'; rsEntrerSortir = 'Entrer/sortir du mode faisceau, qui permet de faire ' +'varier un des paramètres et d''obtenir le faisceau de courbes ' +'correspondant'; rsFaisceau = 'Faisceau'; rsSuperposer = 'Superposer'; rs1DuVolumeMax = '+-1% du volume maximum versable'; rs01DuVolumeMa = '+- 0,1% du volume maximum versable'; rs001DuVolumeM = '+- 0,01% du volume maximum versable'; rs0001DuVolume = '+- 0,001% du volume maximum versable'; rsFichier = 'Fichier'; rsNouvelleSimu = 'Nouvelle simulation'; rsEnregistrerL2 = 'Enregistrer le film de la simulation'; rsJouerUnFilmD = 'Jouer un film de simulation'; rsOptions = 'Options'; rsNombreDePoin = 'Nombre de points de calcul'; rsAutoriserRAc = 'Autoriser réactions redox'; rsUtiliserDeby = 'Utiliser Debye et Hückel'; rsCalculDesDRi = 'Calcul des dérivées'; rsExportTableu = 'Export tableur texte'; rsTemporisatio = 'Temporisation film'; rsChiffresSign = 'Chiffres significatifs'; rsAide = 'Aide'; rsAideDozzzaqu = 'Aide Dozzzaqueux'; rsLicenseGPL = 'License GPL'; rsAPropos = 'A propos...'; rsFilmSimulati = 'Film simulation Dozzzaqueux|*.doz'; rsTableurTexte = 'Tableur texte (*.txt;*.csv)|*.txt;*.csv|Régressi (*.' +'rw3)|*.rw3'; rsEnregistrer = 'Enregistrer'; rsCsv = '.csv'; rsTableurTexte2 = 'Tableur texte (*.csv;*.txt)|*.csv;*.txt|Régressi (*.' +'rw3)|*.rw3'; rsParFomuleBru = 'Par fomule brute'; rsParIdentifia = 'Par identifiant ou synonyme'; rsParFormuleBr = 'Par formule brute'; rsExpRienceFic = 'Expérience (fichier format tableau texte ou Regressi)'; rsUneOuPlusieu = 'Une ou plusieurs des simulations faites depuis le dernier ' +'lancement de Dozzzaqueux'; rsElectroneutr = 'Electroneutralité'; rsLaChargeLect = 'La charge électrique totale est non nulle. Vous pouvez:'; rsAuChoix = 'au choix:'; rsAjouterOuEnl = 'ajouter ou enlever des espèces '; rsPasserOutreA = 'passer outre (attention: calculs non garantis !!) '; rsConfiguratio = 'Configuration de la page pour l''impression'; rsPosition = 'Position'; rsHorizontale = 'Horizontale'; rsCentr = 'Centré'; rsVerticale = 'Verticale'; rsHaut = 'Haut'; rsBas = 'Bas'; rsNombreDeCopi = 'Nombre de copies'; rsNombre = 'Nombre:'; rsTailleEnDeLa = 'Taille (en % de la page)'; rsHorizontalem = 'Horizontalement'; rsVerticalemen = 'Verticalement'; rsOrientation = 'Orientation'; rsPortrait = 'Portrait'; rsPaysage = 'Paysage'; rsAnnuler = 'Annuler'; rsOK = '&OK'; rsModification = 'Modification concentration'; rsConcentratio3 = 'Concentration molaire:'; rsMolL = 'mol/L'; rsTitreDuGraph = 'Titre du graphe'; rsTitreDuGraph2 = 'Titre du graphe:'; rsPolice = 'Police'; rsCouleurs = 'Couleurs'; rsCouleurGrill = 'Couleur grille échelle gauche:'; rsCouleurGrill2 = 'Couleur grille échelle droite:'; rsCouleurGradu = 'Couleur graduations:'; rsCouleurDuFon = 'Couleur du fond:'; rsCouleurDesAx = 'Couleur des axes:'; rsUnitSEtLabel = 'Unités et labels des axes:'; rsUnitAfficher = 'Unité à afficher sur l''axe des abscisses:'; rsLabelAffiche = 'Label à afficher sur l''axe des abscisses:'; rsUnitAfficher2 = 'Unité à afficher sur l''axe gauche des ordonnées:'; rsLabelAffiche2 = 'Label à afficher sur l''axe gauche des ordonnées:'; rsUnitAfficher3 = 'Unité à afficher sur l''axe droit des ordonnées:'; rsLabelAffiche3 = 'Label à afficher sur l''axe droit des ordonnées:'; rsAttention3 = '!!! Attention !!!'; rsNePlusAffich = 'Ne plus afficher ce message au cours de cette session'; rsAttentionAut = 'Attention: autoriser les réactions rédox peut ' +'conduire à l''apparition d''un grand'; rsNombreDEspCe = 'nombre d''espéces.'; rsCeciPeutDonn = 'Ceci peut donner des calculs très longs.'; rsDePlusEtSurt = 'De plus et surtout, expérimentalement, ces espéces ' +'n''apparaissent pas '; rsNCessairemen = 'nécessairement, en raison par exemple de blocages ciné' +'tiques (les'; rsPrVisisionsF = 'prévisisions fournies par le présent logiciel sont ' +'purement thermodynamiques).'; rs5 = ' '; rsExaminezDonc = 'Examinez donc avec soin les espéces qui figurent dans ' +'l''onglet'; rsEspCesPrSent2 = '%sEspéces présentes%s, et décochez en éventuellement.'; rsEspCesPrSent3 = ', et décochez en éventuellement.'; rsAProposDeDoz = 'A propos de...Dozzzaqueux'; rsOptionsPourL = 'Options pour l''export au format tableur texte'; rsSParateurDeC = 'Séparateur de colonnes:'; rsPointVirgule = 'Point virgule'; rsEspace = 'Espace'; rsSParateurDCi = 'Séparateur décimal'; rsVirguleRecom = 'Virgule (recommandé pour OpenOffice/Staroffice)'; rsPointRecomma = 'Point (recommandé pour Excel)'; rsSplashscreen = 'splashscreen'; rsLogicielLibr = 'Logiciel libre et gratuit de simulation de courbes de ' +'dosage'; rsLGendePart = 'Légende à part'; rsVersion30Cod = 'Version 3.51 du 13/07/2017, codée en Lazarus'; rsParJeanMarie = 'Par Jean-Marie Biansan, 2005 à 2017'; rsScript = 'script'; rsNeTouchezRie = 'Ne touchez à rien, l''onglet suivant va bientôt être ' +'affiché.'; rsAprSLAfficha = 'Après l''affichage des courbes, vous pourrez revisiter ' +'tous les onglets.'; rsPasDeGrandeu = 'Pas de grandeur choisie...'; rsSyntaxeDeVal = 'Syntaxe de valeur numérique incorrecte...'; rsValeurDePasN = 'Valeur de pas nulle sans intérêt...'; rsCelaConduira = 'Cela conduirait à une concentration ou un volume né' +'gatif...'; rsValeurDePas0 = 'Valeur de pas <=0 ou =1 sans intérêt...'; rsConcentratio4 = 'Concentration négative impossible...'; rsFaisceauDeCo = 'Faisceau de courbes'; rsGrandeurFair = 'Grandeur à faire varier'; rsPourObtenirL2 = ' pour obtenir le faisceau:'; rs1ReValeur = '1ère valeur:'; rsIncrMent = 'Incrément:'; rsPas = 'Pas:'; rsLGendeQuiApp = 'Légende qui apparaîtra sur le graphe pour cette grandeur:'; rsDPlacerLGend='Déplacer lég.'; rsLesCouleursE = 'Les couleurs en dégradé des courbes tendront vers:'; rsTypeDeSuiteD = 'Type de suite de valeurs'; rsArithmTique = 'Arithmétique'; rsGOmTrique = 'Géométrique'; rsTemporisatio2 = 'Temporisation'; rsLorsDeLExCut = 'Lors de l''exécution d''un %sfilm%s de simulation, ' +'l''affichage de chaque écran doit durer:'; rsMs = 'ms'; rsTypeDeLaDonn = 'Type de la donnée de la colonne %s'; rsChargementFi = 'Chargement fichier expérience'; rsVoiciLes4Pre = 'Voici les 4 premières lignes du fichier:'; rsVeuillezComp = 'Veuillez compléter les informations suivantes:'; rsLigneLaquell = 'Ligne à laquelle commencent les données:'; rsNombreDeDonn = 'Nombre de données par ligne:'; rsColonneDontL = 'Colonne dont la grandeur sera considérée comme abscisse:'; rsValeursNumRi = 'Valeurs numériques séparées par:'; rsUnOuPlusieur = 'Un ou plusieurs espaces'; rsRecalculerAu = 'Recalculer automatiquement les échelles verticales'; rsTypeDeDonnE = 'Type de donnée'; rsTailleDesPoi = 'Taille des points:'; rsEpaisseurTra2 = 'Epaisseur trait:'; rsCouleur2 = 'Couleur:'; rsNom = 'Nom:'; rsEchelle2 = 'Echelle:'; rsJoindreLesPo = 'Joindre les points'; rsNon2 = 'Non'; rsOui2 = 'Oui'; rsReprSentEPar = 'Représentée par:'; rsDisque = 'Disque'; rsCroixX = 'Croix (x)'; rsCercle = 'Cercle'; rsCroix = 'Croix (+)'; rsNePasReprSen = 'Ne pas représenter cette grandeur'; rsTypeDeLaDonn2 = 'Type de la donnée %s'; rsGrandeursPrS = 'Grandeurs présentes dans le fichier:'; rsIndiceDeLaLi = 'Indice de la ligne de la grandeur qui sera l''abscisse:'; rsNombreDeChif = 'Nombre de chiffres affichés et gardés pour les ' +'logarithmes de constantes de réaction:'; rsNombreDeChif2 = 'Nombre de chiffres affichés pour les résultats:'; rsSaisieConduc = 'Saisie conductivité'; rsLaConductivi = 'La conductivité de l''espèce'; rsNeFigurePasD = 'ne figure pas dans ma base de données. Vous pouvez ' +'saisir la valeur ci-dessous:'; rs01MSMMol = '0,1 mS.m²/mol'; rsRemarqueCett = 'Remarque: cette modification ne perdurera que durant ' +'cette session de Dozzzaqueux..'; rsSiVousVoulez = 'Si vous voulez la rendre définitive, modifiez cette espè' +'ce dans la base avec Modifbase.'; rsAucuneEspCeA = 'Aucune espéce ayant cette formule n''a été trouvée ' +'dans la base.'; rsPourLEspCeVe65 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe66 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe67 = 'Pour l''espéce %s, veuillez introduire:'; rsRechercheDan = 'Recherche dans la base'; rsEntrezToutOu = 'Entrez tout ou partie de l''indentifiant ou du synonyme'; rsExemplesThan = ' Exemples: éthanoïque Acide pentanedioïque '; rsPourSLection3 = 'Pour sélectionner un réactif, cliquez sur la ligne ' +'correspondante.'; rsOK2 = 'OK'; rsAucuneEspCeA2 = 'Aucune espéce ayant cette formule n''a été trouvée ' +'dans la base.'; rsPourLEspCeVe68 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe69 = 'Pour l''espéce %s, veuillez introduire:'; rsEntrezToutOu2 = 'Entrez tout ou partie de l''indentifiant ou du synonyme'; rsPourSLection4 = 'Pour sélectionner un réactif, cliquez sur la ligne ' +'correspondante.'; rsListeDesSimu = 'Liste des simulations superposables'; rsLeCalculDeLa = 'Le calcul de la dérivée numérique en V0 se fait par: (' +'f(V0+h)-f(V0-h))/(2h)'; rsChoixDeHVolu = 'Choix de h: volume burette/'; rsActiverLeCal = 'Activer le calcul des dérivées par rapport au volume'; rsFormatDeVale = 'Format de valeur numérique invalide pour le nombre de ' +'moles!'; rsLeNombreDeMo = 'Le nombre de moles doit être strictement positif !'; rsFormatDeVale2 = 'Format de valeur numérique invalide pour la masse !'; rsLaMasseDoitT = 'La masse doit être strictement positive !'; rsFormatDeVale3 = 'Format de valeur numérique invalide pour le nombre de ' +'moles!'; rsPasDeValeurE = 'Pas de valeur entrée! Utilisez %sAnnuler%s si vous ' +'renoncez !'; rsNombreDeMole2 = 'Nombre de moles ?'; rsMol = 'mol'; rsG = 'g'; rsLaQuantitDeM = 'la quantité de matière:'; rsOUBIEN = 'OU BIEN'; rsLaMasse = 'la masse:'; rsLaQuantitDeM2 = 'concentration (molaire):'; rsLaMasseParLD = 'concentration massique:'; rsGL = 'g/L'; rsLaSyntaxeDeV = 'La syntaxe de votre formule brute n''est pas correcte.'; rsAucuneEspCeA3 = 'Aucune espéce ayant cette formule n''a été trouvée ' +'dans la base.'; rsFormuleBrute2 = 'Formule brute'; rsPourLEspCeVe70 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe71 = 'Pour l''espéce %s, veuillez introduire:'; rsLaSyntaxeDeV2 = 'La syntaxe de votre formule brute n''est pas correcte.'; rsAucuneEspCeA4 = 'Aucune espéce ayant cette formule n''a été trouvée ' +'dans la base.'; rsPourLEspCeVe72 = 'Pour l''espéce %s, veuillez introduire:'; rsPourLEspCeVe73 = 'Pour l''espéce %s, veuillez introduire:'; rsEntrezLaForm = 'Entrez la formule brute. Puis cliquez sur %sOK%s. Puis sé' +'lectionnez le réactif dans la liste ci-dessous.'; rsMaisPasAGSO4 = ' mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(' +'NH3)4 (pas de parenthéses)'; rsExemplesBaSO = ' Exemples: BaSO4 Ag[+] CrO4[2-] FeO3' +'H3[3+] '; rsPourSLection5 = 'Pour sélectionner un réactif, cliquez sur la ligne ' +'correspondante.'; rsTypeDeCompar = 'Type de comparaison'; rsExacte = 'Exacte'; rsMMesAtomesEn = 'Mêmes atomes, en nombres inférieurs ou égaux'; rsMMesAtomesEn2 = 'Mêmes atomes, en nombre supérieurs ou égaux'; rsMMesAtomesEn3 = 'Mêmes atomes, en nombre quelconques'; rsFermer2 = '&Fermer'; rsSyntaxeIncor8 = 'Syntaxe incorrecte.'; rsSyntaxeIncor9 = 'Syntaxe incorrecte pour la conductivité'; rsVVolumeVersE = 'V: volume versé (en mL)'; rsV0VolumeDeLa = 'V0: volume de la solution présente initialement dans le ' +'bécher (en mL)'; rsVtotalSommeD = 'Vtotal: somme des deux précédents (en mL)'; rsPHLogActivit = 'pH: -log(activité(H+))'; rsPOHLogActivi = 'pOH: -log(activité(OH-))'; rsCConcentrati = 'c%s: concentration en %s (en mol/L)'; rsNQuantitDeMa = 'n%s: quantité de matière du solide %s (en mol)'; rsPcCologarith = 'pc%s: cologarithme du rapport concentration en %s /(1 mol/' +'L)'; rsPnCologarith = 'pn%s: cologarithme du rapport quantité de matière du ' +'solide %s /(1 mol)'; rsAActivitDe = 'a%s: activité de %s'; rsPaCologarith = 'pa%s: cologarithme de l''activité de %s'; rsGammaConduct = 'gamma: conductivité de la solution en S/m'; rsDpH_dVDRivED = 'dpH_dV: dérivée du pH par rapport au volume versé '; rsDpOH_dVDRivE = 'dpOH_dV: dérivée du pOH par rapport au volume versé'; rsDc_dVDRivEPa = 'dc%s_dV: dérivée par rapport au volume versé de la ' +'concentration en %s (en mol/L²)'; rsDn_dVDRivEPa = 'dn%s_dV: dérivée par rapport au volume versé du nombre ' +'de moles du solide %s (en 1/L)'; rsDpc_dVDRivEP = 'dpc%s_dV: dérivée par rapport au volume versé du pc ' +'de %s (en 1/L)'; rsDpn_dVDRivEP = 'dpn%s_dV: dérivée par rapport au volume versé du pn ' +'de %s (en 1/L)'; rsDa_dVDRivEPa = 'da%s_dV: dérivée par rapport au volume versé de ' +'l''activité de %s (en 1/L)'; rsDpa_dVDRivEP = 'dpa%s_dV: dérivée par rapport au volume versé du ' +'cologarithme de l''activité de %s (en 1/L)'; rsPoPotentielR = 'Po%s: potentiel redox du couple %s / %s'; rsECSPotentiel = 'ECS: potentiel électrode de référence au calomel ' +'saturé=0,246V'; rsESMPotentiel = 'ESM: potentiel électrode de référence au sulfate ' +'mercureux=0,6513V'; rsOpRateurs = 'Opérateurs'; rsSomme = '+ : somme'; rsDiffRence = '- : différence'; rsProduit = '* : produit'; rsQuotient = '/ : quotient'; rsLVationLaPui = '^ : élévation à la puissance'; rsFonctions = 'Fonctions:'; rsLog10Logarit = 'log10() ou log(): logarithme décimal'; rsLnLogarithme = 'ln() : logarithme népérien'; rsExpExponenti = 'exp() : exponentielle'; rsCosCosinus = 'cos() : cosinus'; rsSinSinus = 'sin() : sinus'; rsTanTangente = 'tan() : tangente'; rsCotanCotange = 'cotan() : cotangente'; rsArctanArctan = 'arctan() : arctangente'; rsCoshCosinusH = 'cosh() : cosinus hyperbolique'; rsSinhSinusHyp = 'sinh() : sinus hyperbolique'; rsSqrtRacineCa = 'sqrt() : racine carrée'; rsSqrCarr = 'sqr() : carré'; rsAbsValeurAbs = 'abs() : valeur absolue'; rsTruncPartieE = 'trunc() : partie entière'; rsHeavHeavisid = 'heav() : Heaviside (1 si argument>0, 0 sinon)'; rsSignSigne1Si = 'sign() : signe: 1 si argument >0, 0 pour 0, -1 sinon'; rsPower1erArgu = 'power(,) : 1er argument à la puissance second argument'; rsMinMinimumDe = 'min(,) : minimum des 2 arguments'; rsMaxMaximumDe = 'max(,) : maximum des 2 arguments'; rsInf1Si1erArg = 'inf(,) : 1 si 1er arg. <2nd, 0 sinon'; rsInfe1Si1erAr = 'infe(,) : 1 si 1er arg. <=2nd, 0 sinon'; rsSup1Si1erArg = 'sup(,) : 1 si 1er arg. >2nd, 0 sinon'; rsSupe1Si1erAr = 'supe(,) : 1 si 1er arg. >=2nd, 0 sinon'; rsNaninfNANSi1 = 'naninf(,) : NAN si 1er arg. <2nd, 0 sinon'; rsNansupNANSi1 = 'nansup(,) : NAN si 1er arg. >2nd, 0 sinon'; rsNaninNANSiAb = 'nanin(,) : NAN si abs(1er arg.) 1) then begin inter:=10; for i:=1 to p-1 do inter:=inter*10; result:=inter; end else if (p=-1) then begin result:=1/10; end; end; function partieentiere(x:float):float; begin if x>=0 then begin partieentiere:=int(x); exit; end; if frac(x)=0 then begin partieentiere:=x; exit; end; {cas ou x est <0 et non entier} partieentiere:=int(x)-1; end; function TMyimprimante.MonRectangle(x1,y1,x2,y2:extended; couleur:tcolor; gauche:boolean):boolean; var ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; xi1,yi1,xi2,yi2:integer; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; if xmax=xmin then exit; if ymax=ymin then exit; old_pen_color:=imprimante.canvas.pen.color; old_pen_style:=imprimante.canvas.pen.style; old_pen_width:=imprimante.canvas.pen.width; old_pen_mode:=imprimante.canvas.pen.mode; old_brush_style:=imprimante.canvas.brush.style; old_brush_color:=imprimante.canvas.Brush.Color; imprimante.canvas.pen.color:=couleur; imprimante.canvas.pen.Style:=pssolid; imprimante.canvas.pen.mode:=pmcopy; imprimante.canvas.Brush.Color:=couleur; imprimante.canvas.Brush.Style:=bssolid; self.invconvert(xi1,yi1,x1,y1,gauche); self.invconvert(xi2,yi2,x2,y2,gauche); if xi1>xi2 then echange_entiers(xi1,xi2); if yi1>yi2 then echange_entiers(yi1,yi2); imprimante.canvas.Rectangle(xi1,yi1,xi2,yi2); imprimante.canvas.pen.color:=old_pen_color; imprimante.canvas.pen.style:=old_pen_style; imprimante.canvas.pen.width:=old_pen_width; imprimante.canvas.pen.mode:=old_pen_mode; imprimante.canvas.brush.style:=old_brush_style; imprimante.canvas.brush.Color:=old_brush_color; end; function TMyimprimante.disque2(x,y:float; rayon:integer; couleurbord,couleurf:tcolor;gauche:boolean): boolean; var x1,y1,r1x,r1y:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin disque2:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; if rayon=0 then exit; old_pen_color:=imprimante.canvas.pen.color; old_pen_style:=imprimante.canvas.pen.style; old_pen_width:=imprimante.canvas.pen.width; old_pen_mode:=imprimante.canvas.pen.mode; old_brush_style:=imprimante.canvas.brush.style; old_brush_color:=imprimante.canvas.brush.color; imprimante.canvas.pen.color:=couleurbord; imprimante.canvas.pen.style:=pssolid; imprimante.canvas.pen.width:=1; imprimante.canvas.pen.mode:=pmcopy; disque2:=true; imprimante.canvas.brush.style:=bssolid; imprimante.canvas.brush.color:=couleurf; imprimante.canvas.ellipse(x1-ceil(facteur_dilatation_x*rayon),y1-ceil(facteur_dilatation_y*rayon), x1+ceil(facteur_dilatation_x*rayon), y1+ceil(facteur_dilatation_y*rayon)); imprimante.canvas.brush.color:=clwhite; imprimante.canvas.pen.color:=old_pen_color; imprimante.canvas.pen.style:=old_pen_style; imprimante.canvas.pen.width:=old_pen_width; imprimante.canvas.pen.mode:=old_pen_mode; imprimante.canvas.brush.style:=old_brush_style; imprimante.canvas.brush.color:=old_brush_color; end; function TMyimprimante.Carreau(x,y:float; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin carreau:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=imprimante.canvas.pen.color; old_pen_style:=imprimante.canvas.pen.style; old_pen_width:=imprimante.canvas.pen.width; old_pen_mode:=imprimante.canvas.pen.mode; old_brush_style:=imprimante.canvas.brush.style; imprimante.canvas.pen.width:=epaisseur; imprimante.canvas.pen.mode:=penmod; imprimante.canvas.pen.style:=pssolid; imprimante.canvas.pen.color:=couleur; imprimante.canvas.moveto(x1,y1+demi_diagonale); imprimante.canvas.lineto(x1+demi_diagonale,y1); imprimante.canvas.lineto(x1,y1-demi_diagonale); imprimante.canvas.lineto(x1-demi_diagonale,y1); imprimante.canvas.lineto(x1,y1+demi_diagonale); carreau:=true; imprimante.canvas.pen.color:=old_pen_color; imprimante.canvas.pen.style:=old_pen_style; imprimante.canvas.pen.width:=old_pen_width; imprimante.canvas.pen.mode:=old_pen_mode; imprimante.canvas.brush.style:=old_brush_style; end; procedure echange_entiers(var a,b:integer); var c:integer; begin c:=a; a:=b; b:=c; end; procedure echange(var a,b:float); var c:float; begin c:=a; a:=b; b:=c; end; procedure TMyimprimante.traceconique(theta0,theta1,theta2,fx,fy,excentricite,parametre:float; couleur:tcolor;gauche:boolean); var pas,theta,r,ract,thetaact,nx,ny,ttai:float; nombrepas,i:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; nombrepas:=1000; pas:=(theta2-theta1)/nombrepas; thetaact:=theta1; ract:=parametre/(1+excentricite*cos(thetaact-theta0)); for i:=1 to nombrepas do begin theta:=theta1+i*pas; r:=parametre/(1+excentricite*cos(theta-theta0)); if ((r>0) and (ract>0)) then trait(fx+ract*cos(thetaact),fy+ract*sin(thetaact),fx+r*cos(theta),fy+r*sin(theta), 1,couleur,pssolid,pmcopy,gauche); thetaact:=theta; ract:=r; end; end; function TMyimprimante.tracepolygone(nombrepoint:integer;listex,listey:array of float; couleurbord,couleurf:tcolor;transparent:boolean;gauche:boolean):boolean; var i,x1,y1:integer; titi:array of tpoint; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; setlength(titi,nombrepoint); for i:=1 to nombrepoint do begin x1:= trunc((listex[i-1]-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-listey[i-1])/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; titi[i-1].x:=x1; titi[i-1].y:=y1; end; old_pen_color:=imprimante.canvas.pen.color; old_pen_style:=imprimante.canvas.pen.style; old_pen_width:=imprimante.canvas.pen.width; old_pen_mode:=imprimante.canvas.pen.mode; old_brush_style:=imprimante.canvas.brush.style; old_brush_color:=imprimante.canvas.brush.color; imprimante.canvas.Pen.Color:=couleurbord; imprimante.canvas.brush.color:=couleurf; if not(transparent) then imprimante.canvas.brush.style:=bsSolid else imprimante.canvas.brush.style:=bsclear; imprimante.canvas.Polygon(titi,false,0,nombrepoint); imprimante.canvas.pen.color:=old_pen_color; imprimante.canvas.pen.style:=old_pen_style; imprimante.canvas.pen.width:=old_pen_width; imprimante.canvas.pen.mode:=old_pen_mode; imprimante.canvas.brush.style:=old_brush_style; imprimante.canvas.brush.color:=old_brush_color; end; function TMyimprimante.arcdecercle(x,y:float; rayonreel:float; epaisseur:integer; theta1,theta2:float; couleur:tcolor; penmod:tpenmode;gauche:boolean): boolean; var x1,y1,rax,ray:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; invconvert(x1,y1,x,y,gauche); rax:= trunc(rayonreel/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); ray:= trunc(rayonreel/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if rayonreel=0 then exit; old_pen_color:=imprimante.canvas.pen.color; old_pen_style:=imprimante.canvas.pen.style; old_pen_width:=imprimante.canvas.pen.width; old_pen_mode:=imprimante.canvas.pen.mode; old_brush_style:=imprimante.canvas.brush.style; old_brush_color:=imprimante.canvas.brush.color; imprimante.canvas.pen.color:=couleur; imprimante.canvas.pen.style:=pssolid; imprimante.canvas.pen.width:=epaisseur; imprimante.canvas.pen.mode:=penmod; arcdecercle:=true; imprimante.canvas.brush.style:=bsclear; imprimante.canvas.arc(x1-rax,y1-ray,x1+rax,y1+ray,trunc(theta1/Pi*180*16),trunc((theta2-theta1)/Pi*180*16)); arcdecercle:=true; imprimante.canvas.pen.color:=old_pen_color; imprimante.canvas.pen.style:=old_pen_style; imprimante.canvas.pen.width:=old_pen_width; imprimante.canvas.pen.mode:=old_pen_mode; imprimante.canvas.brush.style:=old_brush_style; imprimante.canvas.brush.color:=old_brush_color; end; function TMyimprimante.Point(x,y:float; rayon:integer; couleur:tcolor ; penmod:tpenmode;gauche:boolean): boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin point:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; if rayon=0 then imprimante.canvas.pixels[x1,y1]:=couleur; if rayon=0 then exit; old_pen_color:=imprimante.canvas.pen.color; old_pen_style:=imprimante.canvas.pen.style; old_pen_width:=imprimante.canvas.pen.width; old_pen_mode:=imprimante.canvas.pen.mode; old_brush_style:=imprimante.canvas.brush.style; imprimante.canvas.brush.style:=bssolid; imprimante.canvas.brush.Color:=couleur; imprimante.canvas.ellipse(x1-ceil(rayon*facteur_dilatation_x),y1-ceil(rayon*facteur_dilatation_y), x1+ceil(rayon*facteur_dilatation_x),y1+ceil(rayon*facteur_dilatation_y)); imprimante.canvas.pen.color:=old_pen_color; imprimante.canvas.pen.style:=old_pen_style; imprimante.canvas.pen.width:=old_pen_width; imprimante.canvas.pen.mode:=old_pen_mode; imprimante.canvas.brush.style:=old_brush_style; end; function TMyimprimante.cercle(x,y:float; rayon,epaisseur:integer; couleur:tcolor ; penmod:tpenmode;gauche:boolean): boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin cercle:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=imprimante.canvas.pen.color; old_pen_style:=imprimante.canvas.pen.style; old_pen_width:=imprimante.canvas.pen.width; old_pen_mode:=imprimante.canvas.pen.mode; old_brush_style:=imprimante.canvas.brush.style; imprimante.canvas.pen.color:=couleur; imprimante.canvas.pen.style:=pssolid; imprimante.canvas.pen.width:=epaisseur; imprimante.canvas.pen.mode:=penmod; cercle:=true; imprimante.canvas.brush.style:=bsclear; if rayon=0 then exit; imprimante.canvas.arc(x1-ceil(rayon*facteur_dilatation_x),y1-ceil(rayon*facteur_dilatation_y), x1+ceil(rayon*facteur_dilatation_x),y1+ceil(rayon*facteur_dilatation_y),trunc(x1+rayon*facteur_dilatation_x), y1+ceil(rayon*facteur_dilatation_y),x1+ceil(rayon*facteur_dilatation_x),y1+ceil(rayon*facteur_dilatation_y)); imprimante.canvas.pen.color:=old_pen_color; imprimante.canvas.pen.style:=old_pen_style; imprimante.canvas.pen.width:=old_pen_width; imprimante.canvas.pen.mode:=old_pen_mode; imprimante.canvas.brush.style:=old_brush_style; end; function TMyimprimante.disque(x,y:float; rayon:float; couleurbord,couleurf:tcolor;transparent:boolean;gauche:boolean): boolean; var x1,y1,r1x,r1y:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin disque:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; r1x:= trunc(rayon/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); r1y:=trunc((rayon)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if rayon=0 then exit; old_pen_color:=imprimante.canvas.pen.color; old_pen_style:=imprimante.canvas.pen.style; old_pen_width:=imprimante.canvas.pen.width; old_pen_mode:=imprimante.canvas.pen.mode; old_brush_style:=imprimante.canvas.brush.style; old_brush_color:=imprimante.canvas.brush.color; imprimante.canvas.pen.color:=couleurbord; imprimante.canvas.pen.style:=pssolid; imprimante.canvas.pen.width:=1; imprimante.canvas.pen.mode:=pmcopy; disque:=true; imprimante.canvas.brush.color:=couleurf; if not(transparent) then imprimante.canvas.brush.style:=bssolid else imprimante.canvas.brush.style:=bsclear; imprimante.canvas.ellipse(x1-r1x,y1-r1y,x1+r1x, y1+r1y); imprimante.canvas.brush.color:=clwhite; imprimante.canvas.pen.color:=old_pen_color; imprimante.canvas.pen.style:=old_pen_style; imprimante.canvas.pen.width:=old_pen_width; imprimante.canvas.pen.mode:=old_pen_mode; imprimante.canvas.brush.style:=old_brush_style; imprimante.canvas.brush.color:=old_brush_color; end; function TMyimprimante.Trait(x1,y1,x2,y2:float; epaisseur:integer; couleur:tcolor;sty:tpenstyle; penmod:tpenmode;gauche:boolean):boolean; var ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; old_pen_color:=imprimante.canvas.pen.color; old_pen_style:=imprimante.canvas.pen.style; old_pen_width:=imprimante.canvas.pen.width; old_pen_mode:=imprimante.canvas.pen.mode; old_brush_style:=imprimante.canvas.brush.style; imprimante.canvas.pen.width:=epaisseur; imprimante.canvas.pen.color:=couleur; imprimante.canvas.pen.Style:=sty; imprimante.canvas.pen.mode:=penmod; imprimante.canvas.moveto(trunc((x1-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche,trunc((ymax-y1)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute); imprimante.canvas.lineto(trunc((x2-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche,trunc((ymax-y2)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute); imprimante.canvas.pen.color:=old_pen_color; imprimante.canvas.pen.style:=old_pen_style; imprimante.canvas.pen.width:=old_pen_width; imprimante.canvas.pen.mode:=old_pen_mode; imprimante.canvas.brush.style:=old_brush_style; end; function TMyimprimante.CroixP(x,y:float; demi_longueur,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin croixp:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=imprimante.canvas.pen.color; old_pen_style:=imprimante.canvas.pen.style; old_pen_width:=imprimante.canvas.pen.width; old_pen_mode:=imprimante.canvas.pen.mode; old_brush_style:=imprimante.canvas.brush.style; imprimante.canvas.pen.width:=epaisseur; imprimante.canvas.pen.mode:=penmod; imprimante.canvas.pen.style:=pssolid; imprimante.canvas.pen.color:=couleur; imprimante.canvas.moveto(x1,y1); imprimante.canvas.lineto(x1,trunc(y1+demi_longueur*facteur_dilatation_y)); imprimante.canvas.moveto(x1,y1); imprimante.canvas.lineto(x1,trunc(y1-demi_longueur*facteur_dilatation_y)); imprimante.canvas.moveto(x1,y1); imprimante.canvas.lineto(trunc(x1+demi_longueur*facteur_dilatation_x),y1); imprimante.canvas.moveto(x1,y1); imprimante.canvas.lineto(trunc(x1-demi_longueur*facteur_dilatation_x),y1); croixp:=true; imprimante.canvas.pen.color:=old_pen_color; imprimante.canvas.pen.style:=old_pen_style; imprimante.canvas.pen.width:=old_pen_width; imprimante.canvas.pen.mode:=old_pen_mode; imprimante.canvas.brush.style:=old_brush_style; end; procedure TMyimprimante.arronditalagrille(var x1,y1:float;gauche:boolean); var newx,newy,divx,divy,fracx,fracy:float; ymax,ymin,pasgrilley:float; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; divx:=partieentiere((x1-xmin)/pasgrillex); divy:=partieentiere((y1-ymin)/pasgrilley); fracx:=x1-xmin-divx*pasgrillex; fracy:=y1-ymin-divy*pasgrilley; if fracx>0.5*pasgrillex then newx:=(divx+1)*pasgrillex else newx:=divx*pasgrillex; if fracy>0.5*pasgrilley then newy:=(divy+1)*pasgrilley else newy:=divy*pasgrilley; x1:=newx; y1:=newy; end; procedure TMyimprimante.ecrire(x,y:float; s:string;gauche:boolean; police:tfont); var xi,yi:integer; begin invconvert(xi,yi,x,y,gauche); imprimante.canvas.Font:=police; imprimante.canvas.textout(xi,yi,s); end; procedure TMyimprimante.background(couleur:tcolor); var old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin old_pen_color:=imprimante.canvas.pen.color; old_pen_style:=imprimante.canvas.pen.style; old_pen_width:=imprimante.canvas.pen.width; old_pen_mode:=imprimante.canvas.pen.mode; old_brush_style:=imprimante.canvas.brush.style; old_brush_color:=imprimante.canvas.brush.color; imprimante.canvas.pen.style:=psclear; imprimante.canvas.Brush.Color:=couleur; imprimante.canvas.Brush.style:=bssolid; imprimante.canvas.Rectangle(borduregauche,bordurehaute, largeur-borduredroite,hauteur-bordurebasse); imprimante.canvas.pen.color:=old_pen_color; imprimante.canvas.pen.style:=old_pen_style; imprimante.canvas.pen.width:=old_pen_width; imprimante.canvas.pen.mode:=old_pen_mode; imprimante.canvas.brush.style:=old_brush_style; imprimante.canvas.brush.color:=old_brush_color; end; function TMyImprimante.LimitesEtAxes(_xmin,_xmax,_ymin1,_ymax1,_ymin2,_ymax2:extended; _Largeur,_Hauteur:integer; _titre:string; _fontetitre:tfont; _Fond:boolean; _CouleurFond:tcolor; _Cadre:boolean; _EpaisseurCadre:integer; _CouleurCadre:tcolor; _Gradue:boolean; _EpaisseurGraduation,_LongueurGraduation:integer; _couleurgraduation:tcolor; _fontegraduation:tfont; _Grille1,_Grille2:boolean; _EpaisseurGrille:integer; _CouleurGrille1,_CouleurGrille2:tcolor; _labelx,_labely1,_labely2,_unitex,_unitey1,_unitey2:string; _borduresverticalessymetriques, _echelle_g,_echelle_d:boolean; b_g,b_d,b_b,b_h:integer; largeur_ecran,hauteur_ecran,largeur_imprimante,hauteur_imprimante:integer):boolean; var xi,xa,yi1,yi2,ya1,ya2,gi,ga:extended; t1,t2,i,tta,ttb:integer; dixx,dixy1,dixy2,tt,aff:string; nbgx,nbgy1,nbgy2:integer; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; rg_grad_first,rg_grad_last,rg_ssgrad_first,rg_ssgrad_last:integer; begin facteur_dilatation_x:=largeur_imprimante/largeur_ecran; facteur_dilatation_y:=hauteur_imprimante/hauteur_ecran; old_pen_color:=imprimante.canvas.pen.color; old_pen_style:=imprimante.canvas.pen.style; old_pen_width:=imprimante.canvas.pen.width; old_pen_mode:=imprimante.canvas.pen.mode; old_brush_style:=imprimante.canvas.brush.style; old_brush_color:=imprimante.canvas.brush.color; fond:=_fond; echelle_g:=_echelle_g; echelle_d:=_echelle_d; borduresverticalessymetriques:=_borduresverticalessymetriques; labelx:=_labelx; labely1:=_labely1; labely2:=_labely2; unitex:=_unitex; unitey1:=_unitey1; unitey2:=_unitey2; fontetitre:=_fontetitre; largeur:=_largeur; hauteur:=_hauteur; titre:=_titre; couleurfond:=_couleurfond; cadre:=_cadre; epaisseurcadre:=_epaisseurcadre; couleurcadre:=_couleurcadre; gradue:=_gradue; epaisseurgraduation:=_epaisseurgraduation; fontegraduation:=_fontegraduation; couleurgraduation:=_couleurgraduation; grille1:=_grille1; grille2:=_grille2; epaisseurgrille:=_epaisseurgrille; couleurgrille1:=_couleurgrille1; couleurgrille2:=_couleurgrille2; bordurehaute:=0; bordurebasse:=0; borduregauche:=0; borduredroite:=0; if (echelle_g and ( (_ymin1=_ymax1) or (_xmax=_xmin))) then begin LimitesEtAxes:=false; exit; end; if (echelle_d and ( (_ymin2=_ymax2) or (_xmax=_xmin))) then begin LimitesEtAxes:=false; exit; end; LimitesEtAxes:=true; if (_xmin>_xmax ) then begin xmin:=_xmax; xmax:=_xmin; end else begin xmin:=_xmin; xmax:=_xmax; end; if (_ymin1>_ymax1 ) then begin ymin1:=_ymax1; ymax1:=_ymin1; end else begin ymin1:=_ymin1; ymax1:=_ymax1; end; if (_ymin2>_ymax2 ) then begin ymin2:=_ymax2; ymax2:=_ymin2; end else begin ymin2:=_ymin2; ymax2:=_ymax2; end; tta:=0; ttb:=0; xi:=xmin; yi1:=ymin1; yi2:=ymin2; xa:=xmax; ya1:=ymax1; ya2:=ymax2; graduation(xi,xa,xmin,xmax,graduationx,sousgraduationx,Rang_Premiere_Sous_Graduation_X, Rang_Derniere_Sous_Graduation_X,Rang_Premiere_Graduation_X,Rang_Derniere_Graduation_X); if echelle_g then graduation(yi1,ya1,ymin1,ymax1,graduationY1,sousgraduationY1,Rang_Premiere_Sous_Graduation_Y1, Rang_Derniere_Sous_Graduation_Y1,Rang_Premiere_Graduation_Y1,Rang_Derniere_Graduation_Y1); if echelle_d then graduation(yi2,ya2,ymin2,ymax2,graduationY2,sousgraduationY2,Rang_Premiere_Sous_Graduation_Y2, Rang_Derniere_Sous_Graduation_Y2,Rang_Premiere_Graduation_Y2,Rang_Derniere_Graduation_Y2); {longueurgraduation} longueurgraduationX:=_longueurgraduation/largeur*(xmax-xmin)*facteur_dilatation_x; if echelle_g then longueurgraduationy1:=_longueurgraduation/hauteur*(ymax1-ymin1)*facteur_dilatation_y; if echelle_d then longueurgraduationy2:=_longueurgraduation/hauteur*(ymax2-ymin2)*facteur_dilatation_y; { str(-puissancededixx+1,dixx); if echelle_g then str(-puissancededixy1+1,dixy1) else dixy1:='0'; if echelle_d then str(-puissancededixy2+1,dixy2)else dixy2:='0'; } dixx:='0'; dixy1:='0'; dixy2:='0'; {determination taille bordure haute} imprimante.canvas.font:=fontetitre; if (titre<>'') then begin t1:=trunc(imprimante.canvas.textheight(titre))+10; end else t1:=10; if gradue then begin imprimante.canvas.font:=fontegraduation; if ((dixy1='0') and (dixy2='0')) then t2:=trunc(imprimante.canvas.textheight(unitex+labelx)*1.5) else t2:=trunc(imprimante.canvas.textheight(unitex+labelx)*2.2); end else t2:=10; if (t1>t2) then bordurehaute:=t1 else bordurehaute:=t2; {taille bordure basse} if gradue then begin imprimante.canvas.font:=fontegraduation; t1:=trunc(imprimante.canvas.textheight('x10'))+10; end else t1:=10; bordurebasse:=t1; {taille bordure droite} if (gradue and echelle_d) then begin imprimante.canvas.font:=fontegraduation; t1:=imprimante.canvas.textwidth(floattostr(Rang_Premiere_Graduation_Y2*GraduationY2)); for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do t1:=max(t1,imprimante.canvas.textwidth(floattostr(i*GraduationY2))); t1:=t1+10+ceil(_longueurgraduation*facteur_dilatation_x); end else begin t1:=10; end; if gradue then begin imprimante.canvas.font:=fontegraduation; t2:=(imprimante.canvas.textwidth(floattostr(Rang_Derniere_Graduation_X*GraduationX)) div 2)- trunc((xmax-Rang_Derniere_Graduation_X*GraduationX)/(xmax-xmin)*(largeur-borduredroite-borduregauche)); end else t2:=10; borduredroite:=max(t1,t2); {taille bordure gauche} if (gradue and echelle_g) then begin imprimante.canvas.font:=fontegraduation; t1:=imprimante.canvas.textwidth(floattostr(Rang_Premiere_Graduation_Y1*GraduationY1)); for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do t1:=max(t1,imprimante.canvas.textwidth(floattostr(i*GraduationY1))); t1:=t1+10+ceil(_longueurgraduation*facteur_dilatation_x); end else begin t1:=10; end; if gradue then begin imprimante.canvas.font:=fontegraduation; t2:=(imprimante.canvas.textwidth(floattostr(Rang_Premiere_Graduation_X*GraduationX)) div 2)- trunc((Rang_Premiere_Graduation_X*GraduationX-xmin)/(xmax-xmin)*(largeur-borduredroite-borduregauche)); end else t2:=10; borduregauche:=max(t1,t2); if borduresverticalessymetriques then begin borduregauche:=max(borduregauche,borduredroite); borduredroite:=borduregauche; end; borduregauche:=borduregauche+b_g; borduredroite:=borduredroite+b_d; bordurebasse:=bordurebasse+b_b; bordurehaute:=bordurehaute+b_h; if fond then background(couleurfond); if echelle_g then begin if dixy1='0' then aff:='' else begin aff:='10'; if dixy1<>'1' then for i:=1 to length(dixy1) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labely1; if ((unitey1<>'1') and (unitey1<>'')) then aff:=aff+' en '+unitey1; imprimante.canvas.font:=fontegraduation; tta:=imprimante.canvas.TextWidth(aff); end; if echelle_d then begin if dixy2='0' then aff:='' else begin aff:='10'; if dixy2<>'1' then for i:=1 to length(dixy2) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labely2; if ((unitey2<>'1') and (unitey2<>'')) then aff:=aff+' en '+unitey2; imprimante.canvas.font:=fontegraduation; ttb:=imprimante.canvas.TextWidth(aff); end; if grille1 then begin imprimante.canvas.pen.style:=psdot; imprimante.canvas.pen.color:=couleurgrille1; imprimante.canvas.pen.width:=epaisseurgrille; for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin1,i*sousgraduationx,ymax1, epaisseurgrille,couleurgrille1,psdot,pmcopy,true); for i:=Rang_Premiere_Sous_Graduation_Y1 to Rang_Derniere_Sous_Graduation_Y1 do trait(xmin,i*sousgraduationy1,xmax,i*sousgraduationy1, epaisseurgrille,couleurgrille1,psdot,pmcopy,true); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin1,i*graduationx,ymax1, epaisseurgrille,couleurgrille1,psdash,pmcopy,true); for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do trait(xmin,i*graduationy1,xmax,i*graduationy1, epaisseurgrille,couleurgrille1,psdash,pmcopy,true); end; if grille2 then begin imprimante.canvas.pen.style:=psdot; imprimante.canvas.pen.color:=couleurgrille2; imprimante.canvas.pen.width:=epaisseurgrille; for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin2,i*sousgraduationx,ymax2, epaisseurgrille,couleurgrille2,psdot,pmcopy,false); for i:=Rang_Premiere_Sous_Graduation_Y2 to Rang_Derniere_Sous_Graduation_Y2 do trait(xmin,i*sousgraduationy2,xmax,i*sousgraduationy2, epaisseurgrille,couleurgrille2,psdot,pmcopy,false); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin2,i*graduationx,ymax2, epaisseurgrille,couleurgrille2,psdash,pmcopy,false); for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do trait(xmin,i*graduationy2,xmax,i*graduationy2, epaisseurgrille,couleurgrille2,psdash,pmcopy,false); end; {cadre} if cadre then begin trait(xmin,ymin1,xmax,ymin1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); trait(xmax,ymin1,xmax,ymax1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); trait(xmax,ymax1,xmin,ymax1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); trait(xmin,ymax1,xmin,ymin1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); end; {affichage du titre} imprimante.canvas.font:=fontetitre; imprimante.canvas.Font.Size:=abs(imprimante.canvas.Font.Size); while ((imprimante.canvas.textwidth(titre)>largeur-borduredroite-borduregauche-tta-ttb) and (imprimante.canvas.Font.Size>1)) do imprimante.canvas.Font.Size:= imprimante.canvas.Font.Size-1; //if imprimante.canvas.Font.Size<6 then imprimante.canvas.Font.Size:=6; //application.MessageBox(pchar(inttostr(imprimante.canvas.Font.Size)),'',mb_ok); imprimante.canvas.textout(borduregauche+((largeur-borduredroite-borduregauche) div 2) -(imprimante.canvas.textwidth(titre) div 2), bordurehaute -2-imprimante.canvas.textheight(titre)*2,titre); {graduation} if gradue then begin if dixx='0' then aff:='' else begin aff:='10'; if dixx<>'1' then for i:=1 to length(dixx) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labelx; if ((unitex<>'1') and (unitex<>'')) then aff:=aff+' en '+unitex; imprimante.canvas.font:=fontegraduation; imprimante.canvas.textout(largeur-borduredroite-trunc(imprimante.canvas.textwidth (aff)*1.3),hauteur-bordurebasse- trunc(imprimante.canvas.textheight('x10')*1.3),aff); if ((dixx<>'0') and (dixx<>'1')) then imprimante.canvas.textout(largeur-borduredroite-trunc(imprimante.canvas.textwidth(aff)*1.3)+ trunc(imprimante.canvas.textwidth('10')),hauteur-bordurebasse -trunc(1.9*imprimante.canvas.textheight('x10')), dixx); if echelle_g then begin if dixy1='0' then aff:='' else begin aff:='10'; if dixy1<>'1' then for i:=1 to length(dixy1) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labely1; if ((unitey1<>'1') and (unitey1<>'')) then aff:=aff+' en '+unitey1; imprimante.canvas.font:=fontegraduation; imprimante.canvas.textout(borduregauche,bordurehaute-trunc(imprimante.canvas.textheight(aff)*1.2),aff); if ((dixy1<>'0') and (dixy1<>'1')) then imprimante.canvas.textout(borduregauche+imprimante.canvas.textwidth('10'),bordurehaute -trunc(imprimante.canvas.textheight(aff)*1.8), dixy1); end; if echelle_d then begin if dixy2='0' then aff:='' else begin aff:='10'; if dixy2<>'1' then for i:=1 to length(dixy2) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labely2; if ((unitey2<>'1') and (unitey2<>'')) then aff:=aff+' en '+unitey2; imprimante.canvas.font:=fontegraduation; imprimante.canvas.textout(largeur-borduredroite-trunc(imprimante.canvas.textwidth(aff)*1.2), bordurehaute-trunc(imprimante.canvas.textheight(aff)*1.2),aff); if ((dixy2<>'0') and (dixy2<>'1')) then imprimante.canvas.textout(largeur-borduredroite-trunc(imprimante.canvas.textwidth(aff)*1.2)+imprimante.canvas.textwidth('10'), bordurehaute -trunc(imprimante.canvas.textheight(aff)*1.8), dixy2); end; imprimante.canvas.font:=fontegraduation; for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do //str(round((i*graduationx)),tt); begin tt:=floattostr(i*graduationx); imprimante.canvas.textout( trunc((i*graduationx-xmin)/(xmax-xmin)*(largeur-borduredroite-borduregauche))+ borduregauche-imprimante.canvas.textwidth(tt) div 2, hauteur-bordurebasse+ceil(_LongueurGraduation*facteur_dilatation_y),tt); end; if echelle_g then for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do begin //str( round((i*graduationy1)),tt); tt:=floattostr(i*graduationy1); imprimante.canvas.textout( borduregauche-trunc(imprimante.canvas.textwidth(tt)*1.1)-5 -ceil(_LongueurGraduation*facteur_dilatation_x), trunc((ymax1-i*graduationy1)/(ymax1-ymin1)*(hauteur-bordurehaute-bordurebasse))+bordurehaute -imprimante.canvas.textheight(tt) div 2, tt); end; if echelle_d then for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do begin //str( round((i*graduationy2)),tt); tt:=floattostr(i*graduationy2); imprimante.canvas.textout( largeur-borduredroite+ceil(_LongueurGraduation*facteur_dilatation_x)+5, trunc((ymax2-i*graduationy2)/(ymax2-ymin2)*(hauteur-bordurehaute-bordurebasse))+bordurehaute -imprimante.canvas.textheight(tt) div 2, tt); end; if echelle_g then begin for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin1-longueurgraduationy1,i*sousgraduationx, ymin1+longueurgraduationy1,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymax1+longueurgraduationy1,i*sousgraduationx, ymax1-longueurgraduationy1,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin1-2*longueurgraduationy1,i*graduationx, ymin1+longueurgraduationy1*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymax1-2*longueurgraduationy1,i*graduationx, ymax1+longueurgraduationy1*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Sous_Graduation_Y1 to Rang_Derniere_Sous_Graduation_Y1 do trait(xmin-longueurgraduationx,i*sousgraduationy1,xmin+longueurgraduationx,i*sousgraduationy1, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do trait(xmin-2*longueurgraduationx,i*graduationy1,xmin+longueurgraduationx*2,i*graduationy1, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); end; if echelle_d then begin for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin2-longueurgraduationy2,i*sousgraduationx, ymin2+longueurgraduationy2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymax2-longueurgraduationy2,i*sousgraduationx, ymax2-longueurgraduationy2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin2-2*longueurgraduationy2,i*graduationx, ymin2+longueurgraduationy2*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymax2+2*longueurgraduationy2,i*graduationx, ymax2-longueurgraduationy2*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Sous_Graduation_Y2 to Rang_Derniere_Sous_Graduation_Y2 do trait(xmax+longueurgraduationx,i*sousgraduationy2,xmax-longueurgraduationx,i*sousgraduationy2, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do trait(xmax+2*longueurgraduationx,i*graduationy2,xmax-longueurgraduationx*2,i*graduationy2, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); end; end; imprimante.canvas.pen.color:=old_pen_color; imprimante.canvas.pen.style:=old_pen_style; imprimante.canvas.pen.width:=old_pen_width; imprimante.canvas.pen.mode:=old_pen_mode; imprimante.canvas.brush.style:=old_brush_style; imprimante.canvas.brush.color:=old_brush_color; end; function TMyimprimante.Convert(xi,yi:integer; var x,y:float;gauche:boolean):boolean; var ymax,ymin,pasgrilley:float; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x:=(xi-BordureGauche)*(xmax-xmin)/ (largeur-BordureGauche-BordureDroite) +xmin; y:=-(yi-BordureHaute)*(ymax-ymin)/(hauteur-BordureHaute-BordureBasse) +ymax; convert:=true; end; function TMyimprimante.invconvert(var xi,yi:integer; x,y:float;gauche:boolean):boolean; var ymax,ymin,pasgrilley:float; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; xi:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; yi:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; invconvert:=true; end; function TMyimprimante.CroixX(x,y:float; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin croixx:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=imprimante.canvas.pen.color; old_pen_style:=imprimante.canvas.pen.style; old_pen_width:=imprimante.canvas.pen.width; old_pen_mode:=imprimante.canvas.pen.mode; old_brush_style:=imprimante.canvas.brush.style; imprimante.canvas.pen.width:=epaisseur; imprimante.canvas.pen.mode:=penmod; imprimante.canvas.pen.style:=pssolid; imprimante.canvas.pen.color:=couleur; imprimante.canvas.moveto(x1,y1); imprimante.canvas.lineto(trunc(x1+demi_diagonale*facteur_dilatation_x),trunc(y1+demi_diagonale*facteur_dilatation_y)); imprimante.canvas.moveto(x1,y1); imprimante.canvas.lineto(trunc(x1-demi_diagonale*facteur_dilatation_x),trunc(y1+demi_diagonale*facteur_dilatation_y)); imprimante.canvas.moveto(x1,y1); imprimante.canvas.lineto(trunc(x1+demi_diagonale*facteur_dilatation_x),trunc(y1-demi_diagonale*facteur_dilatation_y)); imprimante.canvas.moveto(x1,y1); imprimante.canvas.lineto(trunc(x1-demi_diagonale*facteur_dilatation_x),trunc(y1-demi_diagonale*facteur_dilatation_y)); croixx:=true; imprimante.canvas.pen.color:=old_pen_color; imprimante.canvas.pen.style:=old_pen_style; imprimante.canvas.pen.width:=old_pen_width; imprimante.canvas.pen.mode:=old_pen_mode; imprimante.canvas.brush.style:=old_brush_style; end; end. dozzaqueux-3.51/base.equ0000750000175000017500000410206613147330070015512 0ustar georgeskgeorgesk 147 13/07/2017 19:30:17 Ag[+] de_base cation_simple 1 61.9 107.868 Ag 2.5 Al[3+] de_base cation_simple 3 61 26.982 Al 9 Am[3+] de_base cation_simple 3 243 Am 5 Ar(aq) de_base molecule 39.948 Ar Au[+] de_base cation_simple 1 196.966 Au 4 B(OH)3(aq) de_base acide 1 B 3 H 3 O 61.833 B Ba[2+] de_base cation_simple 2 63.6 137.327 Ba 5 Be[2+] de_base cation_simple 2 45 9.012 Be 8 Bi[3+] de_base cation_simple 3 208.98 Bi 5 Br[-] de_base anion_simple -1 78.1 79.904 Br 3 Ca[2+] de_base cation_simple 2 59.47 40.078 Ca 6 Cd[2+] de_base cation_simple 2 54 112.411 Cd 5 Ce[3+] de_base cation_simple 3 69.8 140.115 Ce 9 Cl[-] de_base anion_simple -1 76.31 35.453 Cl 3 Co[2+] de_base cation_simple 2 55 58.933 Co 6 CrO4[2-] de_base acide -2 85 1 Cr 4 O 115.994 Cr 4 Cs[+] de_base cation_simple 1 77.2 132.905 Cs 2.5 Cu[2+] de_base cation_simple 2 53.6 63.546 Cu 6 Dy[3+] de_base cation_simple 3 65.6 162.5 Dy 5 Er[3+] de_base cation_simple 3 65.9 167.26 Er 5 Eu[3+] de_base cation_simple 3 67.8 151.965 Eu 5 Fe[3+] de_base cation_simple 3 68 55.847 Fe 9 Fr[+] de_base cation_simple 1 223 Fr 2.5 F[-] de_base anion_simple -1 55.4 18.998 F 3.5 Ga[3+] de_base cation_simple 3 69.723 Ga 9 Gd[3+] de_base cation_simple 3 67.3 157.25 Gd 5 H2AsO4[-] de_base acide -1 34 1 As 2 H 4 O 140.935 As 4 H2GeO3(aq) de_base complexe 1 Ge 2 H 3 O 122.624 Ge H2O de_base acide 2 H 1 O 18.015 HCO3[-] de_base acide -1 44.5 1 C 1 H 3 O 61.017 C 4 He(aq) de_base molecule 4.003 He Hf[4+] de_base cation_simple 4 178.49 Hf 1.1 Hg[2+] de_base cation_simple 2 68.6 200.59 Hg 5 Ho[3+] de_base cation_simple 3 66.3 164.93 Ho 5 HPO4[2-] de_base acide -2 57 1 P 1 H 4 O 95.979 P 4 H[+] de_base acide 1 349.65 1.008 H 9 In[3+] de_base cation_simple 3 114.82 In 9 I[-] de_base anion_simple -1 76.8 126.905 I 3 Kr(aq) de_base molecule 83.8 Kr K[+] de_base cation_simple 1 73.48 39.098 K 3 La[3+] de_base cation_simple 3 69.7 138.905 La 9 Li[+] de_base cation_simple 1 38.66 6.941 Li 6 Lu[3+] de_base cation_simple 3 174.967 Lu 5 Mg[2+] de_base cation_simple 2 53 24.305 Mg 8 Mn[2+] de_base cation_simple 2 53.5 54.938 Mn 6 MoO4[2-] de_base acide -2 74.5 1 Mo 4 O 159.938 Mo 4.5 Na[+] de_base cation_simple 1 50.08 22.99 Na 4 NbO3[-] de_base acide -1 1 Nb 3 O 140.905 Nb 4 Nd[3+] de_base cation_simple 3 69.4 144.24 Nd 9 Ne(aq) de_base molecule 20.18 Ne Ni[2+] de_base cation_simple 2 49.6 58.69 Ni 6 NO3[-] de_base ion nitrate acide -1 71.42 1 N 3 O 62.005 N 3 NpO2[+] de_base ion 1 1 Np 2 O 237.048 Np 4 O2(aq) de_base molecule 2 O 31.999 O Pb[2+] de_base cation_simple 2 71 207.2 Pb 4.5 Pd[2+] de_base cation_simple 2 106.42 Pd 4.5 Pm[3+] de_base cation_simple 3 147 Pm 9 Pr[3+] de_base cation_simple 3 69.5 140.908 Pr 9 Pt[2+] de_base cation_simple 2 195.08 Pt 4.5 PuO2[+] de_base ion 1 1 Pu 2 O 275.999 Pu 4 Ra[2+] de_base cation_simple 2 66.8 226.025 Ra 5 Rb[+] de_base cation_simple 1 77.8 85.468 Rb 2.5 ReO4[-] de_base ion -1 54.9 1 Re 4 O 250.205 Re 4 Rh[3+] de_base cation_simple 3 102.906 Rh 9 Rn(aq) de_base molecule 222 Rn RuO4[2-] de_base ion -2 1 Ru 4 O 165.068 Ru 4 SbO2[-] de_base ion -1 1 Sb 2 O 153.749 Sb 4 Sc[3+] de_base cation_simple 3 64.7 44.956 Sc 9 SeO3[2-] de_base ion -2 1 Se 3 O 126.958 Se 4 SiO2(aq) de_base molecule 1 Si 2 O 60.084 Si Sm[3+] de_base cation_simple 3 68.5 150.36 Sm 9 Sn[2+] de_base cation_simple 2 118.71 Sn 6 SO4[2-] de_base ion sulfate acide -2 80 1 S 4 O 96.064 S 4 Sr[2+] de_base cation_simple 2 59.4 87.62 Sr 5 Tb[3+] de_base cation_simple 3 158.925 Tb 9 TcO4[-] de_base ion -1 1 Tc 4 O 161.998 Tc 4 Th[4+] de_base cation_simple 4 232.038 Th 1.1 Ti(OH)4(aq) de_base complexe 1 Ti 4 H 4 O 115.909 Ti Tl[+] de_base cation_simple 1 74.7 204.383 Tl 2.5 Tm[3+] de_base cation_simple 3 65.4 168.934 Tm 5 UO2[2+] de_base ion 2 32 1 U 2 O 270.028 U 4.5 VO2[+] de_base ion 1 1 V 2 O 82.94 V 4 WO4[2-] de_base ion -2 69 1 W 4 O 247.848 W 5 Xe(aq) de_base molecule 131.29 Xe Yb[3+] de_base cation_simple 3 65.6 173.04 Yb 5 Y[3+] de_base cation_simple 3 62 88.906 Y 9 Zn[2+] de_base cation_simple 2 52.8 65.39 Zn 6 Zr[4+] de_base cation_simple 4 91.224 Zr 1.1 Ag(CN)2[-] aqueux -1 0 4 1 Ag[+] 2 CN[-] 21.1 25 Ag(CN)3[2-] aqueux complexe -2 0 4 1 Ag[+] 3 CN[-] 21.8 25 Ag(CN)4[3-] aqueux complexe -3 0 4 1 Ag[+] 4 CN[-] 20.7 25 Ag(CO3)2[3-] aqueux -3 4 -2 H[+] 1 Ag[+] 2 HCO3[-] -18.5062 25 Ag(HS)2[-] aqueux -1 4 1 Ag[+] 2 HS[-] 17.6999 25 Ag(NH3)2[+] aqueux 1 3 1 Ag[+] 2 NH3(aq) 7.2 25 Ag(OH)2[-] aqueux complexe -1 0 2 OH[-] 1 Ag[+] 3.6 25 Ag(OH)3[2-] aqueux complexe -2 0 1 Ag[+] 3 OH[-] 4.8 25 Ag(S2O3)2[3-] aqueux -3 3 1 Ag[+] 2 S2O3[2-] 13.5 25 Ag(SCN)2[-] aqueux -1 0 3 1 Ag[+] 2 SCN[-] 9.1 25 Ag(SCN)4[3-] aqueux -3 0 3 1 Ag[+] 4 SCN[-] 10.1 25 Ag(SO3)2[3-] aqueux -3 3 1 Ag[+] 2 SO3[2-] 8.4 25 AgBr(aq) aqueux 1 Ag[+] 1 Br[-] 4.15 25 AgBr2[-] aqueux -1 4 1 Ag[+] 2 Br[-] 7.1 25 AgBr3[2-] aqueux -2 4 1 Ag[+] 3 Br[-] 7.95 25 AgBr4[3-] aqueux -3 4 1 Ag[+] 4 Br[-] 8.9 25 AgCl(aq) aqueux chloroargent (I) complexe 1 Ag[+] 1 Cl[-] 2.9 25 AgCl2[-] aqueux dichloroargent (I) complexe -1 0 4 1 Ag[+] 2 Cl[-] 4.7 25 AgCl3[2-] aqueux trichloroargent (I) complexe -2 0 4 1 Ag[+] 3 Cl[-] 5 25 AgCl4[3-] aqueux tetrachloroargent (I) complexe -3 0 4 1 Ag[+] 4 Cl[-] 5.9 25 AgCO3[-] aqueux -1 4 -1 H[+] 1 Ag[+] 1 HCO3[-] -7.6416 25 AgF(aq) aqueux 1 Ag[+] 1 F[-] 0.4002 25 AgHS(aq) aqueux complexe 1 Ag[+] 1 HS[-] 13.3 25 AgI(aq) aqueux 1 Ag[+] 1 I[-] 6.6 25 AgI2[-] aqueux -1 3 1 Ag[+] 2 I[-] 10.68 25 AgI3[2-] aqueux -2 3 1 Ag[+] 3 I[-] 13.37 25 AgI4[3-] aqueux -3 3 1 Ag[+] 4 I[-] 14.08 25 AgNH3[+] aqueux 1 3 1 Ag[+] 1 NH3(aq) 3.4 25 AgNO3(aq) aqueux 1 Ag[+] 1 NO3[-] -0.2507 25 AgOH(aq) aqueux complexe 1 Ag[+] 1 OH[-] 2.3 25 AgS2O3[-] aqueux -1 3 1 Ag[+] 1 S2O3[2-] 8.9 25 AgSCN(aq) aqueux complexe 1 Ag[+] 1 SCN[-] 7.6 25 AgS[-] aqueux complexe -1 0 1 Ag[+] 1 S[2-] 16.8 25 Ag[2+] aqueux cation_simple 2 4.5 -0.5 H2O 0.25 O2(aq) 1 Ag[+] 1 H[+] -12.1244 25 Al(OH)2[+] aqueux complexe 1 0 2 H2O 1 Al[3+] -2 H[+] -10.1 25 Al(OH)3(aq) aqueux complexe 3 H2O 1 Al[3+] -3 H[+] -16.8 25 Al(OH)4[-] aqueux complexe -1 0 4 1 Al[3+] 4 OH[-] 33.3 25 Al(SO4)2[-] aqueux -1 4 1 Al[3+] 2 SO4[2-] 4.9 25 AlF2[+] aqueux Ion difluoroaluminium (III) complexe 1 0 4 1 Al[3+] 2 F[-] 11.15 25 AlF3(aq) aqueux Trifluoroaluminium (III) complexe 1 Al[3+] 3 F[-] 15.1 25 AlF4[-] aqueux Ion tetrafluoroaluminate (III) complexe -1 0 4 1 Al[3+] 4 F[-] 17.7 25 AlF5[2-] aqueux Ion pentafluoroaluminate (III) complexe -2 0 0 1 Al[3+] 5 F[-] 19.4 25 AlF6[3-] aqueux Ion hexafluoroaluminate (III) complexe -3 0 0 1 Al[3+] 6 F[-] 19.7 25 AlF[2+] aqueux Ion fluoroaluminium (III) complexe 2 0 4.5 1 Al[3+] 1 F[-] 6.1 25 AlH2PO4[2+] aqueux 2 4.5 1 Al[3+] 1 H[+] 1 HPO4[2-] 3.1 25 AlHPO4[+] aqueux 1 4 1 Al[3+] 1 HPO4[2-] 7.4 25 AlOH[2+] aqueux 2 4.5 -1 H[+] 1 Al[3+] 1 H2O -5.0004 25 AlSO4[+] aqueux 1 4 1 Al[3+] 1 SO4[2-] 3.01 25 Am(CO3)2[-] aqueux -1 4 1 Am[3+] 2 HCO3[-] -2 H[+] -8.35 25 Am(CO3)3[3-] aqueux -3 4 1 Am[3+] 3 HCO3[-] -3 H[+] -15.78 25 Am(CO3)5[6-] aqueux -6 4 1 Am[4+] 5 HCO3[-] -5 H[+] -12.33 25 Am(OH)2[+] aqueux 1 4 1 Am[3+] 2 H2O -2 H[+] -14.1 25 Am(OH)3(aq) aqueux 1 Am[3+] 3 H2O -3 H[+] -25.7 25 Am(SO4)2[-] aqueux -1 4 1 Am[3+] 2 SO4[2-] 5.4 25 AmCl[2+] aqueux 2 4.5 1 Am[3+] 1 Cl[-] 1.05 25 AmCO3[+] aqueux 1 4 1 Am[3+] 1 HCO3[-] -1 H[+] -2.53 25 AmF2[+] aqueux 1 4 1 Am[3+] 2 F[-] 5.8 25 AmF[2+] aqueux 2 4.5 1 Am[3+] 1 F[-] 3.4 25 AmH2PO4[2+] aqueux 2 4.5 1 Am[3+] 1 HPO4[2-] 1 H[+] 10.21 25 AmN3[2+] aqueux 2 4.5 1 Am[3+] 1 N3[-] 1.67 25 AmNO3[2+] aqueux 2 4.5 1 Am[3+] 1 NO3[-] 1.33 25 AmO2[+] aqueux 1 4 1 Am[3+] 0.5 O2(aq) 1 H2O -2 H[+] -15.39 25 AmO2[2+] aqueux 2 4.5 1 Am[3+] 0.75 O2(aq) 0.5 H2O -1 H[+] -20.88 25 AmOH[2+] aqueux 2 4.5 1 Am[3+] 1 H2O -1 H[+] -6.4 25 AmSCN[2+] aqueux 2 1 Am[3+] 1 SCN[-] 1.3 25 AmSO4[+] aqueux 1 4 1 Am[3+] 1 SO4[2-] 3.85 25 Am[2+] aqueux 2 4.5 1 Am[3+] 0.5 H2O -1 H[+] -0.25 O2(aq) -60.37 25 Am[4+] aqueux 4 5.5 1 Am[3+] 1 H[+] 0.25 O2(aq) -0.5 H2O -22.72 25 AsH3(aq) aqueux -2 O2(aq) 1 H[+] 1 H2AsO4[-] -155.191 25 AsO2[-] aqueux -1 4 -1 H2O -0.5 O2(aq) 1 H2AsO4[-] -30.5292 25 AsO3F[2-] aqueux -2 4 -1 H2O 1 F[-] 1 H2AsO4[-] 40.2451 25 AsO4[3-] aqueux acide -3 0 4 -1 H[+] 1 HAsO4[2-] -11.5 25 Au(CN)2[-] aqueux complexe -1 0 4 1 Au[+] 2 CN[-] 38.3 25 Au(HS)2[-] aqueux -1 4 1 Au[+] 2 HS[-] 30.9996 25 Au(NH3)2[+] aqueux complexe 1 0 4 1 Au[+] 2 NH3(aq) 27 25 Au(NH3)4[3+] aqueux complexe 3 0 4 1 Au[3+] 4 NH3(aq) 30 25 Au(SCN)2[+] aqueux complexe 1 0 4 1 Au[3+] 2 SCN[-] 42 25 Au(SCN)2[-] aqueux complexe -1 0 4 1 Au[+] 2 SCN[-] 25 25 AuCl(aq) aqueux 1 Au[+] 1 Cl[-] 7.9201 25 AuCl2[-] aqueux -1 4 1 Au[+] 2 Cl[-] 9.5459 25 AuCl3[2-] aqueux -2 4 1 Au[+] 3 Cl[-] 9.2901 25 AuCl4[-] aqueux complexe -1 0 4 1 Au[3+] 4 Cl[-] 26 25 Au[3+] aqueux cation_simple 3 5 -1 H2O 0.5 O2(aq) 1 Au[+] 2 H[+] -4.3506 25 B2O(OH)5[-] aqueux acide -1 4 -1 H[+] 2 B(OH)3(aq) -18.6851 25 Ba(Pent)2(aq) aqueux Ba(CH3(CH2)3CO2)2(aq) -2 H[+] 1 Ba[2+] 2 Acide pentanoïque(aq) -10.4241 25 Ba(Pent)[+] aqueux 1 Ba(CH3(CH2)3CO2)+ 4 -1 H[+] 1 Ba[2+] 1 Acide pentanoïque(aq) -5.0673 25 BaB(OH)4[+] aqueux 1 4 -1 H[+] 1 B(OH)3(aq) 1 Ba[2+] 1 H2O -7.8012 25 BaCl[+] aqueux 1 4 1 Ba[2+] 1 Cl[-] -0.4977 25 BaCO3(aq) aqueux -1 H[+] 1 Ba[2+] 1 HCO3[-] -7.6834 25 BaF[+] aqueux 1 4 1 Ba[2+] 1 F[-] 0.3203 25 BaHCO3[+] aqueux 1 4 1 Ba[2+] 1 HCO3[-] 1.0174 25 BaNO3[+] aqueux 1 4 1 Ba[2+] 1 NO3[-] 0.9 25 BaOH[+] aqueux complexe 1 0 0 1 Ba[2+] 1 OH[-] 0.7 25 BaS2O3(aq) aqueux complexe 1 Ba[2+] 1 S2O3[2-] 2.33 25 Be(OH)2(aq) aqueux complexe 1 Be[2+] 2 OH[-] 3.1 25 BeCl2(aq) aqueux 1 Be[2+] 2 Cl[-] -5.7079 25 BeCl[+] aqueux 1 4 1 Be[2+] 1 Cl[-] -4.8474 25 BeF2(aq) aqueux difluoroberyllium (II) complexe 1 Be[2+] 2 F[-] 8.8 25 BeF3[-] aqueux Ion trifluoroberyllium (II) complexe -1 0 4 1 Be[2+] 3 F[-] 11.8 25 BeF[+] aqueux Ion fluoroberyllium (II) complexe 1 0 4 1 Be[2+] 1 F[-] 5.1 25 BeOH[+] aqueux acide 1 0 4 1 H2O 1 Be[2+] -1 H[+] -6 25 BF2(OH)2[-] aqueux -1 4 -1 H2O 1 B(OH)3(aq) 1 H[+] 2 F[-] 6.6174 25 BF3OH[-] aqueux -1 4 -2 H2O 1 B(OH)3(aq) 2 H[+] 3 F[-] 13.1908 25 BF4[-] aqueux -1 4 -3 H2O 1 B(OH)3(aq) 3 H[+] 4 F[-] 18.0049 25 BH4[-] aqueux -1 4 -2 O2(aq) -1 H[+] 1 B(OH)3(aq) 1 H2O -237.103 25 Bi(SCN)2[+] aqueux complexe 1 0 4 1 Bi[3+] 2 SCN[-] 1.9 25 Bi(SCN)3(aq) aqueux complexe 0 0 4 1 Bi[3+] 3 SCN[-] 2.7 25 Bi(SCN)4[-] aqueux complexe -1 0 4 1 Bi[3+] 4 SCN[-] 3.4 25 Bi(SCN)5[2-] aqueux complexe -2 0 4 1 Bi[3+] 5 SCN[-] 3.25 25 Bi(SCN)6[3-] aqueux complexe -3 0 4 1 Bi[3+] 6 SCN[-] 3.2 25 BiBr2[+] aqueux complexe 1 0 2 Br[-] 1 Bi[3+] 4.45 25 BiBr3(aq) aqueux complexe 3 Br[-] 1 Bi[3+] 6.3 25 BiBr4[-] aqueux complexe -1 0 4 Br[-] 1 Bi[3+] 7.7 25 BiBr5[2-] aqueux complexe -2 0 5 Br[-] 1 Bi[3+] 9.3 25 BiBr6[3-] aqueux complexe -3 0 6 Br[-] 1 Bi[3+] 9.4 25 BiBr[2+] aqueux complexe 2 0 1 Br[-] 1 Bi[3+] 2.3 25 BiCl2[+] aqueux dichlorobismuth (III) complexe 1 0 2 Cl[-] 1 Bi[3+] 3.5 25 BiCl3 aqueux trichlorobismuth (III) complexe 3 Cl[-] 1 Bi[3+] 5.4 25 BiCl4[-] aqueux tetrachlorobismuth (III) complexe -1 0 4 Cl[-] 1 Bi[3+] 6.1 25 BiCl5[2-] aqueux pentachlorobismuth (III) complexe -2 0 5 Cl[-] 1 Bi[3+] 6.7 25 BiCl6[3-] aqueux hexachlorobismuth (III) complexe -3 0 6 Cl[-] 1 Bi[3+] 6.6 25 BiCl[2+] aqueux chlorobismuth (III) complexe 2 0 1 Cl[-] 1 Bi[3+] 2.4 25 BiI4[-] aqueux complexe -1 0 4 I[-] 1 Bi[3+] 15 25 BiI5[2-] aqueux complexe -2 0 5 I[-] 1 Bi[3+] 16.8 25 BiI6[3-] aqueux complexe -3 0 6 I[-] 1 Bi[3+] 18.8 25 BiO2[-] aqueux -1 4 -4 H[+] 1 Bi[3+] 2 H2O -21.1072 25 BiOH[2+] aqueux 2 0 4.5 1 Bi[3+] 1 OH[-] 12.4 25 BiSCN[2+] aqueux complexe 2 0 4 1 Bi[3+] 1 SCN[-] 0.8 25 BO2[-] aqueux acide -1 0 4 -1 H[+] -1 H2O 1 B(OH)3(aq) -9.235 25 Br2(aq) aqueux molecule -1 H2O 0.5 O2(aq) 2 Br[-] 2 H[+] 5.6834 25 Br3[-] aqueux ion -1 43 4 -1 H2O 0.5 O2(aq) 2 H[+] 3 Br[-] 7.0696 25 BrO3[-] aqueux -1 55.7 3.5 1 Br[-] 1.5 O2(aq) -17.1443 25 BrO4[-] aqueux -1 4 1 Br[-] 2 O2(aq) -33.104 25 BrO[-] aqueux acide -1 4 0.5 O2(aq) 1 Br[-] -10.9167 25 Ca(NH3)2[2+] aqueux complexe 2 0 4 1 Ca[2+] 2 NH3(aq) -0.8 25 Ca(NH3)3[2+] aqueux complexe 2 0 4 1 Ca[2+] 3 NH3(aq) -1.6 25 Ca(NH3)4[2+] aqueux complexe 2 0 4 1 Ca[2+] 4 NH3(aq) -2.7 25 Ca(Pent)2(aq) aqueux Ca(CH3(CH2)3CO2)2(aq) -2 H[+] 1 Ca[2+] 2 Acide pentanoïque(aq) -9.5042 25 Ca(Pent)[+] aqueux 1 Ca(CH3(CH2)3CO2)+ 4 -1 H[+] 1 Ca[2+] 1 Acide pentanoïque(aq) -4.5674 25 Ca2UO2(CO3)3(aq) aqueux 2 Ca[2+] 1 UO2[2+] 3 HCO3[-] -3 H[+] -1.15 25 CaB(OH)4[+] aqueux 1 4 -1 H[+] 1 B(OH)3(aq) 1 Ca[2+] 1 H2O -7.4222 25 CaCl2(aq) aqueux 1 Ca[2+] 2 Cl[-] -0.6436 25 CaCl[+] aqueux 1 4 1 Ca[2+] 1 Cl[-] -0.2925 25 CaCO3(aq) aqueux -1 H[+] 1 Ca[2+] 1 HCO3[-] -7.0017 25 CaF[+] aqueux 1 4 1 Ca[2+] 1 F[-] 0.6817 25 CaHCO3[+] aqueux 1 4 1 Ca[2+] 1 HCO3[-] 1.0467 25 CaHP2O7[-] aqueux complexe -1 0 4 1 Ca[2+] 1 HP2O7[3-] 2.3 25 CaHPO4(aq) aqueux 1 Ca[2+] 1 HPO4[2-] 1.7 25 CaHSiO3[+] aqueux 1 4 -1 H[+] 1 Ca[2+] 1 H2O 1 SiO2(aq) -8.5752 25 CaNH3[2+] aqueux complexe 2 0 4 1 Ca[2+] 1 NH3(aq) -0.2 25 CaNO3[+] aqueux 1 4 1 Ca[2+] 1 NO3[-] 0.7 25 CaOH[+] aqueux complexe 1 0 4 1 Ca[2+] 1 OH[-] 1.3 25 CaP2O7[2-] aqueux -2 0 4 1 Ca[2+] 1 P2O7[4-] 5 25 CaPO4[-] aqueux -1 4 -1 H[+] 1 Ca[2+] 1 HPO4[2-] -5.8618 25 CaS2O3(aq) aqueux complexe 1 S2O3[2-] 1 Ca[2+] 1.91 25 CaSO4(aq) aqueux 1 Ca[2+] 1 SO4[2-] 2.3 25 CaUO2(CO3)3[2-] aqueux -2 4 1 Ca[2+] 1 UO2[2+] 3 HCO3[-] -3 H[+] -5.58 25 Cd(CN)2(aq) aqueux 1 Cd[2+] 2 CN[-] 10.6 25 Cd(CN)3[-] aqueux -1 4 1 Cd[2+] 3 CN[-] 15.3 25 Cd(CN)4[2-] aqueux -2 4 1 Cd[2+] 4 CN[-] 18.9 25 Cd(CO3)2[2-] aqueux -2 4 -2 H[+] 1 Cd[2+] 2 HCO3[-] -14.2576 25 Cd(N3)2(aq) aqueux 1 Cd[2+] 2 N3[-] 2.4606 25 Cd(N3)3[-] aqueux -1 4 1 Cd[2+] 3 N3[-] 3.1263 25 Cd(N3)4[2-] aqueux -2 4 1 Cd[2+] 4 N3[-] 3.4942 25 Cd(NH3)2[2+] aqueux 2 4.5 1 Cd[2+] 2 NH3(aq) 4.65 25 Cd(NH3)3[2+] aqueux complexe 2 0 4 1 Cd[2+] 3 NH3(aq) 6.04 25 Cd(NH3)4[2+] aqueux 2 4.5 1 Cd[2+] 4 NH3(aq) 6.92 25 Cd(NH3)5[2+] aqueux complexe 2 0 4 1 Cd[2+] 5 NH3(aq) 6.6 25 Cd(NH3)6[2+] aqueux complexe 2 0 4 1 Cd[2+] 6 NH3(aq) 4.9 25 Cd(NH3)[2+] aqueux 2 4.5 1 Cd[2+] 1 NH3(aq) 2.6 25 Cd(OH)(P2O7)[3-] aqueux complexe -3 0 4 1 P2O7[4-] 1 OH[-] 1 Cd[2+] 11.8 25 Cd(OH)2(aq) aqueux complexe 1 Cd[2+] 2 OH[-] 7.7 25 Cd(OH)3[-] aqueux complexe -1 0 1 Cd[2+] 3 OH[-] 10.3 25 Cd(OH)4[2-] aqueux complexe -2 0 1 Cd[2+] 4 OH[-] 12 25 Cd(OH)Cl(aq) aqueux -1 H[+] 1 Cd[2+] 1 Cl[-] 1 H2O -7.4328 25 Cd(Pent)2(aq) aqueux Cd(CH3(CH2)3CO2)2(aq) -2 H[+] 1 Cd[2+] 2 Acide pentanoïque(aq) -7.0742 25 Cd(Pent)[+] aqueux 1 Cd(CH3(CH2)3CO2)+ 4 -1 H[+] 1 Cd[2+] 1 Acide pentanoïque(aq) -3.237 25 Cd(SCN)2(aq) aqueux 1 Cd[2+] 2 SCN[-] 2 25 Cd(SCN)3[-] aqueux -1 4 1 Cd[2+] 3 SCN[-] 2.6 25 CdBr2(aq) aqueux complexe 1 Cd[2+] 2 Br[-] 2.1 25 CdBr3[-] aqueux complexe -1 0 4 1 Cd[2+] 3 Br[-] 2.16 25 CdBr4[2-] aqueux complexe -2 0 4 Br[-] 1 Cd[2+] 2.53 25 CdBr[+] aqueux complexe 1 0 4 1 Br[-] 1 Cd[2+] 1.56 25 CdCl2(aq) aqueux complexe 1 Cd[2+] 2 Cl[-] 2.1 25 CdCl3[-] aqueux complexe -1 0 4 1 Cd[2+] 3 Cl[-] 1.5 25 CdCl4[2-] aqueux -2 0 4 1 Cd[2+] 4 Cl[-] 0.9 25 CdCl[+] aqueux chlorocadnium (II) complexe 1 0 4 1 Cd[2+] 1 Cl[-] 1.6 25 CdCN[+] aqueux 1 4 1 CN[-] 1 Cd[2+] 5.5 25 CdCO3(aq) aqueux -1 H[+] 1 Cd[2+] 1 HCO3[-] -7.3288 25 CdF2(aq) aqueux 1 Cd[2+] 2 F[-] 1.4103 25 CdF[+] aqueux 1 4 1 Cd[2+] 1 F[-] 1.0797 25 CdHCO3[+] aqueux 1 4 1 Cd[2+] 1 HCO3[-] 1.5 25 CdI2(aq) aqueux 1 Cd[2+] 2 I[-] 3.4 25 CdI3[-] aqueux -1 4 1 Cd[2+] 3 I[-] 5 25 CdI4[2-] aqueux -2 4 1 Cd[2+] 4 I[-] 6.15 25 CdI[+] aqueux 1 4 1 Cd[2+] 1 I[-] 2.4 25 CdN3[+] aqueux 1 4 1 Cd[2+] 1 N3[-] 1.497 25 CdNO2[+] aqueux 1 4 1 Cd[2+] 1 NO2[-] 2.37 25 CdOH[+] aqueux complexe 1 0 0 1 Cd[2+] 1 OH[-] 4.3 25 CdP2O7[2-] aqueux -2 0 4 1 Cd[2+] 1 P2O7[4-] 8.7 25 CdS2O3(aq) aqueux complexe 1 Cd[2+] 1 S2O3[2-] 3.94 25 CdSCN[+] aqueux 1 4 1 Cd[2+] 1 SCN[-] 1.4 25 CdSeO4(aq) aqueux 1 Cd[2+] 1 SeO4[2-] 2.27 25 CdSO4(aq) aqueux 1 Cd[2+] 1 SO4[2-] 0.85 25 Ce(CO3)2[-] aqueux -1 4 -2 H[+] 1 Ce[3+] 2 HCO3[-] -8.1576 25 Ce(HPO4)2[-] aqueux -1 4 1 Ce[3+] 2 HPO4[2-] 8.7 25 Ce(OH)2[2+] aqueux 2 0 4.5 1 Ce[4+] 2 OH[-] 27.1 25 Ce(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Ce[3+] 2 HPO4[2-] -6.1437 25 Ce(SO4)2(aq) aqueux complexe 2 SO4[2-] 1 Ce[4+] 8 25 Ce(SO4)3[2-] aqueux complexe -2 0 3 SO4[2-] 1 Ce[4+] 10.4 25 CeBr[2+] aqueux 2 4.5 1 Br[-] 1 Ce[3+] 0.3797 25 CeCl2[+] aqueux 1 4 1 Ce[3+] 2 Cl[-] 0.0308 25 CeCl3(aq) aqueux 1 Ce[3+] 3 Cl[-] -0.3936 25 CeCl4[-] aqueux -1 4 1 Ce[3+] 4 Cl[-] -0.7447 25 CeClO4[2+] aqueux 2 4.5 1 Ce[3+] 1 ClO4[-] 1.9102 25 CeCl[2+] aqueux 2 4.5 1 Ce[3+] 1 Cl[-] 0.3086 25 CeCO3[+] aqueux 1 4 -1 H[+] 1 Ce[3+] 1 HCO3[-] -2.9284 25 CeF2[+] aqueux 1 4 1 Ce[3+] 2 F[-] 7.2714 25 CeF3(aq) aqueux 1 Ce[3+] 3 F[-] 9.5144 25 CeF4[-] aqueux -1 4 1 Ce[3+] 4 F[-] 11.3909 25 CeF[2+] aqueux 2 4.5 1 Ce[3+] 1 F[-] 4.2221 25 CeH2PO4[2+] aqueux 2 4.5 1 Ce[3+] 1 H[+] 1 HPO4[2-] 9.6683 25 CeHCO3[2+] aqueux 2 4.5 1 Ce[3+] 1 HCO3[-] 1.919 25 CeHPO4[+] aqueux 1 4 1 Ce[3+] 1 HPO4[2-] 5.2 25 CeIO3[2+] aqueux 2 4.5 1 Ce[3+] 1 IO3[-] 1.9 25 CeNO3[2+] aqueux 2 4.5 1 Ce[3+] 1 NO3[-] 1.3143 25 CeOH[2+] aqueux 2 0 4.5 -1 H[+] 1 Ce[3+] 1 H2O -9 25 CeOH[3+] aqueux 3 0 5 1 Ce[4+] 1 OH[-] 13.3 25 CePO4(aq) aqueux -1 H[+] 1 Ce[3+] 1 HPO4[2-] -0.9718 25 CeSO4[+] aqueux 1 4 1 Ce[3+] 1 SO4[2-] -3.687 25 CeSO4[2+] aqueux complexe 2 0 1 SO4[2-] 1 Ce[4+] 3.5 25 Ce[2+] aqueux 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Ce[3+] -85.0525 25 Ce[4+] aqueux cation_simple 4 0 11 -0.5 H2O 0.25 O2(aq) 1 Ce[3+] 1 H[+] -8.0394 25 ClO2[-] aqueux ion -1 52 4 1 Cl[-] 1 O2(aq) -23.108 25 ClO3[-] aqueux ion -1 64.6 3.5 1 Cl[-] 1.5 O2(aq) -17.2608 25 ClO4[-] aqueux ion -1 67.3 3.5 1 Cl[-] 2 O2(aq) -15.7091 25 ClO[-] aqueux acide -1 4 0.5 O2(aq) 1 Cl[-] -15.1014 25 CN[-] aqueux acide -1 78 3 -2 H2O -0.5 O2(aq) 1 HCO3[-] 1 NH3(aq) -56.0505 25 CO(aq) aqueux molecule -1 H2O -0.5 O2(aq) 1 H[+] 1 HCO3[-] -41.7002 25 Co(HS)2(aq) aqueux 1 Co[2+] 2 HS[-] 9.0306 25 Co(NH3)2[2+] aqueux complexe 2 0 4 1 Co[2+] 2 NH3(aq) 3.62 25 Co(NH3)2[3+] aqueux complexe 3 0 4 1 Co[3+] 2 NH3(aq) 14 25 Co(NH3)3[2+] aqueux complexe 2 0 4 1 Co[2+] 3 NH3(aq) 4.61 25 Co(NH3)3[3+] aqueux complexe 3 0 4 1 Co[3+] 3 NH3(aq) 20.1 25 Co(NH3)4[2+] aqueux complexe 2 0 4 1 Co[2+] 4 NH3(aq) 5.31 25 Co(NH3)4[3+] aqueux complexe 3 0 4 1 Co[3+] 4 NH3(aq) 25.7 25 Co(NH3)5[2+] aqueux complexe 2 0 4 1 Co[2+] 5 NH3(aq) 5.43 25 Co(NH3)5[3+] aqueux complexe 3 0 4 1 Co[3+] 5 NH3(aq) 30.8 25 Co(NH3)6[2+] aqueux complexe 2 0 4 1 Co[2+] 6 NH3(aq) 4.75 25 Co(NH3)6[3+] aqueux complexe 3 0 4 1 Co[3+] 6 NH3(aq) 35.2 25 Co(OH)3[-] aqueux complexe -1 0 1 Co[2+] 3 OH[-] 10.2 25 Co(Pent)2(aq) aqueux Co(CH3(CH2)3CO2)2(aq) -2 H[+] 1 Co[2+] 2 Acide pentanoïque(aq) -6.924 25 Co(Pent)[+] aqueux 1 Co(CH3(CH2)3CO2)+ 4 -1 H[+] 1 Co[2+] 1 Acide pentanoïque(aq) -3.1571 25 CO2(aq) aqueux acide -1 H2O 1 H[+] 1 HCO3[-] 6.35 25 CO3[2-] aqueux acide -2 69.3 4.5 -1 H[+] 1 HCO3[-] -10.3 25 CoBr2(aq) aqueux 1 Co[2+] 2 Br[-] -0.0358 25 CoCl[+] aqueux 1 4 1 Cl[-] 1 Co[2+] 0.5703 25 CoF[+] aqueux 1 4 1 Co[2+] 1 F[-] 1.0203 25 CoHS[+] aqueux 1 4 1 Co[2+] 1 HS[-] 5.9813 25 CoI2(aq) aqueux 1 Co[2+] 2 I[-] -0.0944 25 CoNH3[2+] aqueux complexe 2 0 4 1 Co[2+] 1 NH3(aq) 2.05 25 CoNH3[3+] aqueux complexe 3 0 4 1 Co[3+] 1 NH3(aq) 7.3 25 CoNO3[+] aqueux 1 4 1 Co[2+] 1 NO3[-] 0.2 25 CoOH[+] aqueux 1 0 4 1 Co[2+] 1 OH[-] 5.1 25 CoOH[2+] aqueux 2 0 4.5 -1 H[+] 1 Co[3+] 1 H2O -1.8 25 CoS2O3(aq) aqueux complexe 1 Co[2+] 1 S2O3[2-] 2.05 25 CoSCN[+] aqueux complexe 1 0 4 1 Co[2+] 1 SCN[-] 1 25 CoSeO4(aq) aqueux 1 Co[2+] 1 SeO4[2-] 2.7 25 CoSO4(aq) aqueux 1 Co[2+] 1 SO4[2-] 2.5 25 Co[3+] aqueux cation_simple 3 9 -0.5 H2O 0.25 O2(aq) 1 Co[2+] 1 H[+] -11.4845 25 Cr(OH)2[+] aqueux complexe 1 0 1 Cr[3+] 2 OH[-] 18.3 25 Cr(SCN)2(aq) aqueux complexe 1 Cr[2+] 2 SCN[-] 1.9 25 Cr2O7[2-] aqueux ion -2 4 -1 H2O 2 CrO4[2-] 2 H[+] 14.7024 25 CrBr[2+] aqueux 2 4.5 1 Br[-] 1 Cr[3+] -4.7426 25 CrCl2[+] aqueux 1 4 1 Cr[3+] 2 Cl[-] -1.8017 25 CrCl[2+] aqueux 2 4.5 1 Cl[-] 1 Cr[3+] -2.1103 25 CrF2[+] aqueux Ion difluorochrome (III) complexe 1 0 0 2 F[-] 1 Cr[3+] 7.7 25 CrF3(aq) aqueux Trifluorochrome(III) complexe 1 Cr[3+] 3 F[-] 10.2 25 CrF[2+] aqueux Ion fluorochrome (III) complexe 2 0 0 1 F[-] 1 Cr[3+] 4.4 25 CrO3Cl[-] aqueux -1 4 -3 H[+] 0.75 O2(aq) 1 Cl[-] 1 Cr[3+] 1.5 H2O -2.8185 25 CrO4[3-] aqueux ion -3 4 -1 H[+] -0.25 O2(aq) 1 CrO4[2-] 0.5 H2O -20.4013 25 CrOH[2+] aqueux 2 0 4.5 1 Cr[3+] 1 OH[-] 10.2 25 CrSCN[+] aqueux complexe 1 0 4 1 Cr[2+] 1 SCN[-] 1.1 25 Cr[2+] aqueux cation_simple 2 6 -2 H2O -1 O2(aq) 1 CrO4[2-] 4 H[+] -19.0425 25 Cr[3+] aqueux cation_simple 3 67 9 -2.5 H2O -0.75 O2(aq) 1 CrO4[2-] 5 H[+] 9.7151 25 CsBr(aq) aqueux 1 Br[-] 1 Cs[+] 0.022 25 CsCl(aq) aqueux 1 Cl[-] 1 Cs[+] -0.1385 25 CsI(aq) aqueux 1 Cs[+] 1 I[-] 0.9822 25 CsOH(aq) aqueux -1 H[+] 1 Cs[+] 1 H2O -15.6847 25 Cu(CN)2[-] aqueux complexe -1 0 4 1 Cu[+] 2 CN[-] 24 25 Cu(CN)3[2-] aqueux complexe -2 0 4 1 Cu[+] 3 CN[-] 28.6 25 Cu(CN)4[3-] aqueux complexe -3 0 4 1 Cu[+] 4 CN[-] 30.3 25 Cu(CO3)2[2-] aqueux -2 4 -2 H[+] 1 Cu[2+] 2 HCO3[-] -10.4757 25 Cu(NH3)2[+] aqueux complexe 1 0 4 1 Cu[+] 2 NH3(aq) 10.8 25 Cu(NH3)2[2+] aqueux 2 4.5 1 Cu[2+] 2 NH3(aq) 7.61 25 Cu(NH3)3[2+] aqueux 2 4.5 1 Cu[2+] 3 NH3(aq) 10.48 25 Cu(NH3)4[2+] aqueux complexe 2 0 4 1 Cu[2+] 4 NH3(aq) 12.59 25 Cu(NO2)2(aq) aqueux 1 Cu[2+] 2 NO2[-] 3.03 25 Cu(OH)2(aq) aqueux complexe 1 Cu[2+] 2 OH[-] 14.3 25 Cu(OH)2[-] aqueux complexe -1 0 1 Cu[+] 2 OH[-] 13.2 25 Cu(P2O7)2[6-] aqueux -6 0 4 1 Cu[2+] 2 P2O7[4-] 9 25 Cu(Pent)2(aq) aqueux Cu(CH3(CH2)3CO2)2(aq) -2 H[+] 1 Cu[2+] 2 Acide pentanoïque(aq) -6.1741 25 Cu(Pent)[+] aqueux 1 Cu(CH3(CH2)3CO2)+ 4 -1 H[+] 1 Cu[2+] 1 Acide pentanoïque(aq) -2.7473 25 Cu(S2O3)2[3-] aqueux complexe -3 0 1 Cu[+] 2 S2O3[2-] 12.2 25 Cu(S2O3)3[5-] aqueux complexe -5 0 1 Cu[+] 3 S2O3[2-] 13.8 25 Cu(SCN)2(aq) aqueux complexe 0 0 4 2 SCN[-] 1 Cu[2+] 2.5 25 Cu(SCN)2[-] aqueux complexe -1 0 4 1 Cu[+] 2 SCN[-] 11 25 Cu(SCN)3[-] aqueux complexe -1 0 4 3 SCN[-] 1 Cu[2+] 2.7 25 Cu(SCN)4[2-] aqueux complexe -2 0 4 1 SCN[-] 4 Cu[2+] 3 25 Cu(SO4)2[2-] aqueux complexe -2 0 2 SO4[2-] 1 Cu[2+] 1.1 25 Cu(SO4)3[4-] aqueux complexe -4 0 3 SO4[2-] 1 Cu[2+] 2.3 25 CuCl2(aq) aqueux 1 Cu[2+] 2 Cl[-] -0.5 25 CuCl[+] aqueux complexe 1 0 4 1 Cl[-] 1 Cu[2+] 0.1 25 CuCO3(aq) aqueux -1 H[+] 1 Cu[2+] 1 HCO3[-] -3.3735 25 CuCO3(OH)2[2-] aqueux -2 4 -3 H[+] 1 Cu[2+] 1 HCO3[-] 2 H2O -23.444 25 CuF[+] aqueux Ion fluorocuivre (II) complexe 1 0 4 1 Cu[2+] 1 F[-] 0.7 25 CuH2PO4[+] aqueux 1 4 1 Cu[2+] 1 H[+] 1 HPO4[2-] 8.9654 25 CuHPO4(aq) aqueux 1 Cu[2+] 1 HPO4[2-] 4.06 25 CuNH3[+] aqueux complexe 1 0 4 1 Cu[+] 1 NH3(aq) 5.9 25 CuNH3[2+] aqueux 2 4.5 1 Cu[2+] 1 NH3(aq) 4.13 25 CuNO2[+] aqueux 1 4 1 Cu[2+] 1 NO2[-] 2.02 25 CuOH(aq) aqueux complexe 1 Cu[+] 1 OH[-] 6.1 25 CuOH[+] aqueux 1 0 4 1 Cu[2+] 1 OH[-] 6 25 CuP2O7[2-] aqueux complexe -2 0 4 1 Cu[2+] 1 P2O7[4-] 6.7 25 CuPO4[-] aqueux -1 4 -1 H[+] 1 Cu[2+] 1 HPO4[2-] -2.4718 25 CuS2O3[-] aqueux complexe -1 0 1 Cu[+] 1 S2O3[2-] 10.3 25 CuSCN[+] aqueux complexe 1 0 4 1 SCN[-] 1 Cu[2+] 1.7 25 CuSO4(aq) aqueux 1 Cu[2+] 1 SO4[2-] 1 25 CuTetraglycineH-1 aqueux complexe 1 CuTetraglycine[+] -1 H[+] -5.56 25 CuTetraglycineH-2[-] aqueux complexe -1 0 -1 H[+] 1 CuTetraglycineH-1 -6.91 25 CuTetraglycineH-3[2-] aqueux complexe -2 0 -1 H[+] 1 CuTetraglycineH-2[-] -9.18 25 CuTetraglycineH[2+] aqueux complexe 2 0 1 CuTetraglycine[+] 1 H[+] 4.03 25 CuTetraglycine[+] aqueux complexe 1 0 1 Cu[2+] 1 Tetraglycine[-] 5.04 25 Cu[+] aqueux cation_simple 1 4 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Cu[2+] -18.7704 25 Dy(CO3)2[-] aqueux -1 4 -2 H[+] 1 Dy[3+] 2 HCO3[-] -7.4576 25 Dy(HPO4)2[-] aqueux -1 4 1 Dy[3+] 2 HPO4[2-] 9.8 25 Dy(OH)4[-] aqueux -1 4 -4 H[+] 1 Dy[3+] 4 H2O -33.4803 25 Dy(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Dy[3+] 2 HPO4[2-] -3.4437 25 Dy(SO4)2[-] aqueux -1 4 1 Dy[3+] 2 SO4[2-] 5 25 DyCl2[+] aqueux 1 4 1 Dy[3+] 2 Cl[-] -0.0425 25 DyCl3(aq) aqueux 1 Dy[3+] 3 Cl[-] -0.4669 25 DyCl4[-] aqueux -1 4 1 Dy[3+] 4 Cl[-] -0.8913 25 DyCl[2+] aqueux 2 4.5 1 Cl[-] 1 Dy[3+] 0.2353 25 DyCO3[+] aqueux 1 4 -1 H[+] 1 Dy[3+] 1 HCO3[-] -2.3324 25 DyF2[+] aqueux 1 4 1 Dy[3+] 2 F[-] 8.151 25 DyF3(aq) aqueux 1 Dy[3+] 3 F[-] 10.7605 25 DyF4[-] aqueux -1 4 1 Dy[3+] 4 F[-] 12.8569 25 DyF[2+] aqueux 2 4.5 1 Dy[3+] 1 F[-] 4.6619 25 DyH2PO4[2+] aqueux 2 4.5 1 Dy[3+] 1 H[+] 1 HPO4[2-] 9.3751 25 DyHCO3[2+] aqueux 2 4.5 1 Dy[3+] 1 HCO3[-] 1.6991 25 DyHPO4[+] aqueux 1 4 1 Dy[3+] 1 HPO4[2-] 5.8 25 DyNO3[2+] aqueux 2 4.5 1 Dy[3+] 1 NO3[-] 0.1415 25 DyO2H(aq) aqueux -3 H[+] 1 Dy[3+] 2 H2O -24.8309 25 DyO2[-] aqueux -1 4 -4 H[+] 1 Dy[3+] 2 H2O -33.4804 25 DyOH[2+] aqueux 2 4.5 -1 H[+] 1 Dy[3+] 1 H2O -7.8342 25 DyO[+] aqueux 1 4 -2 H[+] 1 Dy[3+] 1 H2O -16.1171 25 DyPO4(aq) aqueux -1 H[+] 1 Dy[3+] 1 HPO4[2-] 0.1782 25 DySO4[+] aqueux 1 4 1 Dy[3+] 1 SO4[2-] 3.643 25 Dy[2+] aqueux cation_simple 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Dy[3+] -62.4759 25 Dy[4+] aqueux 4 5.5 -0.5 H2O 0.25 O2(aq) 1 Dy[3+] 1 H[+] -53.9989 25 Er(CO3)2[-] aqueux -1 4 -2 H[+] 1 Er[3+] 2 HCO3[-] -7.2576 25 Er(HPO4)2[-] aqueux -1 4 1 Er[3+] 2 HPO4[2-] 10 25 Er(OH)4[-] aqueux -1 4 -4 H[+] 1 Er[3+] 4 H2O -32.5803 25 Er(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Er[3+] 2 HPO4[2-] -3.2437 25 Er(SO4)2[-] aqueux -1 4 1 Er[3+] 2 SO4[2-] 5 25 ErCl2[+] aqueux 1 4 1 Er[3+] 2 Cl[-] -0.0425 25 ErCl3(aq) aqueux 1 Er[3+] 3 Cl[-] -0.4669 25 ErCl4[-] aqueux -1 4 1 Er[3+] 4 Cl[-] -0.8913 25 ErCl[2+] aqueux 2 4.5 1 Cl[-] 1 Er[3+] 0.3086 25 ErCO3[+] aqueux 1 4 -1 H[+] 1 Er[3+] 1 HCO3[-] -2.1858 25 ErF2[+] aqueux 1 4 1 Er[3+] 2 F[-] 8.2976 25 ErF3(aq) aqueux 1 Er[3+] 3 F[-] 10.9071 25 ErF4[-] aqueux -1 4 1 Er[3+] 4 F[-] 13.0768 25 ErF[2+] aqueux 2 4.5 1 Er[3+] 1 F[-] 4.7352 25 ErH2PO4[2+] aqueux 2 4.5 1 Er[3+] 1 H[+] 1 HPO4[2-] 9.4484 25 ErHCO3[2+] aqueux 2 4.5 1 Er[3+] 1 HCO3[-] 1.7724 25 ErHPO4[+] aqueux 1 4 1 Er[3+] 1 HPO4[2-] 5.9 25 ErNO3[2+] aqueux 2 4.5 1 Er[3+] 1 NO3[-] 0.1415 25 ErO2H(aq) aqueux -3 H[+] 1 Er[3+] 2 H2O -24.3178 25 ErO2[-] aqueux -1 4 -4 H[+] 1 Er[3+] 2 H2O -32.6008 25 ErOH[2+] aqueux 2 4.5 -1 H[+] 1 Er[3+] 1 H2O -7.7609 25 ErO[+] aqueux 1 4 -2 H[+] 1 Er[3+] 1 H2O -15.9705 25 ErPO4(aq) aqueux -1 H[+] 1 Er[3+] 1 HPO4[2-] 0.3782 25 ErSO4[+] aqueux 1 4 1 Er[3+] 1 SO4[2-] 3.5697 25 Er[2+] aqueux cation_simple 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Er[3+] -71.5652 25 Er[4+] aqueux cation_simple 4 5.5 -0.5 H2O 0.25 O2(aq) 1 Er[3+] 1 H[+] -75.1095 25 Eu(CO3)2[-] aqueux -1 4 -2 H[+] 1 Eu[3+] 2 HCO3[-] -8.3993 25 Eu(CO3)3[3-] aqueux -3 4 -3 H[+] 1 Eu[3+] 3 HCO3[-] -16.8155 25 Eu(HPO4)2[-] aqueux -1 4 1 Eu[3+] 2 HPO4[2-] 9.6 25 Eu(OH)2CO3[-] aqueux -1 4 -3 H[+] 1 Eu[3+] 1 HCO3[-] 2 H2O -17.8462 25 Eu(OH)2[+] aqueux 1 4 -2 H[+] 1 Eu[3+] 2 H2O -14.8609 25 Eu(OH)3(aq) aqueux -3 H[+] 1 Eu[3+] 3 H2O -24.1253 25 Eu(OH)4[-] aqueux -1 4 -4 H[+] 1 Eu[3+] 4 H2O -36.5958 25 Eu(Pent)2[+] aqueux 1 Eu(CH3(CH2)3CO2)2+ 4 -2 H[+] 1 Eu[3+] 2 Acide pentanoïque(aq) -4.9441 25 Eu(Pent)[+] aqueux 1 Eu(CH3(CH2)3CO2)+ 4 -1 H[+] 1 Eu[2+] 1 Acide pentanoïque(aq) -4.9302 25 Eu(Pent)[2+] aqueux 2 Eu(CH3(CH2)3CO2)++ 4.5 -1 H[+] 1 Eu[3+] 1 Acide pentanoïque(aq) -2.0773 25 Eu(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Eu[3+] 2 HPO4[2-] -3.9837 25 Eu(SO4)2[-] aqueux -1 4 1 Eu[3+] 2 SO4[2-] 5.4693 25 Eu2(OH)2[4+] aqueux 4 5.5 -2 H[+] 2 Eu[3+] 2 H2O -6.9182 25 EuBr2[+] aqueux 1 4 1 Eu[3+] 2 Br[-] 0.2145 25 EuBrO3[2+] aqueux 2 4.5 1 BrO3[-] 1 Eu[3+] 4.5823 25 EuBr[2+] aqueux 2 4.5 1 Br[-] 1 Eu[3+] 0.5572 25 EuCl2(aq) aqueux 1 Eu[2+] 2 Cl[-] 1.2036 25 EuCl2[+] aqueux 1 4 1 Eu[3+] 2 Cl[-] -0.0425 25 EuCl3(aq) aqueux 1 Eu[3+] 3 Cl[-] -0.4669 25 EuCl3[-] aqueux -1 4 1 Eu[2+] 3 Cl[-] 1.952 25 EuCl4[-] aqueux -1 4 1 Eu[3+] 4 Cl[-] -0.8913 25 EuCl4[2-] aqueux -2 4 1 Eu[2+] 4 Cl[-] 2.7737 25 EuCl[+] aqueux 1 4 1 Cl[-] 1 Eu[2+] 0.3086 25 EuCl[2+] aqueux 2 4.5 1 Cl[-] 1 Eu[3+] 0.3086 25 EuCO3[+] aqueux 1 4 -1 H[+] 1 Eu[3+] 1 HCO3[-] -2.4057 25 EuF2(aq) aqueux 1 Eu[2+] 2 F[-] -2.1111 25 EuF2[+] aqueux 1 4 1 Eu[3+] 2 F[-] 7.7112 25 EuF3(aq) aqueux 1 Eu[3+] 3 F[-] 10.1741 25 EuF3[-] aqueux -1 4 1 Eu[2+] 3 F[-] -2.5802 25 EuF4[-] aqueux -1 4 1 Eu[3+] 4 F[-] 12.1239 25 EuF4[2-] aqueux -2 4 1 Eu[2+] 4 F[-] -2.9027 25 EuF[+] aqueux 1 4 1 Eu[2+] 1 F[-] -1.422 25 EuF[2+] aqueux 2 4.5 1 Eu[3+] 1 F[-] 4.442 25 EuH2PO4[2+] aqueux 2 4.5 1 Eu[3+] 1 H[+] 1 HPO4[2-] 9.4484 25 EuHCO3[2+] aqueux 2 4.5 1 Eu[3+] 1 HCO3[-] 1.6258 25 EuHPO4[+] aqueux 1 4 1 Eu[3+] 1 HPO4[2-] 5.7 25 EuIO3[2+] aqueux 2 4.5 1 Eu[3+] 1 IO3[-] 2.156 25 EuNO3[2+] aqueux 2 4.5 1 Eu[3+] 1 NO3[-] 0.8745 25 EuO2H(aq) aqueux -3 H[+] 1 Eu[3+] 2 H2O -25.4173 25 EuO2[-] aqueux -1 4 -4 H[+] 1 Eu[3+] 2 H2O -34.5066 25 EuOH(CO3)2[2-] aqueux -2 4 -3 H[+] 1 Eu[3+] 1 H2O 2 HCO3[-] -15.176 25 EuOHCO3(aq) aqueux -2 H[+] 1 Eu[3+] 1 H2O 1 HCO3[-] -8.4941 25 EuOH[2+] aqueux 2 4.5 -1 H[+] 1 Eu[3+] 1 H2O -7.9075 25 EuO[+] aqueux 1 4 -2 H[+] 1 Eu[3+] 1 H2O -16.337 25 EuPO4(aq) aqueux -1 H[+] 1 Eu[3+] 1 HPO4[2-] -0.1218 25 EuSO4[+] aqueux 1 4 1 Eu[3+] 1 SO4[2-] 3.643 25 Eu[2+] aqueux cation_simple 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Eu[3+] -27.4382 25 Eu[4+] aqueux cation_simple 4 5.5 -0.5 H2O 0.25 O2(aq) 1 Eu[3+] 1 H[+] -82.806 25 Fe(CN)6[3-] aqueux -3 100.9 4 1 Fe[3+] 6 CN[-] 31 25 Fe(CN)6[4-] aqueux -4 110.4 4 1 Fe[2+] 6 CN[-] 24 25 Fe(HP2O7)2[3-] aqueux complexe -3 0 4 1 Fe[3+] 2 HP2O7[3-] 22.2 25 Fe(NH3)2[2+] aqueux complexe 2 0 4 1 Fe[2+] 2 NH3(aq) 2.2 25 Fe(NH3)4[2+] aqueux complexe 2 0 4 1 Fe[2+] 4 NH3(aq) 3.7 25 Fe(OH)2[+] aqueux complexe 1 0 1 Fe[3+] 2 OH[-] 21.7 25 Fe(Pent)2(aq) aqueux Fe(CH3(CH2)3CO2)2(aq) -2 H[+] 1 Fe[2+] 2 Acide pentanoïque(aq) -7.1571 25 Fe(Pent)[+] aqueux 1 Fe(CH3(CH2)3CO2)+ 4 -1 H[+] 1 Fe[2+] 1 Acide pentanoïque(aq) -3.2802 25 Fe(SCN)2[+] aqueux complexe 1 0 4 1 Fe[3+] 2 SCN[-] 4.2 25 Fe(SCN)3(aq) aqueux complexe 0 0 4 1 Fe[3+] 3 SCN[-] 5.6 25 Fe(SCN)4[-] aqueux complexe -1 0 4 1 Fe[3+] 4 SCN[-] 6.4 25 Fe(SCN)5[2-] aqueux complexe -2 0 4 1 Fe[3+] 5 SCN[-] 6.4 25 Fe(SO4)2[-] aqueux -1 4 1 Fe[3+] 2 SO4[2-] 5.4 25 FeBr[2+] aqueux complexe 2 0 1 Fe[3+] 1 Br[-] -0.3 25 FeCl2[+] aqueux 1 0 4 1 Fe[3+] 2 Cl[-] 0.7 25 FeCl3(aq) aqueux Trichlorofer (III) complexe 3 Cl[-] 1 Fe[3+] -0.7 25 FeCl4[-] aqueux -1 4 1 Fe[3+] 4 Cl[-] -0.79 25 FeCl4[2-] aqueux -2 4 1 Fe[2+] 4 Cl[-] -1.9 25 FeCl[+] aqueux 1 0 4 1 Cl[-] 1 Fe[2+] 0.4 25 FeCl[2+] aqueux complexe 2 0 4.5 1 Cl[-] 1 Fe[3+] 0.6 25 FeCO3(aq) aqueux -1 H[+] 1 Fe[2+] 1 HCO3[-] -5.5988 25 FeCO3[+] aqueux 1 4 -1 H[+] 1 Fe[3+] 1 HCO3[-] -0.6088 25 FeF2[+] aqueux Ion difluorofer (III) complexe 1 0 4 1 Fe[3+] 2 F[-] 9.2 25 FeF3(aq) aqueux Trifluorofer (III) complexe 3 F[-] 1 Fe[3+] 11.9 25 FeF[+] aqueux 1 4 1 F[-] 1 Fe[2+] 1.4272 25 FeF[2+] aqueux Ion fluorofer (III) complexe 2 0 4.5 1 F[-] 1 Fe[3+] 5.2 25 FeHCO3[+] aqueux 1 4 1 Fe[2+] 1 HCO3[-] 2.72 25 FeHPO4[+] aqueux 1 0 4 1 Fe[3+] 1 HPO4[2-] 9.35 25 FeNH3[2+] aqueux complexe 2 0 4 1 NH3(aq) 1 Fe[2+] 1.4 25 FeNO2[2+] aqueux 2 4.5 1 Fe[3+] 1 NO2[-] 3.15 25 FeNO3[2+] aqueux 2 4.5 1 Fe[3+] 1 NO3[-] 1 25 FeOH[+] aqueux 1 0 4 1 Fe[2+] 1 OH[-] 4.5 25 FeOH[2+] aqueux 2 0 4.5 1 Fe[3+] 1 OH[-] 11 25 FePO4[-] aqueux -1 4 -1 H[+] 1 Fe[2+] 1 HPO4[2-] -4.3918 25 FeS2O3(aq) aqueux complexe 1 S2O3[2-] 1 Fe[2+] 0.9 25 FeS2O3[+] aqueux complexe 1 0 1 Fe[3+] 1 S2O3[2-] 2.1 25 FeSCN[+] aqueux complexe 1 0 4 1 Fe[2+] 1 SCN[-] 1 25 FeSCN[2+] aqueux complexe 2 0 4 1 Fe[3+] 1 SCN[-] 2.3 25 FeSO4(aq) aqueux 1 Fe[2+] 1 SO4[2-] 2.2 25 FeSO4[+] aqueux 1 4 1 Fe[3+] 1 SO4[2-] 4 25 Fe[2+] aqueux cation_simple 2 54 6 0.5 H2O -0.25 O2(aq) 1 Fe[3+] -1 H[+] -8.4899 25 GaF[2+] aqueux fluorogadolinium (III) complexe 2 0 1 F[-] 1 Ga[3+] 5.1 25 GaOH[2+] aqueux 2 0 4.5 1 Ga[3+] 1 OH[-] 11.1 25 Gd(CO3)2[-] aqueux -1 4 -2 H[+] 1 Gd[3+] 2 HCO3[-] -7.5576 25 Gd(HPO4)2[-] aqueux -1 4 1 Gd[3+] 2 HPO4[2-] 9.6 25 Gd(OH)4[-] aqueux -1 4 -4 H[+] 1 Gd[3+] 4 H2O -33.8803 25 Gd(Pent)2[+] aqueux 1 Gd(CH3(CH2)3CO2)2+ 4 -2 H[+] 1 Gd[3+] 2 Acide pentanoïque(aq) -5.1846 25 Gd(Pent)[2+] aqueux 2 Gd(CH3(CH2)3CO2)++ 4.5 -1 H[+] 1 Gd[3+] 1 Acide pentanoïque(aq) -2.2071 25 Gd(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Gd[3+] 2 HPO4[2-] -3.9437 25 Gd(SO4)2[-] aqueux -1 4 1 Gd[3+] 2 SO4[2-] 5.1 25 GdCl2[+] aqueux 1 4 1 Gd[3+] 2 Cl[-] -0.0425 25 GdCl3(aq) aqueux 1 Gd[3+] 3 Cl[-] -0.4669 25 GdCl4[-] aqueux -1 4 1 Gd[3+] 4 Cl[-] -0.8913 25 GdCl[2+] aqueux 2 4.5 1 Cl[-] 1 Gd[3+] 0.3086 25 GdCO3[+] aqueux 1 4 -1 H[+] 1 Gd[3+] 1 HCO3[-] -2.479 25 GdF2[+] aqueux 1 4 1 Gd[3+] 2 F[-] 7.9311 25 GdF3(aq) aqueux 1 Gd[3+] 3 F[-] 10.4673 25 GdF4[-] aqueux -1 4 1 Gd[3+] 4 F[-] 12.4904 25 GdF[2+] aqueux 2 4.5 1 F[-] 1 Gd[3+] 4.5886 25 GdH2PO4[2+] aqueux 2 4.5 1 Gd[3+] 1 H[+] 1 HPO4[2-] 9.4484 25 GdHCO3[2+] aqueux 2 4.5 1 Gd[3+] 1 HCO3[-] 1.6991 25 GdHPO4[+] aqueux 1 4 1 Gd[3+] 1 HPO4[2-] -185.109 25 GdNO3[2+] aqueux 2 4.5 1 Gd[3+] 1 NO3[-] 0.4347 25 GdO2H(aq) aqueux -3 H[+] 1 Gd[3+] 2 H2O -25.2707 25 GdO2[-] aqueux -1 4 -4 H[+] 1 Gd[3+] 2 H2O -34.4333 25 GdOH[2+] aqueux 2 4.5 -1 H[+] 1 Gd[3+] 1 H2O -7.9075 25 GdO[+] aqueux 1 4 -2 H[+] 1 Gd[3+] 1 H2O -16.337 25 GdPO4(aq) aqueux -1 H[+] 1 Gd[3+] 1 HPO4[2-] -0.1218 25 GdSO4[+] aqueux 1 4 1 Gd[3+] 1 SO4[2-] -3.687 25 Gd[2+] aqueux cation_simple 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Gd[3+] -86.0054 25 Gd[4+] aqueux cation_simple 4 5.5 -0.5 H2O 0.25 O2(aq) 1 Gd[3+] 1 H[+] -103.99 25 H2(aq) aqueux molecule -0.5 O2(aq) 1 H2O -46.1066 25 H2AsO3[-] aqueux acide -1 4 -0.5 O2(aq) 1 H2AsO4[-] -30.5349 25 H2CrO4(aq) aqueux acide 1 CrO4[2-] 2 H[+] 4.5446 25 H2F2(aq) aqueux 1 H[+] 1 HF2[-] 3.18 25 H2N2O2(aq) aqueux acide 1 H[+] 1 HN2O2[-] 7.2 25 H2O2(aq) aqueux acide 0.5 O2(aq) 1 H2O 1.4492 25 H2P2O7[2-] aqueux -2 0 4 -1 H[+] 1 H3P2O7[-] -2.3 25 H2PO2[-] aqueux -1 46 4 -1 H[+] 1 H3PO2(aq) -1.2 25 H2PO3F(aq) aqueux -1 H2O 1 F[-] 1 HPO4[2-] 3 H[+] 12.1047 25 H2PO3[-] aqueux acide -1 0 4 1 H[+] 1 HPO3[2-] 6.7 25 H2PO4[-] aqueux acide -1 36 4 -1 H[+] 1 H3PO4(aq) -2.12 25 H2S(aq) aqueux acide 1 H[+] 1 HS[-] 7 25 H2S2O3(aq) aqueux 1 H[+] 1 HS2O3[-] 0.6 25 H2S2O4(aq) aqueux acide 1 H[+] 1 HS2O4[-] 0.3 25 H2Se(aq) aqueux 1 H[+] 1 HSe[-] 3.9 25 H2SeO3(aq) aqueux 1 H[+] 1 HSeO3[-] 2.6 25 H2SiO4[2-] aqueux -2 4 -2 H[+] 1 SiO2(aq) 2 H2O -22.96 25 H2SO3(aq) aqueux acide 1 H[+] 1 HSO3[-] 1.8 25 H2SO4(aq) aqueux acide 1 SO4[2-] 2 H[+] -1.0209 25 H2SO5(aq) aqueux acide 1 HSO5[-] 1 H[+] 1 25 H2VO4[-] aqueux -1 4 -3 H[+] 0.25 O2(aq) 1 VO[2+] 2.5 H2O -2.5221 25 H3AsO3(aq) aqueux acide 1 H[+] 1 H2AsO3[-] 9.2 25 H3AsO4(aq) aqueux acide 1 H[+] 1 H2AsO4[-] 2.2 25 H3P2O7[-] aqueux -1 0 4 -1 H[+] 1 H4P2O7(aq) -1.5 25 H3PO2(aq) aqueux -1 O2(aq) 1 HPO4[2-] 2 H[+] -102.008 25 H3PO3(aq) aqueux acide 1 H[+] 1 H2PO3[-] 1.2 25 H3PO4(aq) aqueux acide 1 HPO4[2-] 2 H[+] 9.32 25 H3SiO4[-] aqueux acide -1 0 4 1 H[+] 1 H2SiO4[2-] 11.9 25 H3VO4(aq) aqueux -1 H[+] 1 VO2[+] 2 H2O -3.2805 25 H4P2O7(aq) aqueux -1 H2O 2 HPO4[2-] 4 H[+] 15.9559 25 H4SiO4(aq) aqueux acide 1 H[+] 1 H3SiO4[-] 9.7 25 HAlO2(aq) aqueux -3 H[+] 1 Al[3+] 2 H2O -15.6016 25 HAsO2(aq) aqueux -1 H2O -0.5 O2(aq) 1 H[+] 1 H2AsO4[-] -21.3007 25 HAsO3F[-] aqueux -1 4 -1 H2O 1 F[-] 1 H[+] 1 H2AsO4[-] 46.1158 25 HAsO3[2-] aqueux acide -2 0 4 -1 H[+] 1 H2AsO3[-] -13.5 25 HAsO4[2-] aqueux acide -2 0 4 -1 H[+] 1 H2AsO4[-] -6.95 25 HAsS2(aq) aqueux -3 H2O 1 H2AsO3[-] 2 HS[-] 3 H[+] 30.4803 25 HBr(aq) aqueux acide 1 Br[-] 1 H[+] 9 25 HBrO(aq) aqueux acide 1 BrO[-] 1 H[+] 8.5762 25 HCl(aq) aqueux acide 1 Cl[-] 1 H[+] -7 25 HClO(aq) aqueux acide 1 ClO[-] 1 H[+] 7.55 25 HClO2(aq) aqueux 1 ClO2[-] 1 H[+] 1.95 25 HClO3(aq) aqueux acide 1 ClO3[-] 1 H[+] -2.7 25 HCN(aq) aqueux acide 1 CN[-] 1 H[+] 9.22 25 HCNO(aq) aqueux acide 1 OCN[-] 1 H[+] 3.46 25 HCNS(aq) aqueux acide 1 SCN[-] 1 H[+] -1.5 25 HCr2O7[-] aqueux acide -1 0 4 1 Cr2O7[2-] 1 H[+] 0 25 HCrO4[-] aqueux acide -1 0 4 1 CrO4[2-] 1 H[+] 6.5 25 HF(aq) aqueux acide 1 F[-] 1 H[+] 3.1681 25 HF2[-] aqueux -1 75 4 1 H[+] 2 F[-] 2.5509 25 HfO2(aq) aqueux -4 H[+] 1 Hf[4+] 2 H2O -10.6839 25 HfOH[3+] aqueux 3 5 -1 H[+] 1 H2O 1 Hf[4+] -0.2109 25 HfO[2+] aqueux 2 4.5 -2 H[+] 1 H2O 1 Hf[4+] -2.4099 25 Hg(CN)2 aqueux Dicyanomercure (II) complexe 1 Hg[2+] 2 CN[-] 34.7 25 Hg(CN)3[-] aqueux Ion tricyanomercurate (II) complexe -1 0 1 Hg[2+] 3 CN[-] 38.5 25 Hg(CN)4[2-] aqueux Ion tetracyanomercurate (II) complexe -2 0 1 Hg[2+] 4 CN[-] 41.5 25 Hg(CN)[+] aqueux Ion cyanomercure (II) complexe 1 0 1 Hg[2+] 1 CN[-] 18 25 Hg(HS)2(aq) aqueux complexe 1 Hg[2+] 2 HS[-] 41 25 Hg(NH3)2[2+] aqueux 2 0 4 2 NH3(aq) 1 Hg[2+] 17.5 25 Hg(NH3)3[2+] aqueux complexe 2 0 4 1 Hg[2+] 3 NH3(aq) 18.5 25 Hg(NH3)4[2+] aqueux complexe 2 0 4 1 Hg[2+] 4 NH3(aq) 19.4 25 Hg(OH)(P2O7)[3-] aqueux complexe -3 0 4 1 Hg[2+] 1 OH[-] 1 P2O7[4-] 17.45 25 Hg(OH)2[-] aqueux -1 0 4 -1 H2O 1 Hg[2+] 3 OH[-] 21.7 25 Hg(S2O3)2[2-] aqueux complexe -2 0 1 Hg[2+] 2 S2O3[2-] 32.26 25 Hg(SCN)2(aq) aqueux complexe 1 Hg[2+] 2 SCN[-] 16.1 25 Hg(SCN)3[-] aqueux complexe -1 0 4 1 Hg[2+] 3 SCN[-] 19 25 Hg(SCN)4[2-] aqueux complexe -2 0 4 1 Hg[2+] 4 SCN[-] 20.9 25 Hg2(OH)(P2O7)[3-] aqueux complexe -3 0 4 1 Hg2[2+] 1 OH[-] 1 P2O7[4-] 15.6 25 Hg2OH[+] aqueux complexe 1 0 0 1 Hg2[2+] 1 OH[-] 9 25 Hg2[2+] aqueux 2 4 -2 H[+] -0.5 O2(aq) 1 H2O 2 Hg[2+] -12.208 25 HgBr2(aq) aqueux complexe 2 Br[-] 1 Hg[2+] 17.3 25 HgBr3[-] aqueux complexe -1 0 3 Br[-] 1 Hg[2+] 19.7 25 HgBr4[2-] aqueux complexe -2 0 4 Br[-] 1 Hg[2+] 21 25 HgBr[+] aqueux complexe 1 0 1 Br[-] 1 Hg[2+] 9.05 25 HgCl2(aq) aqueux 1 Hg[2+] 2 Cl[-] 13.2 25 HgCl3[-] aqueux complexe -1 0 4 1 Hg[2+] 3 Cl[-] 14.1 25 HgCl4[2-] aqueux -2 0 4 1 Hg[2+] 4 Cl[-] 15.1 25 HgCl[+] aqueux 1 0 4 1 Cl[-] 1 Hg[2+] 6.7 25 HgF[+] aqueux fluoromercure (II) complexe 1 0 4 1 F[-] 1 Hg[2+] 1 25 HgI2(aq) aqueux complexe 2 I[-] 1 Hg[2+] 23.8 25 HgI3[-] aqueux complexe -1 0 3 I[-] 1 Hg[2+] 27.6 25 HgI4[2-] aqueux complexe -2 0 4 I[-] 1 Hg[2+] 29.8 25 HgI[+] aqueux complexe 1 0 1 I[-] 1 Hg[2+] 12.9 25 HgNH3[2+] aqueux complexe 2 0 4 1 Hg[2+] 1 NH3(aq) 8.8 25 HgOH[+] aqueux 1 0 4 1 Hg[2+] 1 OH[-] 10.3 25 HgS2O3(aq) aqueux complexe 1 Hg[2+] 1 S2O3[2-] 29.86 25 HgS2[2-] aqueux complexe -2 0 1 Hg[2+] 2 S[2-] 53 25 HHfO2[+] aqueux 1 4 -3 H[+] 1 Hf[4+] 2 H2O -5.9926 25 HHfO3[-] aqueux -1 4 -5 H[+] 1 Hf[4+] 3 H2O -17.1986 25 HI(aq) aqueux acide 1 H[+] 1 I[-] 9.5 25 HIO(aq) aqueux acide 1 H[+] 1 IO[-] 10.6 25 HIO3(aq) aqueux acide 1 H[+] 1 IO3[-] 0.8063 25 HMnO4(aq) aqueux acide 1 MnO4[-] 1 H[+] 2.2 25 HMoO4[-] aqueux acide -1 4 1 H[+] 1 MoO4[2-] 4.398 25 HN2O2[-] aqueux acide -1 0 4 1 H[+] 1 N2O2[2-] 11.5 25 HN3(aq) aqueux acide 1 H[+] 1 N3[-] 4.72 25 HNbO3(aq) aqueux acide 1 H[+] 1 NbO3[-] 7.1102 25 HNO2(aq) aqueux acide 1 H[+] 1 NO2[-] 3.2 25 HNO3(aq) aqueux acide 1 H[+] 1 NO3[-] -1.3026 25 Ho(CO3)2[-] aqueux -1 4 -2 H[+] 1 Ho[3+] 2 HCO3[-] -7.3576 25 Ho(HPO4)2[-] aqueux -1 4 1 Ho[3+] 2 HPO4[2-] 9.9 25 Ho(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Ho[3+] 2 HPO4[2-] -3.3437 25 Ho(SO4)2[-] aqueux -1 4 1 Ho[3+] 2 SO4[2-] 4.9 25 HO2[-] aqueux acide -1 0 4 -1 H[+] 1 H2O2(aq) -11.65 25 HoCl2[+] aqueux 1 4 1 Ho[3+] 2 Cl[-] -0.0425 25 HoCl3(aq) aqueux 1 Ho[3+] 3 Cl[-] -0.4669 25 HoCl4[-] aqueux -1 4 1 Ho[3+] 4 Cl[-] -0.8913 25 HoCl[2+] aqueux 2 4.5 1 Cl[-] 1 Ho[3+] 0.2353 25 HoCO3[+] aqueux 1 4 -1 H[+] 1 HCO3[-] 1 Ho[3+] -2.2591 25 HoF2[+] aqueux 1 4 1 Ho[3+] 2 F[-] 8.2976 25 HoF3(aq) aqueux 1 Ho[3+] 3 F[-] 10.9071 25 HoF4[-] aqueux -1 4 1 Ho[3+] 4 F[-] 13.0035 25 HoF[2+] aqueux 2 4.5 1 F[-] 1 Ho[3+] 4.7352 25 HoH2PO4[2+] aqueux 2 4.5 1 H[+] 1 HPO4[2-] 1 Ho[3+] 9.4484 25 HoHCO3[2+] aqueux 2 4.5 1 HCO3[-] 1 Ho[3+] 1.6991 25 HoHPO4[+] aqueux 1 4 1 HPO4[2-] 1 Ho[3+] 5.8 25 HoNO3[2+] aqueux 2 4.5 1 Ho[3+] 1 NO3[-] 0.2148 25 HoO2H(aq) aqueux -3 H[+] 1 Ho[3+] 2 H2O -24.5377 25 HoO2[-] aqueux -1 4 -4 H[+] 1 Ho[3+] 2 H2O -33.4804 25 HoOH[2+] aqueux 2 4.5 -1 H[+] 1 H2O 1 Ho[3+] -7.7609 25 HoO[+] aqueux 1 4 -2 H[+] 1 H2O 1 Ho[3+] -16.0438 25 HoPO4(aq) aqueux -1 H[+] 1 HPO4[2-] 1 Ho[3+] 0.2782 25 HoSO4[+] aqueux 1 4 1 Ho[3+] 1 SO4[2-] 3.5697 25 Ho[2+] aqueux 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Ho[3+] -68.7798 25 Ho[4+] aqueux 4 5.5 -0.5 H2O 0.25 O2(aq) 1 H[+] 1 Ho[3+] -74.4498 25 HP2O7[3-] aqueux -3 0 4 -1 H[+] 1 H2P2O7[2-] -6.6 25 HPO3F[-] aqueux -1 4 -1 H2O 1 F[-] 1 HPO4[2-] 2 H[+] 11.2988 25 HPO3[2-] aqueux acide -2 4 -0.5 O2(aq) 1 HPO4[2-] -50.0548 25 HRuO5[-] aqueux -1 4 -1 H[+] 1 H2O 1 RuO4(aq) -11.5244 25 HS2O3[-] aqueux -1 4 -2 O2(aq) -1 H2O 2 SO4[2-] 3 H[+] -131.853 25 HS2O4[-] aqueux acide -1 0 4 1 H[+] 1 S2O4[2-] 2.4 25 HSbO2(aq) aqueux 1 H[+] 1 SbO2[-] 10.9951 25 HSeO3[-] aqueux -1 0 4 1 H[+] 1 SeO3[2-] 8.3 25 HSeO4[-] aqueux -1 0 4 1 H[+] 1 SeO4[2-] 1.9058 25 HSe[-] aqueux -1 4 -1.5 O2(aq) 1 H[+] 1 SeO3[2-] -76.8418 25 HSiO3[-] aqueux -1 4 -1 H[+] 1 H2O 1 SiO2(aq) -9.5853 25 HSO3[-] aqueux acide -1 58 4 1 H[+] 1 SO3[2-] 7.2054 25 HSO4[-] aqueux acide -1 52 4 1 H[+] 1 SO4[2-] 2 25 HSO5[-] aqueux -1 4 0.5 O2(aq) 1 H[+] 1 SO4[2-] -17.2865 25 HS[-] aqueux acide -1 65 3.5 -2 O2(aq) 1 H[+] 1 SO4[2-] -138.317 25 HVO4[2-] aqueux -2 4 -4 H[+] 0.25 O2(aq) 1 VO[2+] 2.5 H2O -10.5779 25 HW6O21[5-] aqueux complexe -5 0 HW6O21[5-] 4 -3 H2O 7 H[+] 6 WO4[2-] 60.7 25 HWO4[-] aqueux -1 3.5 1 H[+] 1 WO4[2-] 3.5917 25 HYO2(aq) aqueux -3 H[+] 1 Y[3+] 2 H2O -26.0037 25 I3[-] aqueux -1 4 -1 H2O 0.5 O2(aq) 2 H[+] 3 I[-] 24.7278 25 In(SCN)2[+] aqueux complexe 1 0 4 1 In[3+] 2 SCN[-] 3.6 25 In(SCN)3(aq) aqueux complexe 1 In[3+] 3 SCN[-] 4.6 25 In(SO4)2[-] aqueux complexe -1 0 2 SO4[2-] 1 In[3+] 2.6 25 In(SO4)3[3-] aqueux complexe -3 0 3 SO4[2-] 1 In[3+] 3 25 InBr2[+] aqueux complexe 1 0 2 Br[-] 1 In[3+] 1.8 25 InBr3(aq) aqueux complexe 3 Br[-] 1 In[3+] 2.5 25 InBr[2+] aqueux complexe 2 0 1 Br[-] 1 In[3+] 1.2 25 InCl2[+] aqueux dichloroindium (III) complexe 1 0 2 Cl[-] 1 In[3+] 2.2 25 InCl3 aqueux trichloroindium (III) complexe 3 Cl[-] 1 In[3+] 3.2 25 InCl[2+] aqueux 2 0 4.5 1 Cl[-] 1 In[3+] 1.4 25 InF2[+] aqueux Ion difluoroindium (III) complexe 1 0 2 F[-] 1 In[3+] 6.3 25 InF3 aqueux trifluoroindium (III) complexe 3 F[-] 1 In[3+] 8.6 25 InF4[-] aqueux Ion tetrafluoroindium (III) complexe -1 0 4 F[-] 1 In[3+] 9.7 25 InF[2+] aqueux fluoroindium (III) complexe 2 0 4.5 1 F[-] 1 In[3+] 3.7 25 InI2[+] aqueux complexe 1 0 1 In[3+] 2 I[-] 2.6 25 InI3(aq) aqueux complexe 1 In[3+] 3 I[-] 2.5 25 InI[2+] aqueux complexe 2 0 1 In[3+] 1 I[-] 1.6 25 InOH[2+] aqueux 2 0 4.5 1 In[3+] 1 OH[-] 7 25 InSCN[2+] aqueux complexe 2 0 4 1 In[3+] 1 SCN[-] 2.6 25 InSO4[+] aqueux complexe 1 0 1 SO4[2-] 1 In[3+] 1.85 25 IO3[-] aqueux acide -1 40.5 4 1 I[-] 1.5 O2(aq) 17.6809 25 IO4[-] aqueux -1 54.5 3.5 1 I[-] 2 O2(aq) 6.9621 25 IO[-] aqueux acide -1 4 0.5 O2(aq) 1 I[-] -0.9038 25 I[+] aqueux acide 1 0 4 -1 H2O 1 HIO(aq) 1 H[+] 4.51 25 K(Pent)(aq) aqueux K(CH3(CH2)3CO2)(aq) -1 H[+] 1 K[+] 1 Acide pentanoïque(aq) -4.8371 25 K(Pent)2[-] aqueux -1 K(CH3(CH2)3CO2)2- 4 -2 H[+] 1 K[+] 2 Acide pentanoïque(aq) -10.0041 25 KBr(aq) aqueux 1 Br[-] 1 K[+] -1.7372 25 KCl(aq) aqueux 1 Cl[-] 1 K[+] -2.5355 25 KHPO4[-] aqueux -1 4 1 HPO4[2-] 1 K[+] 0.78 25 KHSO4(aq) aqueux 1 H[+] 1 K[+] 1 SO4[2-] -1.4953 25 KI(aq) aqueux 1 I[-] 1 K[+] -1.598 25 KOH(aq) aqueux -1 H[+] 1 H2O 1 K[+] -14.4386 25 KP2O7[3-] aqueux -3 0 4 1 K[+] 1 P2O7[4-] 2.3 25 KSO4[-] aqueux -1 4 1 K[+] 1 SO4[2-] 0.8796 25 La(CO3)2[-] aqueux -1 4 -2 H[+] 1 La[3+] 2 HCO3[-] -8.8576 25 La(HPO4)2[-] aqueux -1 4 1 La[3+] 2 HPO4[2-] 8.4 25 La(Pent)2[+] aqueux 1 La(CH3(CH2)3CO2)2+ 4 -2 H[+] 1 La[3+] 2 Acide pentanoïque(aq) -5.2447 25 La(Pent)[2+] aqueux 2 La(CH3(CH2)3CO2)++ 4.5 -1 H[+] 1 La[3+] 1 Acide pentanoïque(aq) -2.2371 25 La(PO4)2[3-] aqueux -3 4 -2 H[+] 1 La[3+] 2 HPO4[2-] -7.0437 25 LaCl2[+] aqueux 1 4 1 La[3+] 2 Cl[-] -0.0425 25 LaCl3(aq) aqueux 1 La[3+] 3 Cl[-] -0.3936 25 LaCl4[-] aqueux -1 4 1 La[3+] 4 Cl[-] -0.818 25 LaCl[2+] aqueux 2 4.5 1 Cl[-] 1 La[3+] 0.3086 25 LaCO3[+] aqueux 1 4 -1 H[+] 1 HCO3[-] 1 La[3+] -3.212 25 LaF3(aq) aqueux complexe 1 La[3+] 3 F[-] 8.7081 25 LaF4[-] aqueux complexe -1 0 4 1 La[3+] 4 F[-] 10.3647 25 LaF[2+] aqueux complexe 2 0 4.5 1 F[-] 1 La[3+] 2.7 25 LaH2PO4[2+] aqueux 2 4.5 1 H[+] 1 HPO4[2-] 1 La[3+] 9.7417 25 LaHCO3[2+] aqueux 2 4.5 1 HCO3[-] 1 La[3+] 1.9923 25 LaHPO4[+] aqueux 1 4 1 HPO4[2-] 1 La[3+] 5.1 25 LaNO3[2+] aqueux 2 4.5 1 La[3+] 1 NO3[-] 0.5813 25 LaOH[2+] aqueux 2 0 4.5 1 La[3+] 1 OH[-] 3.9 25 LaPO4(aq) aqueux -1 H[+] 1 HPO4[2-] 1 La[3+] -1.3618 25 LaSO4[+] aqueux 1 4 1 La[3+] 1 SO4[2-] 1.4 25 La[2+] aqueux 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 La[3+] -84.7593 25 LiCl(aq) aqueux 1 Cl[-] 1 Li[+] -1.5115 25 LiOH(aq) aqueux 1 Li[+] 1 OH[-] 0.2 25 LiP2O7[3-] aqueux complexe -3 0 4 1 Li[+] 1 P2O7[4-] 3.1 25 LiSO4[-] aqueux -1 4 1 Li[+] 1 SO4[2-] 0.77 25 Lu(CO3)2[-] aqueux -1 4 -2 H[+] 1 Lu[3+] 2 HCO3[-] -6.8576 25 Lu(HPO4)2[-] aqueux -1 4 1 Lu[3+] 2 HPO4[2-] 10.3 25 Lu(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Lu[3+] 2 HPO4[2-] -2.7437 25 Lu(SO4)2[-] aqueux -1 4 1 Lu[3+] 2 SO4[2-] 5.3 25 LuCl2[+] aqueux 1 4 1 Lu[3+] 2 Cl[-] -0.6289 25 LuCl3(aq) aqueux 1 Lu[3+] 3 Cl[-] -1.1999 25 LuCl4[-] aqueux -1 4 1 Lu[3+] 4 Cl[-] -1.771 25 LuCl[2+] aqueux 2 4.5 1 Cl[-] 1 Lu[3+] -0.0579 25 LuCO3[+] aqueux 1 4 -1 H[+] 1 HCO3[-] 1 Lu[3+] -2.0392 25 LuF2[+] aqueux 1 4 1 Lu[3+] 2 F[-] 8.4442 25 LuF3(aq) aqueux 1 Lu[3+] 3 F[-] 11.0999 25 LuF4[-] aqueux -1 4 1 Lu[3+] 4 F[-] 13.2967 25 LuF[2+] aqueux 2 4.5 1 F[-] 1 Lu[3+] 4.8085 25 LuH2PO4[2+] aqueux 2 4.5 1 H[+] 1 HPO4[2-] 1 Lu[3+] 9.595 25 LuHCO3[2+] aqueux 2 4.5 1 HCO3[-] 1 Lu[3+] 1.919 25 LuHPO4[+] aqueux 1 4 1 HPO4[2-] 1 Lu[3+] 6 25 LuNO3[2+] aqueux 2 4.5 1 Lu[3+] 1 NO3[-] 0.5813 25 LuO2H(aq) aqueux -3 H[+] 1 Lu[3+] 2 H2O -23.878 25 LuO2[-] aqueux -1 4 -4 H[+] 1 Lu[3+] 2 H2O -31.9411 25 LuOH[2+] aqueux 2 4.5 -1 H[+] 1 H2O 1 Lu[3+] -7.6143 25 LuO[+] aqueux 1 4 -2 H[+] 1 H2O 1 Lu[3+] -15.3108 25 LuPO4(aq) aqueux -1 H[+] 1 HPO4[2-] 1 Lu[3+] 0.6782 25 LuSO4[+] aqueux 1 4 1 Lu[3+] 1 SO4[2-] 3.5697 25 Lu[4+] aqueux 4 5.5 -0.5 H2O 0.25 O2(aq) 1 H[+] 1 Lu[3+] -115.132 25 Mg(NH3)2[2+] aqueux complexe 2 0 4 1 Mg[2+] 2 NH3(aq) 0.08 25 Mg(NH3)3[2+] aqueux complexe 2 0 4 1 Mg[2+] 3 NH3(aq) -0.36 25 Mg(NH3)4[2+] aqueux complexe 2 0 4 1 Mg[2+] 4 NH3(aq) -1.1 25 Mg(Pent)2(aq) aqueux Mg(CH3(CH2)3CO2)2(aq) -2 H[+] 1 Mg[2+] 2 Acide pentanoïque(aq) -9.4844 25 Mg(Pent)[+] aqueux 1 Mg(CH3(CH2)3CO2)+ 4 -1 H[+] 1 Mg[2+] 1 Acide pentanoïque(aq) -4.5571 25 MgB(OH)4[+] aqueux 1 4 -1 H[+] 1 B(OH)3(aq) 1 H2O 1 Mg[2+] -7.3467 25 MgCl[+] aqueux 1 4 1 Cl[-] 1 Mg[2+] -0.1349 25 MgCO3(aq) aqueux -1 H[+] 1 HCO3[-] 1 Mg[2+] -7.3499 25 MgF[+] aqueux complexe 1 0 4 1 F[-] 1 Mg[2+] 1.3 25 MgHCO3[+] aqueux 1 4 1 HCO3[-] 1 Mg[2+] 1.0357 25 MgHPO4(aq) aqueux 1 HPO4[2-] 1 Mg[2+] 1.9 25 MgHSiO3[+] aqueux 1 4 -1 H[+] 1 H2O 1 Mg[2+] 1 SiO2(aq) -8.3253 25 MgNH3[2+] aqueux complexe 2 0 4 1 Mg[2+] 1 NH3(aq) 0.23 25 MgOH[+] aqueux 1 0 4 1 Mg[2+] 1 OH[-] 2.6 25 MgP2O7[2-] aqueux -2 0 4 1 Mg[2+] 1 P2O7[4-] 5.7 25 MgPO4[-] aqueux -1 4 -1 H[+] 1 HPO4[2-] 1 Mg[2+] -5.7328 25 MgS2O3(aq) aqueux complexe 1 Mg[2+] 1 S2O3[2-] 1.79 25 MgSO4(aq) aqueux 1 Mg[2+] 1 SO4[2-] 2.4 25 Mn(NH3)2[2+] aqueux complexe 2 0 4 1 Mn[2+] 2 NH3(aq) 1.3 25 Mn(NO3)2(aq) aqueux 1 Mn[2+] 2 NO3[-] 0.6 25 Mn(Pent)2(aq) aqueux Mn(CH3(CH2)3CO2)2(aq) -2 H[+] 1 Mn[2+] 2 Acide pentanoïque(aq) -8.4838 25 Mn(Pent)[+] aqueux 1 Mn(CH3(CH2)3CO2)+ 4 -1 H[+] 1 Mn[2+] 1 Acide pentanoïque(aq) -4.2067 25 MnCl2(aq) aqueux complexe 2 Cl[-] 1 Mn[2+] 0.8 25 MnCl3[-] aqueux complexe -1 0 4 1 Mn[2+] 3 Cl[-] 0.4 25 MnCl[+] aqueux complexe 1 0 4 1 Cl[-] 1 Mn[2+] 0.6 25 MnCO3(aq) aqueux -1 H[+] 1 HCO3[-] 1 Mn[2+] -5.8088 25 MnF2 aqueux complexe 2 F[-] 1 Mn[2+] 9 25 MnF3[-] aqueux complexe -1 0 3 F[-] 1 Mn[2+] 11.7 25 MnF4[2-] aqueux complexe -2 0 4 F[-] 1 Mn[2+] 13.4 25 MnF5[3-] aqueux complexe -3 0 5 F[-] 1 Mn[2+] 14.7 25 MnF6[4-] aqueux complexe -4 0 6 F[-] 1 Mn[2+] 15.5 25 MnF[+] aqueux complexe 1 0 4 1 F[-] 1 Mn[2+] 5.5 25 MnHCO3[+] aqueux 1 4 1 HCO3[-] 1 Mn[2+] 0.4418 25 MnHPO4(aq) aqueux 1 HPO4[2-] 1 Mn[2+] 2.6 25 MnNH3[2+] aqueux complexe 2 0 4 1 Mn[2+] 1 NH3(aq) 0.8 25 MnNO3[+] aqueux 1 4 1 Mn[2+] 1 NO3[-] 0.2 25 MnO(aq) aqueux -2 H[+] 1 H2O 1 Mn[2+] -22.2011 25 MnO2[2-] aqueux -2 4 -4 H[+] 1 Mn[2+] 2 H2O -48.2871 25 MnO4[-] aqueux -1 61.3 3.5 -3 H[+] 1 Mn[2+] 1.25 O2(aq) 1.5 H2O -20.223 25 MnO4[2-] aqueux -2 4 -4 H[+] 1 Mn[2+] 1 O2(aq) 2 H2O -32.3413 25 MnOH[+] aqueux 1 0 4 1 Mn[2+] 1 OH[-] 3.4 25 MnPO4[-] aqueux -1 4 -1 H[+] 1 HPO4[2-] 1 Mn[2+] -5.1318 25 MnS2O3(aq) aqueux complexe 1 S2O3[2-] 1 Mn[2+] 1.95 25 MnSCN[+] aqueux complexe 1 0 4 1 Mn[2+] 1 SCN[-] 1.2 25 MnSeO4(aq) aqueux 1 Mn[2+] 1 SeO4[2-] 2.43 25 MnSO4(aq) aqueux 1 Mn[2+] 1 SO4[2-] 2.3 25 Mn[3+] aqueux 3 5 -0.5 H2O 0.25 O2(aq) 1 H[+] 1 Mn[2+] -4.0078 25 Mo7O24[6-] aqueux complexe -6 0 -4 H2O 8 H[+] 7 MoO4[2-] 57.7 25 N2(aq) aqueux -3 H2O 1.5 O2(aq) 2 NH3(aq) 116.461 25 N2H4(aq) aqueux acide 1 N2H5[+] -1 H[+] -7.94 25 N2H5[+] aqueux 1 59 4 -1 H2O 0.5 O2(aq) 1 H[+] 2 NH3(aq) 19.2038 25 N2H6[2+] aqueux 2 0 4.5 1 H[+] 1 N2H5[+] 0.27 25 N2O2[2-] aqueux acide -2 4 -2 H[+] -2 H2O 2 NH3(aq) 2 O2(aq) 55.2082 25 N3[-] aqueux acide -1 69 4 -4 H2O -1 H[+] 2 O2(aq) 3 NH3(aq) 96.968 25 Na(Pent)(aq) aqueux Na(CH3(CH2)3CO2)(aq) -1 H[+] 1 Na[+] 1 Acide pentanoïque(aq) -4.8173 25 Na(Pent)2[-] aqueux -1 Na(CH3(CH2)3CO2)2- 4 -2 H[+] 1 Na[+] 2 Acide pentanoïque(aq) -9.9645 25 NaB(OH)4(aq) aqueux -1 H[+] 1 B(OH)3(aq) 1 H2O 1 Na[+] -8.974 25 NaBr(aq) aqueux 1 Br[-] 1 Na[+] -1.3568 25 NaCl(aq) aqueux 1 Cl[-] 1 Na[+] -0.777 25 NaCO3[-] aqueux -1 4 -1 H[+] 1 HCO3[-] 1 Na[+] -9.8144 25 NaF(aq) aqueux 1 F[-] 1 Na[+] -0.9976 25 NaHCO3(aq) aqueux 1 HCO3[-] 1 Na[+] 0.1541 25 NaHP2O7[2-] aqueux -2 4 -1 H2O 1 H[+] 1 Na[+] 2 HPO4[2-] 6.8739 25 NaHPO4[-] aqueux -1 4 1 HPO4[2-] 1 Na[+] 0.92 25 NaHSiO3(aq) aqueux -1 H[+] 1 H2O 1 Na[+] 1 SiO2(aq) -7.7543 25 NaI(aq) aqueux 1 I[-] 1 Na[+] -1.54 25 NaOH(aq) aqueux 1 Na[+] 1 OH[-] -0.8 25 NaP2O7[3-] aqueux -3 0 4 1 Na[+] 1 P2O7[4-] 2.3 25 NaSO4[-] aqueux -1 4 1 Na[+] 1 SO4[2-] 0.7 25 Nd(CO3)2[-] aqueux -1 4 -2 H[+] 1 Nd[3+] 2 HCO3[-] -8.0576 25 Nd(HPO4)2[-] aqueux -1 4 1 Nd[3+] 2 HPO4[2-] 9.1 25 Nd(OH)4[-] aqueux -1 4 -4 H[+] 1 Nd[3+] 4 H2O -37.0803 25 Nd(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Nd[3+] 2 HPO4[2-] -5.1437 25 Nd(SO4)2[-] aqueux -1 4 1 Nd[3+] 2 SO4[2-] -255.748 25 Nd2(OH)2[4+] aqueux 4 5.5 -2 H[+] 2 H2O 2 Nd[3+] -13.8902 25 NdCl2[+] aqueux 1 4 1 Nd[3+] 2 Cl[-] 0.0308 25 NdCl3(aq) aqueux 1 Nd[3+] 3 Cl[-] -0.3203 25 NdCl4[-] aqueux -1 4 1 Nd[3+] 4 Cl[-] -0.7447 25 NdCl[2+] aqueux 2 4.5 1 Cl[-] 1 Nd[3+] 0.3086 25 NdCO3[+] aqueux 1 4 -1 H[+] 1 HCO3[-] 1 Nd[3+] -2.6256 25 NdF2[+] aqueux 1 4 1 Nd[3+] 2 F[-] 7.5646 25 NdF3(aq) aqueux 1 Nd[3+] 3 F[-] 9.8809 25 NdF4[-] aqueux -1 4 1 Nd[3+] 4 F[-] 11.8307 25 NdF[2+] aqueux 2 4.5 1 F[-] 1 Nd[3+] 4.3687 25 NdH2PO4[2+] aqueux 2 4.5 1 H[+] 1 HPO4[2-] 1 Nd[3+] 9.5152 25 NdHCO3[2+] aqueux 2 4.5 1 HCO3[-] 1 Nd[3+] 1.8457 25 NdHPO4[+] aqueux 1 4 1 HPO4[2-] 1 Nd[3+] 5.4 25 NdNO3[2+] aqueux 2 4.5 1 NO3[-] 1 Nd[3+] 0.7902 25 NdO2H(aq) aqueux -3 H[+] 1 Nd[3+] 2 H2O -26.3702 25 NdO2[-] aqueux -1 4 -4 H[+] 1 Nd[3+] 2 H2O -37.0721 25 NdOH[2+] aqueux 2 4.5 -1 H[+] 1 H2O 1 Nd[3+] -8.1274 25 NdO[+] aqueux 1 4 -2 H[+] 1 H2O 1 Nd[3+] -17.0701 25 NdPO4(aq) aqueux -1 H[+] 1 HPO4[2-] 1 Nd[3+] -0.5218 25 NdSO4[+] aqueux 1 4 1 Nd[3+] 1 SO4[2-] 3.643 25 Nd[2+] aqueux 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Nd[3+] -65.7744 25 Nd[4+] aqueux 4 5.5 -0.5 H2O 0.25 O2(aq) 1 H[+] 1 Nd[3+] -61.7687 25 NH2OH(aq) aqueux acide 1 NH2OH2[+] -1 H[+] -5.96 25 NH2OH2[+] aqueux acide 1 0 4 1 H2O 2 H[+] -1.5 O2(aq) 1 NO3[-] 0 25 NH3(aq) aqueux ammoniac acide 1 H[+] 1 H2O 1 NO3[-] -2 O2(aq) -62.1001 25 (NH4)2Sb2S4(aq) aqueux -4 H2O 2 NH3(aq) 2 SbO2[-] 4 HS[-] 6 H[+] 89.6382 25 NH4SbO2(aq) aqueux 1 H[+] 1 NH3(aq) 1 SbO2[-] 8.4148 25 NH4SO4[-] aqueux -1 4 1 H[+] 1 NH3(aq) 1 SO4[2-] 0.94 25 NH4[+] aqueux ion ammonium acide 1 73.5 2.5 1 H[+] 1 NH3(aq) 9.241 25 Ni(CN)4[2-] aqueux complexe -2 0 4 1 Ni[2+] 4 CN[-] 31.3 25 Ni(NH3)2[2+] aqueux 2 4.5 1 Ni[2+] 2 NH3(aq) 4.95 25 Ni(NH3)3[2+] aqueux 2 4.5 1 Ni[2+] 3 NH3(aq) 6.64 25 Ni(NH3)4[2+] aqueux 2 4.5 1 Ni[2+] 4 NH3(aq) 7.79 25 Ni(NH3)5[2+] aqueux complexe 2 0 4 1 Ni[2+] 5 NH3(aq) 8.5 25 Ni(NH3)6[2+] aqueux 2 4.5 1 Ni[2+] 6 NH3(aq) 8.49 25 Ni(NH3)[2+] aqueux 2 4.5 1 Ni[2+] 1 NH3(aq) 2.75 25 Ni(NO3)2(aq) aqueux 1 Ni[2+] 2 NO3[-] 0.1899 25 Ni(P2O7)2[6-] aqueux complexe -6 0 4 1 Ni[2+] 2 P2O7[4-] 7.2 25 Ni(Pent)2(aq) aqueux Ni(CH3(CH2)3CO2)2(aq) -2 H[+] 1 Ni[2+] 2 Acide pentanoïque(aq) -6.8741 25 Ni(Pent)[+] aqueux 1 Ni(CH3(CH2)3CO2)+ 4 -1 H[+] 1 Ni[2+] 1 Acide pentanoïque(aq) -3.127 25 Ni(SCN)2(aq) aqueux complexe 1 Ni[2+] 2 SCN[-] 1.6 25 Ni(SCN)3[-] aqueux complexe -1 0 4 1 Ni[2+] 3 SCN[-] 1.8 25 NiBr[+] aqueux 1 4 1 Br[-] 1 Ni[2+] -0.37 25 NiCl[+] aqueux 1 4 1 Cl[-] 1 Ni[2+] -0.9962 25 NiF[+] aqueux complexe 1 0 4 1 F[-] 1 Ni[2+] 0.7 25 NiHP2O7[-] aqueux -1 4 -1 H2O 1 H[+] 1 Ni[2+] 2 HPO4[2-] 9.268 25 NiNO3[+] aqueux 1 4 1 NO3[-] 1 Ni[2+] 0.4 25 NiOH[+] aqueux 1 0 4 1 Ni[2+] 1 OH[-] 4.6 25 NiP2O7[2-] aqueux -2 0 4 1 Ni[2+] 1 P2O7[4-] 5.8 25 NiS2O3(aq) aqueux complexe 1 Ni[2+] 1 S2O3[2-] 2.06 25 NiSCN[+] aqueux complexe 1 0 4 1 Ni[2+] 1 SCN[-] 1.2 25 NiSeO4(aq) aqueux 1 Ni[2+] 1 SeO4[2-] 2.67 25 NiSO4(aq) aqueux 1 Ni[2+] 1 SO4[2-] 2.3 25 NO2[-] aqueux acide -1 71.8 3 -1 H[+] -1 H2O 1 NH3(aq) 1.5 O2(aq) 46.8653 25 Np(CO3)3[3-] aqueux -3 1 Np[3+] 3 HCO3[-] -3 H[+] -15.32 25 Np(CO3)4[4-] aqueux -4 1 Np[4+] 4 HCO3[-] -4 H[+] -4.62 25 Np(CO3)5[6-] aqueux -6 4 1 Np[4+] 5 HCO3[-] -5 H[+] -16.02 25 Np(OH)4(aq) aqueux 1 Np[4+] 4 H2O -4 H[+] -9.83 25 Np(SCN)2[2+] aqueux 2 1 Np[4+] 2 SCN[-] 4.1 25 Np(SCN)3[+] aqueux 1 1 Np[4+] 3 SCN[-] 4.8 25 Np(SCN)[3+] aqueux 3 1 Np[4+] 1 SCN[-] 3 25 Np(SO4)2(aq) aqueux 1 Np[4+] 2 SO4[2-] 11.05 25 NpCl[3+] aqueux 3 5 1 Np[4+] 1 Cl[-] 1.5 25 NpF2[2+] aqueux 2 4.5 1 Np[4+] 2 F[-] 15.7 25 NpF[3+] aqueux 3 5 1 Np[4+] 1 F[-] 8.96 25 NpI[3+] aqueux 3 1 Np[4+] 1 I[-] 1.5 25 NpNO3[3+] aqueux 3 1 Np[4+] 1 NO3[-] 1.9 25 NpO2(CO3)2OH[4-] aqueux -4 1 NpO2[+] 2 HCO3[-] 1 H2O -3 H[+] -25.96 25 NpO2(CO3)2[2-] aqueux -2 4 1 NpO2[2+] 2 HCO3[-] -2 H[+] -4.14 25 NpO2(CO3)2[3-] aqueux -3 4 1 NpO2[+] 2 HCO3[-] -2 H[+] -14.12 25 NpO2(CO3)3[4-] aqueux -4 4 1 NpO2[2+] 3 HCO3[-] -3 H[+] -11.61 25 NpO2(CO3)3[5-] aqueux -5 4 1 NpO2[+] 3 HCO3[-] -3 H[+] -25.48 25 NpO2(HPO4)2[2-] aqueux -2 1 NpO2[2+] 2 HPO4[2-] 9.5 25 NpO2(OH)2[-] aqueux -1 1 NpO2[+] 2 H2O -2 H[+] -23.6 25 NpO2(SO4)2[2-] aqueux -2 1 NpO2[2+] 2 SO4[2-] 4.7 25 (NpO2)2(OH)2[2+] aqueux 2 4.5 2 NpO2[2+] 2 H2O -2 H[+] -6.27 25 (NpO2)2CO3(OH)3[-] aqueux -1 4 2 NpO2[2+] 1 HCO3[-] 3 H2O -4 H[+] -13.18 25 (NpO2)3(CO3)6[6-] aqueux -6 4 3 NpO2[2+] 6 HCO3[-] -6 H[+] -12.12 25 (NpO2)3(OH)5[+] aqueux 1 4 3 NpO2[2+] 5 H2O -5 H[+] -17.12 25 NpO2Cl[+] aqueux 1 4 1 NpO2[2+] 1 Cl[-] 0.4 25 NpO2CO3(aq) aqueux 1 NpO2[2+] 1 HCO3[-] -1 H[+] -1.01 25 NpO2CO3[-] aqueux -1 4 1 NpO2[+] 1 HCO3[-] -1 H[+] -5.36 25 NpO2F(aq) aqueux 1 NpO2[+] 1 F[-] 1.2 25 NpO2F2(aq) aqueux 1 NpO2[2+] 2 F[-] 7.6 25 NpO2F[+] aqueux 1 4 1 NpO2[2+] 1 F[-] 4.57 25 NpO2H2PO4[+] aqueux 1 4 1 NpO2[2+] 1 HPO4[2-] 1 H[+] 10.53 25 NpO2HPO4(aq) aqueux 1 NpO2[2+] 1 HPO4[2-] 6.2 25 NpO2HPO4[-] aqueux -1 4 1 NpO2[+] 1 HPO4[2-] 2.95 25 NpO2IO3(aq) aqueux 1 NpO2[+] 1 IO3[-] 0.5 25 NpO2IO3[+] aqueux 1 1 NpO2[2+] 1 IO3[-] 1.2 25 NpO2OH(aq) aqueux 1 NpO2[+] 1 H2O -1 H[+] -11.3 25 NpO2OH[+] aqueux 1 4 1 NpO2[2+] 1 H2O -1 H[+] -5.1 25 NpO2SO4(aq) aqueux 1 NpO2[2+] 1 SO4[2-] 3.28 25 NpO2SO4[-] aqueux -1 4 1 NpO2[+] 1 SO4[2-] 0.44 25 NpO2[2+] aqueux 2 4 1 NpO2[+] 1 H[+] 0.25 O2(aq) -0.5 H2O 1.9 25 NpOH[2+] aqueux 2 4.5 1 Np[3+] 1 H2O -1 H[+] -6.8 25 NpOH[3+] aqueux 3 5 1 Np[4+] 1 H2O -1 H[+] -0.29 25 NpSO4[2+] aqueux 2 4.5 1 Np[4+] 1 SO4[2-] 6.85 25 Np[3+] aqueux 3 4 1 NpO2[+] 2 H[+] -1 H2O -0.5 O2(aq) -29.07 25 Np[4+] aqueux 4 4 1 NpO2[+] 3 H[+] -1.5 H2O -0.25 O2(aq) -11.28 25 OCN[-] aqueux -1 64.6 4 -2 H2O 1 HCO3[-] 1 NH3(aq) -7.3371 25 OH[-] aqueux ion hydroxyde acide -1 198 3.5 -1 H[+] 1 H2O -13.9951 25 P2O7[4-] aqueux -4 96 4 1 HP2O7[3-] -1 H[+] -9.3 25 Pb(BrO3)2(aq) aqueux 1 Pb[2+] 2 BrO3[-] 5.1939 25 Pb(ClO3)2(aq) aqueux 1 Pb[2+] 2 ClO3[-] -0.5133 25 Pb(CN)4[2-] aqueux complexe -2 0 4 1 Pb[2+] 4 CN[-] 10 25 Pb(CO3)2[2-] aqueux -2 4 -2 H[+] 1 Pb[2+] 2 HCO3[-] -11.2576 25 Pb(HS)2(aq) aqueux 1 Pb[2+] 2 HS[-] 14.71 25 Pb(HS)3[-] aqueux -1 4 1 Pb[2+] 3 HS[-] 16.0096 25 Pb(OH)2(aq) aqueux complexe 1 Pb[2+] 2 OH[-] 10.3 25 Pb(OH)3[-] aqueux -1 0 4 1 Pb[2+] 3 OH[-] 13.3 25 Pb(P2O7)2[6-] aqueux complexe -6 0 4 1 Pb[2+] 2 P2O7[4-] 5.3 25 Pb(Pent)2(aq) aqueux Pb(CH3(CH2)3CO2)2(aq) -2 H[+] 1 Pb[2+] 2 Acide pentanoïque(aq) -6.7246 25 Pb(Pent)[+] aqueux 1 Pb(CH3(CH2)3CO2)+ 4 -1 H[+] 1 Pb[2+] 1 Acide pentanoïque(aq) -3.0471 25 Pb(SCN)2(aq) aqueux 1 Pb[2+] 2 SCN[-] 0.9 25 Pb(SCN)3[-] aqueux complexe -1 0 4 1 Pb[2+] 3 SCN[-] -1 25 Pb(SCN)4[2-] aqueux complexe -2 0 4 1 Pb[2+] 4 SCN[-] 0.9 25 PbBr2(aq) aqueux complexe 1 Pb[2+] 2 Br[-] 1.4 25 PbBr3[-] aqueux -1 0 4 1 Pb[2+] 3 Br[-] 2.2 25 PbBrO3[+] aqueux 1 4 1 BrO3[-] 1 Pb[2+] 1.9373 25 PbBr[+] aqueux complexe 1 0 4 1 Br[-] 1 Pb[2+] 1.1 25 PbCl2(aq) aqueux 1 Pb[2+] 2 Cl[-] 0.6 25 PbCl3[-] aqueux complexe -1 0 4 1 Pb[2+] 3 Cl[-] 1.2 25 PbClO3[+] aqueux 1 4 1 ClO3[-] 1 Pb[2+] -0.2208 25 PbCl[+] aqueux 1 0 4 1 Cl[-] 1 Pb[2+] 1.2 25 PbCO3(aq) aqueux -1 H[+] 1 HCO3[-] 1 Pb[2+] -3.7488 25 PbF2(aq) aqueux 1 Pb[2+] 2 F[-] 3.4202 25 PbF[+] aqueux 1 4 1 F[-] 1 Pb[2+] 2.0597 25 PbH2PO4[+] aqueux 1 4 1 H[+] 1 HPO4[2-] 1 Pb[2+] 1.5 25 PbHPO4(aq) aqueux 1 HPO4[2-] 1 Pb[2+] 3.1 25 PbI2(aq) aqueux 1 Pb[2+] 2 I[-] 2.8 25 PbI3[-] aqueux -1 4 1 Pb[2+] 3 I[-] 3.4 25 PbI4[2-] aqueux -2 4 1 Pb[2+] 4 I[-] 3.9 25 PbI[+] aqueux 1 4 1 I[-] 1 Pb[2+] 1.3 25 PbNO3[+] aqueux 1 4 1 NO3[-] 1 Pb[2+] 1.2271 25 PbO(aq) aqueux -2 H[+] 1 H2O 1 Pb[2+] -16.8941 25 PbOH[+] aqueux 1 0 4 1 Pb[2+] 1 OH[-] 6.2 25 PbS2O3(aq) aqueux complexe 1 Pb[2+] 1 S2O3[2-] 5.1 25 PbSCN[+] aqueux 1 0 4 1 Pb[2+] 1 SCN[-] 0.5 25 Pb[4+] aqueux 4 5.5 -1 H2O 0.5 O2(aq) 1 Pb[2+] 2 H[+] -14.1802 25 Pd(SO4)2[2-] aqueux -2 4 1 Pd[2+] 2 SO4[2-] 4.3834 25 Pd(SO4)3[4-] aqueux -4 4 1 Pd[2+] 3 SO4[2-] 6.0913 25 PdCl2(aq) aqueux 1 Pd[2+] 2 Cl[-] 10.7034 25 PdCl3[-] aqueux -1 4 1 Pd[2+] 3 Cl[-] 13.101 25 PdCl4[2-] aqueux -2 4 1 Pd[2+] 4 Cl[-] 15.0882 25 PdCl[+] aqueux 1 4 1 Cl[-] 1 Pd[2+] 6.0993 25 PdO(aq) aqueux -2 H[+] 1 H2O 1 Pd[2+] -2.19 25 PdOH[+] aqueux 1 4 -1 H[+] 1 H2O 1 Pd[2+] -0.9952 25 PdSO4(aq) aqueux 1 Pd[2+] 1 SO4[2-] 2.3969 25 Pentanoate[-] aqueux -1 C4H9COO- 4 -1 H[+] 1 Acide pentanoïque(aq) -4.8452 25 PH2[-] aqueux acide -1 0 4 1 PH3(aq) -1 H[+] -29 25 PH3(aq) aqueux acide 1 PH4[+] -1 H[+] -14 25 PH4[+] aqueux 1 4 -2 O2(aq) 1 HPO4[2-] 3 H[+] -212.741 25 Pm(CO3)2[-] aqueux -1 4 -2 H[+] 1 Pm[3+] 2 HCO3[-] -7.9576 25 Pm(HPO4)2[-] aqueux -1 4 1 Pm[3+] 2 HPO4[2-] 9.2 25 Pm(OH)2[+] aqueux 1 4 -2 H[+] 1 Pm[3+] 2 H2O -16.7902 25 Pm(OH)3(aq) aqueux -3 H[+] 1 Pm[3+] 3 H2O -26.1852 25 Pm(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Pm[3+] 2 HPO4[2-] -4.6837 25 Pm(SO4)2[-] aqueux -1 4 1 Pm[3+] 2 SO4[2-] 5.2 25 PmCl[2+] aqueux 2 4.5 1 Cl[-] 1 Pm[3+] 0.34 25 PmCO3[+] aqueux 1 4 -1 H[+] 1 HCO3[-] 1 Pm[3+] -2.6288 25 PmF[2+] aqueux 2 4.5 1 F[-] 1 Pm[3+] 3.8 25 PmH2PO4[2+] aqueux 2 4.5 1 H[+] 1 HPO4[2-] 1 Pm[3+] 9.6054 25 PmHCO3[2+] aqueux 2 4.5 1 HCO3[-] 1 Pm[3+] 2.1 25 PmHPO4[+] aqueux 1 4 1 HPO4[2-] 1 Pm[3+] 5.5 25 PmNO3[2+] aqueux 2 4.5 1 NO3[-] 1 Pm[3+] 1.1 25 PmOH[2+] aqueux 2 4.5 -1 H[+] 1 H2O 1 Pm[3+] -7.9951 25 PmPO4(aq) aqueux -1 H[+] 1 HPO4[2-] 1 Pm[3+] -0.3718 25 PmSO4[+] aqueux 1 4 1 Pm[3+] 1 SO4[2-] 3.5 25 Pm[2+] aqueux 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Pm[3+] -69.3662 25 Pm[4+] aqueux 4 5.5 -0.5 H2O 0.25 O2(aq) 1 H[+] 1 Pm[3+] -69.2454 25 PO3F[2-] aqueux -2 4 -1 H2O 1 F[-] 1 H[+] 1 HPO4[2-] 7.1993 25 PO4[3-] aqueux acide -3 92.8 4 -1 H[+] 1 HPO4[2-] -12.37 25 Pr(CO3)2[-] aqueux -1 4 -2 H[+] 1 Pr[3+] 2 HCO3[-] -8.1076 25 Pr(HPO4)2[-] aqueux -1 4 1 Pr[3+] 2 HPO4[2-] 8.9 25 Pr(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Pr[3+] 2 HPO4[2-] -5.5637 25 Pr(SO4)2[-] aqueux -1 4 1 Pr[3+] 2 SO4[2-] 4.9 25 PrCl2[+] aqueux 1 4 1 Pr[3+] 2 Cl[-] 0.0308 25 PrCl3(aq) aqueux 1 Pr[3+] 3 Cl[-] -0.3203 25 PrCl4[-] aqueux -1 4 1 Pr[3+] 4 Cl[-] -0.7447 25 PrCl[2+] aqueux 2 4.5 1 Cl[-] 1 Pr[3+] 0.3086 25 PrCO3[+] aqueux 1 4 -1 H[+] 1 HCO3[-] 1 Pr[3+] -2.7722 25 PrF2[+] aqueux 1 4 1 Pr[3+] 2 F[-] 7.3447 25 PrF3(aq) aqueux 1 Pr[3+] 3 F[-] 9.661 25 PrF4[-] aqueux -1 4 1 Pr[3+] 4 F[-] 11.5375 25 PrF[2+] aqueux 2 4.5 1 F[-] 1 Pr[3+] 4.2221 25 PrH2PO4[2+] aqueux 2 4.5 1 H[+] 1 HPO4[2-] 1 Pr[3+] 9.595 25 PrHCO3[2+] aqueux 2 4.5 1 HCO3[-] 1 Pr[3+] 1.919 25 PrHPO4[+] aqueux 1 4 1 HPO4[2-] 1 Pr[3+] 5.4 25 PrNO3[2+] aqueux 2 4.5 1 NO3[-] 1 Pr[3+] 0.6546 25 PrO2H(aq) aqueux -3 H[+] 1 Pr[3+] 2 H2O -26.5901 25 PrO2[-] aqueux -1 4 -4 H[+] 1 Pr[3+] 2 H2O -37.5852 25 PrOH[2+] aqueux 2 4.5 -1 H[+] 1 H2O 1 Pr[3+] -8.274 25 PrO[+] aqueux 1 4 -2 H[+] 1 H2O 1 Pr[3+] -17.29 25 PrPO4(aq) aqueux -1 H[+] 1 HPO4[2-] 1 Pr[3+] -0.7218 25 PrSO4[+] aqueux 1 4 1 Pr[3+] 1 SO4[2-] -3.687 25 Pr[2+] aqueux 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Pr[3+] -72.738 25 Pr[4+] aqueux 4 5.5 -0.5 H2O 0.25 O2(aq) 1 H[+] 1 Pr[3+] -44.3965 25 Pt(SO4)2[2-] aqueux -2 4 1 Pt[2+] 2 SO4[2-] 4.6986 25 Pt(SO4)3[4-] aqueux -4 4 1 Pt[2+] 3 SO4[2-] 6.0033 25 PtCl2(aq) aqueux 1 Pt[2+] 2 Cl[-] 15.4899 25 PtCl3[-] aqueux -1 4 1 Pt[2+] 3 Cl[-] 18.4886 25 PtCl4[2-] aqueux -2 4 1 Pt[2+] 4 Cl[-] 20.0067 25 PtCl[+] aqueux 1 4 1 Cl[-] 1 Pt[2+] 8.6795 25 PtO(aq) aqueux -2 H[+] 1 H2O 1 Pt[2+] 4.429 25 PtOH[+] aqueux 1 4 -1 H[+] 1 H2O 1 Pt[2+] 2.4573 25 PtSO4(aq) aqueux 1 Pt[2+] 1 SO4[2-] 2.91 25 Pu(SO4)2(aq) aqueux 1 Pu[4+] 2 SO4[2-] 11.14 25 Pu(SO4)2[-] aqueux -1 4 1 Pu[3+] 2 SO4[2-] 5.7 25 PuBr[3+] aqueux 3 1 Pu[4+] 1 Br[-] 1.6 25 PuCl[2+] aqueux 2 1 Pu[3+] 1 Cl[-] 1.2 25 PuCl[3+] aqueux 3 1 Pu[4+] 1 Cl[-] 1.8 25 PuF2[2+] aqueux 2 4.5 1 Pu[4+] 2 F[-] 15.7 25 PuF[3+] aqueux 3 5 1 Pu[4+] 1 F[-] 8.84 25 PuH3PO4[4+] aqueux 4 1 Pu[4+] 1 HPO4[2-] 2 H[+] 11.75 25 PuI[2+] aqueux 2 1 Pu[3+] 1 I[-] 1.1 25 PuNO3[3+] aqueux 3 1 Pu[4+] 1 NO3[-] 1.95 25 PuO2(CO3)2[2-] aqueux -2 4 1 PuO2[2+] 2 HCO3[-] -2 H[+] -6.15 25 PuO2(CO3)3[4-] aqueux -4 1 PuO2[2+] 3 HCO3[-] -3 H[+] -13.28 25 PuO2(CO3)3[5-] aqueux -5 1 PuO2[+] 3 HCO3[-] -3 H[+] -25.95 25 PuO2(OH)2(aq) aqueux 1 PuO2[2+] 2 H2O -2 H[+] -13.2 25 PuO2(SO4)2[2-] aqueux -2 1 PuO2[2+] 2 SO4[2-] 4.4 25 (PuO2)2(OH)2[2+] aqueux 2 4.5 2 PuO2[2+] 2 H2O -2 H[+] -7.5 25 (PuO2)3(CO3)6[6-] aqueux -6 4 3 PuO2[2+] 6 HCO3[-] -6 H[+] -11.86 25 PuO2Cl2(aq) aqueux 1 PuO2[2+] 2 Cl[-] -0.6 25 PuO2Cl[+] aqueux 1 4 1 PuO2[2+] 1 Cl[-] 0.7 25 PuO2CO3(aq) aqueux 1 PuO2[2+] 1 HCO3[-] -1 H[+] 1.27 25 PuO2CO3[-] aqueux -1 1 PuO2[+] 1 HCO3[-] -1 H[+] -5.21 25 PuO2F2(aq) aqueux 1 PuO2[2+] 2 F[-] 7.25 25 PuO2F[+] aqueux 1 4 1 PuO2[2+] 1 F[-] 4.56 25 PuO2OH(aq)BOUND aqueux 1 PuO2[+] 1 H2O -1 H[+] -9.73 25 PuO2OH[+] aqueux 1 0 4 1 PuO2[2+] 1 H2O -1 H[+] -5.7 25 PuO2SO4(aq) aqueux 1 PuO2[2+] 1 SO4[2-] 3.38 25 PuO2[2+] aqueux 2 4 1 Pu[4+] 1 H2O 0.5 O2(aq) -2 H[+] 9.71 25 PuOH[2+] aqueux 2 0 4.5 1 Pu[3+] 1 H2O -1 H[+] -7.4 25 PuOH[3+] aqueux 3 0 5 1 Pu[4+] 1 H2O -1 H[+] -0.7 25 PuSCN[2+] aqueux 2 1 Pu[3+] 1 SCN[-] 1.3 25 PuSO4[+] aqueux 1 4 1 Pu[3+] 1 SO4[2-] 3.91 25 PuSO4[2+] aqueux 2 4.5 1 Pu[4+] 1 SO4[2-] 6.89 25 Pu[3+] aqueux 3 4 1 Pu[4+] 0.5 H2O -1 H[+] -0.25 O2(aq) -3.8 25 Pu[4+] aqueux 4 5.5 1 PuO2[+] -1.5 H2O -0.25 O2(aq) 3 H[+] -4.04 25 RbBr(aq) aqueux 1 Br[-] 1 Rb[+] -1.2168 25 RbCl(aq) aqueux 1 Cl[-] 1 Rb[+] -0.9595 25 RbF(aq) aqueux 1 F[-] 1 Rb[+] 0.9602 25 RbI(aq) aqueux 1 I[-] 1 Rb[+] -0.9602 25 RbOH(aq) aqueux -1 H[+] 1 H2O 1 Rb[+] -14.2113 25 Rh(SO4)2[-] aqueux -1 4 1 Rh[3+] 2 SO4[2-] 1.9718 25 Rh(SO4)2[2-] aqueux -2 4 1 Rh[2+] 2 SO4[2-] 4.3541 25 Rh(SO4)3[3-] aqueux -3 4 1 Rh[3+] 3 SO4[2-] 1.7299 25 Rh(SO4)3[4-] aqueux -4 4 1 Rh[2+] 3 SO4[2-] 5.8714 25 RhCl2(aq) aqueux 1 Rh[2+] 2 Cl[-] -0.7975 25 RhCl2[+] aqueux 1 4 1 Rh[3+] 2 Cl[-] 3.278 25 RhCl3(aq) aqueux 1 Rh[3+] 3 Cl[-] 3.3007 25 RhCl3[-] aqueux -1 4 1 Rh[2+] 3 Cl[-] -2.1309 25 RhCl4[-] aqueux -1 4 1 Rh[3+] 4 Cl[-] 3.2501 25 RhCl4[2-] aqueux -2 4 1 Rh[2+] 4 Cl[-] -3.3469 25 RhCl[+] aqueux 1 4 1 Cl[-] 1 Rh[2+] -0.2192 25 RhCl[2+] aqueux 2 4.5 1 Cl[-] 1 Rh[3+] 2.0092 25 RhO(aq) aqueux -2 H[+] 1 H2O 1 Rh[2+] -15.9559 25 RhOH[+] aqueux 1 4 -1 H[+] 1 H2O 1 Rh[2+] -7.8415 25 RhOH[2+] aqueux 2 0 4.5 -1 H[+] 1 H2O 1 Rh[3+] -3.4 25 RhO[+] aqueux 1 4 -2 H[+] 1 H2O 1 Rh[3+] -5.4079 25 RhSO4(aq) aqueux 1 Rh[2+] 1 SO4[2-] 2.3969 25 RhSO4[+] aqueux 1 4 1 Rh[3+] 1 SO4[2-] 1.4807 25 Rh[2+] aqueux 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Rh[3+] -3.3589 25 Ru(Cl)2[+] aqueux 1 4 1 Ru[3+] 2 Cl[-] 3.7501 25 Ru(Cl)3(aq) aqueux 1 Ru[3+] 3 Cl[-] 4.295 25 Ru(OH)2Cl2(aq) aqueux 1 Ru(OH)2[2+] 2 Cl[-] 1.8081 25 Ru(OH)2Cl3[-] aqueux -1 4 1 Ru(OH)2[2+] 3 Cl[-] 1.6172 25 Ru(OH)2Cl4[2-] aqueux -2 4 1 Ru(OH)2[2+] 4 Cl[-] 2.7052 25 Ru(OH)2Cl[+] aqueux 1 4 1 Cl[-] 1 Ru(OH)2[2+] 1.3858 25 Ru(OH)2SO4(aq) aqueux 1 Ru(OH)2[2+] 1 SO4[2-] 1.7941 25 Ru(OH)2[+] aqueux 1 4 -2 H[+] 1 Ru[3+] 2 H2O -3.5175 25 Ru(OH)2[2+] aqueux 2 4.5 -1 H2O -0.5 O2(aq) 1 RuO4[2-] 4 H[+] 26.4778 25 Ru(OH)4(aq) aqueux -2 H[+] 0.5 O2(aq) 1 Ru[2+] 3 H2O 18.0156 25 Ru(SO4)2[-] aqueux -1 4 1 Ru[3+] 2 SO4[2-] 2.5509 25 Ru(SO4)2[2-] aqueux -2 4 1 Ru[2+] 2 SO4[2-] 3.9876 25 Ru(SO4)3[3-] aqueux -3 4 1 Ru[3+] 3 SO4[2-] 2.0891 25 Ru(SO4)3[4-] aqueux -4 4 1 Ru[2+] 3 SO4[2-] 5.0651 25 Ru4(OH)12[4+] aqueux 4 5.5 -4 H[+] 4 H2O 4 Ru(OH)2[2+] 7.196 25 RuCl2(aq) aqueux 1 Ru[2+] 2 Cl[-] -1.318 25 RuCl2[+] aqueux 1 4 1 Ru[3+] 2 Cl[-] 3.7545 25 RuCl3(aq) aqueux 1 Ru[3+] 3 Cl[-] 4.2976 25 RuCl3[-] aqueux -1 4 1 Ru[2+] 3 Cl[-] -2.8272 25 RuCl4[-] aqueux -1 4 1 Ru[3+] 4 Cl[-] 4.1444 25 RuCl4[2-] aqueux -2 4 1 Ru[2+] 4 Cl[-] -4.1899 25 RuCl5[2-] aqueux -2 4 1 Ru[3+] 5 Cl[-] 3.8446 25 RuCl6[3-] aqueux -3 4 1 Ru[3+] 6 Cl[-] 3.4495 25 RuCl[+] aqueux 1 4 1 Cl[-] 1 Ru[2+] -0.505 25 RuCl[2+] aqueux 2 4.5 1 Cl[-] 1 Ru[3+] 2.1704 25 RuO(aq) aqueux -2 H[+] 1 H2O 1 Ru[2+] -15.4061 25 RuO4(aq) aqueux -1 H2O 0.5 O2(aq) 1 RuO4[2-] 2 H[+] 17.498 25 RuO4[-] aqueux -1 4 -0.5 H2O 0.25 O2(aq) 1 H[+] 1 RuO4[2-] 12.8333 25 RuOH[+] aqueux 1 4 -1 H[+] 1 H2O 1 Ru[2+] -7.5629 25 RuOH[2+] aqueux 2 4.5 -1 H[+] 1 H2O 1 Ru[3+] -2.2413 25 RuO[+] aqueux 1 4 -2 H[+] 1 H2O 1 Ru[3+] -3.5168 25 RuSO4(aq) aqueux 1 Ru[2+] 1 SO4[2-] 2.3236 25 RuSO4[+] aqueux 1 4 1 Ru[3+] 1 SO4[2-] 1.9864 25 Ru[2+] aqueux 2 4.5 -2 H2O -1 O2(aq) 1 RuO4[2-] 4 H[+] 1.4084 25 Ru[3+] aqueux 3 5 -2.5 H2O -0.75 O2(aq) 1 RuO4[2-] 5 H[+] 18.8484 25 S2O3[2-] aqueux -2 85 4 -1 H[+] 1 HS2O3[-] -1.7 25 S2O4[2-] aqueux acide -2 66.5 5 -1.5 O2(aq) 2 H[+] -1 H2O 2 SO4[2-] -118.456 25 S2O5[2-] aqueux -2 4 1 O2(aq) 1 S2O3[2-] 49.884 25 S2O6[2-] aqueux -2 93 4 2 H[+] -1 H2O -0.5 O2(aq) 2 SO4[2-] -51.4199 25 S2O8[2-] aqueux -2 86 4 2 H[+] -1 H2O 0.5 O2(aq) 2 SO4[2-] -22.4999 25 S2[2-] aqueux -2 4 -1 H2O -3.5 O2(aq) 2 H[+] 2 SO4[2-] -243.367 25 S3O6[2-] aqueux -2 4 -2 H2O 4 H[+] -2 O2(aq) 3 SO4[2-] -146.105 25 S3[2-] aqueux -2 4 -2 H2O -5 O2(aq) 4 H[+] 3 SO4[2-] -335.559 25 S4O6[2-] aqueux -2 4 -3 H2O -3.5 O2(aq) 6 H[+] 4 SO4[2-] -224.883 25 S4[2-] aqueux -2 4 -3 H2O -6.5 O2(aq) 6 H[+] 4 SO4[2-] -427.972 25 S5O6[2-] aqueux -2 4 -4 H2O 8 H[+] -5 O2(aq) 5 SO4[2-] -332.543 25 S5[2-] aqueux -2 4 -4 H2O 8 H[+] 5 SO4[2-] -8 O2(aq) -520.604 25 SbCl4[-] aqueux -1 4 -2 H2O 1 SbO2[-] 4 Cl[-] 4 H[+] 14.0666 25 Sc(OH)2[+] aqueux complexe 1 0 4 1 Sc[3+] 2 OH[-] 18.2 25 ScF2[+] aqueux Difluoroscandium (III) complexe 1 0 2 F[-] 1 Sc[3+] 11.5 25 ScF3(aq) aqueux Trifluoroscandium (III) complexe 3 F[-] 1 Sc[3+] 15.5 25 ScF[2+] aqueux Fluoroscandium (III) complexe 2 0 1 F[-] 1 Sc[3+] 6.2 25 SCN[-] aqueux -1 66 3.5 -3 H2O 2 H[+] 1 HCO3[-] -2 O2(aq) 1 SO4[2-] 1 NH3(aq) -135.313 25 ScOH[2+] aqueux 2 0 4.5 1 Sc[3+] 1 OH[-] 9.1 25 SeCN[-] aqueux -1 64.7 4 -3 H2O -1.5 O2(aq) 1 HCO3[-] 1 NH3(aq) 1 SeO3[2-] 2 H[+] -66.2879 25 SeO4[2-] aqueux -2 75.7 4 0.5 O2(aq) 1 SeO3[2-] 13.9836 25 Se[2-] aqueux -2 0 4 -1 H[+] 1 HSe[-] -11 25 SiF6[2-] aqueux -2 4 -2 H2O 1 SiO2(aq) 4 H[+] 6 F[-] 26.2749 25 Sm(CO3)2[-] aqueux -1 4 -2 H[+] 1 Sm[3+] 2 HCO3[-] -7.8576 25 Sm(HPO4)2[-] aqueux -1 4 1 Sm[3+] 2 HPO4[2-] 9.4 25 Sm(OH)4[-] aqueux -1 4 -4 H[+] 1 Sm[3+] 4 H2O -36.8803 25 Sm(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Sm[3+] 2 HPO4[2-] -4.2437 25 Sm(SO4)2[-] aqueux -1 4 1 Sm[3+] 2 SO4[2-] 5.2 25 SmCl2[+] aqueux 1 4 1 Sm[3+] 2 Cl[-] -0.0425 25 SmCl3(aq) aqueux 1 Sm[3+] 3 Cl[-] -0.3936 25 SmCl4[-] aqueux -1 4 1 Sm[3+] 4 Cl[-] -0.818 25 SmCl[2+] aqueux 2 4.5 1 Cl[-] 1 Sm[3+] 0.3086 25 SmCO3[+] aqueux 1 4 -1 H[+] 1 HCO3[-] 1 Sm[3+] -2.479 25 SmF2[+] aqueux 1 4 1 Sm[3+] 2 F[-] 7.6379 25 SmF3(aq) aqueux 1 Sm[3+] 3 F[-] 10.0275 25 SmF4[-] aqueux -1 4 1 Sm[3+] 4 F[-] 11.9773 25 SmF[2+] aqueux 2 4.5 1 F[-] 1 Sm[3+] 4.3687 25 SmH2PO4[2+] aqueux 2 4.5 1 H[+] 1 HPO4[2-] 1 Sm[3+] 9.4484 25 SmHCO3[2+] aqueux 2 4.5 1 HCO3[-] 1 Sm[3+] 1.7724 25 SmHPO4[+] aqueux 1 4 1 HPO4[2-] 1 Sm[3+] 5.6 25 SmNO3[2+] aqueux 2 4.5 1 NO3[-] 1 Sm[3+] 0.8012 25 SmO2H(aq) aqueux -3 H[+] 1 Sm[3+] 2 H2O -25.9304 25 SmO2[-] aqueux -1 4 -4 H[+] 1 Sm[3+] 2 H2O -35.0197 25 SmOH[2+] aqueux 2 4.5 -1 H[+] 1 H2O 1 Sm[3+] -7.9808 25 SmO[+] aqueux 1 4 -2 H[+] 1 H2O 1 Sm[3+] -16.4837 25 SmPO4(aq) aqueux -1 H[+] 1 HPO4[2-] 1 Sm[3+] -0.2218 25 SmSO4[+] aqueux 1 4 1 SO4[2-] 1 Sm[3+] 3.643 25 Sm[2+] aqueux 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Sm[3+] -47.9624 25 Sm[4+] aqueux 4 5.5 -0.5 H2O 0.25 O2(aq) 1 H[+] 1 Sm[3+] -65.8736 25 Sn(SO4)2(aq) aqueux 1 Sn[4+] 2 SO4[2-] -0.8072 25 SnBr2(aq) aqueux complexe 2 Br[-] 1 Sn[2+] 1.1 25 SnBr3[-] aqueux complexe -1 0 3 Br[-] 1 Sn[2+] 1.3 25 SnBr[+] aqueux complexe 1 0 1 Br[-] 1 Sn[2+] 0.7 25 SnCl2(aq) aqueux 1 Sn[2+] 2 Cl[-] 1.7 25 SnCl3[-] aqueux complexe -1 0 4 1 Sn[2+] 3 Cl[-] 1.7 25 SnCl[+] aqueux complexe 1 0 4 1 Cl[-] 1 Sn[2+] 1.15 25 SnF2(aq) aqueux complexe 1 Sn[2+] 2 F[-] 6.68 25 SnF3[-] aqueux -1 0 4 1 Sn[2+] 3 F[-] 9.46 25 SnF5[-] aqueux Pentafluoroétainate (IV) complexe -1 0 5 F[-] 1 Sn[4+] 25 25 SnF[+] aqueux complexe 1 0 4 1 F[-] 1 Sn[2+] 4.08 25 SnOH[+] aqueux 1 0 4 1 Sn[2+] 1 OH[-] 10.1 25 SnSO4[2+] aqueux 2 4.5 1 SO4[2-] 1 Sn[4+] -3.1094 25 Sn[4+] aqueux 4 1.1 -1 H2O 0.5 O2(aq) 1 Sn[2+] 2 H[+] 37.746 25 SO2(aq) aqueux -1 H2O 1 SO3[2-] 2 H[+] 9.0656 25 SO3[2-] aqueux acide -2 72 4.5 -0.5 O2(aq) 1 SO4[2-] -46.6244 25 SO5[2-] aqueux acide -2 0 4 1 HSO5[-] -1 H[+] -9.3 25 Sr(Pent)2(aq) aqueux Sr(CH3(CH2)3CO2)2(aq) -2 H[+] 1 Sr[2+] 2 Acide pentanoïque(aq) -10.3845 25 Sr(Pent)[+] aqueux 1 Sr(CH3(CH2)3CO2)+ 4 -1 H[+] 1 Acide pentanoïque(aq) 1 Sr[2+] -5.0475 25 SrCl[+] aqueux 1 4 1 Cl[-] 1 Sr[2+] -0.2485 25 SrCO3(aq) aqueux -1 H[+] 1 HCO3[-] 1 Sr[2+] -7.4635 25 SrF[+] aqueux 1 4 1 F[-] 1 Sr[2+] 0.1393 25 SrH2PO4[+] aqueux 1 0 4 1 Sr[2+] 1 H2PO4[-] 0.25 25 SrHCO3[+] aqueux 1 4 1 HCO3[-] 1 Sr[2+] 1.23 25 SrHPO4(aq) aqueux 1 HPO4[2-] 1 Sr[2+] 1.2 25 SrNO3[+] aqueux 1 4 1 NO3[-] 1 Sr[2+] 0.8 25 SrOH[+] aqueux 1 0 4 1 Sr[2+] 1 OH[-] 0.8 25 SrP2O7[2-] aqueux -2 0 4 1 Sr[2+] 1 P2O7[4-] 3.3 25 SrPO4[-] aqueux complexe -1 0 4 1 Sr[2+] 1 PO4[3-] 4.2 25 SrS2O3(aq) aqueux complexe 1 Sr[2+] 1 S2O3[2-] 2.04 25 SrSO4(aq) aqueux 1 SO4[2-] 1 Sr[2+] 2.3 25 S[2-] aqueux ion sulfure acide -2 0 5 -1 H[+] 1 HS[-] -12.9 25 Tb(CO3)2[-] aqueux -1 4 -2 H[+] 1 Tb[3+] 2 HCO3[-] -7.5576 25 Tb(HPO4)2[-] aqueux -1 4 1 Tb[3+] 2 HPO4[2-] 9.7 25 Tb(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Tb[3+] 2 HPO4[2-] -3.6437 25 Tb(SO4)2[-] aqueux -1 4 1 Tb[3+] 2 SO4[2-] 5 25 TbCl2[+] aqueux 1 4 1 Tb[3+] 2 Cl[-] -0.0425 25 TbCl3(aq) aqueux 1 Tb[3+] 3 Cl[-] -0.4669 25 TbCl4[-] aqueux -1 4 1 Tb[3+] 4 Cl[-] -0.8913 25 TbCl[2+] aqueux 2 4.5 1 Cl[-] 1 Tb[3+] 0.2353 25 TbCO3[+] aqueux 1 4 -1 H[+] 1 HCO3[-] 1 Tb[3+] -2.4057 25 TbF2[+] aqueux 1 4 1 Tb[3+] 2 F[-] 8.151 25 TbF3(aq) aqueux 1 Tb[3+] 3 F[-] 10.6872 25 TbF4[-] aqueux -1 4 1 Tb[3+] 4 F[-] 12.7836 25 TbF[2+] aqueux 2 4.5 1 F[-] 1 Tb[3+] 4.6619 25 TbH2PO4[2+] aqueux 2 4.5 1 H[+] 1 HPO4[2-] 1 Tb[3+] 9.3751 25 TbHCO3[2+] aqueux 2 4.5 1 HCO3[-] 1 Tb[3+] 1.6991 25 TbHPO4[+] aqueux 1 4 1 HPO4[2-] 1 Tb[3+] 5.8 25 TbNO3[2+] aqueux 2 4.5 1 NO3[-] 1 Tb[3+] 0.508 25 TbO2H(aq) aqueux -3 H[+] 1 Tb[3+] 2 H2O -25.0508 25 TbO2[-] aqueux -1 4 -4 H[+] 1 Tb[3+] 2 H2O -34.2134 25 TbOH[2+] aqueux 2 4.5 -1 H[+] 1 H2O 1 Tb[3+] -7.8342 25 TbO[+] aqueux 1 4 -2 H[+] 1 H2O 1 Tb[3+] -16.1904 25 TbPO4(aq) aqueux -1 H[+] 1 HPO4[2-] 1 Tb[3+] 0.0782 25 TbSO4[+] aqueux 1 4 1 SO4[2-] 1 Tb[3+] 3.643 25 Tb[2+] aqueux 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Tb[3+] -80.2147 25 Tb[4+] aqueux 4 5.5 -0.5 H2O 0.25 O2(aq) 1 H[+] 1 Tb[3+] -30.7626 25 TcCO3(OH)2(aq) aqueux 1 TcO[2+] 1 H2O 1 HCO3[-] -1 H[+] 4.93 25 TcCO3(OH)3[-] aqueux -1 1 TcO[2+] 2 H2O 1 HCO3[-] -2 H[+] -3.38 25 TcO(OH)2(aq) aqueux 1 TcO[2+] 2 H2O -2 H[+] -4 25 TcO(OH)3[-] aqueux -1 1 TcO[2+] 3 H2O -3 H[+] -14.9 25 TcO(OH)[+] aqueux 1 1 TcO[2+] 1 H2O -1 H[+] -1.5 25 TcO4[2-] aqueux -2 4 1 TcO4[-] 0.5 H2O -1 H[+] -0.25 O2(aq) -32.29 25 TcO[2+] aqueux 2 4.5 1 TcO4[-] 3 H[+] -0.75 O2(aq) -1.5 H2O -31.04 25 Th(CO3)5[6-] aqueux -6 4 -5 H[+] 1 Th[4+] 5 HCO3[-] -19.314 25 Th(OH)2[2+] aqueux acide 2 0 4 1 H2O 1 ThOH[3+] -1 H[+] -4.2 25 Th(OH)3CO3[-] aqueux -1 4 -4 H[+] 1 HCO3[-] 1 Th[4+] 3 H2O -10.8588 25 Th(OH)4PO4[3-] aqueux -3 4 -5 H[+] 1 HPO4[2-] 1 Th[4+] 4 H2O -27.2218 25 Th(SO4)2(aq) aqueux 1 Th[4+] 2 SO4[2-] 9.705 25 Th(SO4)3[2-] aqueux -2 4 1 Th[4+] 3 SO4[2-] 10.4893 25 Th(SO4)4[4-] aqueux -4 4 1 Th[4+] 4 SO4[2-] 8.4882 25 ThCl2[2+] aqueux 2 0 4.5 1 Th[4+] 2 Cl[-] -0.9 25 ThCl3[+] aqueux 1 0 4 1 Th[4+] 3 Cl[-] -1.4 25 ThCl4(aq) aqueux 1 Th[4+] 4 Cl[-] -1.85 25 ThCl[3+] aqueux 3 0 5 1 Cl[-] 1 Th[4+] 0.1 25 ThF2[2+] aqueux complexe 2 0 4.5 1 Th[4+] 2 F[-] 13.5 25 ThF3[+] aqueux complexe 1 0 4 1 Th[4+] 3 F[-] 18 25 ThF[3+] aqueux 3 0 5 1 F[-] 1 Th[4+] 7.7 25 ThOH[3+] aqueux 3 0 5 1 Th[4+] 1 OH[-] 9.7 25 ThSO4[2+] aqueux 2 4.5 1 SO4[2-] 1 Th[4+] 5.4022 25 TiOF2(aq) aqueux complexe 1 TiO[2+] 2 F[-] 9.8 25 TiOF3[-] aqueux complexe -1 0 4 1 TiO[2+] 3 F[-] 13.7 25 TiOF4[2-] aqueux complexe -2 0 4 1 TiO[2+] 4 F[-] 17.4 25 TiOF[+] aqueux complexe 1 0 4 1 F[-] 1 TiO[2+] 5.4 25 TiOH[2+] aqueux complexe 2 0 4 1 Ti[3+] 1 OH[-] 11.8 25 TiO[2+] aqueux ion 2 0 0.5 H2O 1 Ti[3+] -1 H[+] 0.25 O2(aq) 19.2 25 Ti[2+] aqueux cation_simple 2 0 0.5 H2O 1 Ti[3+] -0.25 O2(aq) -1 H[+] -36.1 25 Ti[3+] aqueux cation_simple 3 0 -1.5 H2O 1 Ti(s) 3 H[+] 0.75 O2(aq) 124.07 25 Tl(NH3)4[3+] aqueux complexe 3 0 4 1 Tl[3+] 4 NH3(aq) 17 25 Tl(OH)2[+] aqueux complexe 1 0 4 1 Tl[3+] 2 OH[-] 25.4 25 Tl(P2O7)2[7-] aqueux complexe -7 0 4 1 Tl[+] 2 P2O7[4-] 1.9 25 TlBr2[+] aqueux complexe 1 0 1 Tl[3+] 2 Br[-] 16.4 25 TlBr3(aq) aqueux complexe 3 Br[-] 1 Tl[3+] 22.1 25 TlBr4[-] aqueux complexe -1 0 4 Br[-] 1 Tl[3+] 26.1 25 TlBr5[2-] aqueux complexe -2 0 5 Br[-] 1 Tl[3+] 29.2 25 TlBr6[3-] aqueux complexe -3 0 6 Br[-] 1 Tl[3+] 31.6 25 TlBr[2+] aqueux complexe 2 0 1 Br[-] 1 Tl[3+] 8.9 25 TlCl(aq) aqueux 1 Cl[-] 1 Tl[+] 0.5102 25 TlCl2[+] aqueux complexe 1 0 2 Cl[-] 1 Tl[3+] 13.6 25 TlCl3(aq) aqueux complexe 1 Tl[3+] 3 Cl[-] 15.8 25 TlCl4[-] aqueux complexe -1 0 1 Tl[3+] 4 Cl[-] 18 25 TlCl[2+] aqueux complexe 2 0 4.5 1 Cl[-] 1 Tl[3+] 8.1 25 TlF(aq) aqueux 1 F[-] 1 Tl[+] 0.0997 25 TlNH3[+] aqueux complexe 1 0 4 1 Tl[+] 1 NH3(aq) -0.9 25 TlOH(aq) aqueux 1 Tl[+] 1 OH[-] 0.8 25 TlOH[2+] aqueux 2 0 4.5 1 Tl[3+] 1 OH[-] 12.9 25 TlP2O7[3-] aqueux complexe -3 0 4 1 Tl[+] 1 P2O7[4-] 1.7 25 TlS2O3[-] aqueux complexe -1 0 1 Tl[+] 1 S2O3[2-] 1.9 25 TlSCN(aq) aqueux complexe 1 Tl[+] 1 SCN[-] 0.4 25 Tl[3+] aqueux 3 9 -1 H2O 0.5 O2(aq) 1 Tl[+] 2 H[+] -0.2751 25 Tm(CO3)2[-] aqueux -1 4 -2 H[+] 1 Tm[3+] 2 HCO3[-] -7.1576 25 Tm(HPO4)2[-] aqueux -1 4 1 Tm[3+] 2 HPO4[2-] 10.1 25 Tm(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Tm[3+] 2 HPO4[2-] -3.0437 25 Tm(SO4)2[-] aqueux -1 4 1 Tm[3+] 2 SO4[2-] 5.1 25 TmCl2[+] aqueux 1 4 1 Tm[3+] 2 Cl[-] -0.0425 25 TmCl3(aq) aqueux 1 Tm[3+] 3 Cl[-] -0.4669 25 TmCl4[-] aqueux -1 4 1 Tm[3+] 4 Cl[-] -0.8913 25 TmCl[2+] aqueux 2 4.5 1 Cl[-] 1 Tm[3+] 0.2353 25 TmCO3[+] aqueux 1 4 -1 H[+] 1 HCO3[-] 1 Tm[3+] -2.1125 25 TmF2[+] aqueux 1 4 1 Tm[3+] 2 F[-] 8.3709 25 TmF3(aq) aqueux 1 Tm[3+] 3 F[-] 10.9804 25 TmF4[-] aqueux -1 4 1 Tm[3+] 4 F[-] 13.1501 25 TmF[2+] aqueux 2 4.5 1 F[-] 1 Tm[3+] 4.8085 25 TmH2PO4[2+] aqueux 2 4.5 1 H[+] 1 HPO4[2-] 1 Tm[3+] 9.4484 25 TmHCO3[2+] aqueux 2 4.5 1 HCO3[-] 1 Tm[3+] 1.7724 25 TmHPO4[+] aqueux 1 4 1 HPO4[2-] 1 Tm[3+] 5.9 25 TmNO3[2+] aqueux 2 4.5 1 NO3[-] 1 Tm[3+] 0.2148 25 TmO2H(aq) aqueux -3 H[+] 1 Tm[3+] 2 H2O -24.1712 25 TmO2[-] aqueux -1 4 -4 H[+] 1 Tm[3+] 2 H2O -32.6741 25 TmOH[2+] aqueux 2 4.5 -1 H[+] 1 H2O 1 Tm[3+] -7.6876 25 TmO[+] aqueux 1 4 -2 H[+] 1 H2O 1 Tm[3+] -15.8972 25 TmPO4(aq) aqueux -1 H[+] 1 HPO4[2-] 1 Tm[3+] 0.4782 25 TmSO4[+] aqueux 1 4 1 SO4[2-] 1 Tm[3+] 3.5697 25 Tm[2+] aqueux 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Tm[3+] -59.8371 25 Tm[4+] aqueux 4 5.5 -0.5 H2O 0.25 O2(aq) 1 H[+] 1 Tm[3+] -73.6435 25 U(CO3)4[4-] aqueux -4 4 1 U[4+] 4 HCO3[-] -4 H[+] -6.19 25 U(CO3)5[6-] aqueux -6 4 1 U[4+] 5 HCO3[-] -5 H[+] -17.63 25 U(NO3)2[2+] aqueux 2 4.5 1 U[4+] 2 NO3[-] 2.3 25 U(OH)4(aq) aqueux 1 U[4+] 4 H2O -4 H[+] -4.54 25 U(OH)5[-] aqueux -1 1 U[4+] 5 H2O -5 H[+] -16.54 25 U(SCN)2[2+] aqueux 2 4.5 1 U[4+] 2 SCN[-] 4.26 25 U(SO4)2(aq) aqueux 1 U[4+] 2 SO4[2-] 10.51 25 UBr[3+] aqueux 3 5 1 U[4+] 1 Br[-] 1.46 25 UCl[3+] aqueux 3 5 1 U[4+] 1 Cl[-] 1.72 25 UF2[2+] aqueux 2 4.5 1 U[4+] 2 F[-] 16.23 25 UF3[+] aqueux 1 4 1 U[4+] 3 F[-] 21.6 25 UF4(aq) aqueux 1 U[4+] 4 F[-] 25.6 25 UF5[-] aqueux -1 4 1 U[4+] 5 F[-] 27.01 25 UF6[2-] aqueux -2 4 1 U[4+] 6 F[-] 29.08 25 UF[3+] aqueux 3 5 1 U[4+] 1 F[-] 9.28 25 UI[3+] aqueux 3 5 1 U[4+] 1 I[-] 1.25 25 UNO3[3+] aqueux 3 5 1 U[4+] 1 NO3[-] 1.47 25 UO2(CO3)2[2-] aqueux -2 4 1 UO2[2+] 2 HCO3[-] -2 H[+] -3.71 25 UO2(CO3)3[4-] aqueux -4 4 1 UO2[2+] 3 HCO3[-] -3 H[+] -9.38 25 UO2(CO3)3[5-] aqueux -5 4 1 UO2[+] 3 HCO3[-] -3 H[+] -23.57 25 UO2(H2PO4)(H3PO4)[+] aqueux 1 4 1 UO2[2+] 2 HPO4[2-] 3 H[+] 20.35 25 UO2(H2PO4)2(aq) aqueux 1 UO2[2+] 2 HPO4[2-] 2 H[+] 20.2 25 UO2(IO3)2(aq) aqueux 1 UO2[2+] 2 IO3[-] 3.59 25 UO2(N3)2(aq) aqueux 1 UO2[2+] 2 N3[-] 4.33 25 UO2(N3)3[-] aqueux -1 4 1 UO2[2+] 3 N3[-] 5.74 25 UO2(N3)4[2-] aqueux -2 4 1 UO2[2+] 4 N3[-] 4.92 25 UO2(OH)2(aq) aqueux 1 UO2[2+] 2 H2O -2 H[+] -11.75 25 UO2(OH)3[-] aqueux -1 4 1 UO2[2+] 3 H2O -3 H[+] -19.6 25 UO2(OH)4[2-] aqueux -2 4 1 UO2[2+] 4 H2O -4 H[+] -34.23 25 UO2(SCN)2(aq) aqueux 1 UO2[2+] 2 SCN[-] 1.24 25 UO2(SCN)3[-] aqueux -1 4 1 UO2[2+] 3 SCN[-] 2.1 25 UO2(SO4)2[2-] aqueux -2 4 1 UO2[2+] 2 SO4[2-] 4.14 25 UO2(SO4)3[4-] aqueux -4 4 1 UO2[2+] 3 SO4[2-] 2.62 25 (UO2)11(CO3)6(OH)12[2-] aqueux -2 4 11 UO2[2+] 6 HCO3[-] 12 H2O -18 H[+] -25.54 25 (UO2)2(OH)2(SO4)2[2-] aqueux -2 4 2 UO2[2+] 2 H2O 2 SO4[2-] -2 H[+] -0.69 25 (UO2)2(PuO2)(CO3)6[6-] aqueux -6 2 UO2[2+] 1 PuO2[2+] 6 HCO3[-] -6 H[+] -9.26 25 (UO2)2CO3(OH)3[-] aqueux -1 4 2 UO2[2+] 1 HCO3[-] 3 H2O -4 H[+] -11.18 25 (UO2)2NpO2(CO3)6[6-] aqueux -6 2 UO2[2+] 1 NpO2[2+] 6 HCO3[-] -6 H[+] -8.37 25 (UO2)3(CO3)6[6-] aqueux -6 4 3 UO2[2+] 6 HCO3[-] -6 H[+] -7.96 25 (UO2)3(OH)4(SO4)4[6-] aqueux -6 4 3 UO2[2+] 4 H2O 4 SO4[2-] -4 H[+] -6 25 (UO2)3O(OH)2(HCO3)[+] aqueux 1 4 3 UO2[2+] 1 HCO3[-] 3 H2O -4 H[+] -9.67 25 (UO2)4(OH)7(SO4)4[7-] aqueux -7 4 4 UO2[2+] 7 H2O 4 SO4[2-] -7 H[+] -19.01 25 UO2BrO3[+] aqueux 1 4 1 UO2[2+] 1 BrO3[-] 0.63 25 UO2Br[+] aqueux 1 4 1 UO2[2+] 1 Br[-] 0.22 25 UO2ClO3[+] aqueux 1 4 1 UO2[2+] 1 ClO3[-] 0.5 25 UO2Cl[+] aqueux complexe 1 0 4 1 UO2[2+] 1 Cl[-] 1.6 25 UO2CO3(aq) aqueux 1 UO2[2+] 1 HCO3[-] -1 H[+] -0.65 25 UO2F2(aq) aqueux complexe 1 UO2[2+] 2 F[-] 7.9 25 UO2F3[-] aqueux complexe -1 0 4 1 UO2[2+] 3 F[-] 10.5 25 UO2F4[2-] aqueux -2 0 4 1 UO2[2+] 4 F[-] 11.8 25 UO2F[+] aqueux complexe 1 0 4 1 UO2[2+] 1 F[-] 4.5 25 UO2H2PO4[+] aqueux 1 4 1 UO2[2+] 1 HPO4[2-] 1 H[+] 10.43 25 UO2H3PO4[2+] aqueux 2 4.5 1 UO2[2+] 1 HPO4[2-] 2 H[+] 10.11 25 UO2HPO4(aq) aqueux 1 UO2[2+] 1 HPO4[2-] 7.3 25 UO2IO3[+] aqueux 1 4 1 UO2[2+] 1 IO3[-] 2 25 UO2N3[+] aqueux 1 4 1 UO2[2+] 1 N3[-] 2.58 25 UO2NO3[+] aqueux 1 4 1 UO2[2+] 1 NO3[-] 0.3 25 UO2OH[+] aqueux 1 0 4 1 UO2[2+] 1 H2O -1 H[+] -5.8 25 UO2PO4[-] aqueux -1 4 1 UO2[2+] 1 HPO4[2-] -1 H[+] 0.88 25 UO2S2O3(aq) aqueux 1 UO2[2+] 1 S2O3[2-] 2.8 25 UO2SCN[+] aqueux 1 4 1 UO2[2+] 1 SCN[-] 1.4 25 UO2SO3(aq) aqueux 1 UO2[2+] 1 SO3[2-] 6.6 25 UO2SO4(aq) aqueux 1 UO2[2+] 1 SO4[2-] 3.15 25 UO2[+] aqueux 1 4 1 UO2[2+] 0.5 H2O -1 H[+] -0.25 O2(aq) -20.01 25 UOH[3+] aqueux 3 0 5 1 U[4+] 1 H2O -1 H[+] -0.7 25 Urea(aq) aqueux -2 H2O 1 H[+] 1 HCO3[-] 2 NH3(aq) 6.6318 25 USCN[3+] aqueux 3 5 1 U[4+] 1 SCN[-] 2.97 25 USO4[2+] aqueux 2 4.5 1 U[4+] 1 SO4[2-] 6.58 25 U[3+] aqueux 3 5 1 UO2[2+] 1 H[+] -0.75 O2(aq) -0.5 H2O -64.78 25 U[4+] aqueux 4 5.5 1 UO2[2+] 2 H[+] -1 H2O -0.5 O2(aq) -33.94 25 V(OH)2[+] aqueux 1 0 4 1 H2O -1 H[+] 1 VOH[2+] -3.5 25 V2(OH)2[4+] aqueux 4 5.5 -2 H[+] 2 H2O 2 V[3+] -3.8 25 VO(OH)3(aq) aqueux -1 H[+] 1 VO2[+] 2 H2O -3.3 25 (VO)2(OH)2[2+] aqueux 2 4.5 -2 H[+] 2 H2O 2 VO[2+] -6.67 25 VO2(HPO4)2[3-] aqueux -3 4 1 VO2[+] 2 HPO4[2-] 8.6 25 VO2F(aq) aqueux 1 F[-] 1 VO2[+] 3.35 25 VO2F2[-] aqueux -1 4 1 VO2[+] 2 F[-] 5.81 25 VO2H2PO4(aq) aqueux 1 H[+] 1 HPO4[2-] 1 VO2[+] 1.68 25 VO2HPO4[-] aqueux -1 4 1 HPO4[2-] 1 VO2[+] 5.83 25 VO2SO4[-] aqueux -1 4 1 SO4[2-] 1 VO2[+] 1.58 25 VO3[-] aqueux acide -1 0 4 -1 H2O 1 HVO4[2-] 1 H[+] 8 25 VO4[3-] aqueux -3 4 -6 H[+] 0.5 O2(aq) 1 V[3+] 3 H2O -8.1262 25 VOF2(aq) aqueux 1 VO[2+] 2 F[-] 6.78 25 VOF[+] aqueux 1 4 1 F[-] 1 VO[2+] 4 25 VOH[+] aqueux 1 4 -1 H[+] 1 H2O 1 V[2+] -6.5147 25 VOH[2+] aqueux 2 0 4.5 -1 H[+] 1 H2O 1 V[3+] -2.9 25 VOOH[+] aqueux 1 0 4 1 VO[2+] 1 OH[-] 8 25 VOSO4(aq) aqueux 1 SO4[2-] 1 VO[2+] 2.48 25 VO[+] aqueux 1 4 -0.5 O2(aq) 1 VO2[+] -26.518 25 VO[2+] aqueux 2 4.5 -0.5 H2O -0.25 O2(aq) 1 H[+] 1 VO2[+] -4.5774 25 VSO4[+] aqueux 1 4 1 SO4[2-] 1 V[3+] 3.33 25 V[2+] aqueux 2 6 -0.75 O2(aq) -0.5 H2O 1 H[+] 1 VO2[+] -46.122 25 V[3+] aqueux 3 9 -1 H2O -0.5 O2(aq) 1 VO2[+] 2 H[+] -20.2964 25 Y(CO3)2[-] aqueux -1 4 -2 H[+] 1 Y[3+] 2 HCO3[-] -7.3576 25 Y(HPO4)2[-] aqueux -1 4 1 Y[3+] 2 HPO4[2-] 9.9 25 Y(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Y[3+] 2 HPO4[2-] -3.2437 25 Y(SO4)2[-] aqueux -1 4 1 Y[3+] 2 SO4[2-] 4.9 25 Y2(OH)2[4+] aqueux 4 5.5 -2 H[+] 2 H2O 2 Y[3+] -14.1902 25 Yb(CO3)2[-] aqueux -1 4 -2 H[+] 1 Yb[3+] 2 HCO3[-] -7.0576 25 Yb(HPO4)2[-] aqueux -1 4 1 Yb[3+] 2 HPO4[2-] 10.2 25 Yb(OH)4[-] aqueux -1 4 -4 H[+] 1 Yb[3+] 4 H2O -32.6803 25 Yb(Pent)2[+] aqueux 1 Yb(CH3(CH2)3CO2)2+ 4 -2 H[+] 1 Yb[3+] 2 Acide pentanoïque(aq) -5.1142 25 Yb(Pent)[2+] aqueux 2 Yb(CH3(CH2)3CO2)++ 4.5 -1 H[+] 1 Acide pentanoïque(aq) 1 Yb[3+] -2.1675 25 Yb(PO4)2[3-] aqueux -3 4 -2 H[+] 1 Yb[3+] 2 HPO4[2-] -2.7437 25 Yb(SO4)2[-] aqueux -1 4 1 Yb[3+] 2 SO4[2-] 5.1 25 YbCl2[+] aqueux 1 4 1 Yb[3+] 2 Cl[-] -0.2624 25 YbCl3(aq) aqueux 1 Yb[3+] 3 Cl[-] -0.7601 25 YbCl4[-] aqueux -1 4 1 Yb[3+] 4 Cl[-] -1.1845 25 YbCl[2+] aqueux 2 4.5 1 Cl[-] 1 Yb[3+] 0.162 25 YbCO3[+] aqueux 1 4 -1 H[+] 1 HCO3[-] 1 Yb[3+] -2.0392 25 YbF2[+] aqueux 1 4 1 Yb[3+] 2 F[-] 8.3709 25 YbF3(aq) aqueux 1 Yb[3+] 3 F[-] 11.0537 25 YbF4[-] aqueux -1 4 1 Yb[3+] 4 F[-] 13.2234 25 YbF[2+] aqueux 2 4.5 1 F[-] 1 Yb[3+] 4.8085 25 YbH2PO4[2+] aqueux 2 4.5 1 H[+] 1 HPO4[2-] 1 Yb[3+] 9.5217 25 YbHCO3[2+] aqueux 2 4.5 1 HCO3[-] 1 Yb[3+] 1.8398 25 YbHPO4[+] aqueux 1 4 1 HPO4[2-] 1 Yb[3+] 6 25 YbNO3[2+] aqueux 2 4.5 1 NO3[-] 1 Yb[3+] 0.2148 25 YbO2H(aq) aqueux -3 H[+] 1 Yb[3+] 2 H2O -23.878 25 YbO2[-] aqueux -1 4 -4 H[+] 1 Yb[3+] 2 H2O -32.6741 25 YbOH[2+] aqueux 2 0 4.5 -1 H[+] 1 H2O 1 Yb[3+] -8 25 YbO[+] aqueux 1 4 -2 H[+] 1 H2O 1 Yb[3+] -15.7506 25 YbPO4(aq) aqueux -1 H[+] 1 HPO4[2-] 1 Yb[3+] 9.5782 25 YbSO4[+] aqueux 1 4 1 SO4[2-] 1 Yb[3+] 3.5697 25 Yb[2+] aqueux 2 4.5 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Yb[3+] -39.4595 25 Yb[4+] aqueux 4 5.5 -0.5 H2O 0.25 O2(aq) 1 H[+] 1 Yb[3+] -93.4346 25 YCl[2+] aqueux 2 4.5 1 Cl[-] 1 Y[3+] 0.3 25 YCO3[+] aqueux 1 4 -1 H[+] 1 HCO3[-] 1 Y[3+] -2.2788 25 YF2[+] aqueux 1 4 1 Y[3+] 2 F[-] 7.8 25 YF3(aq) aqueux 1 Y[3+] 3 F[-] 11.2 25 YF[2+] aqueux 2 4.5 1 F[-] 1 Y[3+] 4.3 25 YH2PO4[2+] aqueux 2 4.5 1 H[+] 1 HPO4[2-] 1 Y[3+] 9.6054 25 YHCO3[2+] aqueux 2 4.5 1 HCO3[-] 1 Y[3+] 2.3 25 YHPO4[+] aqueux 1 4 1 HPO4[2-] 1 Y[3+] 5.9 25 YNO3[2+] aqueux 2 4.5 1 NO3[-] 1 Y[3+] 0.4 25 YO2[-] aqueux -1 4 -4 H[+] 1 Y[3+] 2 H2O -36.4857 25 YOH[2+] aqueux 2 0 4.5 -1 H[+] 1 H2O 1 Y[3+] -9 25 YO[+] aqueux 1 4 -2 H[+] 1 H2O 1 Y[3+] -16.4103 25 YPO4(aq) aqueux -1 H[+] 1 HPO4[2-] 1 Y[3+] 0.2782 25 YSO4[+] aqueux 1 4 1 SO4[2-] 1 Y[3+] 3.4 25 Zn(CN)4[2-] aqueux -2 0 4 1 Zn[2+] 4 CN[-] 16.704 25 Zn(N3)2(aq) aqueux 1 Zn[2+] 2 N3[-] 1.1954 25 Zn(NH3)2[2+] aqueux 2 4.5 1 Zn[2+] 2 NH3(aq) 4.61 25 Zn(NH3)3[2+] aqueux 2 4.5 1 Zn[2+] 3 NH3(aq) 7.01 25 Zn(NH3)4[2+] aqueux 2 4.5 1 Zn[2+] 4 NH3(aq) 9.06 25 Zn(NH3)[2+] aqueux 2 4.5 1 NH3(aq) 1 Zn[2+] 2.27 25 Zn(OH)(P2O7)[3-] aqueux complexe -3 0 4 1 Zn[2+] 1 P2O7[4-] 1 OH[-] 13.1 25 Zn(OH)3[-] aqueux complexe -1 0 4 1 Zn[2+] 3 OH[-] 14.4 25 Zn(OH)4[2-] aqueux complexe -2 0 4 1 Zn[2+] 4 OH[-] 15.5 25 Zn(OH)Cl(aq) aqueux -1 H[+] 1 Cl[-] 1 H2O 1 Zn[2+] -7.5417 25 Zn(P2O7)2[6-] aqueux complexe -6 0 4 1 Zn[2+] 2 P2O7[4-] 11 25 Zn(Pent)2(aq) aqueux Zn(CH3(CH2)3CO2)2(aq) -2 H[+] 1 Zn[2+] 2 Acide pentanoïque(aq) -7.5243 25 Zn(Pent)[+] aqueux 1 Zn(CH3(CH2)3CO2)+ 4 -1 H[+] 1 Acide pentanoïque(aq) 1 Zn[2+] -3.4869 25 Zn(SCN)2(aq) aqueux 1 Zn[2+] 2 SCN[-] 0.8 25 Zn(SCN)3[-] aqueux complexe -1 0 4 1 Zn[2+] 3 SCN[-] 0 25 Zn(SCN)4[2-] aqueux -2 0 4 1 Zn[2+] 4 SCN[-] 1.3 25 ZnBr2(aq) aqueux 1 Zn[2+] 2 Br[-] -1.0492 25 ZnBr3[-] aqueux -1 4 1 Zn[2+] 3 Br[-] -1.8474 25 ZnBr[+] aqueux 1 4 1 Br[-] 1 Zn[2+] -0.6365 25 ZnCl2(aq) aqueux 1 Zn[2+] 2 Cl[-] -0.6 25 ZnCl3[-] aqueux complexe -1 0 4 1 Zn[2+] 3 Cl[-] 0.15 25 ZnClO4[+] aqueux 1 4 1 ClO4[-] 1 Zn[2+] 1.2768 25 ZnCl[+] aqueux 1 0 4 1 Cl[-] 1 Zn[2+] -0.2 25 ZnCO3(aq) aqueux -1 H[+] 1 HCO3[-] 1 Zn[2+] -6.4288 25 ZnF[+] aqueux 1 0 4 1 F[-] 1 Zn[2+] 0.7 25 ZnH2PO4[+] aqueux 1 4 1 H[+] 1 HPO4[2-] 1 Zn[2+] 0.43 25 ZnHCO3[+] aqueux 1 4 1 HCO3[-] 1 Zn[2+] 1.42 25 ZnHPO4(aq) aqueux 1 HPO4[2-] 1 Zn[2+] 3.26 25 ZnI2(aq) aqueux 1 Zn[2+] 2 I[-] -1.8437 25 ZnI3[-] aqueux -1 4 1 Zn[2+] 3 I[-] -2.0054 25 ZnI4[2-] aqueux -2 4 1 Zn[2+] 4 I[-] -2.6052 25 ZnI[+] aqueux 1 4 1 I[-] 1 Zn[2+] -3.0134 25 ZnN3[+] aqueux 1 4 1 N3[-] 1 Zn[2+] 0.442 25 ZnOH[+] aqueux complexe 1 0 4 1 Zn[2+] 1 OH[-] 4.4 25 ZnP2O7[2-] aqueux complexe -2 0 4 1 Zn[2+] 1 P2O7[4-] 8.7 25 ZnPO4[-] aqueux -1 4 -1 H[+] 1 HPO4[2-] 1 Zn[2+] -4.3018 25 ZnS2O3(aq) aqueux complexe 1 Zn[2+] 1 S2O3[2-] 2.29 25 ZnSCN[+] aqueux complexe 1 0 4 1 Zn[2+] 1 SCN[-] 0.5 25 ZnSeO4(aq) aqueux 1 SeO4[2-] 1 Zn[2+] 2.19 25 ZnSO4(aq) aqueux 1 SO4[2-] 1 Zn[2+] 2.3062 25 Zr(OH)2[2+] aqueux complexe 2 0 4 1 Zr[4+] 2 OH[-] 27.2 25 Zr(OH)3[+] aqueux complexe 1 0 4 1 Zr[4+] 3 OH[-] 40.2 25 Zr(OH)4(aq) aqueux complexe 1 Zr[4+] 4 OH[-] 53 25 Zr(SO4)2(aq) aqueux 1 Zr[4+] 2 SO4[2-] 6.5 25 Zr(SO4)3[2-] aqueux -2 4 1 Zr[4+] 3 SO4[2-] 7.6 25 ZrF2[2+] aqueux 2 0 4.5 1 Zr[4+] 2 F[-] 16.1 25 ZrF3[+] aqueux complexe 1 0 4 1 Zr[4+] 3 F[-] 21.9 25 ZrF[3+] aqueux 3 0 5 1 F[-] 1 Zr[4+] 8.8 25 ZrOH[3+] aqueux complexe 3 0 4 1 Zr[4+] 1 OH[-] 13.8 25 ZrSO4[2+] aqueux 2 4.5 1 SO4[2-] 1 Zr[4+] 3.7 25 Acide borique(s) mineral B(OH)3 1434.97 1 B(OH)3(aq) 0.1583 25 Ag(s) mineral 10501.2 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Ag[+] -7.9937 25 Ag2(C2O4)(s) mineral 2 Ag[+] 1 Oxalate[2-] 11 25 Ag2CO3(s) mineral 0 2 Ag[+] 1 CO3[2-] 11.09 25 Ag2Cr2O7(s) mineral 2 Ag[+] 1 Cr2O7[2-] 6.7 25 Ag2CrO4(s) mineral 0 2 Ag[+] 1 CrO4[2-] 11.949 25 Ag2MoO4(s) mineral 2 Ag[+] 1 MoO4[2-] 11.55 25 Ag2S(s) mineral 2 Ag[+] 1 S[2-] 49.2 25 Ag2SO3(s) mineral 0 2 Ag[+] 1 SO3[2-] 13.8 25 Ag2SO4(s) mineral 0 2 Ag[+] 1 SO4[2-] 4.82 25 Ag2WO4(s) mineral 2 Ag[+] 1 WO4[2-] 11.26 25 Ag3AsO4(s) mineral 3 Ag[+] 1 AsO4[3-] 19.95 25 Ag3PO4(s) mineral 3 Ag[+] 1 PO4[3-] 15.84 25 Ag4[Fe(CN)6](s) mineral 4 Ag[+] 1 Fe(CN)6[4-] 40.8 25 AgBr(s) mineral 0 1 Ag[+] 1 Br[-] 12.305 25 AgBrO3(s) mineral 1 Ag[+] 1 BrO3[-] 4.28 25 AgCH3COO(s) mineral 1 Ag[+] 1 Ethanoate(aq) 2.7 25 AgCl(s) mineral AgCl 5570.84 1 Ag[+] 1 Cl[-] 9.752 25 AgCN(s) mineral 0 1 Ag[+] 1 CN[-] 15.3 25 AgI(s) mineral 0 1 Ag[+] 1 I[-] 16.08 25 AgIO3(s) mineral 0 1 Ag[+] 1 IO3[-] 7.51 25 AgN3(s) mineral 1 Ag[+] 1 N3[-] 8.54 25 AgOCN(s) mineral 1 Ag[+] 1 OCN[-] 6.64 25 AgOH(s) mineral 0 1 Ag[+] 1 OH[-] 7.6 25 AgSCN(s) mineral 0 1 Ag[+] 1 SCN[-] 11.97 25 AgTcO4(s) mineral 3000 1 Ag[+] 1 TcO4[-] 3.27 25 Ag[Ag(CN)2](s) mineral 1 Ag[+] 1 Ag(CN)2[-] 11.3 25 Ahlfeldite(s) mineral NiSeO3:2H2O 3509.8 1 Ni[2+] 1 SeO3[2-] 2 H2O 4.4894 25 Akermanite(s) mineral Ca2MgSi2O7 2937.48 -6 H[+] 1 Mg[2+] 2 Ca[2+] 2 SiO2(aq) 3 H2O -45.319 25 Al(OH)3(s)(alpha) mineral 1 Al[3+] 3 OH[-] 33.45 25 Al(OH)3(s)(amorphe) mineral 1 Al[3+] 3 OH[-] 32.34 25 Al(s) mineral 2698.42 -3 H[+] -0.75 O2(aq) 1 Al[3+] 1.5 H2O -149.245 25 Al2(C2O4)3(s) mineral 0 2 Al[3+] 3 Oxalate[2-] 29 25 Al2(SO4)3(s) mineral 2710.13 2 Al[3+] 3 SO4[2-] -17.6842 25 Al2(SO4)3:6H2O(s) mineral 3000 2 Al[3+] 3 SO4[2-] 6 H2O -0.3156 25 Alamosite(s) mineral PbSiO3 6489.89 -2 H[+] 1 H2O 1 Pb[2+] 1 SiO2(aq) -5.6733 25 AlAsO4(s) mineral 1 Al[3+] 1 AsO4[3-] 15.8 25 Albite(s) mineral NaAlSi3O8 2615.69 -4 H[+] 1 Al[3+] 1 Na[+] 2 H2O 3 SiO2(aq) -2.0799 25 Albite_high(s) mineral NaAlSi3O8 2611 -4 H[+] 1 Al[3+] 1 Na[+] 2 H2O 3 SiO2(aq) -3.3985 25 Albite_low(s) mineral NaAlSi3O8 2620.4 -4 H[+] 1 Al[3+] 1 Na[+] 2 H2O 3 SiO2(aq) -2.0799 25 AlF3(s) mineral 3000 1 Al[3+] 3 F[-] 17.8935 25 AlPO4(s) mineral 1 Al[3+] 1 PO4[3-] 18.2 25 Alstonite(s) mineral BaCa(CO3)2 3690.12 -2 H[+] 1 Ba[2+] 1 Ca[2+] 2 HCO3[-] -2.5843 25 Alum-K(s) mineral KAl(SO4)2:12H2O 1757.07 1 Al[3+] 1 K[+] 2 SO4[2-] 12 H2O 5.5664 25 Alunite(s) mineral KAl3(OH)6(SO4)2 1410.81 -6 H[+] 1 K[+] 2 SO4[2-] 3 Al[3+] 6 H2O 2.4018 25 Am(OH)3(am)(s) mineral 3000 1 Am[3+] 3 H2O -3 H[+] -17 25 Am(OH)3(s) mineral 3000 1 Am[3+] 3 H2O -3 H[+] -15.2 25 Am(s) mineral 13721 1 Am[3+] 1.5 H2O -3 H[+] -0.75 O2(aq) -169.35 25 Am2(CO3)3(s) mineral 3000 2 Am[3+] 3 HCO3[-] -3 H[+] 2.42 25 Am2C3(s) mineral 3000 2 Am[3+] 3 HCO3[-] -4.5 O2(aq) -3 H[+] -503.76 25 Am2O3(s) mineral 3000 2 Am[3+] 3 H2O -6 H[+] -51.77 25 AmBr3(s) mineral 3000 1 Am[3+] 3 Br[-] -21.67 25 AmCl3(s) mineral 3000 1 Am[3+] 3 Cl[-] -14.31 25 AmCO3OH(s) mineral 3000 1 Am[3+] 1 HCO3[-] 1 H2O -2 H[+] -3.13 25 Amesite-14A(s) mineral Mg4Al4Si2O10(OH)8 2713.58 -20 H[+] 2 SiO2(aq) 4 Al[3+] 4 Mg[2+] 14 H2O -72.7186 25 AmF3(s) mineral 3000 1 Am[3+] 3 F[-] 13.24 25 AmF4(s) mineral 3000 1 Am[4+] 4 F[-] 25.29 25 AmH2(s) mineral 3000 1 Am[2+] 2 H2O -1 O2(aq) -2 H[+] -128.37 25 AmI3(s) mineral 3000 1 Am[3+] 3 I[-] -24.62 25 AmO2(s) mineral 3000 1 Am[4+] 2 H2O -4 H[+] 9.43 25 AmOBr(s) mineral 3000 1 Am[3+] 1 Br[-] 1 H2O -2 H[+] -13.72 25 AmOCl(s) mineral 3000 1 Am[3+] 1 Cl[-] 1 H2O -2 H[+] -11.3 25 Analcime(s) mineral Na0.96Al0.96Si2.04O6:H2O 2265.27 -3.84 H[+] 0.96 Al[3+] 0.96 Na[+] 2.04 SiO2(aq) 2.92 H2O -5.4823 25 Analcime-dehy(s) mineral Na0.96Al0.96Si2.04O6 2258.85 -3.84 H[+] 0.96 Al[3+] 0.96 Na[+] 1.92 H2O 2.04 SiO2(aq) -11.8451 25 Andalusite(s) mineral Al2SiO5 3144.68 -6 H[+] 1 SiO2(aq) 2 Al[3+] 3 H2O -14.5752 25 Andradite(s) mineral Ca3Fe2(SiO4)3 3854.21 -12 H[+] 2 Fe[3+] 3 Ca[2+] 3 SiO2(aq) 6 H2O -33.3352 25 Annite(s) mineral KFe3AlSi3O10(OH)2 3317.04 -10 H[+] 1 Al[3+] 1 K[+] 3 Fe[2+] 3 SiO2(aq) 6 H2O -28.7847 25 Anorthite(s) mineral CaAl2(SiO4)2 2760.27 -8 H[+] 1 Ca[2+] 2 Al[3+] 2 SiO2(aq) 4 H2O -25.2087 25 Antarcticite(s) mineral CaCl2:6H2O 1709.92 1 Ca[2+] 2 Cl[-] 6 H2O -4.0933 25 Anthophyllite(s) mineral Mg7Si8O22(OH)2 2953.18 -14 H[+] 7 Mg[2+] 8 H2O 8 SiO2(aq) -66.7965 25 Antigorite(s) mineral Mg48Si24O85(OH)62 2593.26 -96 H[+] 34 SiO2(aq) 48 Mg[2+] 79 H2O -477.194 25 Antlerite(s) mineral Cu3(SO4)(OH)4 3899.86 -4 H[+] 1 SO4[2-] 3 Cu[2+] 4 H2O -8.7302 25 Aphthitalite(s) mineral NaK3(SO4)2 1350.01 1 Na[+] 2 SO4[2-] 3 K[+] 3.8878 25 Arsenopyrite(s) mineral FeAsS 6163.31 -1.5 H2O -0.5 H[+] 0.5 AsH3(aq) 0.5 H2AsO3[-] 1 Fe[2+] 1 HS[-] 14.4453 25 Artinite(s) mineral Mg2CO3(OH)2:3H2O 2029.72 -3 H[+] 1 HCO3[-] 2 Mg[2+] 5 H2O -19.656 25 As(s) mineral 5779.65 -1.5 H2O -0.75 O2(aq) 1 H[+] 1 H2AsO3[-] -42.7079 25 As2O3(s) mineral As2O3 3000 -3 H2O 2 H[+] 2 H2AsO3[-] 19.8365 25 As2O3(s) mineral As2O3 3000 -3 H2O 2 H[+] 2 H2AsO3[-] 19.8365 25 As2O5(s) mineral 4320.3 -3 H2O 2 H[+] 2 H2AsO4[-] -2.1602 25 As4O6(cubi)(s) mineral 3000 -6 H2O 4 H[+] 4 H2AsO3[-] 39.7636 25 As4O6(mono)(s) mineral 3000 -6 H2O 4 H[+] 4 H2AsO3[-] 40.0375 25 Atacamite(s) mineral Cu4Cl2(OH)6 7519.95 -6 H[+] 2 Cl[-] 4 Cu[2+] 6 H2O -14.2836 25 Au(OH)3(s) mineral 1 Au[3+] 3 OH[-] 45.6 25 Au(s) mineral 19282.1 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Au[+] 7.0864 25 Azurite(s) mineral Cu3(CO3)2(OH)2 3787.18 -4 H[+] 2 H2O 2 HCO3[-] 3 Cu[2+] -9.1607 25 B(s) mineral 2464.89 -1.5 H2O -0.75 O2(aq) 1 B(OH)3(aq) -109.565 25 B2O3(s) mineral 3000 -3 H2O 2 B(OH)3(aq) -5.5464 25 Ba(IO3)2(s) mineral 0 1 Ba[2+] 2 IO3[-] 8.82 25 Ba(OH)2(s) mineral 1 Ba[2+] 2 OH[-] 2.3 25 Ba(oxinate)2(s) mineral 1 Ba[2+] 2 Oxinate 8.3 25 Ba(s) mineral 3594.01 -2 H[+] -0.5 O2(aq) 1 Ba[2+] 1 H2O -141.246 25 Ba2Si3O8(s) mineral 3966 -4 H[+] 2 Ba[2+] 2 H2O 3 SiO2(aq) -23.3284 25 Ba2SiO4(s) mineral 5499.96 -4 H[+] 1 SiO2(aq) 2 Ba[2+] 2 H2O -44.593 25 Ba2U2O7(s) mineral 3000 2 Ba[2+] 2 UO2[+] 3 H2O -6 H[+] -35.35 25 Ba3(AsO4)2(s) mineral 3 Ba[2+] 2 AsO4[3-] 50.1 25 Ba3(PO4)2(s) mineral 0 3 Ba[2+] 2 PO4[3-] 22.5 25 Ba3UO6(s) mineral 3000 3 Ba[2+] 1 UO2[2+] 4 H2O -8 H[+] -92.7 25 BaBr2(s) mineral 4780.93 1 Ba[2+] 2 Br[-] -5.6226 25 BaBr2:2H2O(s) mineral 3580.12 1 Ba[2+] 2 Br[-] 2 H2O -2.2523 25 BaC2O4(s) mineral 0 1 Ba[2+] 1 Oxalate[2-] 6.79 25 BaCl2(s) mineral 3000 1 Ba[2+] 2 Cl[-] -2.2707 25 BaCl2:2H2O(s) mineral 2983.91 1 Ba[2+] 2 Cl[-] 2 H2O -0.2459 25 BaCl2:H2O(s) mineral 3138.84 1 Ba[2+] 1 H2O 2 Cl[-] -0.8606 25 BaCO3(s) mineral 1 Ba[2+] 1 CO3[2-] 8.31 25 BaCrO4(s) mineral 4497.88 1 Ba[2+] 1 CrO4[2-] 9.93 25 BaHPO4(s) mineral 4164.7 1 Ba[2+] 1 HPO4[2-] 7.4 25 BaI2(s) mineral 5149.91 1 Ba[2+] 2 I[-] -11.0759 25 BaMnO4(s) mineral 4849.79 1 Ba[2+] 1 MnO4[2-] 9.5769 25 Barytocalcite(s) mineral BaCa(CO3)2 3651.16 -2 H[+] 1 Ba[2+] 1 Ca[2+] 2 HCO3[-] -2.742 25 BaS(s) mineral 4249.7 -1 H[+] 1 Ba[2+] 1 HS[-] -16.2606 25 BaSeO3(s) mineral 3000 1 Ba[2+] 1 SeO3[2-] 6.5615 25 BaSeO4(s) mineral 4749.78 1 Ba[2+] 1 SeO4[2-] 7.4468 25 BaSiF6(s) mineral 4427.24 -2 H2O 1 Ba[2+] 1 SiO2(aq) 4 H[+] 6 F[-] 32.1771 25 BaSO3(s) mineral 0 1 Ba[2+] 1 SO3[2-] 8 25 BaSO4(s) mineral BaSO4 4479.67 1 Ba[2+] 1 SO4[2-] 9.9711 25 Bassanite(s) mineral CaSO4:1/2H2O 2774.79 0.5 H2O 1 Ca[2+] 1 SO4[2-] 3.6615 25 BaU2O7(s) mineral 3000 1 Ba[2+] 2 UO2[2+] 3 H2O -6 H[+] -21.39 25 BaUO4(s) mineral 3000 1 Ba[2+] 1 UO2[2+] 2 H2O -4 H[+] -17.64 25 Bayerite(s) mineral Al(OH)3(s) 1 Al[3+] 3 OH[-] 35.56 25 BaZrO3(s) mineral 6092.73 -6 H[+] 1 Ba[2+] 1 Zr[4+] 3 H2O 88.4277 25 Be(OH)2(s) mineral 1 Be[2+] 2 OH[-] 17.7 25 Be(s) mineral 1846.76 -2 H[+] -0.5 O2(aq) 1 Be[2+] 1 H2O -109.375 25 Beidellite-Ca(s) mineral Ca0.165Al2.33Si3.67O10(OH)2 2829.94 -7.32 H[+] 0.165 Ca[2+] 2.33 Al[3+] 3.67 SiO2(aq) 4.66 H2O -3.9962 25 Beidellite-Cs(s) mineral Cs0.33Si3.67Al2.33O10(OH)2 3000 -7.32 H[+] 0.33 Cs[+] 2.33 Al[3+] 3.67 SiO2(aq) 4.66 H2O -3.559 25 Beidellite-H(s) mineral H0.33Al2.33Si3.67O10(OH)2 2756.56 -6.99 H[+] 2.33 Al[3+] 3.67 SiO2(aq) 4.66 H2O -3.0383 25 Beidellite-K(s) mineral K0.33Al2.33Si3.67O10(OH)2 2788.72 -7.32 H[+] 0.33 K[+] 2.33 Al[3+] 3.67 SiO2(aq) 4.66 H2O -3.7136 25 Beidellite-Mg(s) mineral Mg0.165Al2.33Si3.67O10(OH)2 2954.46 -7.32 H[+] 0.165 Mg[2+] 2.33 Al[3+] 3.67 SiO2(aq) 4.66 H2O -3.9585 25 Beidellite-Na(s) mineral Na0.33Al2.33Si3.67O10(OH)2 2815.51 -7.32 H[+] 0.33 Na[+] 2.33 Al[3+] 3.67 SiO2(aq) 4.66 H2O -4.0521 25 Berndtite(s) mineral SnS2 4463.92 1 S2[2-] 1 Sn[2+] 34.5832 25 Bi(OH)2Cl(s) mineral 1 Bi[3+] 1 Cl[-] 2 OH[-] 30.75 25 Bieberite(s) mineral CoSO4:7H2O 1948.05 1 Co[2+] 1 SO4[2-] 7 H2O 2.5051 25 BiI3(s) mineral 1 Bi[3+] 3 I[-] 18.1 25 BiPO4(s) mineral 1 Bi[3+] 1 PO4[3-] 22.4 25 Bischofite(s) mineral MgCl2:6H2O 1569.05 1 Mg[2+] 2 Cl[-] 6 H2O -4.3923 25 Bixbyite(s) mineral Mn2O3 3000 -6 H[+] 2 Mn[3+] 3 H2O -0.0607 25 Bloedite(s) mineral Na2Mg(SO4)2:4H2O 2230.12 1 Mg[2+] 2 Na[+] 2 SO4[2-] 4 H2O 2.4777 25 Boehmite(s) mineral Al(OH)3(s) 1 Al[3+] 3 OH[-] 34.02 25 Borax(s) mineral Na2[B4O5(OH)4]:8H2O 1712.8 -2 H[+] 2 Na[+] 4 B(OH)3(aq) 5 H2O -12.0395 25 Bornite(s) mineral Cu5FeS4 5089.67 -4 H[+] 1 Cu[2+] 1 Fe[2+] 4 Cu[+] 4 HS[-] 102.437 25 Br2(l)(s) mineral 3000 -1 H2O 0.5 O2(aq) 2 Br[-] 2 H[+] 6.5419 25 Brezinaite(s) mineral Cr3S4 4110.07 -4 H[+] 1 Cr[2+] 2 Cr[3+] 4 HS[-] -9.9361 25 Brochantite(s) mineral Cu4(SO4)(OH)6 3981.44 -6 H[+] 1 SO4[2-] 4 Cu[2+] 6 H2O -15.4363 25 Burkeite(s) mineral Na6CO3(SO4)2 2580.03 -1 H[+] 1 HCO3[-] 2 SO4[2-] 6 Na[+] -9.4866 25 C(s) mineral 2267.08 -1 H2O -1 O2(aq) 1 H[+] 1 HCO3[-] -64.1735 25 Ca(HPO4)(s) mineral 1 Ca[2+] 1 HPO4[2-] 7 25 Ca(IO3)2(s) mineral 0 1 Ca[2+] 2 IO3[-] 6.15 25 Ca(MoO4)(s) mineral 1 Ca[2+] 1 MoO4[2-] 7.38 25 Ca(OH)2(s) mineral 1 Ca[2+] 2 OH[-] 5.26 25 Ca(oxinate)2(s) mineral 1 Ca[2+] 2 Oxinate 11 25 Ca(s) mineral 1530.28 -2 H[+] -0.5 O2(aq) 1 Ca[2+] 1 H2O -139.846 25 Ca-Al_Pyroxene(s) mineral CaAl2SiO6 3435.01 -8 H[+] 1 Ca[2+] 1 SiO2(aq) 2 Al[3+] 4 H2O -34.6066 25 Ca2Al2O5:8H2O(s) mineral 1699.99 -10 H[+] 2 Al[3+] 2 Ca[2+] 13 H2O -58.1994 25 Ca2Cl2(OH)2:H2O(s) mineral 3000 -2 H[+] 2 Ca[2+] 2 Cl[-] 3 H2O -26.2901 25 Ca2V2O7(s) mineral 3000 -6 H[+] 2 Ca[2+] 2 VO2[+] 3 H2O -17.182 25 Ca3(AsO4)2(s) mineral 3 Ca[2+] 2 AsO4[3-] 18.2 25 Ca3(PO4)2(s) mineral 3 Ca[2+] 2 PO4[3-] 26 25 Ca3Al2O6(s) mineral 3037.93 -12 H[+] 2 Al[3+] 3 Ca[2+] 6 H2O -111.677 25 Ca3Si2O4(OH)6(s) mineral Ca3Si2O4(OH)6 2649.9 -6 H[+] 2 SiO2(aq) 3 Ca[2+] 6 H2O -60.0452 25 Ca3V2O8(s) mineral 4009.07 -8 H[+] 2 VO2[+] 3 Ca[2+] 4 H2O -38.5715 25 Ca4Al2Fe2O10(s) mineral 3730.14 -20 H[+] 2 Al[3+] 2 Fe[3+] 4 Ca[2+] 10 H2O -139.136 25 Ca4Al2O7:13H2O(s) mineral 2081.98 -14 H[+] 2 Al[3+] 4 Ca[2+] 20 H2O -105.884 25 Ca4Al2O7:19H2O(s) mineral 1802.49 -14 H[+] 2 Al[3+] 4 Ca[2+] 26 H2O -102.312 25 Ca4Cl2(OH)6:13H2O(s) mineral 3000 -6 H[+] 2 Cl[-] 4 Ca[2+] 19 H2O -68.3283 25 CaAl2O4(s) mineral 2980.74 -8 H[+] 1 Ca[2+] 2 Al[3+] 4 H2O -45.5848 25 CaAl2O4:10H2O(s) mineral 3000 -8 H[+] 1 Ca[2+] 2 Al[3+] 14 H2O -36.6254 25 CaAl4O7(s) mineral 2909.9 -14 H[+] 1 Ca[2+] 4 Al[3+] 7 H2O -65.8753 25 CaC2O4(s) mineral 0 1 Ca[2+] 1 Oxalate[2-] 8.64 25 CaCO3(s) mineral 1 Ca[2+] 1 CO3[2-] 8.42 25 CaCrO4(s) mineral 0 1 Ca[2+] 1 CrO4[2-] 4.9 25 CaF2(s) mineral 1 Ca[2+] 2 F[-] 10.47 25 CaHfO3(s) mineral 3000 -6 H[+] 1 Ca[2+] 1 Hf[4+] 3 H2O -15.8915 25 Carnallite(s) mineral KMgCl3:6H2O 1610 1 K[+] 1 Mg[2+] 3 Cl[-] 6 H2O -4.2721 25 CaSeO3:2H2O(s) mineral 3000 1 Ca[2+] 1 SeO3[2-] 2 H2O 4.6213 25 CaSeO4(s) mineral 2879.73 1 Ca[2+] 1 SeO4[2-] 3.09 25 CaSO3(s) mineral 0 1 Ca[2+] 1 SO3[2-] 6.51 25 CaSO4(s) mineral 1 Ca[2+] 1 SO4[2-] 4.62 25 CaSO4:0.5H2O(beta)(s) mineral 3000 0.5 H2O 1 Ca[2+] 1 SO4[2-] 3.4934 25 CaUO4(s) mineral 3000 1 Ca[2+] 1 UO2[2+] 2 H2O -4 H[+] -15.93 25 CaV2O6(s) mineral 3000 -4 H[+] 1 Ca[2+] 2 H2O 2 VO2[+] -5.5332 25 CaZrO3(s) mineral 4780.06 -6 H[+] 1 Ca[2+] 1 Zr[4+] 3 H2O -24.681 25 Cd(BO2)2(s) mineral 3000 -2 H[+] -2 H2O 1 Cd[2+] 2 B(OH)3(aq) -9.8299 25 Cd(IO3)2(s) mineral 3000 1 Cd[2+] 2 IO3[-] 7.5848 25 Cd(OH)2(s)(frais) mineral 1 Cd[2+] 2 OH[-] 13.6 25 Cd(OH)2(s)(âgé) mineral 1 Cd[2+] 2 OH[-] 14.23 25 Cd(OH)Cl(s) mineral 3000 -1 H[+] 1 Cd[2+] 1 Cl[-] 1 H2O -3.5435 25 Cd(oxinate)2(s) mineral 1 Cd[2+] 2 Oxinate 22 25 Cd(s) mineral 8643.68 -2 H[+] -0.5 O2(aq) 1 Cd[2+] 1 H2O -56.6062 25 Cd2[Fe(CN)6](s) mineral 2 Cd[2+] 1 Fe(CN)6[4-] 16.5 25 Cd3(AsO4)2(s) mineral 3 Cd[2+] 2 AsO4[3-] 32.7 25 Cd3(PO4)2(s) mineral 3 Cd[2+] 2 PO4[3-] 32.6 25 Cd3(SO4)(OH)4(s) mineral 3000 -4 H[+] 1 SO4[2-] 3 Cd[2+] 4 H2O -22.5735 25 Cd3(SO4)2(OH)2(s) mineral 3000 -2 H[+] 2 H2O 2 SO4[2-] 3 Cd[2+] -6.718 25 CdBr2(s) mineral 3000 1 Cd[2+] 2 Br[-] 1.847 25 CdBr2:4H2O(s) mineral 3000 1 Cd[2+] 2 Br[-] 4 H2O 2.3378 25 CdC2O4(s) mineral 0 1 Cd[2+] 1 Oxalate[2-] 7.82 25 CdCl2(NH3)2(s) mineral 3000 1 Cd[2+] 2 Cl[-] 2 NH3(aq) 8.7864 25 CdCl2(NH3)4(s) mineral 3000 1 Cd[2+] 2 Cl[-] 4 NH3(aq) 6.8044 25 CdCl2(NH3)6(s) mineral 3000 1 Cd[2+] 2 Cl[-] 6 NH3(aq) 4.7524 25 CdCl2(s) mineral 3000 1 Cd[2+] 2 Cl[-] 0.6474 25 CdCl2:H2O(s) mineral 3000 1 Cd[2+] 1 H2O 2 Cl[-] 1.6747 25 CdCO3(s) mineral 1 Cd[2+] 1 CO3[2-] 13.6 25 CdCr2O4(s) mineral 5789.82 -8 H[+] 1 Cd[2+] 2 Cr[3+] 4 H2O -18.9195 25 CdF2(s) mineral 3000 1 Cd[2+] 2 F[-] 1.1464 25 CdI2(s) mineral 3000 1 Cd[2+] 2 I[-] 3.4825 25 CdS(s) mineral 1 Cd[2+] 1 S[2-] 26.1 25 CdSe(s) mineral CdSe 5674.12 1 Cd[2+] 1 Se[2-] 33.8428 25 CdSeO3(s) mineral 3000 1 Cd[2+] 1 SeO3[2-] 8.8086 25 CdSeO4(s) mineral 3000 1 Cd[2+] 1 SeO4[2-] 2.2132 25 CdSiO3(s) mineral 3000 -2 H[+] 1 Cd[2+] 1 H2O 1 SiO2(aq) -7.5136 25 CdSO4(s) mineral 3000 1 Cd[2+] 1 SO4[2-] 0.1061 25 CdSO4:2.667H2O(s) mineral 3089.87 1 Cd[2+] 1 SO4[2-] 2.667 H2O 1.8015 25 CdSO4:H2O(s) mineral 3000 1 Cd[2+] 1 H2O 1 SO4[2-] 1.6529 25 Ce(IO3)4(s) mineral 1 Ce[4+] 4 IO3[-] 9.5 25 Ce(OH)3(s) mineral 1 Ce[3+] 3 OH[-] 20.2 25 Ce(OH)4(s) mineral 1 Ce[4+] 4 OH[-] 50.4 25 Ce(s) mineral 6746.03 -3 H[+] -0.75 O2(aq) 1 Ce[3+] 1.5 H2O -182.956 25 Ce2(C2O4)3(s) mineral 2 Ce[3+] 3 Oxalate[2-] 25.4 25 Ce2(CO3)3:8H2O(s) mineral 3000 -3 H[+] 2 Ce[3+] 3 HCO3[-] 8 H2O 4.1136 25 Ce3(PO4)4(s) mineral 3000 -4 H[+] 3 Ce[4+] 4 HPO4[2-] 40.8127 25 CeF3:.5H2O(s) mineral 3000 0.5 H2O 1 Ce[3+] 3 F[-] 18.8 25 Celadonite(s) mineral KMgAlSi4O10(OH)2 2525.37 -6 H[+] 1 Al[3+] 1 K[+] 1 Mg[2+] 4 H2O 4 SiO2(aq) -6.7729 25 CePO4:10H2O(s) mineral 3000 -1 H[+] 1 Ce[3+] 1 HPO4[2-] 10 H2O 12.2782 25 Chalcopyrite(s) mineral CuFeS2 4284.96 -2 H[+] 1 Cu[2+] 1 Fe[2+] 2 HS[-] 32.5638 25 Chamosite-7A(s) mineral Fe2Al2SiO5(OH)4 3218.16 -10 H[+] 1 SiO2(aq) 2 Al[3+] 2 Fe[2+] 7 H2O -31.4724 25 Chrysocolla(s) mineral CuSiH4O5 2400.06 -2 H[+] 1 Cu[2+] 1 SiO2(aq) 3 H2O -6.2142 25 Chrysotile(s) mineral Mg3Si2O5(OH)4 2554.03 -6 H[+] 2 SiO2(aq) 3 Mg[2+] 5 H2O -31.1254 25 Clinochalcomenite(s) mineral CuSeO3:2H2O 3309.98 1 Cu[2+] 1 SeO3[2-] 2 H2O 6.7873 25 Clinochlore-14A(s) mineral Mg5Al2Si3O10(OH)8 2683.59 -16 H[+] 2 Al[3+] 3 SiO2(aq) 5 Mg[2+] 12 H2O -65.8699 25 Clinochlore-7A(s) mineral Mg5Al2Si3O10(OH)8 2627.88 -16 H[+] 2 Al[3+] 3 SiO2(aq) 5 Mg[2+] 12 H2O -69.2432 25 Clinoptilolite(s) mineral Na0.954K0.543Ca0.761Mg0.124Sr0.036Ba0.062Mn0.002Al3.45F 3000 -13.868 H[+] 0.002 Mn[2+] 0.017 Fe[3+] 0.036 Sr[2+] 0.062 Ba[2+] 0.124 Mg[2+] 0.543 K[+] 0.761 Ca[2+] 0.954 Na[+] 3.45 Al[3+] 14.533 SiO2(aq) 17.856 H2O 12.1472 25 Clinoptilolite-Ca(s) mineral Ca1.7335Al3.45Fe0.017Si14.533O36:10.922H2O 3000 -13.868 H[+] 0.017 Fe[3+] 1.7335 Ca[2+] 3.45 Al[3+] 14.533 SiO2(aq) 17.856 H2O 9.3714 25 Clinoptilolite-Cs(s) mineral Cs3.467Al3.45Fe0.017Si14.533O36:10.922H2O 3000 -13.868 H[+] 0.017 Fe[3+] 3.45 Al[3+] 3.467 Cs[+] 14.533 SiO2(aq) 17.856 H2O 15.4198 25 Clinoptilolite-dehy(s) mineral Sr0.036Mg0.124Ca0.761Mn0.002Ba0.062K0.543Na0.954Al3.45F 2141.79 -13.868 H[+] 0.002 Mn[2+] 0.017 Fe[3+] 0.036 Sr[2+] 0.062 Ba[2+] 0.124 Mg[2+] 0.543 K[+] 0.761 Ca[2+] 0.954 Na[+] 3.45 Al[3+] 6.934 H2O 14.533 SiO2(aq) -23.4879 25 Clinoptilolite-dehy-Ca(s) mineral Ca1.7335Al3.45Fe0.017Si14.533O36 2106.95 -13.868 H[+] 0.017 Fe[3+] 1.7335 Ca[2+] 3.45 Al[3+] 6.934 H2O 14.533 SiO2(aq) -26.2636 25 Clinoptilolite-dehy-Cs(s) mineral Cs3.467Al3.45Fe0.017Si14.533O36 2825.34 -13.868 H[+] 0.017 Fe[3+] 3.45 Al[3+] 3.467 Cs[+] 6.934 H2O 14.533 SiO2(aq) -20.2152 25 Clinoptilolite-dehy-K(s) mineral K3.467Al3.45Fe0.017Si14.533O36 2228.26 -13.868 H[+] 0.017 Fe[3+] 3.45 Al[3+] 3.467 K[+] 6.934 H2O 14.533 SiO2(aq) -22.3245 25 Clinoptilolite-dehy-Na(s) mineral Na3.467Al3.45Fe0.017Si14.533O36 2125.73 -13.868 H[+] 0.017 Fe[3+] 3.45 Al[3+] 3.467 Na[+] 6.934 H2O 14.533 SiO2(aq) -26.1367 25 Clinoptilolite-dehy-NH4(s) mineral (NH4)3.467Al3.45Fe0.017Si14.533O36 3000 -10.401 H[+] 0.017 Fe[3+] 3.45 Al[3+] 3.467 NH3(aq) 6.934 H2O 14.533 SiO2(aq) 9.206 25 Clinoptilolite-dehy-Sr(s) mineral Sr1.7335Al3.45Fe0.017Si14.533O36 2258.25 -13.868 H[+] 0.017 Fe[3+] 1.7335 Sr[2+] 3.45 Al[3+] 6.934 H2O 14.533 SiO2(aq) -26.1239 25 Clinoptilolite-hy-Ca(s) mineral Ca1.7335Al3.45Fe0.017Si14.533036 3000 -13.868 H[+] 0.017 Fe[3+] 1.7335 Ca[2+] 3.45 Al[3+] 14.533 SiO2(aq) 18.579 H2O 9.3727 25 Clinoptilolite-hy-Cs(s) mineral Cs3.467Al3.45Fe0.017Si14.533036 3000 -13.868 H[+] 0.017 Fe[3+] 3.45 Al[3+] 3.467 Cs[+] 13.164 H2O 14.533 SiO2(aq) 15.4241 25 Clinoptilolite-hy-K(s) mineral K3.467Al3.45Fe0.017Si14.533036 3000 -13.868 H[+] 0.017 Fe[3+] 3.45 Al[3+] 3.467 K[+] 14.433 H2O 14.533 SiO2(aq) 13.3142 25 Clinoptilolite-hy-Na(s) mineral Na3.467Al3.45Fe0.017Si14.533036 3000 -13.868 H[+] 0.017 Fe[3+] 3.45 Al[3+] 3.467 Na[+] 14.533 SiO2(aq) 17.811 H2O 9.5004 25 Clinoptilolite-hy-Sr(s) mineral Sr1.7335Al3.45Fe0.017Si14.533036 3000 -13.868 H[+] 0.017 Fe[3+] 1.7335 Sr[2+] 3.45 Al[3+] 14.533 SiO2(aq) 20.827 H2O 9.5118 25 Clinoptilolite-K(s) mineral K3.467Al3.45Fe0.017Si14.533O36:10.922H2O 3000 -13.868 H[+] 0.017 Fe[3+] 3.45 Al[3+] 3.467 K[+] 14.533 SiO2(aq) 17.856 H2O 13.3105 25 Clinoptilolite-Na(s) mineral Na3.467Al3.45Fe0.017Si14.533O36:10.922H2O 3000 -13.868 H[+] 0.017 Fe[3+] 3.45 Al[3+] 3.467 Na[+] 14.533 SiO2(aq) 17.856 H2O 9.4983 25 Clinoptilolite-NH4(s) mineral (NH4)3.467Al3.45Fe0.017Si14.533O36:10.922H2O 3000 -10.401 H[+] 0.017 Fe[3+] 3.45 Al[3+] 3.467 NH3(aq) 14.533 SiO2(aq) 17.856 H2O 44.841 25 Clinoptilolite-Sr(s) mineral Sr1.7335Al3.45Fe0.017Si14.533O36:10.922H2O 3000 -13.868 H[+] 0.017 Fe[3+] 1.7335 Sr[2+] 3.45 Al[3+] 14.533 SiO2(aq) 17.856 H2O 9.5111 25 Clinozoisite(s) mineral Ca2Al3Si3O12(OH) 3335.96 -13 H[+] 2 Ca[2+] 3 Al[3+] 3 SiO2(aq) 7 H2O -41.2031 25 Co(NO3)2(s) mineral 2985.85 1 Co[2+] 2 NO3[-] -8 25 Co(OH)2(s)(bleu) mineral 1 Co[2+] 2 OH[-] 14.2 25 Co(OH)2(s)(rose frais) mineral 1 Co[2+] 2 OH[-] 14.8 25 Co(OH)2(s)(rose âgé) mineral 1 Co[2+] 2 OH[-] 15.7 25 Co(OH)3(s) mineral 0 1 Co[3+] 3 OH[-] 44.5 25 Co(oxinate)2(s) mineral 1 Co[2+] 2 Oxinate 24.8 25 Co(s) mineral 8835.56 -2 H[+] -0.5 O2(aq) 1 Co[2+] 1 H2O -52.5307 25 Co2SiO4(s) mineral 4715.85 -4 H[+] 1 SiO2(aq) 2 Co[2+] 2 H2O -6.6808 25 Co2[Fe(CN)6](s) mineral 2 Co[2+] 1 Fe(CN)6[4-] 14.7 25 Co3(AsO4)2(s) mineral 3 Co[2+] 2 AsO4[3-] 28.1 25 Co3(PO4)2(s) mineral 2587.06 -2 H[+] 2 HPO4[2-] 3 Co[2+] 10.0123 25 CoC2O4(s) mineral 0 1 Co[2+] 1 Oxalate[2-] 5.4 25 CoCl2(s) mineral 3355.87 1 Co[2+] 2 Cl[-] -8.2641 25 CoCl2:2H2O(s) mineral 2490.15 1 Co[2+] 2 Cl[-] 2 H2O -4.6661 25 CoCl2:6H2O(s) mineral 1924.07 1 Co[2+] 2 Cl[-] 6 H2O -2.6033 25 CoCO3(s) mineral 1 Co[2+] 1 CO3[2-] 12.84 25 Coesite(s) mineral SiO2 2910.92 1 SiO2(aq) 3.1893 25 CoF2(s) mineral 4460.65 1 Co[2+] 2 F[-] 5.1343 25 CoF3(s) mineral 3879.8 1 Co[3+] 3 F[-] 4.9558 25 CoFe2O4(s) mineral 5332.38 -8 H[+] 1 Co[2+] 2 Fe[3+] 4 H2O -0.8729 25 Coffinite(s) mineral USiO4 7158 1 U[4+] 1 SiO2(aq) -4 H[+] 8.06 25 CoHPO4(s) mineral 3000 1 Co[2+] 1 HPO4[2-] 6.7223 25 Colemanite(s) mineral Ca2B6O11:5H2O 2419.47 -4 H[+] -2 H2O 2 Ca[2+] 6 B(OH)3(aq) -21.5148 25 Cordierite_anhyd(s) mineral Mg2Al4Si5O18 2508.16 -16 H[+] 2 Mg[2+] 4 Al[3+] 5 SiO2(aq) 8 H2O -49.565 25 Cordierite_hydr(s) mineral Mg2Al4Si5O18:H2O 2499.66 -16 H[+] 2 Mg[2+] 4 Al[3+] 5 SiO2(aq) 9 H2O -47.085 25 Corkite(s) mineral PbFe3(PO4)(SO4)(OH)6 4420.01 -7 H[+] 1 HPO4[2-] 1 Pb[2+] 1 SO4[2-] 3 Fe[3+] 6 H2O 9.7951 25 Corundum(s) mineral Al2O3 3986.76 -6 H[+] 2 Al[3+] 3 H2O -19.3933 25 CoS(s)(alpha) mineral 1 Co[2+] 1 S[2-] 20.4 25 CoS(s)(bêta) mineral 1 Co[2+] 1 S[2-] 24.7 25 CoS2(s) mineral CoS2 4820.42 1 Co[2+] 1 S2[2-] 29.9067 25 CoSeO3(s) mineral 3000 1 Co[2+] 1 SeO3[2-] 7.08 25 CoSO4(s) mineral 3709.83 1 Co[2+] 1 SO4[2-] -2.8996 25 CoSO4:3Co(OH)2(s) mineral 3000 -6 H[+] 1 SO4[2-] 4 Co[2+] 6 H2O -33.2193 25 CoSO4:6H2O(s) mineral 2019.1 1 Co[2+] 1 SO4[2-] 6 H2O 2.3512 25 CoSO4:H2O(s) mineral 3075.22 1 Co[2+] 1 H2O 1 SO4[2-] 1.2111 25 CoWO4(s) mineral 8421.1 1 Co[2+] 1 WO4[2-] 12.7543 25 Cr(OH)2(s) mineral 1 Cr[2+] 2 OH[-] 17 25 Cr(OH)3(s) mineral 0 1 Cr[3+] 3 OH[-] 31 25 Cr(s) mineral 7190.72 -3 H[+] -0.75 O2(aq) 1 Cr[3+] 1.5 H2O -100.64 25 CrAsO4(s) mineral 1 Cr[3+] 1 AsO4[3-] 20.1 25 CrCl3(s) mineral 2759.75 1 Cr[3+] 3 Cl[-] -19.9341 25 CrF3(s) mineral 3800.25 1 Cr[3+] 3 F[-] 6.61 25 CrF4(s) mineral 3000 -2 H2O 0.5 Cr[2+] 0.5 CrO4[2-] 4 F[-] 4 H[+] 10.3854 25 CrI3(s) mineral 4914.92 1 Cr[3+] 3 I[-] -27.5725 25 Cristobalite(alpha)(s) mineral SiO2 2334.28 1 SiO2(aq) 3.4488 25 Cristobalite(beta)(s) mineral SiO2 2194.46 1 SiO2(aq) 3.0053 25 CrO2(s) mineral 4955.45 0.5 Cr[2+] 0.5 CrO4[2-] 17.2054 25 CrO3(s) mineral 2845.6 -1 H2O 1 CrO4[2-] 2 H[+] 2.8917 25 Cronstedtite-7A(s) mineral Fe2Fe2SiO5(OH)4 3000 -10 H[+] 1 SiO2(aq) 2 Fe[2+] 2 Fe[3+] 7 H2O -16.2603 25 CrPO4(s) mineral 0 1 Cr[3+] 1 PO4[3-] 19 25 CrS(s) mineral 4850.67 -1 H[+] 1 Cr[2+] 1 HS[-] -2.5948 25 Cs(s) mineral 1906 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Cs[+] -72.5987 25 Cs2NaAmCl6(s) mineral 3000 1 Am[3+] 2 Cs[+] 1 Na[+] 6 Cl[-] -11.57 25 Cs2NaPuCl6(s) mineral 3000 2 Cs[+] 1 Na[+] 1 Pu[3+] 6 Cl[-] -11.85 25 Cs2NpBr6(s) mineral 3000 2 Cs[+] 1 Np[4+] 6 Br[-] -13.61 25 Cs2NpCl6(s) mineral 3000 2 Cs[+] 1 Np[4+] 6 Cl[-] -5.07 25 Cs2PuBr6(s) mineral 3000 2 Cs[+] 1 Pu[4+] 6 Br[-] -8.7 25 Cs2PuCl6(s) mineral 3000 2 Cs[+] 1 Pu[4+] 6 Cl[-] -1.75 25 Cs2U2O7(s) mineral 3000 2 Cs[+] 3 H2O 2 UO2[2+] -6 H[+] -30.93 25 Cs2U4O12(s) mineral 3000 2 Cs[+] 2 UO2[+] 2 UO2[2+] 4 H2O -8 H[+] -18.84 25 Cs2UO4(s) mineral 3000 2 Cs[+] 1 UO2[2+] 2 H2O -4 H[+] -35.8 25 Cs3PuCl6(s) mineral 3000 3 Cs[+] 1 Pu[3+] 6 Cl[-] -5.71 25 CsPu2Cl7(s) mineral 3000 1 Cs[+] 2 Pu[3+] 7 Cl[-] -23.27 25 CsTcO4(s) mineral 3000 1 Cs[+] 1 TcO4[-] 3.65 25 Cu(IO3)2(s) mineral 0 1 Cu[2+] 2 IO3[-] 7.13 25 Cu(OH)2(s) mineral 0 1 Cu[2+] 2 OH[-] 18.5 25 Cu(oxinate)2(s) mineral 1 Cu[2+] 2 Oxinate 29.7 25 Cu(s) mineral 8933.78 -2 H[+] -0.5 O2(aq) 1 Cu[2+] 1 H2O -31.5118 25 Cu2CrO4(s) mineral 0 2 Cu[+] 1 CrO4[2-] 5.4 25 Cu2P2O7(s) mineral 2 Cu[2+] 1 P2O7[4-] 15.1 25 Cu2S(s) mineral 2 Cu[+] 1 S[2-] 48.3 25 Cu2[Fe(CN)6](s) mineral 2 Cu[2+] 1 Fe(CN)6[4-] 15.9 25 Cu3(AsO4)2(s) mineral 3 Cu[2+] 2 AsO4[3-] 35.1 25 Cu3(PO4)2(s) mineral 3 Cu[2+] 2 PO4[3-] 37 25 Cu3(PO4)2:3H2O(s) mineral 3000 -2 H[+] 2 HPO4[2-] 3 Cu[2+] 3 H2O 10.4763 25 CuBr(s) mineral 0 1 Cu[+] 1 Br[-] 8.3 25 CuCl(s) mineral CuCl 4138.74 1 Cl[-] 1 Cu[+] 6.73 25 CuCl2(s) mineral 3385.83 1 Cu[2+] 2 Cl[-] -3.7308 25 CuCN(s) mineral 0 1 Cu[+] 1 CN[-] 19.5 25 CuCO3(s) mineral 0 1 Cu[2+] 1 CO3[2-] 9.63 25 CuCr2O4(s) mineral 5417.31 -8 H[+] 1 Cu[2+] 2 Cr[3+] 4 H2O -20.14 25 CuCrO4(s) mineral 1 Cu[2+] 1 CrO4[2-] 5.44 25 CuF(s) mineral 7073.21 1 Cu[+] 1 F[-] -7.08 25 CuF2(s) mineral 4230.95 1 Cu[2+] 2 F[-] 0.62 25 CuF2:2H2O(s) mineral 2930.21 1 Cu[2+] 2 F[-] 2 H2O 4.55 25 CuI(s) mineral 0 1 Cu[+] 1 I[-] 12 25 CuOH(s) mineral 0 1 Cu[+] 1 OH[-] 15 25 Cuprite(s) mineral Cu2O 6105.36 -2 H[+] 1 H2O 2 Cu[+] 1.9031 25 CuS(s) mineral 1 Cu[2+] 1 S[2-] 35.2 25 CuSCN(s) mineral 0 1 Cu[+] 1 SCN[-] 14 25 CuSeO3(s) mineral 3000 1 Cu[2+] 1 SeO3[2-] 7.6767 25 CUSO4(s) mineral CuSO4 3904.34 1 Cu[2+] 1 SO4[2-] -2.9239 25 CuSO4:5H2O(s) mineral CuSO4:5H2O 2291.33 1 Cu[2+] 1 SO4[2-] 5 H2O 2.6215 25 Daphnite-14A(s) mineral Fe5AlAlSi3O10(OH)8 3343.21 -16 H[+] 2 Al[3+] 3 SiO2(aq) 5 Fe[2+] 12 H2O -50.9128 25 Daphnite-7A(s) mineral Fe5AlAlSi3O10(OH)8 3225.62 -16 H[+] 2 Al[3+] 3 SiO2(aq) 5 Fe[2+] 12 H2O -54.2861 25 Dawsonite(s) mineral NaAlCO3(OH)2 3000 -3 H[+] 1 Al[3+] 1 HCO3[-] 1 Na[+] 2 H2O -3.6618 25 Delafossite(s) mineral CuFeO2 5501.16 -4 H[+] 1 Cu[+] 1 Fe[3+] 2 H2O 6.4172 25 Dicalcium_silicate(s) mineral Ca2SiO4 2913.87 -4 H[+] 1 SiO2(aq) 2 Ca[2+] 2 H2O -37.1725 25 Diopside(s) mineral CaMgSi2O6 3276.6 -4 H[+] 1 Ca[2+] 1 Mg[2+] 2 H2O 2 SiO2(aq) -20.9643 25 Dioptase(s) mineral CuSiO2(OH)2 3267.93 -2 H[+] 1 Cu[2+] 1 SiO2(aq) 2 H2O -6.0773 25 Dolomite(s) mineral CaMg(CO3)2 2864.93 -2 H[+] 1 Ca[2+] 1 Mg[2+] 2 HCO3[-] -2.5135 25 Dolomite-dis(s) mineral CaMg(CO3)2 2863.82 -2 H[+] 1 Ca[2+] 1 Mg[2+] 2 HCO3[-] -4.0579 25 Dolomite-ord(s) mineral CaMg(CO3)2 2866.05 -2 H[+] 1 Ca[2+] 1 Mg[2+] 2 HCO3[-] -2.5135 25 Downeyite(s) mineral SeO2 3950.12 -1 H2O 1 SeO3[2-] 2 H[+] 6.7503 25 Dy(OH)3(am)(s) mineral 3000 -3 H[+] 1 Dy[3+] 3 H2O -17.4852 25 Dy(OH)3(s) mineral 3000 -3 H[+] 1 Dy[3+] 3 H2O -15.8852 25 Dy(s) mineral 8548.13 -3 H[+] -0.75 O2(aq) 1 Dy[3+] 1.5 H2O -180.831 25 Dy2(CO3)3(s) mineral 3000 -3 H[+] 2 Dy[3+] 3 HCO3[-] 3.0136 25 Dy2O3(s) mineral 3000 -6 H[+] 2 Dy[3+] 3 H2O -47 25 DyF3:.5H2O(s) mineral 3000 0.5 H2O 1 Dy[3+] 3 F[-] 16.5 25 DyPO4:10H2O(s) mineral 3000 -1 H[+] 1 Dy[3+] 1 HPO4[2-] 10 H2O 11.9782 25 Enstatite(s) mineral MgSiO3 3209.77 -2 H[+] 1 H2O 1 Mg[2+] 1 SiO2(aq) -11.3269 25 Epidote(s) mineral Ca2FeAl2Si3O12OH 3471.43 -13 H[+] 1 Fe[3+] 2 Al[3+] 2 Ca[2+] 3 SiO2(aq) 7 H2O -31.5604 25 Epidote-ord(s) mineral FeCa2Al2(OH)(SiO4)3 3471.43 -13 H[+] 1 Fe[3+] 2 Al[3+] 2 Ca[2+] 3 SiO2(aq) 7 H2O -31.5604 25 Epsomite(s) mineral MgSO4:7H2O 1678.99 1 Mg[2+] 1 SO4[2-] 7 H2O 1.9623 25 Er(OH)3(am)(s) mineral 3000 -3 H[+] 1 Er[3+] 3 H2O -18.9852 25 Er(OH)3(s) mineral 3000 -3 H[+] 1 Er[3+] 3 H2O -14.9852 25 Er(s) mineral 9065.58 -3 H[+] -0.75 O2(aq) 1 Er[3+] 1.5 H2O -181.71 25 Er2(CO3)3(s) mineral 3000 -3 H[+] 2 Er[3+] 3 HCO3[-] 2.6136 25 Er2O3(s) mineral 3000 -6 H[+] 2 Er[3+] 3 H2O -42.1 25 ErF3:.5H2O(s) mineral 3000 0.5 H2O 1 Er[3+] 3 F[-] 16.3 25 ErPO4:10H2O(s) mineral 3000 -1 H[+] 1 Er[3+] 1 HPO4[2-] 10 H2O 11.8782 25 Erythrite(s) mineral Co3(AsO4)2:8H2O 3177.96 -4 H[+] 2 H2AsO4[-] 3 Co[2+] 8 H2O -6.393 25 Ettringite(s) mineral Ca6Al2(SO4)3(OH)12:26H2O 3000 -12 H[+] 2 Al[3+] 3 SO4[2-] 6 Ca[2+] 38 H2O -61.1669 25 Eu(IO3)3:2H2O(s) mineral 4640 1 Eu[3+] 2 H2O 3 IO3[-] 11.6999 25 Eu(NO3)3:6H2O(s) mineral 3000 1 Eu[3+] 3 NO3[-] 6 H2O -1.3082 25 Eu(OH)2.5Cl.5(s) mineral 3000 -2.5 H[+] 0.5 Cl[-] 1 Eu[3+] 2.5 H2O -12.5546 25 Eu(OH)2Cl(s) mineral 5065.94 -2 H[+] 1 Cl[-] 1 Eu[3+] 2 H2O -8.7974 25 Eu(OH)3(s) mineral 5280.62 -3 H[+] 1 Eu[3+] 3 H2O -15.3482 25 Eu(s) mineral 5245.6 -3 H[+] -0.75 O2(aq) 1 Eu[3+] 1.5 H2O -165.144 25 Eu2(CO3)3:3H2O(s) mineral 3000 -3 H[+] 2 Eu[3+] 3 H2O 3 HCO3[-] 5.8707 25 Eu2(SO4)3:8H2O(s) mineral 3000.05 2 Eu[3+] 3 SO4[2-] 8 H2O 10.8524 25 Eu2O3(cubic)(s) mineral 7287.81 -6 H[+] 2 Eu[3+] 3 H2O -51.7818 25 Eu2O3(monoclinic)(s) mineral 7994.73 -6 H[+] 2 Eu[3+] 3 H2O -53.3936 25 Eu3O4(s) mineral 8104.33 -8 H[+] 1 Eu[2+] 2 Eu[3+] 4 H2O -87.1102 25 EuBr3(s) mineral 5400.21 1 Eu[3+] 3 Br[-] -29.8934 25 EuCl2(s) mineral 4899.33 1 Eu[2+] 2 Cl[-] -5.9963 25 EuCl3(s) mineral 4889.7 1 Eu[3+] 3 Cl[-] -19.7149 25 EuCl3:6H2O(s) mineral 2423.06 1 Eu[3+] 3 Cl[-] 6 H2O -4.909 25 Eucryptite(s) mineral LiAlSiO4 2349.54 -4 H[+] 1 Al[3+] 1 Li[+] 1 SiO2(aq) 2 H2O -12.926 25 EuF3:0.5H2O(s) mineral 3000 0.5 H2O 1 Eu[3+] 3 F[-] 16.4847 25 EuO(s) mineral 3000 -2 H[+] 1 Eu[2+] 1 H2O -37.5533 25 EuOCl(s) mineral 6420.99 -2 H[+] 1 Cl[-] 1 Eu[3+] 1 H2O -15.6683 25 EuOHCO3(s) mineral 3000 -2 H[+] 1 Eu[3+] 1 H2O 1 HCO3[-] -2.5239 25 EuPO4:10H2O(s) mineral 3000 -1 H[+] 1 Eu[3+] 1 HPO4[2-] 10 H2O 12.0782 25 EuS(s) mineral 5745.58 -1 H[+] 1 Eu[2+] 1 HS[-] -14.9801 25 EuSO4(s) mineral 4989.51 1 Eu[2+] 1 SO4[2-] 8.7716 25 Fayalite(s) mineral Fe2SiO4 4392.69 -4 H[+] 1 SiO2(aq) 2 Fe[2+] 2 H2O -19.1113 25 Fe(OH)2(s) mineral 1 Fe[2+] 2 OH[-] 15.1 25 Fe(OH)3(s) mineral 1 Fe[3+] 3 OH[-] 38.6 25 Fe(oxinate)2(s) mineral 1 Fe[2+] 2 Oxinate 18.8 25 Fe(s) mineral 7874.65 -2 H[+] -0.5 O2(aq) 1 Fe[2+] 1 H2O -59.0325 25 Fe2(SO4)3(s) mineral 3057.92 2 Fe[3+] 3 SO4[2-] -3.2058 25 Fe2S3(s) mineral 0 2 Fe[3+] 3 S[2-] 85 25 Fe4(P2O7)3(s) mineral 4 Fe[3+] 3 P2O7[4-] 22.6 25 Fe4[Fe(CN)6]3(s) mineral 4 Fe[3+] 3 Fe(CN)6[4-] 40.5 25 FeAsO4(s) mineral 1 Fe[3+] 1 AsO4[3-] 20 25 FeC2O4(s) mineral 0 1 Fe[2+] 1 Oxalate[2-] 6.7 25 FeCO3(s) mineral 1 Fe[2+] 1 CO3[2-] 10.5 25 FeCr2O4(s) mineral FeCr2O4 5086.04 -8 H[+] 1 Fe[2+] 2 Cr[3+] 4 H2O -19.0911 25 FeCrO4(s) mineral 0 1 Fe[2+] 1 CrO4[2-] 5.6 25 FeF2(s) mineral 4090.84 1 Fe[2+] 2 F[-] 2.3817 25 FeF3(s) mineral trifluorofer (III) 3519.72 1 Fe[3+] 3 F[-] 19.2 25 FePO4(s) mineral 0 1 Fe[3+] 1 PO4[3-] 21.9 25 Ferrite-Ca(s) mineral CaFe2O4 4797.01 -8 H[+] 1 Ca[2+] 2 Fe[3+] 4 H2O -21.5217 25 Ferrite-Cu(s) mineral CuFe2O4 5372.5 -8 H[+] 1 Cu[2+] 2 Fe[3+] 4 H2O -10.316 25 Ferrite-Dicalcium(s) mineral Ca2Fe2O5 4046.55 -10 H[+] 2 Ca[2+] 2 Fe[3+] 5 H2O -56.8331 25 Ferrite-Mg(s) mineral MgFe2O4 4487.25 -8 H[+] 1 Mg[2+] 2 Fe[3+] 4 H2O -21.0551 25 Ferrite-Zn(s) mineral ZnFe2O4 5330.13 -8 H[+] 1 Zn[2+] 2 Fe[3+] 4 H2O -11.7342 25 Ferroselite(s) mineral FeSe2 7135.08 -0.5 H2O 0.25 O2(aq) 1 Fe[3+] 1 H[+] 2 Se[2-] 80.7998 25 Ferrosilite(s) mineral FeSiO3 4003.72 -2 H[+] 1 Fe[2+] 1 H2O 1 SiO2(aq) -7.4471 25 FeS(s) mineral 1 Fe[2+] 1 S[2-] 17.2 25 FeSO4(s) mineral 3653.45 1 Fe[2+] 1 SO4[2-] -2.6565 25 FeV2O4(s) mineral 4986 -8 H[+] 1 Fe[2+] 2 V[3+] 4 H2O -280.553 25 Fluorapatite(s) mineral Ca5(PO4)3F 3000 -3 H[+] 1 F[-] 3 HPO4[2-] 5 Ca[2+] 24.994 25 Forsterite(s) mineral Mg2SiO4 3212.9 -4 H[+] 1 SiO2(aq) 2 H2O 2 Mg[2+] -27.8626 25 Foshagite(s) mineral Ca4Si3O9(OH)2:0.5H2O 2798.32 -8 H[+] 3 SiO2(aq) 4 Ca[2+] 5.5 H2O -65.921 25 Frankdicksonite(s) mineral BaF2 4894.03 1 Ba[2+] 2 F[-] 5.98 25 Freboldite(s) mineral CoSe 7652.23 1 Co[2+] 1 Se[2-] 24.3358 25 Ga(OH)3(s) mineral 1 Ga[3+] 3 OH[-] 36.5 25 Ga(s) mineral 5913.74 -3 H[+] -0.75 O2(aq) 1 Ga[3+] 1.5 H2O -92.3567 25 Ga4[Fe(CN)6]3(s) mineral 4 Ga[3+] 3 Fe(CN)6[4-] 33.8 25 Gaylussite(s) mineral CaNa2(CO3)2:5H2O 1999 -2 H[+] 1 Ca[2+] 2 HCO3[-] 2 Na[+] 5 H2O -11.1641 25 Gd(OH)3(am)(s) mineral 3000 -3 H[+] 1 Gd[3+] 3 H2O -17.9852 25 Gd(OH)3(s) mineral 3000 -3 H[+] 1 Gd[3+] 3 H2O -15.5852 25 Gd(s) mineral 7905.98 -3 H[+] -0.75 O2(aq) 1 Gd[3+] 1.5 H2O -180.757 25 Gd2(CO3)3(s) mineral 3000 -3 H[+] 2 Gd[3+] 3 HCO3[-] 3.7136 25 Gd2O3(s) mineral 3000 -6 H[+] 2 Gd[3+] 3 H2O -53.8 25 GdF3:.5H2O(s) mineral 3000 0.5 H2O 1 Gd[3+] 3 F[-] 16.9 25 GdPO4:10H2O(s) mineral 3000 -1 H[+] 1 Gd[3+] 1 HPO4[2-] 10 H2O 11.9782 25 Gehlenite(s) mineral Ca2Al2SiO7 3038.57 -10 H[+] 1 SiO2(aq) 2 Al[3+] 2 Ca[2+] 5 H2O -54.9305 25 Gismondine(s) mineral Ca2Al4Si4O16:9H2O 3000 -16 H[+] 2 Ca[2+] 4 Al[3+] 4 SiO2(aq) 17 H2O -38.9785 25 Glauberite(s) mineral Na2Ca(SO4)2 2751.04 1 Ca[2+] 2 Na[+] 2 SO4[2-] 5.469 25 Greenalite(s) mineral Fe3Si2O5(OH)4 3232.51 -6 H[+] 2 SiO2(aq) 3 Fe[2+] 5 H2O -22.6701 25 Grossular(s) mineral Ca3Al2(SiO4)3 3594.94 -12 H[+] 2 Al[3+] 3 Ca[2+] 3 SiO2(aq) 6 H2O -50.5535 25 Gypsum(s) mineral CaSO4:2H2O 2305.16 1 Ca[2+] 1 SO4[2-] 2 H2O 4.4823 25 Gyrolite(s) mineral Ca2Si3O7(OH)2:1.5H2O 2465.81 -4 H[+] 2 Ca[2+] 3 SiO2(aq) 4.5 H2O -22.9099 25 Halite(s) mineral NaCl 2163.34 1 Cl[-] 1 Na[+] -1.5855 25 Hatrurite(s) mineral Ca3SiO5 3020.06 -6 H[+] 1 SiO2(aq) 3 Ca[2+] 3 H2O -73.4056 25 Hausmannite(s) mineral Mn3O4 3000 -8 H[+] 1 Mn[2+] 2 Mn[3+] 4 H2O -11.6259 25 Heazlewoodite(s) mineral Ni3S2 5865.74 -4 H[+] -0.5 O2(aq) 1 H2O 2 HS[-] 3 Ni[2+] -28.2477 25 Hedenbergite(s) mineral CaFe(SiO3)2 3633.99 -4 H[+] 1 Ca[2+] 1 Fe[2+] 2 H2O 2 SiO2(aq) -19.606 25 Hercynite(s) mineral FeAl2O4 4265.22 -8 H[+] 1 Fe[2+] 2 Al[3+] 4 H2O -27.4791 25 Heulandite(s) mineral Ba0.065Sr0.175Ca0.585K0.132Na0.383Al2.165Si6.835O18:6 2274.76 -8.66 H[+] 0.065 Ba[2+] 0.132 K[+] 0.175 Sr[2+] 0.383 Na[+] 0.585 Ca[2+] 2.165 Al[3+] 6.835 SiO2(aq) 10.33 H2O -1.8684 25 Hexahydrite(s) mineral MgSO4:6H2O 1723.19 1 Mg[2+] 1 SO4[2-] 6 H2O 1.7268 25 Hf(s) mineral 13242.1 -4 H[+] -1 O2(aq) 1 Hf[4+] 2 H2O -183.2 25 HfB2(s) mineral 3000 -2.75 H[+] -2.25 H2O 0.75 B(OH)3(aq) 1 Hf[4+] 1.25 BH4[-] -48.9895 25 HfBr2(s) mineral 3000 -2 H[+] -0.5 O2(aq) 1 H2O 1 Hf[4+] 2 Br[-] -108.165 25 HfBr4(s) mineral 3000 1 Hf[4+] 4 Br[-] -41.5126 25 HfC(s) mineral 3000 -3 H[+] -2 O2(aq) 1 H2O 1 HCO3[-] 1 Hf[4+] -208.303 25 HfCl2(s) mineral 3000 -2 H[+] -0.5 O2(aq) 1 H2O 1 Hf[4+] 2 Cl[-] -102.383 25 HfCl4(s) mineral 3000 1 Hf[4+] 4 Cl[-] -31.3124 25 HfF2(s) mineral 3000 -2 H[+] -0.5 O2(aq) 1 H2O 1 Hf[4+] 2 F[-] -74.9852 25 HfF4(s) mineral 3000 1 Hf[4+] 4 F[-] 26.0103 25 HfI2(s) mineral 3000 -2 H[+] -0.5 O2(aq) 1 H2O 1 Hf[4+] 2 I[-] -110.718 25 HfI4(s) mineral 3000 1 Hf[4+] 4 I[-] -47.4003 25 HfN(s) mineral 3000 -4 H[+] -0.25 O2(aq) 0.5 H2O 1 Hf[4+] 1 NH3(aq) -62.685 25 HfO2(s) mineral 10108.5 -4 H[+] 1 Hf[4+] 2 H2O 5.5966 25 HfS2(s) mineral 3000 -2 H[+] 1 Hf[4+] 2 HS[-] 8.3641 25 HfS3(s) mineral 3000 -1 H[+] 1 HS[-] 1 Hf[4+] 1 S2[2-] 25.7732 25 Hg(IO3)2(s) mineral 0 1 Hg[2+] 2 IO3[-] 18.7 25 Hg(l)(s) mineral 13533.3 -2 H[+] -0.5 O2(aq) 1 H2O 1 Hg[2+] -14.1505 25 Hg(OH)2(s) mineral 0 1 Hg[2+] 2 OH[-] 25.4 25 Hg(SCN)2(s) mineral 0 1 Hg[2+] 2 SCN[-] 19.7 25 Hg2(CH3COO)2(s) mineral 1 Hg2[2+] 2 Ethanoate(aq) 16 25 Hg2(CN)2(s) mineral 0 1 Hg2[2+] 2 CN[-] 39.3 25 Hg2(HPO4)(s) mineral 1 Hg2[2+] 1 HPO4[2-] 12.4 25 Hg2(IO3)2(s) mineral 0 1 Hg2[2+] 2 IO3[-] 17.9 25 Hg2(N3)2(s) mineral 1 Hg2[2+] 2 N3[-] 9.15 25 Hg2(OH)2(s) mineral 1 Hg2[2+] 2 OH[-] 23.7 25 Hg2(SCN)2(s) mineral 1 Hg2[2+] 2 SCN[-] 19.52 25 Hg2Br2(s) mineral 0 1 Hg2[2+] 2 Br[-] 22.24 25 Hg2C2O4(s) mineral 0 1 Hg2[2+] 1 Oxalate[2-] 13 25 Hg2Cl2(s) mineral Calomel Hg2Cl2 7150.64 1 Hg2[2+] 2 Cl[-] 17.88 25 Hg2CO3(s) mineral 0 1 Hg2[2+] 1 CO3[2-] 16.5 25 Hg2CrO4(s) mineral 0 1 Hg2[2+] 1 CrO4[2-] 8.7 25 Hg2I2(s) mineral 0 1 Hg2[2+] 2 I[-] 28.35 25 Hg2S(s) mineral 0 1 Hg2[2+] 1 S[2-] 35 25 Hg2SeO3(s) mineral 3000 1 Hg2[2+] 1 SeO3[2-] 14.2132 25 Hg2SO4(s) mineral 0 1 Hg2[2+] 1 SO4[2-] 6.13 25 Hg2WO4(s) mineral 1 Hg2[2+] 1 WO4[2-] 17 25 HgCrO4(s) mineral 0 1 Hg[2+] 1 CrO4[2-] 8.7 25 HgI2(s) mineral 0 1 Hg[2+] 2 I[-] 28.3 25 HgS(s)(noir) mineral 1 Hg[2+] 1 S[2-] 51.8 25 HgS(s)(rouge) mineral 1 Hg[2+] 1 S[2-] 52.4 25 HgSeO3(s) mineral 3000 1 Hg[2+] 1 SeO3[2-] 13.8957 25 Hillebrandite(s) mineral Ca2SiO3(OH)2:0.17H2O 2692.81 -4 H[+] 1 SiO2(aq) 2 Ca[2+] 3.17 H2O -36.819 25 Hinsdalite(s) mineral Al3PPbSO8(OH)6 4070.19 -7 H[+] 1 HPO4[2-] 1 Pb[2+] 1 SO4[2-] 3 Al[3+] 6 H2O -9.8218 25 Ho(OH)3(am)(s) mineral 3000 -3 H[+] 1 Ho[3+] 3 H2O -17.7852 25 Ho(OH)3(s) mineral 3000 -3 H[+] 1 Ho[3+] 3 H2O -15.3852 25 Ho(s) mineral 8800.98 -3 H[+] -0.75 O2(aq) 1 Ho[3+] 1.5 H2O -182.81 25 Ho2(CO3)3(s) mineral 3000 -3 H[+] 2 Ho[3+] 3 HCO3[-] 2.8136 25 Ho2O3(s) mineral 3000 -6 H[+] 2 Ho[3+] 3 H2O -47.3 25 HoF3:.5H2O(s) mineral 3000 0.5 H2O 1 Ho[3+] 3 F[-] 16.4 25 Hopeite(s) mineral Zn3(PO4)2:4H2O 3040.3 -2 H[+] 2 HPO4[2-] 3 Zn[2+] 4 H2O 10.6563 25 HoPO4:10H2O(s) mineral 3000 -1 H[+] 1 HPO4[2-] 1 Ho[3+] 10 H2O 11.8782 25 Huntite(s) mineral CaMg3(CO3)4 2872.5 -4 H[+] 1 Ca[2+] 3 Mg[2+] 4 HCO3[-] -10.301 25 Hydrargillite(s) mineral Al(OH)3(s) 1 Al[3+] 3 OH[-] 36.3 25 Hydroboracite(s) mineral MgCaB6O11:6H2O 2197.07 -4 H[+] -1 H2O 1 Ca[2+] 1 Mg[2+] 6 B(OH)3(aq) -20.3631 25 Hydrocerussite(s) mineral Pb3(CO3)2(OH)2 6140.22 -4 H[+] 2 H2O 2 HCO3[-] 3 Pb[2+] -1.8477 25 Hydromagnesite(s) mineral Mg5(CO3)4(OH)2:4H2O 2239.64 -6 H[+] 4 HCO3[-] 5 Mg[2+] 6 H2O -30.8539 25 Hydrophilite(s) mineral CaCl2 3000 1 Ca[2+] 2 Cl[-] -11.7916 25 Hydrozincite(s) mineral Zn5(OH)6(CO3)2 3000 -8 H[+] 2 HCO3[-] 5 Zn[2+] 6 H2O -30.3076 25 I2(s) mineral 4948.51 -1 H2O 0.5 O2(aq) 2 H[+] 2 I[-] 24.8084 25 Illite(s) mineral K0.6Mg0.25Al1.8Al0.5Si3.5O10(OH)2 3000 -8 H[+] 0.25 Mg[2+] 0.6 K[+] 2.3 Al[3+] 3.5 SiO2(aq) 5 H2O -7.4514 25 Ilmenite(s) mineral FeTiO3 3000 -2 H[+] -1 H2O 1 Fe[2+] 1 Ti(OH)4(aq) -0.9046 25 In(OH)3(s)(frais) mineral 1 In[3+] 3 OH[-] 33.3 25 In(OH)3(s)(âgé) mineral 1 In[3+] 3 OH[-] 35 25 In(s) mineral 7288.77 -3 H[+] -0.75 O2(aq) 1 In[3+] 1.5 H2O -81.6548 25 In4[Fe(CN)6]3(s) mineral 4 In[3+] 3 Fe(CN)6[4-] 43.7 25 Jadeite(s) mineral NaAl(SiO3)2 3346.67 -4 H[+] 1 Al[3+] 1 Na[+] 2 H2O 2 SiO2(aq) -7.7042 25 Jarosite(s) mineral KFe3(SO4)2(OH)6 3194.96 -6 H[+] 1 K[+] 2 SO4[2-] 3 Fe[3+] 6 H2O 9.3706 25 Jarosite-Na(s) mineral NaFe3(SO4)2(OH)6 2877.94 -6 H[+] 1 Na[+] 2 SO4[2-] 3 Fe[3+] 6 H2O 5.4482 25 K(s) mineral 861.955 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 K[+] -70.9861 25 K-Feldspar(s) mineral KAlSi3O8 2556.55 -4 H[+] 1 Al[3+] 1 K[+] 2 H2O 3 SiO2(aq) 0.9599 25 K2CO3:1.5H2O(s) mineral 2042.89 -1 H[+] 1 HCO3[-] 1.5 H2O 2 K[+] -13.3785 25 K2O(s) mineral 2332.74 -2 H[+] 1 H2O 2 K[+] -84.0405 25 K2Se(s) mineral 2289.91 1 Se[2-] 2 K[+] -11.2925 25 K2SO4(s) mineral K2SO4 2660.46 1 SO4[2-] 2 K[+] 1.8008 25 K2UO4(s) mineral 3000 2 K[+] 1 UO2[2+] 2 H2O -4 H[+] -33.87 25 K3H(SO4)2(s) mineral 3000 1 H[+] 2 SO4[2-] 3 K[+] 3.6233 25 K4NpO2(CO3)3(s) mineral 3000 4 K[+] 1 NpO2[2+] 3 HCO3[-] -3 H[+] -4.57 25 K8H4(CO3)6:3H2O(s) mineral 3000 -2 H[+] 3 H2O 6 HCO3[-] 8 K[+] -27.7099 25 Kainite(s) mineral KMgClSO4:3H2O 2159.28 1 Cl[-] 1 K[+] 1 Mg[2+] 1 SO4[2-] 3 H2O 0.3114 25 KAl(SO4)2(s) mineral 3000 1 Al[3+] 1 K[+] 2 SO4[2-] -2.6801 25 Kalicinite(s) mineral KHCO3 2169.82 1 HCO3[-] 1 K[+] -0.2837 25 Kalsilite(s) mineral KAlSiO4 2640.89 -4 H[+] 1 Al[3+] 1 K[+] 1 SiO2(aq) 2 H2O -10.214 25 Kaolinite(s) mineral Al2Si2O5(OH)4 2594.06 -6 H[+] 2 Al[3+] 2 SiO2(aq) 5 H2O -5.4408 25 Karelianite(s) mineral V2O3 5021.15 -6 H[+] 2 V[3+] 3 H2O -9.9424 25 Katoite(s) mineral Ca3Al2H12O12 2530 -12 H[+] 2 Al[3+] 3 Ca[2+] 12 H2O -77.5745 25 KBr(s) mineral 2749.59 1 Br[-] 1 K[+] -1.0691 25 Kieserite(s) mineral MgSO4:H2O 2444.95 1 H2O 1 Mg[2+] 1 SO4[2-] 0.267 25 Klockmannite(s) mineral CuSe 6121.39 1 Cu[2+] 1 Se[2-] 41.6172 25 KMgCl3(s) mineral 3000 1 K[+] 1 Mg[2+] 3 Cl[-] -21.2618 25 KMgCl3:2H2O(s) mineral 3000 1 K[+] 1 Mg[2+] 2 H2O 3 Cl[-] -13.9755 25 KNaCO3:6H2O(s) mineral 3000 -1 H[+] 1 HCO3[-] 1 K[+] 1 Na[+] 6 H2O -10.2593 25 Krutaite(s) mineral CuSe2 6160.39 -1 H2O 0.5 O2(aq) 1 Cu[2+] 2 H[+] 2 Se[2-] 107.69 25 KTcO4(s) mineral 3000 1 K[+] 1 TcO4[-] 2.28 25 Kyanite(s) mineral Al2SiO5 3675.34 -6 H[+] 1 SiO2(aq) 2 Al[3+] 3 H2O -14.3047 25 La(IO3)3(s) mineral 1 La[3+] 3 IO3[-] 11.21 25 La(OH)3(s)(frais) mineral 1 La[3+] 3 OH[-] 18.8 25 La(OH)3(s)(âgé) mineral 1 La[3+] 3 OH[-] 20 25 La(s) mineral 6181.82 -3 H[+] -0.75 O2(aq) 1 La[3+] 1.5 H2O -184.715 25 La2(C2O4)2(s) mineral 2 La[2+] 2 Oxalate[2-] 27.7 25 La2(CO3)3:8H2O(s) mineral 3000 -3 H[+] 2 La[3+] 3 HCO3[-] 8 H2O 4.3136 25 LaCl3(s) mineral 3000 1 La[3+] 3 Cl[-] -14.4 25 LaCl3:7H2O(s) mineral 3000 1 La[3+] 3 Cl[-] 7 H2O -4.7 25 LaF3:.5H2O(s) mineral 3000 0.5 H2O 1 La[3+] 3 F[-] 18.7 25 Lanarkite(s) mineral Pb2(SO4)O 6919.86 -2 H[+] 1 H2O 1 SO4[2-] 2 Pb[2+] 0.4692 25 Lansfordite(s) mineral MgCO3:5H2O 1730.07 -1 H[+] 1 HCO3[-] 1 Mg[2+] 5 H2O -4.8409 25 LaPO4:10H2O(s) mineral 3000 -1 H[+] 1 HPO4[2-] 1 La[3+] 10 H2O 12.3782 25 Larnite(s) mineral Ca2SiO4 3337.97 -4 H[+] 1 SiO2(aq) 2 Ca[2+] 2 H2O -38.4665 25 Laumontite(s) mineral CaAl2Si4O12:4H2O 2266.62 -8 H[+] 1 Ca[2+] 2 Al[3+] 4 SiO2(aq) 8 H2O -12.2975 25 Laurite(s) mineral RuS2 6463.3 1 Ru[2+] 1 S2[2-] 73.2494 25 Lawrencite(s) mineral FeCl2 3000 1 Fe[2+] 2 Cl[-] -9.0945 25 Lawsonite(s) mineral CaAl2Si2O7(OH)2:H2O 3101.44 -8 H[+] 1 Ca[2+] 2 Al[3+] 2 SiO2(aq) 6 H2O -20.844 25 Leonite(s) mineral K2Mg(SO4)2:4H2O 2204.99 1 Mg[2+] 2 K[+] 2 SO4[2-] 4 H2O 4.1123 25 Li(s) mineral 533.226 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Li[+] -72.7622 25 Li2Se(s) mineral 2684.85 -1.5 O2(aq) 1 SeO3[2-] 2 Li[+] -102.834 25 Li2UO4(s) mineral 3000 2 Li[+] 1 UO2[2+] 2 H2O -4 H[+] -27.94 25 Linnaeite(s) mineral Co3S4 3000 -4 H[+] 1 Co[2+] 2 Co[3+] 4 HS[-] 106.902 25 Litharge(s) mineral PbO 9334.98 -2 H[+] 1 H2O 1 Pb[2+] -12.5914 25 Lopezite(s) mineral K2Cr2O7 2676.11 -1 H2O 2 CrO4[2-] 2 H[+] 2 K[+] 16.1758 25 Lu(OH)3(am)(s) mineral 3000 -3 H[+] 1 Lu[3+] 3 H2O -18.9852 25 Lu(OH)3(s) mineral 3000 -3 H[+] 1 Lu[3+] 3 H2O -14.4852 25 Lu(s) mineral 9846.2 -3 H[+] -0.75 O2(aq) 1 Lu[3+] 1.5 H2O -181.344 25 Lu2(CO3)3(s) mineral 3000 -3 H[+] 2 Lu[3+] 3 HCO3[-] 2.0136 25 Lu2O3(s) mineral 3000 -6 H[+] 2 Lu[3+] 3 H2O -45 25 LuF3:.5H2O(s) mineral 3000 0.5 H2O 1 Lu[3+] 3 F[-] 15.9 25 LuPO4:10H2O(s) mineral 3000 -1 H[+] 1 HPO4[2-] 1 Lu[3+] 10 H2O 11.6782 25 Magnesiochromite(s) mineral MgCr2O4 4414.08 -8 H[+] 1 Mg[2+] 2 Cr[3+] 4 H2O -25.6153 25 Malachite(s) mineral Cu2CO3(OH)2 4030.55 -3 H[+] 1 HCO3[-] 2 Cu[2+] 2 H2O -5.9399 25 Manganosite(s) mineral MnO 5365.51 -2 H[+] 1 H2O 1 Mn[2+] -18.3638 25 Margarite(s) mineral CaAl4Si2O10(OH)2 3077.15 -14 H[+] 1 Ca[2+] 2 SiO2(aq) 4 Al[3+] 8 H2O -38.3273 25 Massicot(s) mineral PbO 9641.44 -2 H[+] 1 H2O 1 Pb[2+] -12.821 25 Matlockite(s) mineral PbFCl 7129.46 1 Cl[-] 1 F[-] 1 Pb[2+] 9.43 25 Maximum_Microcline(s) mineral KAlSi3O8 2559.58 -4 H[+] 1 Al[3+] 1 K[+] 2 H2O 3 SiO2(aq) 0.9599 25 Mayenite(s) mineral Ca12Al14O33 2680 -66 H[+] 12 Ca[2+] 14 Al[3+] 33 H2O -484.635 25 Melanterite(s) mineral FeSO4:7H2O 1897.73 1 Fe[2+] 1 SO4[2-] 7 H2O 2.349 25 Mercallite(s) mineral KHSO4 2324.11 1 H[+] 1 K[+] 1 SO4[2-] 1.4389 25 Merwinite(s) mineral MgCa3(SiO4)2 3148.52 -8 H[+] 1 Mg[2+] 2 SiO2(aq) 3 Ca[2+] 4 H2O -68.514 25 Mesolite(s) mineral Na0.676Ca0.657Al1.99Si3.01O10:2.647H2O 2265.09 -7.96 H[+] 0.657 Ca[2+] 0.676 Na[+] 1.99 Al[3+] 3.01 SiO2(aq) 6.627 H2O -12.2567 25 Mg(NH4)(PO4)(s) mineral 1 Mg[2+] 1 NH4[+] 1 PO4[3-] 12.6 25 Mg(OH)2(s) mineral 1 Mg[2+] 2 OH[-] 10.74 25 Mg(oxinate)2(s) mineral 1 Mg[2+] 2 Oxinate 15.4 25 Mg(s) mineral 1736.57 -2 H[+] -0.5 O2(aq) 1 H2O 1 Mg[2+] -122.537 25 Mg1.25SO4(OH)0.5:0.5H2O(s) mineral 3000 -0.5 H[+] 1 H2O 1 SO4[2-] 1.25 Mg[2+] -5.26 25 Mg1.5SO4(OH)(s) mineral 3000 -1 H[+] 1 H2O 1 SO4[2-] 1.5 Mg[2+] -9.2551 25 Mg2V2O7(s) mineral 3000 -6 H[+] 2 Mg[2+] 2 VO2[+] 3 H2O -25.9924 25 Mg3(AsO4)2(s) mineral 3 Mg[2+] 2 AsO4[3-] 19.7 25 Mg3(PO4)2(s) mineral 0 3 Mg[2+] 2 PO4[3-] 25 25 MgBr2(s) mineral 3720.21 1 Mg[2+] 2 Br[-] -28.5302 25 MgBr2:6H2O(s) mineral 2000.03 1 Mg[2+] 2 Br[-] 6 H2O -5.1656 25 MgC2O4(s) mineral 0 1 Mg[2+] 1 Oxalate[2-] 4.07 25 MgCl2(s) mineral MgCl2 3000 1 Mg[2+] 2 Cl[-] -21.8604 25 MgCl2:2H2O(s) mineral 3000 1 Mg[2+] 2 Cl[-] 2 H2O -12.7763 25 MgCl2:4H2O(s) mineral 3000 1 Mg[2+] 2 Cl[-] 4 H2O -7.3581 25 MgCl2:H2O(s) mineral 3000 1 H2O 1 Mg[2+] 2 Cl[-] -16.1187 25 MgCO3(s) mineral Magnésite 1 Mg[2+] 1 CO3[2-] 5 25 MgF2(s) mineral 2 F[-] 1 Mg[2+] 8.15 25 MgOHCl(s) mineral 2310.11 -1 H[+] 1 Cl[-] 1 H2O 1 Mg[2+] -15.9138 25 MgSeO3(s) mineral 3000 1 Mg[2+] 1 SeO3[2-] -1.7191 25 MgSeO3:6H2O(s) mineral 2090.05 1 Mg[2+] 1 SeO3[2-] 6 H2O 3.4222 25 MgSO4(s) mineral 2660.08 1 Mg[2+] 1 SO4[2-] 2.2 25 MgUO4(s) mineral 3000 1 Mg[2+] 1 UO2[2+] 2 H2O -4 H[+] -23.23 25 MgV2O6(s) mineral 3000 -4 H[+] 1 Mg[2+] 2 H2O 2 VO2[+] -11.0491 25 Minium(s) mineral Pb3O4 8925.89 -8 H[+] 1 Pb[4+] 2 Pb[2+] 4 H2O -16.2585 25 Minnesotaite(s) mineral Fe3Si4O10(OH)2 3205 -6 H[+] 3 Fe[2+] 4 H2O 4 SiO2(aq) -13.9805 25 Mirabilite(s) mineral Na2SO4:10H2O 1465.86 1 SO4[2-] 2 Na[+] 10 H2O 1.1398 25 Misenite(s) mineral K8H6(SO4)7 3000 6 H[+] 7 SO4[2-] 8 K[+] 11.0757 25 Mn(IO3)2(s) mineral 0 1 Mn[2+] 2 IO3[-] 6.3 25 Mn(OH)2(s) mineral 1 Mn[2+] 2 OH[-] 12.72 25 Mn(OH)3(s) mineral 3000 -3 H[+] 1 Mn[3+] 3 H2O -6.3412 25 Mn(oxinate)2(s) mineral 1 Mn[2+] 2 Oxinate 21.7 25 Mn(s) mineral 7470.49 -2 H[+] -0.5 O2(aq) 1 H2O 1 Mn[2+] -83.3903 25 Mn2[Fe(CN)6](s) mineral 2 Mn[2+] 1 Fe(CN)6[4-] 28.7 25 Mn3(Aso4)2(s) mineral 3 Mn[2+] 2 AsO4[3-] 12.1 25 Mn3(PO4)2(s) mineral 3 Mn[2+] 2 PO4[3-] 22 25 MnC2O4(s) mineral 0 1 Mn[2+] 1 Oxalate[2-] 15 25 MnCl2:2H2O(s) mineral 2276.07 1 Mn[2+] 2 Cl[-] 2 H2O -4.4465 25 MnCl2:4H2O(s) mineral 2010 1 Mn[2+] 2 Cl[-] 4 H2O -3.1961 25 MnCl2:H2O(s) mineral 3000 1 H2O 1 Mn[2+] 2 Cl[-] -5.9915 25 MnCO3(s) mineral 1 Mn[2+] 1 CO3[2-] 9.3 25 MnHPO4(s) mineral 3000 1 HPO4[2-] 1 Mn[2+] 12.947 25 MnO2(gamma)(s) mineral 4859.52 0.5 Mn[2+] 0.5 MnO4[2-] 15.6497 25 MnS(s)(rose) mineral 1 Mn[2+] 1 S[2-] 9.6 25 MnS(s)(vert) mineral 1 Mn[2+] 1 S[2-] 12.6 25 MnSe(s) mineral 5549.03 1 Mn[2+] 1 Se[2-] 10.245 25 MnSeO3(s) mineral 3000 1 Mn[2+] 1 SeO3[2-] 7.27 25 MnSeO3:2H2O(s) mineral 3000 1 Mn[2+] 1 SeO3[2-] 2 H2O 5.8821 25 MnSO4(s) mineral 3000 1 Mn[2+] 1 SO4[2-] -3.0959 25 MnV2O6(s) mineral 3000 -4 H[+] 1 Mn[2+] 2 H2O 2 VO2[+] -5.2596 25 Mo(s) mineral 10220.5 -1.5 O2(aq) -1 H2O 1 MoO4[2-] 2 H[+] -109.689 25 Modderite(s) mineral CoAs 8283.09 -3 H[+] 1 AsH3(aq) 1 Co[3+] 49.5512 25 Molysite(s) mineral FeCl3 3000 1 Fe[3+] 3 Cl[-] -13.5517 25 Monohydrocalcite(s) mineral CaCO3:H2O 3000 -1 H[+] 1 Ca[2+] 1 H2O 1 HCO3[-] -2.6824 25 Monticellite(s) mineral CaMgSiO4 3039.95 -4 H[+] 1 Ca[2+] 1 Mg[2+] 1 SiO2(aq) 2 H2O -29.5852 25 Montmor-Ca(s) mineral Ca0.165Mg0.33Al1.67Si4O10(OH)2 3000 -6 H[+] 0.165 Ca[2+] 0.33 Mg[2+] 1.67 Al[3+] 4 H2O 4 SiO2(aq) -1.3519 25 Montmor-Cs(s) mineral Cs0.33Mg0.33Al1.67Si4O10(OH)2 3000 -6 H[+] 0.33 Cs[+] 0.33 Mg[2+] 1.67 Al[3+] 4 H2O 4 SiO2(aq) -0.8479 25 Montmor-K(s) mineral K0.33Mg0.33Al1.67Si4O10(OH)2 3000 -6 H[+] 0.33 K[+] 0.33 Mg[2+] 1.67 Al[3+] 4 H2O 4 SiO2(aq) -0.9989 25 Montmor-Mg(s) mineral Mg0.495Al1.67Si4O10(OH)2 3000 -6 H[+] 0.495 Mg[2+] 1.67 Al[3+] 4 H2O 4 SiO2(aq) -1.2445 25 Montmor-Na(s) mineral Na0.33Mg0.33Al1.67Si4O10(OH)2 3000 -6 H[+] 0.33 Mg[2+] 0.33 Na[+] 1.67 Al[3+] 4 H2O 4 SiO2(aq) -1.3411 25 Mordenite(s) mineral Ca0.2895Na0.361Al0.94Si5.06O12:3.468H2O 2105.04 -3.76 H[+] 0.2895 Ca[2+] 0.361 Na[+] 0.94 Al[3+] 5.06 SiO2(aq) 5.348 H2O 5.8405 25 Mordenite-dehy(s) mineral Ca0.2895Na0.361Al0.94Si5.06O12 3000 -3.76 H[+] 0.2895 Ca[2+] 0.361 Na[+] 0.94 Al[3+] 1.88 H2O 5.06 SiO2(aq) -9.2883 25 Morenosite(s) mineral NiSO4:7H2O 1948.12 1 Ni[2+] 1 SO4[2-] 7 H2O 2.014 25 MoSe2(s) mineral 6970.35 -3 H2O -0.5 O2(aq) 1 MoO4[2-] 2 Se[2-] 6 H[+] 54.7414 25 Muscovite(s) mineral KAl3Si3O10(OH)2 2830.7 -10 H[+] 1 K[+] 3 Al[3+] 3 SiO2(aq) 6 H2O -11.5319 25 Na(s) mineral 965.471 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Na[+] -67.3804 25 Na2CO3(s) mineral 2531.98 -1 H[+] 1 HCO3[-] 2 Na[+] -11.1822 25 Na2CO3:7H2O(s) mineral 1509.96 -1 H[+] 1 HCO3[-] 2 Na[+] 7 H2O -9.9459 25 Na2Cr2O7(s) mineral 3000 -1 H2O 2 CrO4[2-] 2 H[+] 2 Na[+] 8.8989 25 Na2CrO4(s) mineral 2723.15 1 CrO4[2-] 2 Na[+] -3.5407 25 Na2O(s) mineral 2479.16 -2 H[+] 1 H2O 2 Na[+] -67.4269 25 Na2Se(s) mineral 2624.78 1 Se[2-] 2 Na[+] -11.8352 25 Na2Se2(s) mineral 3000 -1 H2O 0.5 O2(aq) 2 H[+] 2 Na[+] 2 Se[2-] 61.3466 25 Na2SiO3(s) mineral 2399.98 -2 H[+] 1 H2O 1 SiO2(aq) 2 Na[+] -22.2418 25 Na2U2O7(s) mineral 6650 2 Na[+] 2 UO2[2+] 3 H2O -6 H[+] -22.6 25 Na2UO4(alpha)(s) mineral 3000 2 Na[+] 1 UO2[2+] 2 H2O -4 H[+] -30.03 25 Na3H(SO4)2(s) mineral 3000 1 H[+] 2 SO4[2-] 3 Na[+] 0.8906 25 Na3NpF8(s) mineral 3000 3 Na[+] 1 NpO2[+] 8 F[-] 4 H[+] -2 H2O 8.71 25 Na3NpO2(CO3)2(s) mineral 3000 3 Na[+] 2 HCO3[-] 1 NpO2[+] -2 H[+] -5.95 25 Na3UO4(s) mineral 3000 3 Na[+] 1 UO2[+] 2 H2O -4 H[+] -56.28 25 Na4Ca(SO4)3:2H2O(s) mineral 3000 1 Ca[2+] 2 H2O 3 SO4[2-] 4 Na[+] 5.8938 25 Na4SiO4(s) mineral 3000 -4 H[+] 1 SiO2(aq) 2 H2O 4 Na[+] -70.6449 25 Na4UO2(CO3)3(s) mineral 3000 4 Na[+] 1 UO2[2+] 3 HCO3[-] -3 H[+] -4.04 25 Na6Si2O7(s) mineral 3000 -6 H[+] 2 SiO2(aq) 3 H2O 6 Na[+] -101.62 25 NaBr(s) mineral 3203.42 1 Br[-] 1 Na[+] -2.9739 25 NaBr:2H2O(s) mineral 2206.2 1 Br[-] 1 Na[+] 2 H2O -2.104 25 NaFeO2(s) mineral 3310.5 -4 H[+] 1 Fe[3+] 1 Na[+] 2 H2O -19.8899 25 Nahcolite(s) mineral NaHCO3 2175.22 1 HCO3[-] 1 Na[+] 0.1118 25 NaNpO2CO3(s:aged)(s) mineral 3000 1 Na[+] 1 NpO2[+] 1 HCO3[-] -1 H[+] 1.33 25 NaNpO2CO3.3.5H2O(s:fresh)(s) mineral 3000 1 Na[+] 1 NpO2[+] 1 HCO3[-] 3.5 H2O -1 H[+] 0.83 25 NaTcO4.4H2O(s) mineral 3000 1 Na[+] 1 TcO4[-] 4 H2O -0.79 25 Natrolite(s) mineral Na2Al2Si3O10:2H2O 2246.92 -8 H[+] 2 Al[3+] 2 Na[+] 3 SiO2(aq) 6 H2O -17.1511 25 Natron(s) mineral Na2CO3:10H2O 1459.98 -1 H[+] 1 HCO3[-] 2 Na[+] 10 H2O -9.6102 25 Natrosilite(s) mineral Na2Si2O5 2509.96 -2 H[+] 1 H2O 2 Na[+] 2 SiO2(aq) -18.1337 25 Naumannite(s) mineral Ag2Se 7999.36 1 Se[2-] 2 Ag[+] 57.4427 25 NaUO3(s) mineral 3000 1 UO2[+] 1 Na[+] 1 H2O -2 H[+] -8.34 25 Nd(OH)3(am)(s) mineral 3000 -3 H[+] 1 Nd[3+] 3 H2O -20.4852 25 Nd(OH)3(s) mineral 3000 -3 H[+] 1 Nd[3+] 3 H2O -15.7852 25 Nd(s) mineral 7012.15 -3 H[+] -0.75 O2(aq) 1 Nd[3+] 1.5 H2O -182.223 25 Nd2(CO3)3(s) mineral 3000 -3 H[+] 2 Nd[3+] 3 HCO3[-] 3.6636 25 Nd2O3(s) mineral 3000 -6 H[+] 2 Nd[3+] 3 H2O -58.6 25 NdF3:.5H2O(s) mineral 3000 0.5 H2O 1 Nd[3+] 3 F[-] 18.6 25 NdOHCO3(s) mineral 3000 -2 H[+] 1 H2O 1 HCO3[-] 1 Nd[3+] -2.8239 25 NdPO4:10H2O(s) mineral 3000 -1 H[+] 1 HPO4[2-] 1 Nd[3+] 10 H2O 12.1782 25 Nepheline(s) mineral NaAlSiO4 2622.87 -4 H[+] 1 Al[3+] 1 Na[+] 1 SiO2(aq) 2 H2O -13.116 25 Nesquehonite(s) mineral MgCO3:3H2O 1849.98 -1 H[+] 1 HCO3[-] 1 Mg[2+] 3 H2O -4.9955 25 (NH4)4NpO2(CO3)3(s) mineral 3000 4 NH3(aq) 1 NpO2[2+] 3 HCO3[-] 1 H[+] 32.78 25 NH4HSe(s) mineral 3000 1 NH3(aq) 1 Se[2-] 2 H[+] 22.0531 25 NH4TcO4(s) mineral 3000 1 H[+] 1 NH3(aq) 1 TcO4[-] 10.15 25 Ni(OH)2(s)(frais) mineral 1 Ni[2+] 2 OH[-] 14.7 25 Ni(OH)2(s)(âgé) mineral 1 Ni[2+] 2 OH[-] 17.2 25 Ni(oxinate)2(s) mineral 1 Ni[2+] 2 Oxinate 26.1 25 Ni(s) mineral 8908.62 -2 H[+] -0.5 O2(aq) 1 H2O 1 Ni[2+] -50.9914 25 Ni2P2O7(s) mineral 4118.81 -1 H2O 2 HPO4[2-] 2 Ni[2+] 8.8991 25 Ni2SiO4(s) mineral 4915.82 -4 H[+] 1 SiO2(aq) 2 H2O 2 Ni[2+] -14.3416 25 Ni2[Fe(CN)6](s) mineral 2 Ni[2+] 1 Fe(CN)6[4-] 14.9 25 Ni3(AsO4)2(s) mineral 3 Ni[2+] 2 AsO4[3-] 25.5 25 Ni3(PO4)2(s) mineral 3000 -2 H[+] 2 HPO4[2-] 3 Ni[2+] 6.6414 25 NiC2O4(s) mineral 0 1 Ni[2+] 1 Oxalate[2-] 7 25 Nickelbischofite(s) mineral NiCl2:6H2O 1930.06 1 Ni[2+] 2 Cl[-] 6 H2O -3.1681 25 NiCl2(s) mineral 3531.21 1 Ni[2+] 2 Cl[-] -8.6113 25 NiCl2:2H2O(s) mineral 2585.08 1 Ni[2+] 2 Cl[-] 2 H2O -3.9327 25 NiCl2:4H2O(s) mineral 3000 1 Ni[2+] 2 Cl[-] 4 H2O -3.8561 25 NiCO3(s) mineral 1 Ni[2+] 1 CO3[2-] 8.2 25 NiF2(s) mineral 4630.59 1 Ni[2+] 2 F[-] -0.8772 25 NiF2:4H2O(s) mineral 3000 1 Ni[2+] 2 F[-] 4 H2O 4.0588 25 NiS(s)(alpha) mineral 1 Ni[2+] 1 S[2-] 18.5 25 NiS(s)(beta) mineral 1 Ni[2+] 1 S[2-] 24 25 NiS(s)(gamma) mineral 1 Ni[2+] 1 S[2-] 25.7 25 NiSO4(s) mineral 3680.23 1 Ni[2+] 1 SO4[2-] -5.3197 25 NiSO4:6H2O(alpha)(s) mineral 2076.19 1 Ni[2+] 1 SO4[2-] 6 H2O 2.0072 25 Niter(s) mineral KNO3 3000 1 K[+] 1 NO3[-] 0.2061 25 Nitrobarite(s) mineral Ba(NO3)2 3243.2 1 Ba[2+] 2 NO3[-] 2.4523 25 Nontronite-Ca(s) mineral Ca0.165Fe2Al0.33Si3.67H2O12 3236.41 -7.32 H[+] 0.165 Ca[2+] 0.33 Al[3+] 2 Fe[3+] 3.67 SiO2(aq) 4.66 H2O 11.8082 25 Nontronite-Cs(s) mineral Cs0.33Si4Fe1.67Mg0.33H2O12 3000 -6 H[+] 0.33 Cs[+] 0.33 Mg[2+] 1.67 Fe[3+] 4 H2O 4 SiO2(aq) -5.7975 25 Nontronite-H(s) mineral H0.33Fe2Al0.33Si3.67H2O12 3000 -6.99 H[+] 0.33 Al[3+] 2 Fe[3+] 3.67 SiO2(aq) 4.66 H2O 12.766 25 Nontronite-K(s) mineral K0.33Fe2Al0.33Si3.67H2O12 3183.14 -7.32 H[+] 0.33 Al[3+] 0.33 K[+] 2 Fe[3+] 3.67 SiO2(aq) 4.66 H2O 12.0907 25 Nontronite-Mg(s) mineral Mg0.165Fe2Al0.33Si3.67H2O12 3249.77 -7.32 H[+] 0.165 Mg[2+] 0.33 Al[3+] 2 Fe[3+] 3.67 SiO2(aq) 4.66 H2O 11.8459 25 Nontronite-Na(s) mineral Na0.33Fe2Al0.33Si3.67H2O12 3219.04 -7.32 H[+] 0.33 Al[3+] 0.33 Na[+] 2 Fe[3+] 3.67 SiO2(aq) 4.66 H2O 11.7523 25 Np(s) mineral 3000 1 Np[3+] 1.5 H2O -3 H[+] -0.75 O2(aq) -154.32 25 Np2C3(s) mineral 3000 2 Np[3+] 3 HCO3[-] -3 H[+] -4.5 O2(aq) -467.32 25 Np2O5(s) mineral 3000 2 NpO2[+] 1 H2O -2 H[+] -3.7 25 NpBr3(s) mineral 3000 1 Np[3+] 3 Br[-] -20.83 25 NpBr4(s) mineral 3000 1 Np[4+] 4 Br[-] -29.67 25 NpC0.91(s) mineral 3000 1 Np[3+] 0.91 HCO3[-] 0.59 H2O -2.09 H[+] -1.66 O2(aq) -199.36 25 NpCl3(s) mineral 3000 1 Np[3+] 3 Cl[-] -13.44 25 NpCl4(s) mineral 3000 1 Np[4+] 4 Cl[-] -21.21 25 NpF3(s) mineral 3000 1 Np[3+] 3 F[-] 18.06 25 NpF4(s) mineral 3000 1 Np[4+] 4 F[-] 29.07 25 NpF5(s) mineral 3000 1 NpO2[+] 5 F[-] 4 H[+] -2 H2O -1.17 25 NpF6(s) mineral 3000 1 NpO2[2+] 6 F[-] 4 H[+] -2 H2O -29.59 25 NpI3(s) mineral 3000 1 Np[3+] 3 I[-] -27.25 25 NpN(s) mineral 3000 1 Np[3+] 1 NH3(aq) -3 H[+] -47.21 25 NpO2(am:hyd)(s) mineral 3000 1 Np[4+] 2 H2O -4 H[+] -1.53 25 NpO2(NO3)2.6H2O(s) mineral 3000 1 NpO2[2+] 2 NO3[-] 6 H2O -2.15 25 NpO2(OH)2(s) mineral 3000 1 NpO2[2+] 2 H2O -2 H[+] -5.47 25 NpO2(s) mineral 3000 1 Np[4+] 2 H2O -4 H[+] 9.75 25 NpO2CO3(s) mineral 3000 1 NpO2[2+] 1 HCO3[-] -1 H[+] 4.27 25 NpO2OH(am:aged)(s) mineral 3000 1 NpO2[+] 1 H2O -1 H[+] -4.7 25 NpO2OH(am:fresh)(s) mineral 3000 1 NpO2[+] 1 H2O -1 H[+] -5.3 25 NpO3:H2O(s) mineral 3000 1 NpO2[2+] 2 H2O -2 H[+] -5.47 25 NpOBr2(s) mineral 3000 1 Np[4+] 2 Br[-] 1 H2O -2 H[+] -5.2 25 NpOCl2(s) mineral 3000 1 Np[4+] 2 Cl[-] 1 H2O -2 H[+] -5.38 25 Okenite(s) mineral CaSi2O4(OH)2:H2O 2239.91 -2 H[+] 1 Ca[2+] 2 SiO2(aq) 3 H2O -10.3816 25 Orpiment(s) mineral As2S3 3489.45 -6 H2O 2 H2AsO3[-] 3 HS[-] 5 H[+] 79.4159 25 Ottemannite(s) mineral Sn2S3 4759.85 -3 H[+] 1 Sn[2+] 1 Sn[4+] 3 HS[-] 46.3119 25 Oxychloride-Mg(s) mineral Mg2Cl(OH)3:4H2O 3000 -3 H[+] 1 Cl[-] 2 Mg[2+] 7 H2O -25.8319 25 P(s) mineral 1800.8 -1.5 H2O -1.25 O2(aq) 1 HPO4[2-] 2 H[+] -132.103 25 Paragonite(s) mineral NaAl3Si3O10(OH)2 2883.87 -10 H[+] 1 Na[+] 3 Al[3+] 3 SiO2(aq) 6 H2O -15.4681 25 Paralaurionite(s) mineral PbClOH 6279.56 -1 H[+] 1 Cl[-] 1 H2O 1 Pb[2+] -0.2035 25 Pargasite(s) mineral NaCa2Al3Mg4Si6O22(OH)2 3056.03 -22 H[+] 1 Na[+] 2 Ca[2+] 3 Al[3+] 4 Mg[2+] 6 SiO2(aq) 12 H2O -99.94 25 Pb(H2PO4)2(s) mineral 3000 1 Pb[2+] 2 H[+] 2 HPO4[2-] 9.84 25 Pb(IO3)2(s) mineral 3000 1 Pb[2+] 2 IO3[-] 12.58 25 Pb(N3)2(s) mineral 1 Pb[2+] 2 N3[-] 8.59 25 Pb(OH)2(s) mineral 0 1 Pb[2+] 2 OH[-] 16.09 25 Pb(OH)4(s) mineral 1 Pb[4+] 4 OH[-] 65.5 25 Pb(oxinate)2(s) mineral 1 Pb[2+] 2 Oxinate 22 25 Pb(s) mineral 11342.9 -2 H[+] -0.5 O2(aq) 1 H2O 1 Pb[2+] -47.1871 25 Pb(SCN)2(s) mineral 3000 1 Pb[2+] 2 SCN[-] 4.7 25 Pb2Cl2CO3(s) mineral 3000 -1 H[+] 1 HCO3[-] 2 Cl[-] 2 Pb[2+] 9.618 25 Pb2Cl5NH4(s) mineral 3000 1 H[+] 1 NH3(aq) 2 Pb[2+] 5 Cl[-] 19.61 25 Pb2O(N3)2(s) mineral 3000 -2 H[+] 1 H2O 2 N3[-] 2 Pb[2+] 13.7066 25 Pb2SiO4(s) mineral 3000 -4 H[+] 1 SiO2(aq) 2 H2O 2 Pb[2+] -18.037 25 Pb2[Fe(CN)6](s) mineral 2 Pb[2+] 1 Fe(CN)6[4-] 16.9 25 Pb3(AsO4)2(s) mineral 3 Pb[2+] 2 AsO4[3-] 35.4 25 Pb3(PO4)2(s) mineral 3 Pb[2+] 2 PO4[3-] 43.5 25 Pb3SO6(s) mineral 3000 -4 H[+] 1 SO4[2-] 2 H2O 3 Pb[2+] -10.5981 25 Pb4Cl2(OH)6(s) mineral 3000 -6 H[+] 2 Cl[-] 4 Pb[2+] 6 H2O -17.2793 25 Pb4O(PO4)2(s) mineral 3000 -4 H[+] 1 H2O 2 HPO4[2-] 4 Pb[2+] 12.5727 25 Pb4SO7(s) mineral 3000 -6 H[+] 1 SO4[2-] 3 H2O 4 Pb[2+] -21.7354 25 PbBr2(s) mineral 3000 1 Pb[2+] 2 Br[-] 4.41 25 PbBrF(s) mineral 3000 1 Br[-] 1 F[-] 1 Pb[2+] 8.0418 25 PbC2O4(s) mineral 0 1 Pb[2+] 1 Oxalate[2-] 10.5 25 PbCl2(s) mineral 1 Pb[2+] 2 Cl[-] 4.79 25 PbCO3(s) mineral 1 Pb[2+] 1 CO3[2-] 13.1 25 PbCO3.PbO(s) mineral 3000 -3 H[+] 1 H2O 1 HCO3[-] 2 Pb[2+] -9.6711 25 PbCrO4(s) mineral 1 Pb[2+] 1 CrO4[2-] 13.75 25 PbF2(s) mineral 8239.14 1 Pb[2+] 2 F[-] 7.57 25 PbFCl(s) mineral 3000 1 Cl[-] 1 F[-] 1 Pb[2+] 8.982 25 PbHPO4(s) mineral 5660.55 1 HPO4[2-] 1 Pb[2+] 11.36 25 PbI2(s) mineral 3000 1 Pb[2+] 2 I[-] 8.19 25 PbMoO4(s) mineral 1 Pb[2+] 1 MoO4[2-] 13 25 PbS(s) mineral 1 Pb[2+] 1 S[2-] 26.6 25 PbSe(s) mineral PbSe 8268.13 1 Pb[2+] 1 Se[2-] 36.2531 25 PbSeO4(s) mineral 6630.52 1 Pb[2+] 1 SeO4[2-] 6.9372 25 PbSO4(NH3)2(s) mineral 3000 1 Pb[2+] 1 SO4[2-] 2 NH3(aq) 2.0213 25 PbSO4(NH3)4(s) mineral 3000 1 Pb[2+] 1 SO4[2-] 4 NH3(aq) -1.5024 25 PbSO4(s) mineral PbSO4 6324.58 1 Pb[2+] 1 SO4[2-] 7.78 25 Pd(OH)2(s) mineral 4948.37 -2 H[+] 1 Pd[2+] 2 H2O 0.6044 25 Pd(s) mineral 12009.9 -2 H[+] -0.5 O2(aq) 1 H2O 1 Pd[2+] -12.0687 25 Pd4S(s) mineral 10396.2 -6 H[+] -3.5 O2(aq) 1 SO4[2-] 3 H2O 4 Pd[2+] -129.546 25 PdO(s) mineral 8339.2 -2 H[+] 1 H2O 1 Pd[2+] -0.1156 25 PdS(s) mineral 6706.34 -2 O2(aq) 1 Pd[2+] 1 SO4[2-] -93.5595 25 PdS2(s) mineral 4972.36 -3.5 O2(aq) -1 H2O 1 Pd[2+] 2 H[+] 2 SO4[2-] -185.532 25 Penroseite(s) mineral NiSe2 6699.97 -1 H2O 0.5 O2(aq) 1 Ni[2+] 2 H[+] 2 Se[2-] 98.8004 25 Pentahydrite(s) mineral MgSO4:5H2O 1900.01 1 Mg[2+] 1 SO4[2-] 5 H2O 1.3872 25 Perovskite(s) mineral CaTiO3 4043.19 -2 H[+] -1 H2O 1 Ca[2+] 1 Ti(OH)4(aq) -8.8233 25 Petalite(s) mineral LiAlSi4O10 2385.19 -4 H[+] 1 Al[3+] 1 Li[+] 2 H2O 4 SiO2(aq) 4.5 25 Phlogopite(s) mineral KAlMg3Si3O10(OH)2 2788.05 -10 H[+] 1 Al[3+] 1 K[+] 3 Mg[2+] 3 SiO2(aq) 6 H2O -36.7554 25 Phosgenite(s) mineral Pb2(CO3)Cl2 6133.33 -1 H[+] 1 HCO3[-] 2 Cl[-] 2 Pb[2+] 9.6355 25 Picromerite(s) mineral K2Mg(SO4)2:6H2O 2039.09 1 Mg[2+] 2 K[+] 2 SO4[2-] 6 H2O 4.4396 25 Pirssonite(s) mineral Na2Ca(CO3)2:2H2O 2366.63 -2 H[+] 1 Ca[2+] 2 H2O 2 HCO3[-] 2 Na[+] -11.323 25 Plattnerite(s) mineral PbO2 9564.13 -4 H[+] 1 Pb[4+] 2 H2O 7.9661 25 Plumbogummite(s) mineral PbAl3(PO4)2(OH)5:H2O 4069.89 -7 H[+] 1 Pb[2+] 2 HPO4[2-] 3 Al[3+] 6 H2O 8.1463 25 Pm(OH)3(am)(s) mineral 3000 -3 H[+] 1 Pm[3+] 3 H2O -18.2852 25 Pm(OH)3(s) mineral 3000 -3 H[+] 1 Pm[3+] 3 H2O -17.4852 25 Pm(s) mineral 3000 -3 H[+] -0.75 O2(aq) 1 Pm[3+] 1.5 H2O -180.674 25 Pm2(CO3)3(s) mineral 3000 -3 H[+] 2 Pm[3+] 3 HCO3[-] 3.5636 25 Pm2O3(s) mineral 3000 -6 H[+] 2 Pm[3+] 3 H2O -48.8 25 PmF3:.5H2O(s) mineral 3000 0.5 H2O 1 Pm[3+] 3 F[-] 18.1 25 PmPO4:10H2O(s) mineral 3000 -1 H[+] 1 HPO4[2-] 1 Pm[3+] 10 H2O 12.1782 25 Polydymite(s) mineral Ni3S4 4744.84 -2 H[+] 1 S2[2-] 2 HS[-] 3 Ni[2+] 48.9062 25 Polyhalite(s) mineral K2MgCa2(SO4)4:2H2O 2764.52 1 Mg[2+] 2 Ca[2+] 2 H2O 2 K[+] 4 SO4[2-] 14.3124 25 Pr(OH)3(am)(s) mineral 3000 -3 H[+] 1 Pr[3+] 3 H2O -21.0852 25 Pr(OH)3(s) mineral 3000 -3 H[+] 1 Pr[3+] 3 H2O -19.5852 25 Pr(s) mineral 6774.4 -3 H[+] -0.75 O2(aq) 1 Pr[3+] 1.5 H2O -183.689 25 Pr2(CO3)3(s) mineral 3000 -3 H[+] 2 Pr[3+] 3 HCO3[-] 3.8136 25 Pr2O3(s) mineral 3000 -6 H[+] 2 Pr[3+] 3 H2O -61.4 25 Prehnite(s) mineral Ca2Al2Si3O10(OH)2 2938.68 -10 H[+] 2 Al[3+] 2 Ca[2+] 3 SiO2(aq) 6 H2O -31.5613 25 PrF3:.5H2O(s) mineral 3000 0.5 H2O 1 Pr[3+] 3 F[-] 18.7 25 PrPO4:10H2O(s) mineral 3000 -1 H[+] 1 HPO4[2-] 1 Pr[3+] 10 H2O 12.2782 25 Pseudowollastonite(s) mineral CaSiO3 2898.25 -2 H[+] 1 Ca[2+] 1 H2O 1 SiO2(aq) -13.9997 25 Pt(s) mineral 21460.9 -2 H[+] -0.5 O2(aq) 1 H2O 1 Pt[2+] 2.1516 25 PtS(s) mineral 10254.9 -2 O2(aq) 1 Pt[2+] 1 SO4[2-] -77.4334 25 PtS2(s) mineral 7915.84 -3.5 O2(aq) -1 H2O 1 Pt[2+] 2 H[+] 2 SO4[2-] -166.547 25 Pu(HPO4)2(am:hyd)(s) mineral 3000 1 Pu[4+] 2 HPO4[2-] 30.45 25 Pu(OH)3(s) mineral 3000 1 Pu[3+] 3 H2O -3 H[+] -15.8 25 Pu(s) mineral 3000 1 Pu[3+] 1.5 H2O -3 H[+] -0.75 O2(aq) -165.9 25 Pu2C3(s) mineral 3000 2 Pu[3+] 3 HCO3[-] -3 H[+] -4.5 O2(aq) -496.77 25 Pu2O3(s) mineral 3000 2 Pu[3+] 3 H2O -6 H[+] -50.63 25 Pu3C2(s) mineral 3000 3 Pu[3+] 2 HCO3[-] 2.5 H2O -7 H[+] -4.25 O2(aq) -604.33 25 PuAs(s) mineral 3000 1 Pu[3+] 1 H2AsO3[-] -2 H[+] -1.5 O2(aq) -166.29 25 PuBr3(s) mineral 3000 1 Pu[3+] 3 Br[-] -21.59 25 PuC0.84(s) mineral 3000 1 Pu[3+] 0.84 HCO3[-] 0.66 H2O -2.16 H[+] -1.59 O2(aq) -211.04 25 PuCl3(s) mineral 3000 1 Pu[3+] 3 Cl[-] -14.16 25 PuCl3:6H2O(s) mineral 3000 1 Pu[3+] 3 Cl[-] 6 H2O -5.28 25 PuCl4(s) mineral 3000 1 Pu[4+] 4 Cl[-] -21.63 25 PuF3(s) mineral 3000 1 Pu[3+] 3 F[-] 16.44 25 PuF4(s) mineral 3000 1 Pu[4+] 4 F[-] 26.74 25 PuF6(s) mineral 3000 1 PuO2[2+] 6 F[-] 4 H[+] -2 H2O -43.33 25 PuI3(s) mineral 3000 1 Pu[3+] 3 I[-] -27.18 25 PuN(s) mineral 3000 1 Pu[3+] 1 NH3(aq) -3 H[+] -58.15 25 PuO1.61(bcc)(s) mineral 3000 0.78 Pu[3+] 0.22 Pu[4+] 1.61 H2O -3.22 H[+] -18.18 25 PuO2(hyd:aged)(s) mineral 3000 1 Pu[4+] 2 H2O -4 H[+] 1.99 25 PuO2(NO3)2:6H2O(s) mineral 3000 1 PuO2[2+] 2 NO3[-] 6 H2O -2.36 25 PuO2(OH)2:H2O(s) mineral 3000 1 PuO2[2+] 3 H2O -2 H[+] -5.5 25 PuO2(s) mineral 3000 1 Pu[4+] 2 H2O -4 H[+] 8.03 25 PuO2CO3(s) mineral 3000 1 PuO2[2+] 1 HCO3[-] -1 H[+] 3.87 25 PuO2OH(am)(s) mineral 3000 1 PuO2[+] 1 H2O -1 H[+] -5 25 PuOBr(s) mineral 3000 1 Pu[3+] 1 Br[-] 1 H2O -2 H[+] -14.3 25 PuOCl(s) mineral 3000 1 Pu[3+] 1 Cl[-] 1 H2O -2 H[+] -11.38 25 PuOF(s) mineral 3000 1 Pu[3+] 1 F[-] 1 H2O -2 H[+] -1.06 25 PuOI(s) mineral 3000 1 Pu[3+] 1 I[-] 1 H2O -2 H[+] -15.98 25 PuP(s) mineral 3000 1 Pu[3+] 1 HPO4[2-] -1 H[+] -2 O2(aq) -244.21 25 PuPO4(s:hyd)(s) mineral 3000 1 Pu[3+] 1 HPO4[2-] -1 H[+] 12.25 25 Pyrite(s) mineral FeS2 5011.65 -1 H2O 0.25 H[+] 0.25 SO4[2-] 1 Fe[2+] 1.75 HS[-] 24.6534 25 Pyrolusite(s) mineral MnO2 3000 0.5 Mn[2+] 0.5 MnO4[2-] 17.1675 25 Pyromorphite(s) mineral Pb5(PO4)3Cl 7040.21 -3 H[+] 1 Cl[-] 3 HPO4[2-] 5 Pb[2+] 47.8954 25 Pyromorphite-OH(s) mineral Pb5(OH)(PO4)3 7140.15 -4 H[+] 1 H2O 3 HPO4[2-] 5 Pb[2+] 26.2653 25 Pyrophyllite(s) mineral Al2Si4O10(OH)2 2846.08 -6 H[+] 2 Al[3+] 4 H2O 4 SiO2(aq) 0.9295 25 Quartz(s) mineral SiO2 2648.29 1 SiO2(aq) 3.9993 25 Ra(NO3)2(s) mineral 3000 1 Ra[2+] 2 NO3[-] 2.2419 25 Ra(s) mineral 5000.55 -2 H[+] -0.5 O2(aq) 1 H2O 1 Ra[2+] -141.371 25 RaCl2:2H2O(s) mineral 3000 1 Ra[2+] 2 Cl[-] 2 H2O 0.7647 25 Rankinite(s) mineral Ca3Si2O7 3000.11 -6 H[+] 2 SiO2(aq) 3 Ca[2+] 3 H2O -51.9078 25 RaSO4(s) mineral 3000 1 Ra[2+] 1 SO4[2-] 10.37 25 Rb(s) mineral 1530.31 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Rb[+] -71.1987 25 Rb2UO4(s) mineral 3000 2 Rb[+] 1 UO2[2+] 2 H2O -4 H[+] -34.11 25 Re(s) mineral 21016.6 -1.75 O2(aq) -0.5 H2O 1 H[+] 1 ReO4[-] -105.975 25 Realgar(s) mineral AsS 3000 -2 H2O 0.5 S2O4[2-] 1 AsH3(aq) 1 H[+] 60.2768 25 Rh(s) mineral 12426.7 -3 H[+] -0.75 O2(aq) 1 Rh[3+] 1.5 H2O -26.0562 25 Rh2O3(s) mineral 8090.83 -6 H[+] 2 Rh[3+] 3 H2O -12.3608 25 Rhodonite(s) mineral MnSiO3 3000 -2 H[+] 1 H2O 1 Mn[2+] 1 SiO2(aq) -10.1699 25 Ripidolite-14A(s) mineral Mg3Fe2Al2Si3O10(OH)8 2952.4 -16 H[+] 2 Al[3+] 2 Fe[2+] 3 Mg[2+] 3 SiO2(aq) 12 H2O -59.5946 25 Ripidolite-7A(s) mineral Mg3Fe2Al2Si3O10(OH)8 2873.44 -16 H[+] 2 Al[3+] 2 Fe[2+] 3 Mg[2+] 3 SiO2(aq) 12 H2O -62.9679 25 Ru(OH)3:H2O(am)(s) mineral 3000 -3 H[+] 1 Ru[3+] 4 H2O -1.6364 25 Ru(s) mineral 12363.3 -2 H[+] -0.5 O2(aq) 1 H2O 1 Ru[2+] -16.6867 25 RuBr3(s) mineral 5330.55 1 Ru[3+] 3 Br[-] -3.1505 25 RuCl3(s) mineral 3109.87 1 Ru[3+] 3 Cl[-] -10.8242 25 RuI3(s) mineral 6080.82 1 Ru[3+] 3 I[-] 12.4588 25 RuO2(s) mineral 6985.24 -2 H[+] 0.5 O2(aq) 1 H2O 1 Ru[2+] 30.5512 25 RuO2:2H2O(am)(s) mineral 3000 -2 H[+] 1 Ru(OH)2[2+] 2 H2O -0.9045 25 RuO4(s) mineral 3290.17 1 RuO4(aq) 0.9636 25 RuSe2(s) mineral 3000 -2 H2O 1 Ru(OH)2[2+] 2 H[+] 2 Se[2-] 113.724 25 Rutherfordine(s) mineral UO2CO3 3000 1 UO2[2+] 1 HCO3[-] -1 H[+] 4.16 25 S(s) mineral 2054.2 -1 H2O 0.5 O2(aq) 1 H[+] 1 HS[-] 45.098 25 Safflorite(s) mineral CoAs2 7516.7 -2 H2O -1 H[+] -0.5 O2(aq) 1 AsH3(aq) 1 Co[2+] 1 H2AsO3[-] 3.6419 25 Sanbornite(s) mineral BaSi2O5 3769.75 -2 H[+] 1 Ba[2+] 1 H2O 2 SiO2(aq) -9.4753 25 Sanidine_high(s) mineral KAlSi3O8 2553.31 -4 H[+] 1 Al[3+] 1 K[+] 2 H2O 3 SiO2(aq) -0.2393 25 Saponite-Ca(s) mineral Ca0.165Mg3Al0.33Si3.67O10(OH)2 2841.35 -7.32 H[+] 0.165 Ca[2+] 0.33 Al[3+] 3 Mg[2+] 3.67 SiO2(aq) 4.66 H2O -26.0641 25 Saponite-Cs(s) mineral Cs0.33Si3.67Al0.33Mg3O10(OH)2 3000 -7.32 H[+] 0.33 Al[3+] 0.33 Cs[+] 3 Mg[2+] 3.67 SiO2(aq) 4.66 H2O -25.6269 25 Saponite-H(s) mineral H0.33Mg3Al0.33Si3.67O10(OH)2 2771.17 -6.99 H[+] 0.33 Al[3+] 3 Mg[2+] 3.67 SiO2(aq) 4.66 H2O -25.1062 25 Saponite-K(s) mineral K0.33Mg3Al0.33Si3.67O10(OH)2 2801.6 -7.32 H[+] 0.33 Al[3+] 0.33 K[+] 3 Mg[2+] 3.67 SiO2(aq) 4.66 H2O -25.7815 25 Saponite-Mg(s) mineral Mg3.165Al0.33Si3.67O10(OH)2 2864.82 -7.32 H[+] 0.33 Al[3+] 3.165 Mg[2+] 3.67 SiO2(aq) 4.66 H2O -26.0264 25 Saponite-Na(s) mineral Na0.33Mg3Al0.33Si3.67O10(OH)2 2827.48 -7.32 H[+] 0.33 Al[3+] 0.33 Na[+] 3 Mg[2+] 3.67 SiO2(aq) 4.66 H2O -26.12 25 Sb(OH)3(s) mineral 3000 1 H[+] 1 H2O 1 SbO2[-] 18.0899 25 Sb(s) mineral 3000 -0.75 O2(aq) -0.5 H2O 1 H[+] 1 SbO2[-] -41.7973 25 Sb2O4(s) mineral 3000 -1 H2O 0.5 O2(aq) 2 H[+] 2 SbO2[-] 61.603 25 Sb2O5(s) mineral 3000 -1 H2O 1 O2(aq) 2 H[+] 2 SbO2[-] 68.9211 25 Sb4O6(cubic)(s) mineral 3000 -2 H2O 4 H[+] 4 SbO2[-] 63.6679 25 Sb4O6(orthorhombic)(s) mineral 3000 -2 H2O 4 H[+] 4 SbO2[-] 61.0225 25 SbBr3(s) mineral 3000 -2 H2O 1 SbO2[-] 3 Br[-] 4 H[+] 9.9392 25 SbCl3(s) mineral 3000 -2 H2O 1 SbO2[-] 3 Cl[-] 4 H[+] 10.4068 25 Sc(OH)3(s) mineral 1 Sc[3+] 3 OH[-] 30.1 25 Sc(s) mineral 2989.49 -3 H[+] -0.75 O2(aq) 1 Sc[3+] 1.5 H2O -167.27 25 Scacchite(s) mineral MnCl2 3000 1 Mn[2+] 2 Cl[-] -9.2183 25 Schoepite(s) mineral UO3:2H2O 4874 1 UO2[2+] 3 H2O -2 H[+] -4.81 25 Scolecite(s) mineral CaAl2Si3O10:3H2O 2277.19 -8 H[+] 1 Ca[2+] 2 Al[3+] 3 SiO2(aq) 7 H2O -14.5075 25 Se(s) mineral 4808.77 -1 H2O -1 O2(aq) 1 SeO3[2-] 2 H[+] -26.1436 25 Se2O5(s) mineral 3000 -2 H2O 1 SeO3[2-] 1 SeO4[2-] 4 H[+] -9.5047 25 SeCl4(s) mineral 2690.03 -3 H2O 1 SeO3[2-] 4 Cl[-] 6 H[+] -14.4361 25 SeO3(s) mineral 3599.61 -1 H2O 1 SeO4[2-] 2 H[+] -19.2015 25 Sepiolite(s) mineral Mg4Si6O15(OH)2:6H2O 2268.31 -8 H[+] 4 Mg[2+] 6 SiO2(aq) 11 H2O -30.4439 25 Shcherbinaite(s) mineral V2O5 3371.89 -2 H[+] 1 H2O 2 VO2[+] 1.452 25 Si(s) mineral 2329.59 -1 O2(aq) 1 SiO2(aq) -148.906 25 Sillimanite(s) mineral Al2SiO5 3247.41 -6 H[+] 1 SiO2(aq) 2 Al[3+] 3 H2O -14.9388 25 SiO2(am)(s) mineral 2071.87 1 SiO2(aq) 2.7136 25 SiO2(s) mineral SiO2 2648.29 1 SiO2(aq) 3.7281 25 Sm(OH)3(am)(s) mineral 3000 -3 H[+] 1 Sm[3+] 3 H2O -18.5852 25 Sm(OH)3(s) mineral 3000 -3 H[+] 1 Sm[3+] 3 H2O -16.4852 25 Sm(s) mineral 7525.53 -2 H[+] -0.5 O2(aq) 1 H2O 1 Sm[2+] -133.161 25 Sm2(CO3)3(s) mineral 3000 -3 H[+] 2 Sm[3+] 3 HCO3[-] 3.5136 25 Sm2(SO4)3(s) mineral 3000 2 Sm[3+] 3 SO4[2-] 9.8 25 Sm2O3(s) mineral 3000 -6 H[+] 2 Sm[3+] 3 H2O -42.9 25 Smectite-high-Fe-Mg(s) mineral Ca0.025Na0.1K0.2Fe++.5Fe+++.2Mg1.15Al1.25Si3.5H2O12 2906.44 -8 H[+] 0.025 Ca[2+] 0.1 Na[+] 0.2 Fe[3+] 0.2 K[+] 0.5 Fe[2+] 1.15 Mg[2+] 1.25 Al[3+] 3.5 SiO2(aq) 5 H2O -16.5642 25 Smectite-low-Fe-Mg(s) mineral Ca0.02Na0.15K0.2Fe++.29Fe+++.16Mg0.9Al1.25Si3.75H2O1 2813.2 -7 H[+] 0.02 Ca[2+] 0.15 Na[+] 0.16 Fe[3+] 0.2 K[+] 0.29 Fe[2+] 0.9 Mg[2+] 1.25 Al[3+] 3.75 SiO2(aq) 4.5 H2O -10.1847 25 SmF3:.5H2O(s) mineral 3000 0.5 H2O 1 Sm[3+] 3 F[-] 17.5 25 SmPO4:10H2O(s) mineral 3000 -1 H[+] 1 HPO4[2-] 1 Sm[3+] 10 H2O 12.1782 25 Sn(OH)2(s) mineral 1 Sn[2+] 2 OH[-] 28.1 25 Sn(OH)4(s) mineral 1 Sn[4+] 4 OH[-] 56 25 Sn(s) mineral 7287.74 -2 H[+] -0.5 O2(aq) 1 H2O 1 Sn[2+] -47.8175 25 Sn(SO4)2(s) mineral 3000 1 Sn[4+] 2 SO4[2-] -16.0365 25 Sn3S4(s) mineral 3000 -4 H[+] 1 Sn[4+] 2 Sn[2+] 4 HS[-] 62.067 25 SnBr2(s) mineral 5116.99 1 Sn[2+] 2 Br[-] 1.4809 25 SnBr4(s) mineral 3736.16 1 Sn[4+] 4 Br[-] -11.1272 25 SnCl2(s) mineral 3950.32 1 Sn[2+] 2 Cl[-] -0.2785 25 SnS(s) mineral 1 Sn[2+] 1 S[2-] 25 25 SnSe(s) mineral 6179.12 1 Se[2-] 1 Sn[2+] 32.9946 25 SnSe2(s) mineral 3000 1 Sn[4+] 2 Se[2-] 66.657 25 SnSO4(s) mineral 4233.66 1 SO4[2-] 1 Sn[2+] 23.9733 25 Spinel(s) mineral Al2MgO4 3582.62 -8 H[+] 1 Mg[2+] 2 Al[3+] 4 H2O -36.2603 25 Spodumene(s) mineral LiAlSi2O6 3188.11 -4 H[+] 1 Al[3+] 1 Li[+] 2 H2O 2 SiO2(aq) -6.3126 25 Sr(IO3)2(s) mineral 1 Sr[2+] 2 IO3[-] 6.48 25 Sr(NO3)2(s) mineral 3000 1 Sr[2+] 2 NO3[-] -1.1493 25 Sr(NO3)2:4H2O(s) mineral 2200.01 1 Sr[2+] 2 NO3[-] 4 H2O -0.6976 25 Sr(OH)2(s) mineral 3625.48 -2 H[+] 1 Sr[2+] 2 H2O -27.5229 25 Sr(oxinate)2(s) mineral 1 Sr[2+] 2 Oxinate 9.3 25 Sr(s) mineral 2583.06 -2 H[+] -0.5 O2(aq) 1 H2O 1 Sr[2+] -141.782 25 Sr2SiO4(s) mineral 4520.17 -4 H[+] 1 SiO2(aq) 2 H2O 2 Sr[2+] -42.8076 25 Sr3(AsO4)2(s) mineral 3 Sr[2+] 2 AsO4[3-] 17.8 25 SrBr2(s) mineral 4243.32 1 Sr[2+] 2 Br[-] -13.1128 25 SrBr2:6H2O(s) mineral 2386.04 1 Sr[2+] 2 Br[-] 6 H2O -3.6678 25 SrBr2:H2O(s) mineral 3930.16 1 H2O 1 Sr[2+] 2 Br[-] -9.6057 25 SrC2O4(s) mineral 1 Sr[2+] 1 Oxalate[2-] 7.25 25 SrCl2(s) mineral 3052.09 1 Sr[2+] 2 Cl[-] -7.9389 25 SrCl2:2H2O(s) mineral 2671.37 1 Sr[2+] 2 Cl[-] 2 H2O -3.3248 25 SrCl2:6H2O(s) mineral 1930.05 1 Sr[2+] 2 Cl[-] 6 H2O -1.5038 25 SrCl2:H2O(s) mineral 3000 1 H2O 1 Sr[2+] 2 Cl[-] -4.7822 25 SrCO3(s) mineral 1 Sr[2+] 1 CO3[2-] 9.03 25 SrCrO4(s) mineral 3895.42 1 CrO4[2-] 1 Sr[2+] 4.65 25 SrF2(s) mineral 4239.51 1 Sr[2+] 2 F[-] 8.61 25 SrHPO4(s) mineral 3543.7 1 HPO4[2-] 1 Sr[2+] 6.2416 25 SrI2(s) mineral 4548.75 1 Sr[2+] 2 I[-] -19.2678 25 SrS(s) mineral 3699.72 -1 H[+] 1 HS[-] 1 Sr[2+] -14.7284 25 SrSeO4(s) mineral 4230.01 1 SeO4[2-] 1 Sr[2+] 4.4 25 SrSiO3(s) mineral 3000 -2 H[+] 1 H2O 1 SiO2(aq) 1 Sr[2+] -14.8438 25 SrSO4(s) mineral SrSO4 3971.54 1 SO4[2-] 1 Sr[2+] 6.6 25 SrUO4(alpha)(s) mineral 3000 1 Sr[2+] 1 UO2[2+] 2 H2O -4 H[+] -19.15 25 SrZrO3(s) mineral 5456.87 -6 H[+] 1 Sr[2+] 1 Zr[4+] 3 H2O 125.423 25 Starkeyite(s) mineral MgSO4:4H2O 2009.92 1 Mg[2+] 1 SO4[2-] 4 H2O 0.9999 25 Stilbite(s) mineral Ca1.019Na0.136K0.006Al2.18Si6.82O18:7.33H2O 2142.74 -8.72 H[+] 0.006 K[+] 0.136 Na[+] 1.019 Ca[2+] 2.18 Al[3+] 6.82 SiO2(aq) 11.69 H2O 0.4379 25 Stilleite(s) mineral ZnSe 3000 1 Se[2-] 1 Zn[2+] 23.9693 25 Sylvite(s) mineral KCl 1986.76 1 Cl[-] 1 K[+] -0.8459 25 Syngenite(s) mineral K2Ca(SO4)2:H2O 2644.26 1 Ca[2+] 1 H2O 2 K[+] 2 SO4[2-] 7.6001 25 Tachyhydrite(s) mineral Mg2CaCl6:12H2O 2539.93 1 Ca[2+] 2 Mg[2+] 6 Cl[-] 12 H2O -17.1439 25 Talc(s) mineral Mg3Si4O10(OH)2 2783.6 -6 H[+] 3 Mg[2+] 4 H2O 4 SiO2(aq) -21.1383 25 Tarapacaite(s) mineral K2CrO4 2796.92 1 CrO4[2-] 2 K[+] -0.2267 25 Tb(OH)3(am)(s) mineral 3000 -3 H[+] 1 Tb[3+] 3 H2O -18.7852 25 Tb(OH)3(s) mineral 3000 -3 H[+] 1 Tb[3+] 3 H2O -15.6852 25 Tb(s) mineral 8238.74 -3 H[+] -0.75 O2(aq) 1 Tb[3+] 1.5 H2O -181.417 25 Tb2(CO3)3(s) mineral 3000 -3 H[+] 2 Tb[3+] 3 HCO3[-] 3.2136 25 Tb2O3(s) mineral 3000 -6 H[+] 2 Tb[3+] 3 H2O -47.1 25 TbF3:.5H2O(s) mineral 3000 0.5 H2O 1 Tb[3+] 3 F[-] 16.7 25 TbPO4:10H2O(s) mineral 3000 -1 H[+] 1 HPO4[2-] 1 Tb[3+] 10 H2O 11.9782 25 Tc(s) mineral 3000 1 TcO4[-] 1 H[+] -0.5 H2O -1.75 O2(aq) -95.91 25 Tc2O7(s) mineral 3000 2 TcO4[-] 2 H[+] -1 H2O -15.31 25 Tc2O7.H2O(s) mineral 3000 2 TcO4[-] 2 H[+] -14.11 25 TcO2(s) mineral 3000 1 TcO[2+] 1 H2O -2 H[+] 8.39 25 TcO2.1.6H2O(s) mineral 3000 1 TcO[2+] 2.6 H2O -2 H[+] 4.4 25 Tephroite(s) mineral Mn2SiO4 3000 -4 H[+] 1 SiO2(aq) 2 H2O 2 Mn[2+] -23.9577 25 Th(C2O4)2(s) mineral 1 Th[4+] 2 Oxalate[2-] 22 25 Th(NO3)4:5H2O(s) mineral 2799.99 1 Th[4+] 4 NO3[-] 5 H2O -1.691 25 Th(OH)4(s) mineral 1 Th[4+] 4 OH[-] 44.9 25 Th(s) mineral 11701.4 -4 H[+] -1 O2(aq) 1 Th[4+] 2 H2O -209.515 25 Th(SO4)2(s) mineral 4225.17 1 Th[4+] 2 SO4[2-] 20.3885 25 Th.75PO4(s) mineral 3000 -1 H[+] 0.75 Th[4+] 1 HPO4[2-] 15.6782 25 Th2S3(s) mineral 7870.13 -5 H[+] -0.5 O2(aq) 1 H2O 2 Th[4+] 3 HS[-] -95.053 25 Th2Se3(s) mineral 8316.01 -2 H[+] -0.5 O2(aq) 1 H2O 2 Th[4+] 3 Se[2-] -58.9896 25 Th7S12(s) mineral 8100.39 -16 H[+] -1 O2(aq) 2 H2O 7 Th[4+] 12 HS[-] -203.458 25 ThBr4(s) mineral 5670.2 1 Th[4+] 4 Br[-] -33.9924 25 ThCl4(s) mineral 4589.92 1 Th[4+] 4 Cl[-] -23.7611 25 Thenardite(s) mineral Na2SO4 2663.47 1 SO4[2-] 2 Na[+] 0.3091 25 Thermonatrite(s) mineral Na2CO3:H2O 2257.9 -1 H[+] 1 H2O 1 HCO3[-] 2 Na[+] -10.9623 25 ThF4(s) mineral 6319.9 1 Th[4+] 4 F[-] 30.0826 25 ThF4:2.5H2O(s) mineral 3000 1 Th[4+] 2.5 H2O 4 F[-] 31.9447 25 ThI4(s) mineral 5998.83 1 Th[4+] 4 I[-] -45.1117 25 ThS(s) mineral 3000 -3 H[+] -0.5 O2(aq) 1 H2O 1 HS[-] 1 Th[4+] -95.9515 25 ThS2(s) mineral 7300.22 -2 H[+] 1 Th[4+] 2 HS[-] -10.6993 25 Ti(s) mineral 4503.81 -2 H2O -1 O2(aq) 1 Ti(OH)4(aq) -149.298 25 TiB2(s) mineral 3000 -5 H2O -2.5 O2(aq) 1 Ti(OH)4(aq) 2 B(OH)3(aq) -312.419 25 TiBr3(s) mineral 3000 -3.5 H2O -0.25 O2(aq) 1 Ti(OH)4(aq) 3 Br[-] 3 H[+] -47.719 25 TiBr4(s) mineral 3000 -4 H2O 1 Ti(OH)4(aq) 4 Br[-] 4 H[+] -32.9379 25 TiC(s) mineral 3000 -3 H2O -2 O2(aq) 1 H[+] 1 HCO3[-] 1 Ti(OH)4(aq) -181.814 25 TiCl2(s) mineral 3000 -3 H2O -0.5 O2(aq) 1 Ti(OH)4(aq) 2 Cl[-] 2 H[+] -70.9386 25 TiCl3(s) mineral 3000 -3.5 H2O -0.25 O2(aq) 1 Ti(OH)4(aq) 3 Cl[-] 3 H[+] -39.3099 25 Tiemannite(s) mineral HgSe 8239.51 1 Hg[2+] 1 Se[2-] 58.2188 25 TiF4(am)(s) mineral 3000 -4 H2O 1 Ti(OH)4(aq) 4 F[-] 4 H[+] 12.4409 25 TiI4(s) mineral 3000 -4 H2O 1 Ti(OH)4(aq) 4 H[+] 4 I[-] -34.5968 25 TiN(s) mineral 3000 -3.5 H2O -0.25 O2(aq) 1 NH3(aq) 1 Ti(OH)4(aq) -35.2344 25 TiO(OH)2(s) mineral 1 TiO[2+] 2 OH[-] 29 25 Titanite(s) mineral CaTiSiO5 3522.74 -2 H[+] -1 H2O 1 Ca[2+] 1 SiO2(aq) 1 Ti(OH)4(aq) -0.4349 25 Tl(OH)3(s) mineral 3 OH[-] 1 Tl[3+] 45.2 25 Tl(oxinate)3(s) mineral 1 Tl[3+] 3 Oxinate 37 25 Tl(s) mineral 11875.8 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Tl[+] -27.1743 25 Tl2CrO4(s) mineral 2 Tl[+] 1 CrO4[2-] 12.01 25 Tl2S(s) mineral 2 Tl[+] 1 S[2-] 20.3 25 TlBr(s) mineral 1 Br[-] 1 Tl[+] 5.47 25 TlBrO3(s) mineral 1 Tl[+] 1 BrO3[-] 4.1 25 TlCl(s) mineral 1 Tl[+] 1 Cl[-] 3.73 25 TlI(s) mineral 1 I[-] 1 Tl[+] 7.19 25 TlIO3(s) mineral 1 Tl[+] 1 IO3[-] 5.51 25 TlSCN(s) mineral 1 Tl[+] 1 SCN[-] 3.77 25 TlTcO4(s) mineral 3000 1 Tl[+] 1 TcO4[-] 5.32 25 Tm(OH)3(am)(s) mineral 3000 -3 H[+] 1 Tm[3+] 3 H2O -17.2852 25 Tm(OH)3(s) mineral 3000 -3 H[+] 1 Tm[3+] 3 H2O -14.9852 25 Tm(s) mineral 9319.99 -3 H[+] -0.75 O2(aq) 1 Tm[3+] 1.5 H2O -181.71 25 Tm2(CO3)3(s) mineral 3000 -3 H[+] 2 Tm[3+] 3 HCO3[-] 2.4136 25 Tm2O3(s) mineral 3000 -6 H[+] 2 Tm[3+] 3 H2O -44.7 25 TmF3:.5H2O(s) mineral 3000 0.5 H2O 1 Tm[3+] 3 F[-] 16.2 25 TmPO4:10H2O(s) mineral 3000 -1 H[+] 1 HPO4[2-] 1 Tm[3+] 10 H2O 11.8782 25 Tobermorite-11A(s) mineral Ca5Si6H11O22.5 2580.02 -10 H[+] 5 Ca[2+] 6 SiO2(aq) 10.5 H2O -65.6121 25 Tobermorite-14A(s) mineral Ca5Si6H21O27.5 3000 -10 H[+] 5 Ca[2+] 6 SiO2(aq) 15.5 H2O -63.8445 25 Tobermorite-9A(s) mineral Ca5Si6H6O20 3000 -10 H[+] 5 Ca[2+] 6 SiO2(aq) 8 H2O -69.0798 25 Tremolite(s) mineral Ca2Mg5Si8O22(OH)2 2976.57 -14 H[+] 2 Ca[2+] 5 Mg[2+] 8 H2O 8 SiO2(aq) -61.2367 25 Trevorite(s) mineral NiFe2O4 3000 -8 H[+] 1 Ni[2+] 2 Fe[3+] 4 H2O -9.7876 25 Tridymite(s) mineral SiO2 3000 1 SiO2(aq) 3.8278 25 Trona-K(s) mineral K2NaH(CO3)2:2H2O 3000 -1 H[+] 1 Na[+] 2 H2O 2 HCO3[-] 2 K[+] -11.5891 25 Tsumebite(s) mineral Pb2Cu(PO4)(OH)3:3H2O 3000 -4 H[+] 1 Cu[2+] 1 HPO4[2-] 2 Pb[2+] 6 H2O -2.5318 25 U(HPO4)2:4H2O(s) mineral 3000 1 U[4+] 2 HPO4[2-] 4 H2O 30.49 25 U(OH)2SO4(s) mineral 3000 1 U[4+] 1 SO4[2-] 2 H2O -2 H[+] 3.17 25 U(s) mineral 3000 1 UO2[2+] 1 H2O -2 H[+] -1.5 O2(aq) -212.72 25 U(SO3)2(s) mineral 3000 1 U[4+] 2 SO3[2-] 36.44 25 U(SO4)2(s) mineral 3000 1 U[4+] 2 SO4[2-] 11.68 25 U(SO4)2:4H2O(s) mineral 3000 1 U[4+] 2 SO4[2-] 4 H2O 11.72 25 U(SO4)2:8H2O(s) mineral 3000 1 U[4+] 2 SO4[2-] 8 H2O 12.77 25 U2C3(s) mineral 3000 2 U[3+] 3 HCO3[-] -3 H[+] -4.5 O2(aq) -455.11 25 U2F9(s) mineral 3000 1 U[4+] 1 UO2[+] 9 F[-] 4 H[+] -2 H2O 45.85 25 U2O2Cl5(s) mineral 3000 1 U[4+] 1 UO2[+] 5 Cl[-] -19.21 25 U2O3F6(s) mineral 3000 2 UO2[2+] 6 F[-] 2 H[+] -1 H2O 2.74 25 U2S3(s) mineral 3000 2 U[3+] 3 HS[-] -3 H[+] -6.38 25 U2Se3(s) mineral 3000 2 U[3+] 3 SeO3[2-] -4.5 O2(aq) -243.54 25 U3As4(s) mineral 3000 3 U[3+] 4 H2AsO3[-] -5 H[+] -1.5 H2O -5.25 O2(aq) -487.47 25 U3O5F8(s) mineral 3000 3 UO2[2+] 8 F[-] 2 H[+] -1 H2O 3.05 25 U3O8(s) mineral 3000 2 UO2[+] 1 UO2[2+] 2 H2O -4 H[+] 3.61 25 U3P4(s) mineral 3000 3 U[3+] 4 HPO4[2-] -1 H[+] -1.5 H2O -7.25 O2(aq) -832.13 25 U3S5(s) mineral 3000 2 U[3+] 1 U[4+] 5 HS[-] -5 H[+] 0.61 25 U3Se4(s) mineral 3000 3 U[3+] 4 SeO3[2-] 0.5 H2O -1 H[+] -6.25 O2(aq) -369.28 25 U3Se5(s) mineral 3000 3 U[3+] 5 SeO3[2-] 1 H[+] -0.5 H2O -7.25 O2(aq) -369.1 25 U4F17(s) mineral 3000 1 UO2[+] 3 U[4+] 17 F[-] 4 H[+] -2 H2O 105.43 25 U5O12Cl(s) mineral 3000 5 UO2[+] 1 Cl[-] 2 H2O -4 H[+] 18.81 25 UAs(s) mineral 3000 1 U[3+] 1 H2AsO3[-] -2 H[+] -1.5 O2(aq) -148.94 25 UAs2(s) mineral 3000 1 U[3+] 2 H2AsO3[-] -1 H[+] -1.5 H2O -2.25 O2(aq) -189.02 25 UBr2Cl(s) mineral 3000 1 U[3+] 2 Br[-] 1 Cl[-] -17.69 25 UBr2Cl2(s) mineral 3000 1 U[4+] 2 Br[-] 2 Cl[-] -26.12 25 UBr3(s) mineral 3000 1 U[3+] 3 Br[-] -20.12 25 UBr3Cl(s) mineral 3000 1 U[4+] 1 Cl[-] 3 Br[-] -29 25 UBr4(s) mineral 3000 1 U[4+] 4 Br[-] -31.15 25 UBr5(s) mineral 3000 1 UO2[+] 5 Br[-] 4 H[+] -2 H2O -41.47 25 UBrCl2(s) mineral 3000 1 U[3+] 1 Br[-] 2 Cl[-] -14.44 25 UBrCl3(s) mineral 3000 1 U[4+] 1 Br[-] 3 Cl[-] -23.45 25 UC(s) mineral 3000 1 U[3+] 1 HCO3[-] 0.5 H2O -2 H[+] -1.75 O2(aq) -194.75 25 UC1.94(alpha)(s) mineral 3000 1 U[3+] 1.94 HCO3[-] -1.06 H[+] -0.44 H2O -2.69 O2(aq) -257.04 25 UCl2F2(s) mineral 3000 1 U[4+] 2 Cl[-] 2 F[-] 3.61 25 UCl2I2(s) mineral 3000 1 U[4+] 2 Cl[-] 2 I[-] -30.2 25 UCl3(s) mineral 3000 1 U[3+] 3 Cl[-] -12.97 25 UCl3F(s) mineral 3000 1 U[4+] 3 Cl[-] 1 F[-] -10.24 25 UCl3I(s) mineral 3000 1 U[4+] 3 Cl[-] 1 I[-] -25.47 25 UCl4(s) mineral 3000 1 U[4+] 4 Cl[-] -21.93 25 UCl5(s) mineral 3000 1 UO2[+] 5 Cl[-] 4 H[+] -2 H2O -37.27 25 UCl6(s) mineral 3000 1 UO2[2+] 6 Cl[-] 4 H[+] -2 H2O -57.53 25 UClF3(s) mineral 3000 1 U[4+] 1 Cl[-] 3 F[-] 17.64 25 UClI3(s) mineral 3000 1 U[4+] 1 Cl[-] 3 I[-] -35.12 25 UF3(s) mineral 3000 1 U[3+] 3 F[-] 19.53 25 UF4(s) mineral 6698 1 U[4+] 4 F[-] 29.36 25 UF4:2.5H2O(s) mineral 3000 1 U[4+] 4 F[-] 2.5 H2O 33.55 25 UF5(alpha)(s) mineral 3000 1 UO2[+] 5 F[-] 4 H[+] -2 H2O 13.02 25 UF5(beta)(s) mineral 3000 1 UO2[+] 5 F[-] 4 H[+] -2 H2O 13.36 25 UF6(s) mineral 3000 1 UO2[2+] 6 F[-] 4 H[+] -2 H2O -17.2 25 UH3(beta)(s) mineral 3000 1 U[3+] 3 H2O -3 H[+] -1.5 O2(aq) -199.7 25 UI3(s) mineral 3000 1 U[3+] 3 I[-] -28.91 25 UI4(s) mineral 3000 1 U[4+] 4 I[-] -39.17 25 Umangite(s) mineral Cu3Se2 6601.48 1 Cu[2+] 2 Cu[+] 2 Se[2-] 93.8412 25 UN(s) mineral 3000 1 U[3+] 1 NH3(aq) -3 H[+] -41.71 25 UN1.59(alpha)(s) mineral 3000 1 UO2[+] 1.59 NH3(aq) -1 H[+] -1.885 H2O -0.0575 O2(aq) -38.39 25 UN1.73(alpha)(s) mineral 3000 1 UO2[+] 1.73 NH3(aq) 0.0475 O2(aq) -1 H[+] -2.095 H2O -27.3 25 UO2(AsO3)2(s) mineral 3000 1 UO2[2+] 2 H2AsO4[-] -2 H2O -6.97 25 UO2(IO3)2(s) mineral 3000 1 UO2[2+] 2 IO3[-] 7.88 25 UO2(NO3)2(s) mineral 3000 1 UO2[2+] 2 NO3[-] -11.92 25 UO2(NO3)2:2H2O(s) mineral 3000 1 UO2[2+] 2 NO3[-] 2 H2O -4.89 25 UO2(NO3)2:3H2O(s) mineral 3000 1 UO2[2+] 2 NO3[-] 3 H2O -3.66 25 UO2(NO3)2:6H2O(s) mineral 2807 1 UO2[2+] 2 NO3[-] 6 H2O -2.24 25 UO2(NO3)2:H2O(s) mineral 3000 1 UO2[2+] 2 NO3[-] 1 H2O -8.46 25 UO2(OH)2(s) mineral 5926 1 UO2[2+] 2 OH[-] 22 25 (UO2)2As2O7(s) mineral 3000 2 UO2[2+] 2 H2AsO4[-] -1 H2O -2 H[+] -7.73 25 (UO2)2Cl3(s) mineral 3000 1 UO2[2+] 1 UO2[+] 3 Cl[-] -12.69 25 (UO2)2P2O7(s) mineral 3000 2 UO2[2+] 2 HPO4[2-] -1 H2O 12.27 25 (UO2)2[Fe(CN)6](s) mineral 2 UO2[2+] 1 Fe(CN)6[4-] 13.2 25 (UO2)3(AsO4)2(s) mineral 3000 3 UO2[2+] 2 H2AsO4[-] -4 H[+] -9.33 25 (UO2)3(PO4)2(s) mineral 3000 3 UO2[2+] 2 HPO4[2-] -2 H[+] 11.62 25 (UO2)3(PO4)2:4H2O(s) mineral 3000 3 UO2[2+] 2 HPO4[2-] 4 H2O -2 H[+] 24.66 25 (UO2)3(PO4)2:6H2O(s) mineral 3000 3 UO2[2+] 2 HPO4[2-] 6 H2O -2 H[+] 25.5 25 UO2.25(beta)(s) mineral 3000 0.5 U[4+] 0.5 UO2[+] 1.25 H2O -2.5 H[+] 4.77 25 UO2.25(s) mineral 3000 0.5 U[4+] 0.5 UO2[+] 1.25 H2O -2.5 H[+] 4.78 25 UO2.3333(beta)(s) mineral 3000 0.3334 U[4+] 0.6666 UO2[+] 1.0001 H2O -2.0002 H[+] 4.58 25 UO2.6667(s) mineral 3000 0.6666 UO2[+] 0.3334 UO2[2+] 0.6667 H2O -1.3334 H[+] 1.2 25 UO2Br2(s) mineral 3000 1 UO2[2+] 2 Br[-] -16.44 25 UO2Br2:3H2O(s) mineral 3000 1 UO2[2+] 2 Br[-] 3 H2O -9.32 25 UO2Br2:H2O(s) mineral 3000 1 UO2[2+] 2 Br[-] 1 H2O -12.04 25 UO2BrOH:2H2O(s) mineral 3000 1 UO2[2+] 1 Br[-] 3 H2O -1 H[+] -4.15 25 UO2Cl(s) mineral 3000 1 UO2[+] 1 Cl[-] 0.53 25 UO2Cl2(s) mineral 3000 1 UO2[2+] 2 Cl[-] -12.11 25 UO2Cl2:3H2O(s) mineral 3000 1 UO2[2+] 2 Cl[-] 3 H2O -5.57 25 UO2Cl2:H2O(s) mineral 3000 1 UO2[2+] 2 Cl[-] 1 H2O -8.26 25 UO2ClOH:2H2O(s) mineral 3000 1 UO2[2+] 1 Cl[-] 3 H2O -1 H[+] -2.27 25 UO2F2(s) mineral 3000 1 UO2[2+] 2 F[-] 7.31 25 UO2F2:3H2O(s) mineral 3000 1 UO2[2+] 2 F[-] 3 H2O 7.47 25 UO2FOH:2H2O(s) mineral 3000 1 UO2[2+] 1 F[-] 3 H2O -1 H[+] 2.72 25 UO2FOH:H2O(s) mineral 3000 1 UO2[2+] 1 F[-] 2 H2O -1 H[+] 2.34 25 UO2HPO4:4H2O(s) mineral 3000 1 UO2[2+] 1 HPO4[2-] 4 H2O 11.85 25 UO2SO3(s) mineral 3000 1 UO2[2+] 1 SO3[2-] 15.83 25 UO2SO4(s) mineral 3000 1 UO2[2+] 1 SO4[2-] -1.89 25 UO2SO4:2.5H2O(s) mineral 3000 1 UO2[2+] 1 SO4[2-] 2.5 H2O 1.59 25 UO2SO4:3.5H2O(s) mineral 3000 1 UO2[2+] 1 SO4[2-] 3.5 H2O 1.59 25 UO2SO4:3H2O(s) mineral 3878 1 UO2[2+] 1 SO4[2-] 3 H2O 1.5 25 UO3(alpha)(s) mineral 3000 1 UO2[2+] 1 H2O -2 H[+] -8.63 25 UO3(beta)(s) mineral 8300 1 UO2[2+] 1 H2O -2 H[+] -8.3 25 UO3(gamma)(s) mineral 3000 1 UO2[2+] 1 H2O -2 H[+] -7.7 25 UOBr2(s) mineral 3000 1 U[4+] 2 Br[-] 1 H2O -2 H[+] -7.89 25 UOBr3(s) mineral 3000 1 UO2[+] 3 Br[-] 2 H[+] -1 H2O -23.46 25 UOCl(s) mineral 3000 1 U[3+] 1 Cl[-] 1 H2O -2 H[+] -10.37 25 UOCl2(s) mineral 3000 1 U[4+] 2 Cl[-] 1 H2O -2 H[+] -5.42 25 UOCl3(s) mineral 3000 1 UO2[+] 3 Cl[-] 2 H[+] -1 H2O -12.61 25 UOF2(s) mineral 3000 1 U[4+] 2 F[-] 1 H2O -2 H[+] 18.23 25 UOF2:H2O(s) mineral 3000 1 U[4+] 2 F[-] 2 H2O -2 H[+] 18.8 25 UOF4(s) mineral 3000 1 UO2[2+] 4 F[-] 2 H[+] -1 H2O -4.42 25 UOFOH(s) mineral 3000 1 U[4+] 1 F[-] 2 H2O -3 H[+] 8.98 25 UOFOH:0.5H2O(s) mineral 3000 1 U[4+] 1 F[-] 2.5 H2O -3 H[+] 9.44 25 UP(s) mineral 3000 1 U[3+] 1 HPO4[2-] -1 H[+] -2 O2(aq) -234.63 25 UP2(s) mineral 3000 1 U[3+] 2 HPO4[2-] 1 H[+] -1.5 H2O -3.25 O2(aq) -362.88 25 UP2O7(s) mineral 3000 1 U[4+] 2 HPO4[2-] -1 H2O 30.58 25 UPO5(s) mineral 3000 1 UO2[+] 1 HPO4[2-] 1 H[+] -1 H2O 18.37 25 Uraninite(s) mineral UO2 3000 1 U[4+] 2 H2O -4 H[+] 4.85 25 US(s) mineral 3000 1 U[3+] 1 HS[-] 0.5 H2O -2 H[+] -0.25 O2(aq) -46.59 25 US1.90(s) mineral 3000 0.2 U[3+] 0.8 U[4+] 1.9 HS[-] -1.9 H[+] 2.37 25 US2(s) mineral 3000 1 U[4+] 2 HS[-] -2 H[+] 2.43 25 US3(s) mineral 3000 1 UO2[2+] 3 HS[-] 1 H[+] -2 H2O 16.77 25 USe(s) mineral 3000 1 U[3+] 1 SeO3[2-] 0.5 H2O -1 H[+] -1.75 O2(aq) -124.1 25 USe2(alpha)(s) mineral 3000 1 U[3+] 2 SeO3[2-] 1 H[+] -0.5 H2O -2.75 O2(aq) -122.46 25 USe2(beta)(s) mineral 3000 1 U[3+] 2 SeO3[2-] 1 H[+] -0.5 H2O -2.75 O2(aq) -122.3 25 USe3(s) mineral 3000 1 U[3+] 3 SeO3[2-] 3 H[+] -1.5 H2O -3.75 O2(aq) -142.76 25 V(s) mineral 6100.78 -3 H[+] -0.75 O2(aq) 1 V[3+] 1.5 H2O -106.944 25 V2O4(s) mineral 4339.02 -4 H[+] 2 H2O 2 VO[2+] -8.5719 25 V3O5(s) mineral 4750.49 -8 H[+] 1 VO[2+] 2 V[3+] 4 H2O -13.4313 25 V4O7(s) mineral 3000 -10 H[+] 2 V[3+] 2 VO[2+] 5 H2O -18.7946 25 Vaesite(s) mineral NiS2 4434.49 -1 H2O 0.25 H[+] 0.25 SO4[2-] 1 Ni[2+] 1.75 HS[-] 26.7622 25 (VO)3(PO4)2(s) mineral 3000 -2 H[+] 2 HPO4[2-] 3 VO[2+] -48.7864 25 W(s) mineral 19261.4 -1.5 O2(aq) -1 H2O 1 WO4[2-] 2 H[+] -122.957 25 Wairakite(s) mineral CaAl2Si4O10(OH)4 2324.64 -8 H[+] 1 Ca[2+] 2 Al[3+] 4 SiO2(aq) 6 H2O -16.7069 25 Wilkmanite(s) mineral Ni3Se4 6879.86 -1 H2O 0.5 O2(aq) 2 H[+] 3 Ni[2+] 4 Se[2-] 152.879 25 Wollastonite(s) mineral CaSiO3 2909.13 -2 H[+] 1 Ca[2+] 1 H2O 1 SiO2(aq) -13.7605 25 Xonotlite(s) mineral Ca6Si6O17(OH)2 2699.99 -12 H[+] 6 Ca[2+] 6 SiO2(aq) 7 H2O -91.8267 25 Y(OH)3(s) mineral 1 Y[3+] 3 OH[-] 22.8 25 Y(s) mineral 5912.08 -3 H[+] -0.75 O2(aq) 1 Y[3+] 1.5 H2O -184.569 25 Y2(C2O4)3(s) mineral 2 Y[3+] 3 Oxalate[2-] 28.3 25 Yb(OH)3(am)(s) mineral 3000 -3 H[+] 1 Yb[3+] 3 H2O -18.9852 25 Yb(OH)3(s) mineral 3000 -3 H[+] 1 Yb[3+] 3 H2O -14.6852 25 Yb(s) mineral 6968.99 -2 H[+] -0.5 O2(aq) 1 H2O 1 Yb[2+] -137.193 25 Yb2(CO3)3(s) mineral 3000 -3 H[+] 2 Yb[3+] 3 HCO3[-] 2.3136 25 Yb2O3(s) mineral 3000 -6 H[+] 2 Yb[3+] 3 H2O -47.8 25 YbF3:.5H2O(s) mineral 3000 0.5 H2O 1 Yb[3+] 3 F[-] 16 25 YbPO4:10H2O(s) mineral 3000 -1 H[+] 1 HPO4[2-] 1 Yb[3+] 10 H2O 11.7782 25 Zircon(s) mineral ZrSiO4 3000 -4 H[+] 2 H2O 1 SiO2(aq) 1 Zr[4+] 9.3754 25 Zirconolite(s) mineral CaZrTi2O7 3000 -6 H[+] -1 H2O 1 Ca[2+] 1 Zr[4+] 2 Ti(OH)4(aq) 3.8073 25 Zn(BO2)2(s) mineral 3000 -2 H[+] -2 H2O 1 Zn[2+] 2 B(OH)3(aq) -8.313 25 Zn(ClO4)2:6H2O(s) mineral 3000 1 Zn[2+] 2 ClO4[-] 6 H2O -5.6474 25 Zn(CN)2(s) mineral 0 1 Zn[2+] 2 CN[-] 22.6 25 Zn(IO3)2(s) mineral 3000 1 Zn[2+] 2 IO3[-] 5.3193 25 Zn(NO3)2:6H2O(s) mineral 3000 1 Zn[2+] 2 NO3[-] 6 H2O -3.4102 25 Zn(OH)2(s)(amorphe évolué) mineral 1 Zn[2+] 2 OH[-] 15.95 25 Zn(OH)2(s)(amorphe) mineral 1 Zn[2+] 2 OH[-] 15.68 25 Zn(OH)2(s)(crist.évolué) mineral 1 Zn[2+] 2 OH[-] 16.92 25 Zn(oxinate)2(s) mineral 1 Zn[2+] 2 Oxinate 24.3 25 Zn(s) mineral 7137.09 -2 H[+] -0.5 O2(aq) 1 H2O 1 Zn[2+] -68.8035 25 Zn2(OH)3Cl(s) mineral 3000 -3 H[+] 1 Cl[-] 2 Zn[2+] 3 H2O -15.2921 25 Zn2SiO4(s) mineral 3000 -4 H[+] 1 SiO2(aq) 2 H2O 2 Zn[2+] -13.8695 25 Zn2SO4(OH)2(s) mineral 3000 -2 H[+] 1 SO4[2-] 2 H2O 2 Zn[2+] -7.5816 25 Zn2TiO4(s) mineral 3000 -4 H[+] 1 Ti(OH)4(aq) 2 Zn[2+] -12.3273 25 Zn2[Fe(CN)6](s) mineral 2 Zn[2+] 1 Fe(CN)6[4-] 15.4 25 Zn3(AsO4)2(s) mineral 4278.05 3 Zn[2+] 2 AsO4[3-] 27.8 25 Zn3(PO4)2(s) mineral 0 3 Zn[2+] 2 PO4[3-] 32 25 Zn3O(SO4)2(s) mineral 3000 -2 H[+] 1 H2O 2 SO4[2-] 3 Zn[2+] -19.1188 25 Zn5(NO3)2(OH)8(s) mineral 3000 -8 H[+] 2 NO3[-] 5 Zn[2+] 8 H2O -42.6674 25 ZnBr2(s) mineral 3000 1 Zn[2+] 2 Br[-] -7.5787 25 ZnBr2:2H2O(s) mineral 3000 1 Zn[2+] 2 Br[-] 2 H2O -5.2999 25 ZnC2O4(s) mineral 0 1 Zn[2+] 1 Oxalate[2-] 8.89 25 ZnCl2(NH3)2(s) mineral 3000 1 Zn[2+] 2 Cl[-] 2 NH3(aq) 6.9956 25 ZnCl2(NH3)4(s) mineral 3000 1 Zn[2+] 2 Cl[-] 4 NH3(aq) 6.6955 25 ZnCl2(NH3)6(s) mineral 3000 1 Zn[2+] 2 Cl[-] 6 NH3(aq) 4.7311 25 ZnCl2(s) mineral 3000 1 Zn[2+] 2 Cl[-] -7.088 25 ZnCO3(s) mineral ZnCO3 4434.98 1 Zn[2+] 1 CO3[2-] 10.78 25 ZnCO3:H2O(s) mineral 3000 -1 H[+] 1 H2O 1 HCO3[-] 1 Zn[2+] -0.1398 25 ZnCr2O4(s) mineral 5300.47 -8 H[+] 1 Zn[2+] 2 Cr[3+] 4 H2O -11.8387 25 ZnF2(s) mineral 4951.48 1 Zn[2+] 2 F[-] 0.4418 25 ZnI2(s) mineral 3000 1 Zn[2+] 2 I[-] -7.3885 25 ZnS(s)(blende) mineral ZnS 4089.63 1 Zn[2+] 1 S[2-] 23.8 25 ZnS(s)(wurtzite) mineral ZnS 4086.89 1 Zn[2+] 1 S[2-] 24.3 25 ZnSeO3:H2O(s) mineral 3000 1 H2O 1 SeO3[2-] 1 Zn[2+] 6.7408 25 ZnSO4(s) mineral 3000 1 SO4[2-] 1 Zn[2+] -3.5452 25 ZnSO4:6H2O(s) mineral 3000 1 SO4[2-] 1 Zn[2+] 6 H2O 1.6846 25 ZnSO4:7H2O(s) mineral 3000 1 SO4[2-] 1 Zn[2+] 7 H2O 1.8683 25 ZnSO4:H2O(s) mineral 3000 1 H2O 1 SO4[2-] 1 Zn[2+] 0.5383 25 Zoisite(s) mineral Ca2Al3(SiO4)3OH 3343.32 -13 H[+] 2 Ca[2+] 3 Al[3+] 3 SiO2(aq) 7 H2O -41.2478 25 Zr(s) mineral 6508.56 -4 H[+] -1 O2(aq) 2 H2O 1 Zr[4+] -183.691 25 ZrB2(s) mineral 3000 -3 H[+] -2 H2O -0.5 O2(aq) 1 B(OH)3(aq) 1 BH4[-] 1 Zr[4+] -109.272 25 ZrC(s) mineral 3000 -3 H[+] -2 O2(aq) 1 H2O 1 HCO3[-] 1 Zr[4+] -212.896 25 ZrCl(s) mineral 3000 -3 H[+] -0.75 O2(aq) 1 Cl[-] 1 Zr[4+] 1.5 H2O -136.75 25 ZrCl2(s) mineral 3000 -2 H[+] -0.5 O2(aq) 1 H2O 1 Zr[4+] 2 Cl[-] -102.126 25 ZrCl3(s) mineral 3000 -1 H[+] -0.25 O2(aq) 0.5 H2O 1 Zr[4+] 3 Cl[-] -68.2547 25 ZrCl4(s) mineral 3000 1 Zr[4+] 4 Cl[-] -33.7878 25 ZrF4(beta)(s) mineral 3000 1 Zr[4+] 4 F[-] 21.951 25 ZrH2(s) mineral 3000 -4 H[+] -1.5 O2(aq) 1 Zr[4+] 3 H2O -204.128 25 ZrN(s) mineral 3000 -4 H[+] -0.25 O2(aq) 0.5 H2O 1 NH3(aq) 1 Zr[4+] -64.9325 25 1-Butanamine(aq) organique amid_amin C4H9NH2 -6 O2(aq) 4 H[+] 4 HCO3[-] 1 NH3(aq) -440.2769 25 1-Butanol(aq) organique alcool C4H9OH -1 H2O 2 Ethanol(aq) 6.5001 25 1-Butene(aq) organique alc C4H8 2 Ethylene(aq) 13.6266 25 1-Butyne(aq) organique alc C4H6 -0.5 O2(aq) 1 H2O 2 Ethyne(aq) -3.6025 25 1-Heptanamine(aq) organique amid_amin C7H15NH2 -2.5 NH3(aq) 3.5 Ethanamine(aq) 15.4646 25 1-Heptanol(aq) organique alcool C7H15OH -2.5 H2O 3.5 Ethanol(aq) 17.7089 25 1-Heptene(aq) organique alc C7H14 3.5 Ethylene(aq) 30.5114 25 1-Heptyne(aq) organique alc C7H12 -1.25 O2(aq) 2.5 H2O 3.5 Ethyne(aq) -15.9625 25 1-Hexanamine(aq) organique amid_amin C6H13NH2 -2 NH3(aq) 3 Ethanamine(aq) 12.3189 25 1-Hexanol(aq) organique alcool C6H13OH -2 H2O 3 Ethanol(aq) 14.9866 25 1-Hexene(aq) organique alc C6H12 3 Ethylene(aq) 24.9076 25 1-Hexyne(aq) organique alc C6H10 -1 O2(aq) 2 H2O 3 Ethyne(aq) -11.7863 25 1-Octanamine(aq) organique amid_amin C8H17NH2 -3 NH3(aq) 4 Ethanamine(aq) 18.6103 25 1-Octanol(aq) organique alcool C8H12OH -3 H2O 4 Ethanol(aq) 19.7862 25 1-Octene(aq) organique alc C8H16 4 Ethylene(aq) 35.976 25 1-Octyne(aq) organique alc C8H14 -1.5 O2(aq) 3 H2O 4 Ethyne(aq) -20.0068 25 1-Pentanamine(aq) organique amid_amin C5H11NH2 -1.5 NH3(aq) 2.5 Ethanamine(aq) 9.1805 25 1-Pentanol(aq) organique alcool C5H11OH -1.5 H2O 2.5 Ethanol(aq) 11.1245 25 1-Pentene(aq) organique alc C5H10 2.5 Ethylene(aq) 19.1718 25 1-Pentyne(aq) organique alc C5H8 -0.75 O2(aq) 1.5 H2O 2.5 Ethyne(aq) -7.6468 25 1-Propanamine(aq) organique amid_amin C3H7NH2 -0.5 NH3(aq) 1.5 Ethanamine(aq) 4.1279 25 1-Propanol(aq) organique alcool C3H7OH -0.5 H2O 1.5 Ethanol(aq) 3.8548 25 1-Propene(aq) organique alc C3H6 1.5 Ethylene(aq) 8.2573 25 1-Propyne(aq) organique alc C3H4 -0.25 O2(aq) 0.5 H2O 1.5 Ethyne(aq) 0.4564 25 2,2' dipyridine organique benzene C5H4N-C5H4N -7 H2O 12 H[+] -14.5 O2(aq) 10 HCO3[-] 2 NO3[-] 0 25 2-3Dimethylphenol(aq) organique alcool C8H10O(aq) -1 H2O 0.5 O2(aq) 1 Ethane(aq) 1 Phenol(aq) 39.2662 25 2-4Dimethylphenol(aq) organique alcool C8H10O(aq) -1 H2O 0.5 O2(aq) 1 Ethane(aq) 1 Phenol(aq) 40.788 25 2-5Dimethylphenol(aq) organique alcool C8H10O(aq) -1 H2O 0.5 O2(aq) 1 Ethane(aq) 1 Phenol(aq) 39.9039 25 2-6Dimethylphenol(aq) organique alcool C8H10O -1 H2O 0.5 O2(aq) 1 Ethane(aq) 1 Phenol(aq) 39.2428 25 2-Butanone(aq) organique aldehyd_cetone C4H8O -0.5 O2(aq) 4 Acetone(aq) -33.5622 25 2-Heptanone(aq) organique aldehyd_cetone C7H14O -2 O2(aq) 7 Acetone(aq) -136.426 25 2-Hexanone(aq) organique aldehyd_cetone C6H12O -1.5 O2(aq) 6 Acetone(aq) -102.248 25 2-Hydroxybutanoate[-] organique acide -1 C4H7O3- 4 -1 H[+] 1 Acide 2-hydroxybutanoïque(aq) -3.8116 25 2-Hydroxydecanoate[-] organique acide -1 C10H19O3- 4 -1 H[+] 1 Acide 2-hydroxydécanoïque(aq) -3.738 25 2-Hydroxyheptanoate[-] organique acide -1 C7H13O3- 4 -1 H[+] 1 Acide 2-hydroxyheptanoïque(aq) -3.738 25 2-Hydroxyhexanoate[-] organique acide -1 C6H11O3- 4 -1 H[+] 1 Acide 2-hydroxyhexanoïque(aq) -3.739 25 2-Hydroxynonanoate[-] organique acide -1 C9H17O3- 4 -1 H[+] 1 Acide 2-hydroxynonanoïque(aq) -3.738 25 2-Hydroxyoctanoate[-] organique acide -1 C8H15O3- 4 -1 H[+] 1 Acide 2-hydroxyoctanoïque(aq) -3.738 25 2-Hydroxypentanoate[-] organique acide -1 C5H9O3- 4 -1 H[+] 1 Acide 2-hydroxypentanoïque(aq) -3.5918 25 2-Octanone(aq) organique aldehyd_cetone C8H16O -2.5 O2(aq) 8 Acetone(aq) -170.604 25 2-Pentanone(aq) organique aldehyd_cetone C5H10O -1 O2(aq) 5 Acetone(aq) -68.3778 25 3-4Dimethylphenol(aq) organique alcool C8H10O(aq) -1 H2O 0.5 O2(aq) 1 Ethane(aq) 1 Phenol(aq) 40.1891 25 3-5Dimethylphenol(aq) organique alcool C8H10O(aq) -1 H2O 0.5 O2(aq) 1 Ethane(aq) 1 Phenol(aq) 40.332 25 Acetone(aq) organique aldehyd_cetone CH3COCH3 -4 O2(aq) 3 H[+] 3 HCO3[-] -291.855 25 Acide 2-hydroxybutanoïque(aq) organique acide C4H8O3 0.5 O2(aq) 1 Acide butanoïque(aq) 26.7672 25 Acide 2-hydroxydécanoïque(aq) organique acide C10H20O3 -3.5 O2(aq) 5 Acide éthanoïque(aq) -274.261 25 Acide 2-hydroxyheptanoïque(aq) organique acide C7H14O3 -2 O2(aq) 3.5 Acide éthanoïque(aq) -161.238 25 Acide 2-hydroxyhexanoïque(aq) organique acide C6H12O3 -1.5 O2(aq) 3 Acide éthanoïque(aq) -123.556 25 Acide 2-hydroxynonanoïque(aq) organique acide C9H18O3 -3 O2(aq) 4.5 Acide éthanoïque(aq) -236.587 25 Acide 2-hydroxyoctanoïque(aq) organique acide C8H16O3 -2.5 O2(aq) 4 Acide éthanoïque(aq) -198.92 25 Acide 2-hydroxypentanoïque(aq) organique acide C5H10O3 0.5 O2(aq) 1 Acide pentanoïque(aq) 26.7086 25 Acide a-aminobutyrique(aq) organique aminoacide C4H9NO2 -1.5 O2(aq) -1 NH3(aq) 1 H2O 2 Glycine(aq) -107.277 25 Acide adipique(aq) organique Acide hexanedioïque acide HOOC(CH2)4COOH -1 H2O -0.5 O2(aq) 3 Acide éthanoïque(aq) -41.6196 25 Acide ascorbique organique 2-(1,2-dihydroxyéthyl)-4,5-dihydroxyfuran-3-one aldehyd_cetone -2 H2O 6 H[+] -5 O2(aq) 6 HCO3[-] 0 25 Acide aspartique(aq) organique Zwiterrion (HOOC)-(CH2)-(CH)-(NH3+) (COO-) aminoacide C4H7NO4 -2 H2O -3 O2(aq) 4 H[+] 4 HCO3[-] 1 NH3(aq) -215.208 25 Acide azélaïque(aq) organique Acide nonanedioïque acide HOOC(CH2)7COOH -2 O2(aq) -1 H2O 4.5 Acide éthanoïque(aq) -156.849 25 Acide benzoïque(aq) organique acide C6H5COOH -4 H2O -0.5 O2(aq) 3.5 Acide éthanoïque(aq) -37.2046 25 Acide butanoïque(aq) organique acide C3H7COOH -5 O2(aq) 4 H[+] 4 HCO3[-] -358.945 25 Acide chloroéthanoïque(aq) organique acide ClCH2COOH -1.5 O2(aq) -1 H2O 3 H[+] 2 HCO3[-] 1 Cl[-] -141.992 25 Acide citrique(aq) organique acide (HOOCCH2)2C(OH)COOH 6 H[+] 6 HCO3[-] -4.5 O2(aq) -2 H2O -533.38 25 Acide dichloroéthanoïque(aq) organique acide Cl2CHCOOH -1 O2(aq) -2 H2O 4 H[+] 2 HCO3[-] 2 Cl[-] -141.992 25 Acide dodécanoïque(aq) organique Acide laurique acide CH3(CH2)10COOH -5 O2(aq) 6 Acide éthanoïque(aq) -376.216 25 Acide décanoïque(aq) organique acide CH3(CH2)8COOH -4 O2(aq) 5 Acide éthanoïque(aq) -300.86 25 Acide fumarique organique Acide E-butènedioïque acide -2 H2O 4 H[+] -3 O2(aq) 4 HCO3[-] 0 25 Acide glutamique(aq) organique aminoacide C5H9NO4 -1.5 NH3(aq) -0.75 O2(aq) 0.5 H2O 2.5 Glycine(aq) -51.5156 25 Acide glutarique(aq) organique Acide pentanedioïque acide HOOC(CH2)3COOH -1 H2O -5 O2(aq) 5 H[+] 5 HCO3[-] -712.4759 25 Acide glycolique(aq) organique Acide hydroxyéthanoïque acide HOCH2COOH -1.5 O2(aq) 2 H[+] 2 HCO3[-] -117.351 25 Acide heptanoïque(aq) organique Acide oenanthique acide CH3(CH2)5COOH -2.5 O2(aq) 3.5 Acide éthanoïque(aq) -187.903 25 Acide hexanoïque(aq) organique Acide caproïque acide CH3(CH2)4COOH -2 O2(aq) 3 Acide éthanoïque(aq) -150.316 25 Acide lactique(aq) organique acide C3H6O3 3 H[+] 3 HCO3[-] -3 O2(aq) -223.5 25 Acide m-toluique(aq) organique Acide 3-méthylbenzoïque acide 3-(CH3)C6H4COOH -4 H2O -1 O2(aq) 4 Acide éthanoïque(aq) -72.0422 25 Acide malonique(aq) organique Acide propanedioïque acide HOOCCH2COOH -1 H2O -2 O2(aq) 3 H[+] 3 HCO3[-] -144.143 25 Acide maléique organique Acide Z-butènedioïque acide -2 H2O 4 H[+] -3 O2(aq) 4 HCO3[-] 0 25 Acide méthanoïque(aq) organique acide HCOOH 1 H[+] 1 HCO3[-] -0.5 O2(aq) -39.0524 25 Acide méthyl-4-benzoïque(aq) organique benzene C8H8O2 -4 H2O -1 O2(aq) 4 Acide éthanoïque(aq) -71.6904 25 Acide nonanoïque(aq) organique Acide pélargonique acide CH3(CH2)7COOH -3.5 O2(aq) 4.5 Acide éthanoïque(aq) -263.178 25 Acide o-toluique(aq) organique Acide 2-méthylbenzoïque acide 2-(CH3)C6H4COOH -4 H2O -1 O2(aq) 4 Acide éthanoïque(aq) -74.3805 25 Acide octanoïque(aq) organique Acide caprylique acide CH3(CH2)6COOH -3 O2(aq) 4 Acide éthanoïque(aq) -225.364 25 Acide oxalique(aq) organique Acide éthanedioïque acide HOOCCOOH -1 H2O 2 H[+] 2 HCO3[-] -0.5 O2(aq) -41.9377 25 Acide pentanoïque(aq) organique acide C4H9COOH -6.5 O2(aq) 5 H[+] 5 HCO3[-] -467.564 25 Acide phtalique(aq) organique Acide benzéne-1,2-dioïque acide C6H4(COOH)2 1 o-Phtalate[2-] 2 H[+] 8.358 25 Acide pimélique(aq) organique Acide heptanedioïque acide HOOC(CH2)5COOH -1 H2O -1 O2(aq) 3.5 Acide éthanoïque(aq) -78.0991 25 Acide propanoïque(aq) organique acide C2H5COOH -3.5 O2(aq) 3 H[+] 3 HCO3[-] -250.128 25 Acide salicylique organique Acide 2-hydroxybenzoïque acide C6H4(OH)(COOH) -4 H2O 7 H[+] -7 O2(aq) 7 HCO3[-] 0 25 Acide subérique(aq) organique Acide octanedioïque acide HOOC(CH2)6COOH -1.5 O2(aq) -1 H2O 4 Acide éthanoïque(aq) -117.129 25 Acide succinique(aq) organique Acide butanedioïque acide HOOC(CH2)2COOH -1 H2O -3.5 O2(aq) 4 H[+] 4 HCO3[-] -249.574 25 Acide sébacique(aq) organique Acide décanedioïque acide HOOC(CH2)8COOH -2.5 O2(aq) -1 H2O 5 Acide éthanoïque(aq) -194.802 25 Acide tartrique organique Acide 2,3dihydroxybutan1,4dioïque acide HO2C-CHOH-CHOH-CO2H -1 H2O 4 H[+] -2.5 O2(aq) 4 HCO3[-] 0 25 Acide trichloroéthanoïque organique acide Cl3C-COOH -3 H2O 5 H[+] -0.5 O2(aq) 2 HCO3[-] 3 Cl[-] 0 25 Acide undécanoïque(aq) organique acide C11H22O2 -4.5 O2(aq) 5.5 Acide éthanoïque(aq) -338.534 25 Acide éthanoïque(aq) organique Acide acétique acide CH3COOH -2 O2(aq) 2 H[+] 2 HCO3[-] -141.992 25 Acétylacétonate[-] organique Acac[-]; ou encore: 4-oxopent-2-ene-2-olate acide -1 0 CH3-CO[-]=CH-CO-CH3 4 -1 H2O 4 H[+] -6 O2(aq) 5 HCO3[-] 0 25 Acétylacétone organique Pentan-2,4-dione acide CH3-CO-CH2-CO-CH3 1 Acétylacétonate[-] 1 H[+] 9 25 Adipate[2-] organique acide -2 C6H8O4-- 4 -1 H[+] 1 H-Adipate[-] -5.4096 25 Ag(CH3COO)2[-] organique -1 4 -2 H[+] 1 Ag[+] 2 Acide éthanoïque(aq) -8.8716 25 Ag(dipyridine)2[+] organique complexe 1 0 4 1 Ag[+] 2 2,2' dipyridine 6.8 25 Ag(EDTA)[3-] organique -3 Ag((O2CCH2)(O2CCH2)NCH2CH2N(CH2CO2)(CH2CO2))[3-] 3 1 Ag[+] 1 EDTA[4-] 7.3 25 AgCH3COO(aq) organique 1 Ag[+] 1 Ethanoate(aq) 0.8 25 AgEn2[+] organique 1 Ag(NH2CH2CH2NH2)2[+] 3 1 Ag[+] 2 En 7.7 25 AgEn[+] organique complexe 1 0 4 1 Ag[+] 1 En 4.7 25 AgGly(aq) organique Ag(NH2CH2COO) 1 Ag[+] 1 Glyc[-] 3.5 25 AgGly2[-] organique -1 Ag(NH2CH2COO)2[-] 3 1 Ag[+] 2 Glyc[-] 8.4 25 Al(Acac)2[+] organique complexe 1 0 4 1 Al[3+] 2 Acétylacétonate[-] 15.7 25 Al(Acac)3(aq) organique complexe 1 Al[3+] 3 Acétylacétonate[-] 21.2 25 Al(Acac)[2+] organique complexe 2 0 4 1 Al[3+] 1 Acétylacétonate[-] 8.1 25 Al(C2O4)2[-] organique -1 4 1 Al[3+] 2 Oxalate[2-] 11 25 Al(C2O4)3[3-] organique -3 4 1 Al[3+] 3 Oxalate[2-] 14.6 25 Al(CH3COO)2[+] organique 1 4 -2 H[+] 1 Al[3+] 2 Acide éthanoïque(aq) -4.9104 25 Al(Citrate)(aq) organique complexe 1 Al[3+] 1 Citrate[3-] 20 25 Al(EDTA)[-] organique -1 Al((O2CCH2)(O2CCH2)NCH2CH2N(CH2CO2)(CH2CO2))[-] 3 1 Al[3+] 1 EDTA[4-] 16.4 25 Al(HCitrate)[+] organique 1 0 04 1 Al[3+] 1 HCitrate[2-] 7 25 Al(OH)(Citrate)[-] organique complexe -1 0 4 1 Al[3+] 1 OH[-] 1 Citrate[3-] 30.6 25 Al(salicylate)[2+] organique complexe 2 0 4 1 Al[3+] 1 Salicylate[-] 14 25 Alanate[-] organique acide -1 C3H6NO2- 4 -1 H[+] 1 Alanine(aq) -10.3647 25 Alanine(aq) organique acide C3H7NO2 1 NH3(aq) -1 H2O 3 H[+] 3 HCO3[-] -3 O2(aq) -215.213 25 Alanylglycine(aq) organique aminoacide C5H10N2O3 -0.75 O2(aq) -0.5 H2O -0.5 NH3(aq) 2.5 Glycine(aq) -55.8882 25 AlCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Al[3+] -2.0077 25 AlMal2[-] organique -1 Al(O2CCH2CH2CO2)2[-] 3 1 Al[3+] 2 Malonate[2-] 15.8 25 AlMal[+] organique 1 Al(O2CCH2CH2CO2)[+] 3 1 Al[3+] 1 Malonate[2-] 4.1 25 Aniline organique amid_amin PhNH2 1 Anilinium[+] -1 H[+] -4.63 25 Anilinium[+] organique amid_amin 1 0 PhNH3[+] 4 -3 H2O 8 H[+] -9 O2(aq) 6 HCO3[-] 1 NO3[-] 0 25 Asparagine(aq) organique aminoacide C4H8N2O3 -3 H2O -3 O2(aq) 4 H[+] 4 HCO3[-] 2 NH3(aq) -210.4034 25 Au(CH3COO)2[-] organique -1 4 -2 H[+] 1 Au[+] 2 Acide éthanoïque(aq) -9.0013 25 AuCH3COO(aq) organique -1 H[+] 1 Acide éthanoïque(aq) 1 Au[+] -4.3174 25 Azelate[2-] organique acide -2 40.6 C9H14O4-- 4 -1 H[+] 1 H-Azelate[-] -5.395 25 Ba(Ala)2(aq) organique Ba(C3H6NO2)2(aq) -2 H[+] 1 Ba[2+] 2 Alanine(aq) -19.3096 25 Ba(Ala)[+] organique 1 Ba(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Ba[2+] -9.3949 25 Ba(Alan)2(aq) organique Ba(C3H6NO2)2(aq) -2 H[+] 1 Ba[2+] 2 Alanine(aq) -19.3096 25 Ba(Alan)[+] organique 1 Ba(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Ba[2+] -9.3949 25 Ba(But)2(aq) organique Ba(CH3(CH2)2CO2)2(aq) -2 H[+] 1 Ba[2+] 2 Acide butanoïque(aq) -9.9857 25 Ba(But)[+] organique 1 Ba(CH3(CH2)2CO2)+ 4 -1 H[+] 1 Ba[2+] 1 Acide butanoïque(aq) -4.8378 25 Ba(EDTA)[2-] organique -2 Ba((O2CCH2)(O2CCH2)NCH2CH2N(CH2CO2)(CH2CO2))[2-] 3 1 Ba[2+] 1 EDTA[4-] 7.8 25 Ba(For)2(aq) organique Ba(CHO2)2(aq) -2 H[+] 1 Ba[2+] 2 Acide méthanoïque(aq) -5.296 25 Ba(For)[+] organique 1 Ba(CHO2)+ 4 -1 H[+] 1 Ba[2+] 1 Acide méthanoïque(aq) -2.3727 25 Ba(Gly)2(aq) organique Ba(C2H4NO2)2(aq) -2 H[+] 1 Ba[2+] 2 Glycine(aq) -17.1868 25 Ba(Gly)[+] organique 1 Ba(C2H4NO2)+ 4 -1 H[+] 1 Ba[2+] 1 Glycine(aq) -8.2881 25 Ba(Glyc)2(aq) organique Ba(CH3OCO2)2(aq) -2 H[+] 1 Ba[2+] 2 Acide glycolique(aq) -5.9674 25 Ba(Glyc)[+] organique 1 Ba(CH3OCO2)+ 4 -1 H[+] 1 Ba[2+] 1 Acide glycolique(aq) -2.8338 25 Ba(HCitrate)(aq) organique complexe 1 Ba[2+] 1 HCitrate[2-] 2.4 25 Ba(Htartrate)[+] organique complexe 1 0 4 1 Ba[2+] 1 H[+] 1 Tartrate[2-] 4.65 25 Ba(Lac)2(aq) organique Ba(CH3CH2OCO2)2(aq) -2 H[+] 1 Ba[2+] 2 Acide lactique(aq) -6.6762 25 Ba(Lac)[+] organique 1 Ba(CH3CH2OCO2)+ 4 -1 H[+] 1 Ba[2+] 1 Acide lactique(aq) -3.223 25 Ba(Nta)[-] organique complexe -1 0 4 1 Ba[2+] 1 Nta[3-] 4.8 25 Ba(o-Phtalate)(aq) organique 1 Ba[2+] 1 o-Phtalate[2-] 1.5 25 Ba(Prop)2(aq) organique Ba(CH3CH2CO2)2(aq) -2 H[+] 1 Ba[2+] 2 Acide propanoïque(aq) -9.823 25 Ba(Prop)[+] organique 1 Ba(CH3CH2CO2)+ 4 -1 H[+] 1 Ba[2+] 1 Acide propanoïque(aq) -4.7462 25 Ba(tartrate)(aq) organique complexe 1 Ba[2+] 1 Tartrate[2-] 1.5 25 BaCH3COO[+] organique 1 0 4 1 Ba[2+] 1 Ethanoate(aq) 0.4 25 Be(Acac)2(aq) organique complexe 1 Be[2+] 2 Acétylacétonate[-] 13.9 25 Be(Acac)[+] organique complexe 1 0 4 1 Be[2+] 1 Acétylacétonate[-] 7.4 25 Be(CH3COO)2(aq) organique -2 H[+] 1 Be[2+] 2 Acide éthanoïque(aq) -11.97 25 Be(EDTA)[2-] organique complexe -2 0 1 Be[2+] 1 EDTA[4-] 10.8 25 Be(H2Citrate)[+] organique complexe 1 0 4 1 Be[2+] 1 H[+] 1 HCitrate[2-] 8 25 Be(H3Citrate)[2+] organique complexe 2 0 4 1 Be[2+] 2 H[+] 1 HCitrate[2-] 11.7 25 Be(HCitrate)(aq) organique complexe 1 Be[2+] 1 HCitrate[2-] 4.3 25 Be(Hsalicylate)[2+] organique complexe 2 0 4 1 Be[2+] 1 H[+] 1 Salicylate[-] 17.4 25 BeCH3COO[+] organique 1 4 -1 H[+] 1 Acide éthanoïque(aq) 1 Be[2+] -8.2756 25 Benzene(aq) organique benzene C6H6 -3 H2O -7.5 O2(aq) 6 H[+] 6 HCO3[-] -537.502 25 Benzoate[-] organique acide -1 32.4 C7H5O2- 6 -1 H[+] 1 Acide benzoïque(aq) -4.2001 25 Bi(EDTA)[-] organique complexe -1 0 1 Bi[3+] 1 EDTA[4-] 28 25 Butanal(aq) organique aldehyd_cetone CH3(CH2)2CHO -0.5 O2(aq) 1 Acide éthanoïque(aq) 1 Ethylene(aq) -35.5999 25 Butanoate[-] organique acide -1 C3H7COO- 4 -1 H[+] 1 Acide butanoïque(aq) -4.8085 25 Ca(Ala)2(aq) organique Ca(C3H6NO2)2(aq) -2 H[+] 1 Ca[2+] 2 Alanine(aq) -18.8192 25 Ca(Ala)[+] organique 1 Ca(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Ca[2+] -9.1245 25 Ca(Alan)2(aq) organique Ca(C3H6NO2)2(aq) -2 H[+] 1 Ca[2+] 2 Alanine(aq) -18.8192 25 Ca(Alan)[+] organique 1 Ca(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Ca[2+] -9.1245 25 Ca(But)2(aq) organique Ca(CH3(CH2)2CO2)2(aq) -2 H[+] 1 Ca[2+] 2 Acide butanoïque(aq) -8.9955 25 Ca(But)[+] organique 1 Ca(CH3(CH2)2CO2)+ 4 -1 H[+] 1 Acide butanoïque(aq) 1 Ca[2+] -4.2976 25 Ca(EDTA)[2-] organique complexe -2 0 1 Ca[2+] 1 EDTA[4-] 10.7 25 Ca(For)2(aq) organique Ca(CHO2)2(aq) -2 H[+] 1 Ca[2+] 2 Acide méthanoïque(aq) -5.2058 25 Ca(For)[+] organique 1 Ca(CHO2)+ 4 -1 H[+] 1 Ca[2+] 1 Acide méthanoïque(aq) -2.3229 25 Ca(Gly)2(aq) organique Ca(C2H4NO2)2(aq) -2 H[+] 1 Ca[2+] 2 Glycine(aq) -17.4463 25 Ca(Gly)[+] organique 1 Ca(C2H4NO2)+ 4 -1 H[+] 1 Ca[2+] 1 Glycine(aq) -8.4281 25 Ca(Glyc)2(aq) organique Ca(CH3OCO2)2(aq) -2 H[+] 1 Ca[2+] 2 Acide glycolique(aq) -4.777 25 Ca(Glyc)[+] organique 1 Ca(CH3OCO2)+ 4 -1 H[+] 1 Ca[2+] 1 Acide glycolique(aq) -2.1836 25 Ca(H2Citrate)[+] organique complexe 1 0 4 1 Ca[2+] 1 H[+] 1 HCitrate[2-] 8.4 25 Ca(H3Citrate)[2+] organique complexe 2 0 4 1 Ca[2+] 2 H[+] 1 HCitrate[2-] 10.9 25 Ca(HCitrate)(aq) organique complexe 1 Ca[2+] 1 HCitrate[2-] 3.5 25 Ca(Htartrate)[+] organique complexe 1 0 4 1 Ca[2+] 1 H[+] 1 Tartrate[2-] 4.85 25 Ca(Lac)2(aq) organique Ca(CH3CH2OCO2)2(aq) -2 H[+] 1 Ca[2+] 2 Acide lactique(aq) -5.2461 25 Ca(Lac)[+] organique 1 Ca(CH3CH2OCO2)+ 4 -1 H[+] 1 Ca[2+] 1 Acide lactique(aq) -2.4431 25 Ca(Nta)[-] organique complexe -1 0 4 1 Ca[2+] 1 Nta[3-] 6.4 25 Ca(o-Phtalate)(aq) organique 1 Ca[2+] 1 o-Phtalate[2-] 1.6 25 Ca(o-phénantroline)[2+] organique complexe 2 0 4 1 o-phénantroline 1 Ca[2+] 0.5 25 Ca(Prop)2(aq) organique Ca(CH3CH2CO2)2(aq) -2 H[+] 1 Ca[2+] 2 Acide propanoïque(aq) -8.8533 25 Ca(Prop)[+] organique 1 Ca(CH3CH2CO2)+ 4 -1 H[+] 1 Ca[2+] 1 Acide propanoïque(aq) -4.2163 25 Ca(tartrate)(aq) organique complexe 1 Ca[2+] 1 Tartrate[2-] 1.7 25 CaC2O4(aq) organique 1 Ca[2+] 1 Oxalate[2-] 3 25 CaCH3COO[+] organique 1 0 4 1 Ca[2+] 1 Ethanoate(aq) 0.5 25 Cd(Acac)2(aq) organique complexe 1 Cd[2+] 2 Acétylacétonate[-] 6 25 Cd(Acac)[+] organique complexe 1 0 4 1 Cd[2+] 1 Acétylacétonate[-] 4.4 25 Cd(Ala)2(aq) organique Cd(C3H6NO2)2(aq) -2 H[+] 1 Cd[2+] 2 Alanine(aq) -11.8894 25 Cd(Ala)[+] organique 1 Cd(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Cd[2+] -5.3348 25 Cd(Alan)2(aq) organique Cd(C3H6NO2)2(aq) -2 H[+] 1 Cd[2+] 2 Alanine(aq) -11.8894 25 Cd(Alan)[+] organique 1 Cd(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Cd[2+] -5.3348 25 Cd(But)2(aq) organique Cd(CH3(CH2)2CO2)2(aq) -2 H[+] 1 Cd[2+] 2 Acide butanoïque(aq) -6.976 25 Cd(But)[+] organique 1 Cd(CH3(CH2)2CO2)+ 4 -1 H[+] 1 Acide butanoïque(aq) 1 Cd[2+] -3.2875 25 Cd(C2O4)2[2-] organique -2 0 3 1 Cd[2+] 2 Oxalate[2-] 4.7 25 Cd(CH3COO)2(aq) organique 1 Cd[2+] 2 Ethanoate(aq) 1.9 25 Cd(CH3COO)3[-] organique -1 0 4 1 Cd[2+] 3 Ethanoate(aq) 1.8 25 Cd(CH3COO)4[2-] organique -2 0 4 1 Cd[2+] 4 Ethanoate(aq) 1.3 25 Cd(Citrate)[-] organique complexe -1 0 4 1 Cd[2+] 1 Citrate[3-] 11.3 25 Cd(dipyridine)2[2+] organique complexe 2 0 4 1 Cd[2+] 2 2,2' dipyridine 8 25 Cd(dipyridine)3[2+] organique complexe 2 0 4 1 Cd[2+] 3 2,2' dipyridine 10.5 25 Cd(dipyridine)[2+] organique complexe 2 0 4 1 Cd[2+] 1 2,2' dipyridine 4.5 25 Cd(EDTA)[2-] organique -2 Cd((O2CCH2)(O2CCH2)NCH2CH2N(CH2CO2)(CH2CO2))[2-] 3 1 Cd[2+] 1 EDTA[4-] 16.6 25 Cd(For)2(aq) organique Cd(CHO2)2(aq) -2 H[+] 1 Cd[2+] 2 Acide méthanoïque(aq) -3.6658 25 Cd(For)3[-] organique -1 Cd(CHO2)3- 4 -3 H[+] 1 Cd[2+] 3 Acide méthanoïque(aq) -9.3478 25 Cd(For)4[2-] organique -2 Cd(CHO2)4-- 4 -4 H[+] 1 Cd[2+] 4 Acide méthanoïque(aq) -13.6401 25 Cd(For)[+] organique 1 Cd(CHO2)+ 4 -1 H[+] 1 Cd[2+] 1 Acide méthanoïque(aq) -1.9131 25 Cd(Gly)2(aq) organique Cd(C2H4NO2)2(aq) -2 H[+] 1 Cd[2+] 2 Glycine(aq) -11.1564 25 Cd(Gly)[+] organique 1 Cd(C2H4NO2)+ 4 -1 H[+] 1 Cd[2+] 1 Glycine(aq) -5.0885 25 Cd(Glyc)2(aq) organique Cd(CH3OCO2)2(aq) -2 H[+] 1 Cd[2+] 2 Acide glycolique(aq) -4.3775 25 Cd(Glyc)[+] organique 1 Cd(CH3OCO2)+ 4 -1 H[+] 1 Cd[2+] 1 Acide glycolique(aq) -1.9637 25 Cd(H2Citrate)[+] organique complexe 1 0 04 1 Cd[2+] 1 H[+] 1 HCitrate[2-] 7.9 25 Cd(HCitrate)(aq) organique complexe 1 Cd[2+] 1 HCitrate[2-] 4 25 Cd(Lac)2(aq) organique Cd(CH3CH2OCO2)2(aq) -2 H[+] 1 Cd[2+] 2 Acide lactique(aq) -4.736 25 Cd(Lac)[+] organique 1 Cd(CH3CH2OCO2)+ 4 -1 H[+] 1 Cd[2+] 1 Acide lactique(aq) -2.1631 25 Cd(Nta)[-] organique complexe -1 0 4 1 Cd[2+] 1 Nta[3-] 10 25 Cd(o-phénantroline)2[2+] organique complexe 2 0 4 2 o-phénantroline 1 Cd[2+] 11.6 25 Cd(o-phénantroline)3[2+] organique complexe 2 0 4 3 o-phénantroline 1 Cd[2+] 15.8 25 Cd(o-phénantroline)[2+] organique complexe 2 0 4 1 o-phénantroline 1 Cd[2+] 6.4 25 Cd(Prop)2(aq) organique Cd(CH3CH2CO2)2(aq) -2 H[+] 1 Cd[2+] 2 Acide propanoïque(aq) -6.5531 25 Cd(Prop)[+] organique 1 Cd(CH3CH2CO2)+ 4 -1 H[+] 1 Cd[2+] 1 Acide propanoïque(aq) -3.0068 25 Cd(salicylate)[+] organique 1 0 4 1 Cd[2+] 1 Salicylate[-] 5.6 25 Cd(tartrate)(aq) organique complexe 1 Cd[2+] 1 Tartrate[2-] 2.8 25 CdC2O4(aq) organique 1 Cd[2+] 1 Oxalate[2-] 2.9 25 CdCH3COO[+] organique 1 0 4 1 Cd[2+] 1 Ethanoate(aq) 1 25 CdEn2[2+] organique 2 Cd(NH2CH2CH2NH2)2[2+] 3 1 Cd[2+] 2 En 10.02 25 CdEn3[2+] organique complexe 2 0 4 1 Cd[2+] 3 En 12.09 25 CdEn[2+] organique 2 Cd(NH2CH2CH2NH2)[2+] 3 1 Cd[2+] 2 En 5.47 25 Ce(Acac)2[+] organique complexe 1 0 4 1 Ce[3+] 2 Acétylacétonate[-] 8.4 25 Ce(Acac)3(aq) organique complexe 1 Ce[3+] 3 Acétylacétonate[-] 11.5 25 Ce(Acac)[2+] organique complexe 2 0 4 1 Ce[3+] 1 Acétylacétonate[-] 4.8 25 Ce(C2O4)2[-] organique -1 3 1 Ce[3+] 2 Oxalate[2-] 8.6 25 Ce(C2O4)3[3-] organique -3 3 1 Ce[3+] 3 Oxalate[2-] 9.6 25 Ce(CH3COO)2[+] organique 1 0 4 1 Ce[3+] 2 Ethanoate(aq) 3.5 25 Ce(EDTA)[-] organique complexe -1 0 1 Ce[3+] 1 EDTA[4-] 15.9 25 Ce(Nta)(aq) organique complexe 1 Ce[3+] 1 Nta[3-] 10.6 25 CeC2O4[+] organique 1 3 1 Ce[3+] 1 Oxalate[2-] 5.1 25 CeCH3COO[2+] organique 2 0 4.5 1 Ce[3+] 1 Ethanoate(aq) 2.1 25 Chloroéthanoate(aq) organique acide -1 39.8 ClCH2COO- 4.5 -1 H[+] 1 Acide chloroéthanoïque(aq) -2.9 25 Citrate[3-] organique acide -3 70.2 4 -1 H[+] 1 HCitrate[2-] -6.4 25 Co(Acac)2(aq) organique complexe 1 Co[2+] 2 Acétylacétonate[-] 8.9 25 Co(Acac)[+] organique complexe 1 0 4 1 Co[2+] 1 Acétylacétonate[-] 5 25 Co(Ala)2(aq) organique Co(C3H6NO2)2(aq) -2 H[+] 1 Co[2+] 2 Alanine(aq) -12.3196 25 Co(Ala)[+] organique 1 Co(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Co[2+] -5.6449 25 Co(Alan)2(aq) organique Co(C3H6NO2)2(aq) -2 H[+] 1 Co[2+] 2 Alanine(aq) -12.3196 25 Co(Alan)[+] organique 1 Co(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Co[2+] -5.6449 25 Co(But)2(aq) organique Co(CH3(CH2)2CO2)2(aq) -2 H[+] 1 Co[2+] 2 Acide butanoïque(aq) -6.806 25 Co(But)[+] organique 1 Co(CH3(CH2)2CO2)+ 4 -1 H[+] 1 Acide butanoïque(aq) 1 Co[2+] -3.0977 25 Co(C2O4)2[2-] organique -2 3 1 Co[2+] 2 Oxalate[2-] 5.8 25 Co(CH3COO)2(aq) organique 1 Co[2+] 2 Ethanoate(aq) 1.5 25 Co(Citrate)[-] organique complexe -1 0 4 1 Co[2+] 1 Citrate[3-] 12.5 25 Co(dipyridine)2[2+] organique complexe 2 0 4 1 Co[2+] 2 2,2' dipyridine 11.3 25 Co(dipyridine)3[2+] organique complexe 2 0 4 1 Co[2+] 3 2,2' dipyridine 16.1 25 Co(dipyridine)[2+] organique complexe 2 0 4 1 Co[2+] 1 2,2' dipyridine 5.7 25 Co(EDTA)[-] organique complexe -1 0 1 Co[3+] 1 EDTA[4-] 40 25 Co(EDTA)[2-] organique -2 Co((O2CCH2)(O2CCH2)NCH2CH2N(CH2CO2)(CH2CO2))[2-] 3 1 Co[2+] 1 EDTA[4-] 16.3 25 Co(For)2(aq) organique Co(CHO2)2(aq) -2 H[+] 1 Co[2+] 2 Acide méthanoïque(aq) -4.4259 25 Co(For)[+] organique 1 Co(CHO2)+ 4 -1 H[+] 1 Co[2+] 1 Acide méthanoïque(aq) -1.8934 25 Co(Gly)2(aq) organique Co(C2H4NO2)2(aq) -2 H[+] 1 Co[2+] 2 Glycine(aq) -10.4666 25 Co(Gly)[+] organique 1 Co(C2H4NO2)+ 4 -1 H[+] 1 Co[2+] 1 Glycine(aq) -4.7081 25 Co(Glyc)2(aq) organique Co(CH3OCO2)2(aq) -2 H[+] 1 Co[2+] 2 Acide glycolique(aq) -4.1774 25 Co(Glyc)[+] organique 1 Co(CH3OCO2)+ 4 -1 H[+] 1 Co[2+] 1 Acide glycolique(aq) -1.8538 25 Co(H2Citrate)[+] organique complexe 1 0 04 1 Co[2+] 1 H[+] 1 HCitrate[2-] 8.9 25 Co(HC2O4)2(aq) organique complexe 1 Co[2+] 2 H[+] 2 Oxalate[2-] 10.6 25 Co(HCitrate)(aq) organique complexe 1 Co[2+] 1 HCitrate[2-] 4.4 25 Co(Lac)2(aq) organique Co(CH3CH2OCO2)2(aq) -2 H[+] 1 Co[2+] 2 Acide lactique(aq) -5.2359 25 Co(Lac)[+] organique 1 Co(CH3CH2OCO2)+ 4 -1 H[+] 1 Co[2+] 1 Acide lactique(aq) -2.5032 25 Co(Nta)[-] organique complexe -1 0 4 1 Co[2+] 1 Nta[3-] 10.6 25 Co(o-Phtalate)2[2-] organique complexe -2 0 4 1 Co[2+] 2 o-Phtalate[2-] 4 25 Co(o-phénantroline)2[2+] organique complexe 2 0 4 2 o-phénantroline 1 Co[2+] 13.7 25 Co(o-phénantroline)3[2+] organique complexe 2 0 4 3 o-phénantroline 1 Co[2+] 20.1 25 Co(o-phénantroline)[2+] organique complexe 2 0 4 1 o-phénantroline 1 Co[2+] 7 25 Co(Prop)2(aq) organique Co(CH3CH2CO2)2(aq) -2 H[+] 1 Co[2+] 2 Acide propanoïque(aq) -7.6929 25 Co(Prop)[+] organique 1 Co(CH3CH2CO2)+ 4 -1 H[+] 1 Co[2+] 1 Acide propanoïque(aq) -3.5866 25 Co(salicylate)2(aq) organique 0 0 4 1 Co[2+] 2 Salicylate[-] 11.5 25 Co(salicylate)[+] organique 1 0 4 1 Co[2+] 1 Salicylate[-] 6.8 25 Co(tartrate)(aq) organique complexe 1 Co[2+] 1 Tartrate[2-] 2.1 25 CoC2O4(aq) organique 1 Co[2+] 1 Oxalate[2-] 3.5 25 CoCH3COO[+] organique 1 0 4 1 Co[2+] 1 Ethanoate(aq) 1.1 25 CoEn2[2+] organique 2 Co(NH2CH2CH2NH2)2[2+] 3 1 Co[2+] 2 En 10.72 25 CoEn3[2+] organique 2 Co(NH2CH2CH2NH2)3[2+] 3 1 Co[2+] 3 En 13.82 25 CoEn[2+] organique 2 Co(NH2CH2CH2NH2)[2+] 3 1 Co[2+] 2 En 5.89 25 CoEn[3+] organique complexe 3 0 4 1 Co[3+] 1 En 46.89 25 CoHC2O4[+] organique complexe 1 0 4 1 Co[2+] 1 H[+] 1 Oxalate[2-] 5.5 25 Cr(EDTA)[-] organique complexe -1 0 1 Cr[3+] 1 EDTA[4-] 24 25 Cr(EDTA)[2-] organique complexe -2 0 1 Cr[2+] 1 EDTA[4-] 13.6 25 Cs(CH3COO)2[-] organique -1 4 -2 H[+] 1 Cs[+] 2 Acide éthanoïque(aq) -9.771 25 CsCH3COO(aq) organique -1 H[+] 1 Acide éthanoïque(aq) 1 Cs[+] -4.7352 25 Cu(Acac)2(aq) organique complexe 1 Cu[2+] 2 Acétylacétonate[-] 14.3 25 Cu(Acac)[+] organique complexe 1 0 4 1 Cu[2+] 1 Acétylacétonate[-] 7.8 25 Cu(Ala)2(aq) organique Cu(C3H6NO2)2(aq) -2 H[+] 1 Cu[2+] 2 Alanine(aq) -5.3297 25 Cu(Ala)[+] organique 1 Cu(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Cu[2+] -1.8545 25 Cu(Alan)2(aq) organique Cu(C3H6NO2)2(aq) -2 H[+] 1 Cu[2+] 2 Alanine(aq) -5.3297 25 Cu(Alan)[+] organique 1 Cu(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Cu[2+] -1.8545 25 Cu(But)2(aq) organique Cu(CH3(CH2)2CO2)2(aq) -2 H[+] 1 Cu[2+] 2 Acide butanoïque(aq) -6.0656 25 Cu(But)[+] organique 1 Cu(CH3(CH2)2CO2)+ 4 -1 H[+] 1 Acide butanoïque(aq) 1 Cu[2+] -2.6982 25 Cu(C2O4)2[2-] organique -2 3 1 Cu[2+] 2 Oxalate[2-] 8.9 25 Cu(CH3COO)2(aq) organique 1 Cu[2+] 2 Ethanoate(aq) 2.7 25 Cu(CH3COO)2[-] organique -1 4 -2 H[+] 1 Cu[+] 2 Acide éthanoïque(aq) -9.2139 25 Cu(CH3COO)3[-] organique -1 0 4 1 Cu[2+] 3 Ethanoate(aq) 3.1 25 Cu(CH3COO)4[2-] organique complexe -2 0 4 1 Cu[2+] 4 Ethanoate(aq) 2.9 25 Cu(Citrate)[-] organique complexe -1 0 4 1 Cu[2+] 1 Citrate[3-] 18 25 Cu(dipyridine)2[+] organique complexe 1 0 4 1 Cu[+] 2 2,2' dipyridine 14.2 25 Cu(dipyridine)2[2+] organique complexe 2 0 4 1 Cu[2+] 2 2,2' dipyridine 13.5 25 Cu(dipyridine)3[2+] organique complexe 2 0 4 1 Cu[2+] 3 2,2' dipyridine 17 25 Cu(dipyridine)[2+] organique complexe 2 0 4 1 Cu[2+] 1 2,2' dipyridine 8.1 25 Cu(EDTA)[2-] organique -2 Cu((O2CCH2)(O2CCH2)NCH2CH2N(CH2CO2)(CH2CO2))[2-] 3 1 Cu[2+] 1 EDTA[4-] 18.8 25 Cu(For)2(aq) organique Cu(CHO2)2(aq) -2 H[+] 1 Cu[2+] 2 Acide méthanoïque(aq) -4.206 25 Cu(For)[+] organique 1 CuCHO2+ 4 -1 H[+] 1 Cu[2+] 1 Acide méthanoïque(aq) -1.7731 25 Cu(Gly)2(aq) organique Cu(C2H4NO2)2(aq) -2 H[+] 1 Cu[2+] 2 Glycine(aq) -3.7266 25 Cu(Gly)[+] organique 1 Cu(C2H4NO2)+ 4 -1 H[+] 1 Cu[2+] 1 Glycine(aq) -1.208 25 Cu(Glyc)2(aq) organique Cu(CH3OCO2)2(aq) -2 H[+] 1 Cu[2+] 2 Acide glycolique(aq) -3.0075 25 Cu(Glyc)[+] organique 1 Cu(CH3OCO2)+ 4 -1 H[+] 1 Cu[2+] 1 Acide glycolique(aq) -0.9434 25 Cu(H3Citrate)[2+] organique complexe 2 0 4 1 Cu[2+] 2 H[+] 1 HCitrate[2-] 12 25 Cu(HCitrate)(aq) organique complexe 1 Cu[2+] 1 HCitrate[2-] 6.1 25 Cu(Lac)2(aq) organique Cu(CH3CH2OCO2)2(aq) -2 H[+] 1 Cu[2+] 2 Acide lactique(aq) -3.5756 25 Cu(Lac)[+] organique 1 Cu(CH3CH2OCO2)+ 4 -1 H[+] 1 Cu[2+] 1 Acide lactique(aq) -1.3033 25 Cu(Nta)[-] organique complexe -1 0 4 1 Cu[2+] 1 Nta[3-] 12.6 25 Cu(o-Phtalate)(aq) organique complexe 1 Cu[2+] 1 o-Phtalate[2-] 3.1 25 Cu(o-Phtalate)2[2-] organique complexe -2 0 4 1 Cu[2+] 2 o-Phtalate[2-] 4.4 25 Cu(o-phénantroline)2[2+] organique complexe 2 0 4 2 o-phénantroline 1 Cu[2+] 15.8 25 Cu(o-phénantroline)3[2+] organique complexe 2 0 4 3 o-phénantroline 1 Cu[2+] 21 25 Cu(o-phénantroline)[2+] organique complexe 2 0 4 1 o-phénantroline 1 Cu[2+] 9.1 25 Cu(Prop)2(aq) organique Cu(CH3CH2CO2)2(aq) -2 H[+] 1 Cu[2+] 2 Acide propanoïque(aq) -6.0326 25 Cu(Prop)[+] organique 1 Cu(CH3CH2CO2)+ 4 -1 H[+] 1 Cu[2+] 1 Acide propanoïque(aq) -2.6762 25 Cu(salicylate)2(aq) organique 0 0 4 1 Cu[2+] 2 Salicylate[-] 18.5 25 Cu(salicylate)[+] organique 1 0 4 1 Cu[2+] 1 Salicylate[-] 10.6 25 Cu(tartrate)(aq) organique complexe 1 Cu[2+] 1 Tartrate[2-] 3.2 25 Cu(tartrate)2[2-] organique complexe -2 0 4 1 Cu[2+] 2 Tartrate[2-] 5.1 25 Cu(tartrate)3[4-] organique complexe -4 0 4 1 Cu[2+] 3 Tartrate[2-] 4.8 25 Cu(tartrate)4[6-] organique complexe -6 0 4 1 Cu[2+] 4 Tartrate[2-] 6.5 25 CuC2O4(aq) organique 1 Cu[2+] 1 Oxalate[2-] 4.5 25 CuCH3COO(aq) organique -1 H[+] 1 Acide éthanoïque(aq) 1 Cu[+] -4.4274 25 CuCH3COO[+] organique 1 0 4 1 Cu[2+] 1 Ethanoate(aq) 1.7 25 CuEn2[2+] organique 2 Cu(NH2CH2CH2NH2)2[2+] 3 1 Cu[2+] 2 En 19.6 25 CuEn[2+] organique 2 Cu(NH2CH2CH2NH2)[2+] 3 1 Cu[2+] 2 En 10.55 25 CuHC2O4[+] organique complexe 1 0 4 1 Cu[2+] 1 H[+] 1 Oxalate[2-] 6.25 25 Decanal(aq) organique aldehyd_cetone CH3(CH2)8CHO -0.5 O2(aq) 1 Acide éthanoïque(aq) 4 Ethylene(aq) -1.713 25 Decanoate[-] organique acide -1 C10H19O2- 4 -1 H[+] 1 Acide décanoïque(aq) -4.918 25 Dichloroéthanoate(aq) organique acide -1 38.3 Cl2CHCOO- 4.5 -1 H[+] 1 Acide dichloroéthanoïque(aq) -1.48 25 Diglycine(aq) organique aminoacide C4H8N2O3 -3 H2O -3 O2(aq) 4 H[+] 4 HCO3[-] 2 NH3(aq) -218.9283 25 Diketopiperazine(aq) organique aminoacide C4H6N2O2 -4 H2O -3 O2(aq) 4 H[+] 4 HCO3[-] 2 NH3(aq) -221.0483 25 Dodecanoate[-] organique acide -1 C12H23O2- 4 -1 H[+] 1 Acide dodécanoïque(aq) -4.918 25 Dy(CH3COO)2[+] organique 1 4 -2 H[+] 1 Dy[3+] 2 Acide éthanoïque(aq) -4.9625 25 Dy(CH3COO)3(aq) organique -3 H[+] 1 Dy[3+] 3 Acide éthanoïque(aq) -8.3489 25 DyCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Dy[3+] -2.1037 25 E-C4O4H2[2-] organique acide -2 0 1 E-C4O4H3[-] -1 H[+] -4.44 25 E-C4O4H3[-] organique acide -1 0 0 1 Acide fumarique -1 H[+] -3.03 25 EDTA[4-] organique éthylènediaminetétraacétate acide -4 0 [(CO2CH2)2NCH2CH2N(CH2CO2)2][4-] 4 -1 H[+] 1 HEDTA[3-] -10.3 25 En organique Ethylènediamine(aq) amid_amin NH2(CH2)2NH2 -2.5 O2(aq) -1 H2O 2 H[+] 2 HCO3[-] 2 NH3(aq) -223.647 25 EnH2[2+] organique amid_amin NH3(CH2)2NH3[2+] 1 H[+] 1 EnH[+] 7.35 25 EnH[+] organique amid_amin NH2(CH2)2NH3[+] 1 H[+] 1 En 10.6 25 Er(CH3COO)2[+] organique 1 4 -2 H[+] 1 Er[3+] 2 Acide éthanoïque(aq) -4.9844 25 Er(CH3COO)3(aq) organique -3 H[+] 1 Er[3+] 3 Acide éthanoïque(aq) -8.3783 25 ErCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Er[3+] -2.1184 25 Ethanal(aq) organique alc CH3CHO -0.5 O2(aq) 1 Acide éthanoïque(aq) -46.3751 25 Ethanamide(aq) organique amid_amin CH3CONH2 -1 H2O -2 O2(aq) 2 H[+] 2 HCO3[-] 1 NH3(aq) -137.2973 25 Ethanamine(aq) organique amid_amin C2H5NH2 -3 O2(aq) 2 H[+] 2 HCO3[-] 1 NH3(aq) -223.647 25 Ethane(aq) organique alc C2H6 -3.5 O2(aq) 2 H[+] 2 HCO3[-] 1 H2O -254.503 25 Ethanoate(aq) organique Acétate acide -1 40.9 CH3COO- 4.5 -1 H[+] 1 Acide éthanoïque(aq) -4.7572 25 Ethanol(aq) organique alcool C2H5OH -3 O2(aq) 2 H[+] 2 HCO3[-] 1 H2O -224.142 25 Ethylbenzene(aq) organique benzene C6H5C2H5 -1.5 O2(aq) 3 H2O 4 Benzene(aq) -106.516 25 Ethylene(aq) organique alc C2H4 -3 O2(aq) 2 H[+] 2 HCO3[-] -228.607 25 Ethyléthanoate(aq) organique CH3COOCH2CH3 1 Acide éthanoïque(aq) 1 Ethylene(aq) 2.9247 25 Ethyne(aq) organique alc C2H2 -1 H2O -2.5 O2(aq) 2 H[+] 2 HCO3[-] -209.384 25 Eu(Ala)2(aq) organique Eu(C3H6NO2)2(aq) -2 H[+] 1 Eu[2+] 2 Alanine(aq) -18.8236 25 Eu(Ala)[+] organique 1 Eu(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Eu[2+] -9.2872 25 Eu(Alan)2(aq) organique Eu(C3H6NO2)2(aq) -2 H[+] 1 Eu[2+] 2 Alanine(aq) -18.8229 25 Eu(Alan)[+] organique 1 Eu(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Eu[2+] -9.2879 25 Eu(But)2(aq) organique Eu(CH3(CH2)2CO2)2(aq) -2 H[+] 1 Eu[2+] 2 Acide butanoïque(aq) -9.5987 25 Eu(But)2[+] organique 1 Eu(CH3(CH2)2CO2)2+ 4 -2 H[+] 1 Eu[3+] 2 Acide butanoïque(aq) -4.876 25 Eu(But)[+] organique 1 Eu(CH3(CH2)2CO2)+ 4 -1 H[+] 1 Acide butanoïque(aq) 1 Eu[2+] -4.6113 25 Eu(But)[2+] organique 2 Eu(CH3(CH2)2CO2)++ 4.5 -1 H[+] 1 Acide butanoïque(aq) 1 Eu[3+] -2.048 25 Eu(CH3COO)2[+] organique 1 4 -2 H[+] 1 Eu[3+] 2 Acide éthanoïque(aq) -4.6912 25 Eu(CH3COO)3(aq) organique -3 H[+] 1 Eu[3+] 3 Acide éthanoïque(aq) -7.9824 25 Eu(EDTA)[-] organique complexe -1 0 1 Eu[3+] 1 EDTA[4-] 17.4 25 Eu(EDTA)[2-] organique complexe -2 0 1 Eu[2+] 1 EDTA[4-] 7.7 25 Eu(For)2(aq) organique Eu(CHO2)2(aq) -2 H[+] 1 Eu[2+] 2 Acide méthanoïque(aq) -4.8694 25 Eu(For)2[+] organique 1 Eu(CHO2)2+ 4 -2 H[+] 1 Eu[3+] 2 Acide méthanoïque(aq) -2.7158 25 Eu(For)[+] organique 1 EuCHO2+ 4 -1 H[+] 1 Eu[2+] 1 Acide méthanoïque(aq) -2.4263 25 Eu(For)[2+] organique 2 EuCHO2++ 4.5 -1 H[+] 1 Eu[3+] 1 Acide méthanoïque(aq) -0.9632 25 Eu(Gly)2(aq) organique Eu(C2H4NO2)2(aq) -2 H[+] 1 Eu[2+] 2 Glycine(aq) -16.5799 25 Eu(Gly)[+] organique 1 Eu(C2H4NO2)+ 4 -1 H[+] 1 Eu[2+] 1 Glycine(aq) -8.2016 25 Eu(Glyc)2(aq) organique Eu(CH3OCO2)2(aq) -2 H[+] 1 Eu[2+] 2 Acide glycolique(aq) -5.8303 25 Eu(Glyc)[+] organique 1 Eu(CH3OCO2)+ 4 -1 H[+] 1 Eu[2+] 1 Acide glycolique(aq) -2.6066 25 Eu(Lac)2(aq) organique Eu(CH3CH2OCO2)2(aq) -2 H[+] 1 Eu[2+] 2 Acide lactique(aq) -6.1389 25 Eu(Lac)[+] organique 1 Eu(CH3CH2OCO2)+ 4 -1 H[+] 1 Eu[2+] 1 Acide lactique(aq) -3.0061 25 Eu(Prop)2(aq) organique Eu(CH3CH2CO2)2(aq) -2 H[+] 1 Eu[2+] 2 Acide propanoïque(aq) -9.4661 25 Eu(Prop)2[+] organique 1 Eu(CH3CH2CO2)2+ 4 -2 H[+] 1 Eu[3+] 2 Acide propanoïque(aq) -4.8628 25 Eu(Prop)[+] organique 1 Eu(CH3CH2CO2)+ 4 -1 H[+] 1 Eu[2+] 1 Acide propanoïque(aq) -4.3995 25 Eu(Prop)[2+] organique 2 Eu(CH3CH2CO2)++ 4.5 -1 H[+] 1 Eu[3+] 1 Acide propanoïque(aq) -2.0363 25 EuCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Eu[3+] -1.9571 25 Fe(Acac)2(aq) organique complexe 1 Fe[2+] 2 Acétylacétonate[-] 8 25 Fe(Acac)2[+] organique complexe 1 0 4 1 Fe[3+] 2 Acétylacétonate[-] 17.9 25 Fe(Acac)3(aq) organique complexe 1 Fe[3+] 3 Acétylacétonate[-] 25.1 25 Fe(Acac)[+] organique complexe 1 0 4 1 Fe[2+] 1 Acétylacétonate[-] 4.7 25 Fe(Acac)[2+] organique complexe 2 0 4 1 Fe[3+] 1 Acétylacétonate[-] 9.3 25 Fe(Ala)2(aq) organique Fe(C3H6NO2)2(aq) -2 H[+] 1 Fe[2+] 2 Alanine(aq) -12.0822 25 Fe(Ala)[+] organique 1 Fe(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Fe[2+] -5.4374 25 Fe(Alan)2(aq) organique Fe(C3H6NO2)2(aq) -2 H[+] 1 Fe[2+] 2 Alanine(aq) -12.0822 25 Fe(Alan)[+] organique 1 Fe(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Fe[2+] -5.4374 25 Fe(But)2(aq) organique Fe(CH3(CH2)2CO2)2(aq) -2 H[+] 1 Fe[2+] 2 Acide butanoïque(aq) -6.998 25 Fe(But)[+] organique 1 Fe(CH3(CH2)2CO2)+ 4 -1 H[+] 1 Acide butanoïque(aq) 1 Fe[2+] -3.2003 25 Fe(C2O4)2[-] organique complexe -1 0 4 1 Fe[3+] 2 Oxalate[2-] 14.3 25 Fe(C2O4)3[3-] organique -3 3 1 Fe[3+] 3 Oxalate[2-] 18.5 25 Fe(CH3COO)2(aq) organique -2 H[+] 1 Fe[2+] 2 Acide éthanoïque(aq) -7.0295 25 Fe(CH3COO)2[+] organique 1 0 3 1 Fe[3+] 2 Ethanoate(aq) 6.1 25 Fe(CH3COO)3(aq) organique complexe 1 Fe[3+] 3 Ethanoate(aq) 8.7 25 Fe(Citrate)(aq) organique complexe 1 Fe[3+] 1 Citrate[3-] 25 25 Fe(Citrate)[-] organique complexe -1 0 4 1 Fe[2+] 1 Citrate[3-] 15.5 25 Fe(dipyridine)2[2+] organique complexe 2 0 4 1 Fe[2+] 2 2,2' dipyridine 8 25 Fe(dipyridine)3[2+] organique complexe 2 0 4 1 Fe[2+] 3 2,2' dipyridine 17.6 25 Fe(dipyridine)[2+] organique complexe 2 0 4 1 Fe[2+] 1 2,2' dipyridine 4.4 25 Fe(EDTA)[-] organique complexe -1 0 4 1 Fe[3+] 1 EDTA[4-] 25.1 25 Fe(EDTA)[2-] organique complexe -2 0 4 1 Fe[2+] 1 EDTA[4-] 14.3 25 Fe(For)2(aq) organique Fe(CHO2)2(aq) -2 H[+] 1 Fe[2+] 2 Acide méthanoïque(aq) -4.4889 25 Fe(For)[+] organique 1 FeCHO2+ 4 -1 H[+] 1 Fe[2+] 1 Acide méthanoïque(aq) -1.9256 25 Fe(Gly)2(aq) organique Fe(C2H4NO2)2(aq) -2 H[+] 1 Fe[2+] 2 Glycine(aq) -12.0191 25 Fe(Gly)[+] organique 1 Fe(C2H4NO2)+ 4 -1 H[+] 1 Fe[2+] 1 Glycine(aq) -5.4609 25 Fe(Glyc)2(aq) organique Fe(CH3OCO2)2(aq) -2 H[+] 1 Fe[2+] 2 Acide glycolique(aq) -3.8197 25 Fe(Glyc)[+] organique 1 Fe(CH3OCO2)+ 4 -1 H[+] 1 Fe[2+] 1 Acide glycolique(aq) -1.6566 25 Fe(H2Citrate)[+] organique complexe 1 0 04 1 Fe[2+] 1 H[+] 1 HCitrate[2-] 7.3 25 Fe(H2Citrate)[2+] organique complexe 2 0 4 1 Fe[3+] 1 H[+] 1 HCitrate[2-] 12.2 25 Fe(HCitrate)(aq) organique complexe 1 Fe[2+] 1 HCitrate[2-] 3.1 25 Fe(HCitrate)[+] organique complexe 2 0 4 1 Fe[3+] 1 HCitrate[2-] 10.9 25 Fe(Lac)2(aq) organique Fe(CH3CH2OCO2)2(aq) -2 H[+] 1 Fe[2+] 2 Acide lactique(aq) -3.9788 25 Fe(Lac)[+] organique 1 Fe(CH3CH2OCO2)+ 4 -1 H[+] 1 Fe[2+] 1 Acide lactique(aq) -1.7453 25 Fe(Nta)(aq) organique complexe 1 Fe[3+] 1 Nta[3-] 15.8 25 Fe(Nta)[-] organique complexe -1 0 4 1 Fe[2+] 1 Nta[3-] 8.8 25 Fe(o-phénantroline)2[2+] organique complexe 2 0 4 2 o-phénantroline 1 Fe[2+] 11.1 25 Fe(o-phénantroline)3[2+] organique complexe 2 0 4 3 o-phénantroline 1 Fe[2+] 21.3 25 Fe(o-phénantroline)3[3+] organique complexe 3 0 4 3 o-phénantroline 1 Fe[3+] 14.1 25 Fe(o-phénantroline)[2+] organique complexe 2 0 4 1 o-phénantroline 1 Fe[2+] 5.9 25 Fe(Prop)2(aq) organique Fe(CH3CH2CO2)2(aq) -2 H[+] 1 Fe[2+] 2 Acide propanoïque(aq) -7.1556 25 Fe(Prop)[+] organique 1 Fe(CH3CH2CO2)+ 4 -1 H[+] 1 Fe[2+] 1 Acide propanoïque(aq) -3.289 25 Fe(salicylate)2(aq) organique 0 0 4 1 Fe[2+] 2 Salicylate[-] 11.3 25 Fe(salicylate)2[+] organique 1 0 4 1 Fe[3+] 2 Salicylate[-] 27.5 25 Fe(salicylate)3(aq) organique 0 0 4 1 Fe[3+] 3 Salicylate[-] 35.3 25 Fe(salicylate)[+] organique 1 0 4 1 Fe[2+] 1 Salicylate[-] 6.6 25 Fe(salicylate)[2+] organique 2 0 4 1 Fe[3+] 1 Salicylate[-] 15.8 25 FeC2O4[+] organique 1 3 1 Fe[3+] 1 Oxalate[2-] 8 25 FeCH3COO[+] organique 1 4 -1 H[+] 1 Acide éthanoïque(aq) 1 Fe[2+] -3.4671 25 FeCH3COO[2+] organique 2 0 3 1 Fe[3+] 1 Ethanoate(aq) 3.4 25 FeEn2[2+] organique 2 Fe(NH2CH2CH2NH2)2[2+] 3 1 Fe[2+] 2 En 7.53 25 FeEn3[2+] organique 2 Fe(NH2CH2CH2NH2)3[2+] 3 1 Fe[2+] 3 En 9.52 25 FeEn[2+] organique 2 Fe(NH2CH2CH2NH2)[2+] 3 1 Fe[2+] 1 En 4.28 25 Ga(Acac)2[+] organique complexe 1 0 4 1 Ga[3+] 2 Acétylacétonate[-] 17 25 Ga(Acac)3(aq) organique complexe 1 Ga[3+] 3 Acétylacétonate[-] 22.5 25 Ga(Acac)[2+] organique complexe 2 0 4 1 Ga[3+] 1 Acétylacétonate[-] 9 25 Ga(EDTA)[-] organique complexe -1 0 4 1 Ga[3+] 1 EDTA[4-] 20.5 25 Gd(But)2[+] organique 1 Gd(CH3(CH2)2CO2)2+ 4 -2 H[+] 1 Gd[3+] 2 Acide butanoïque(aq) -5.1157 25 Gd(But)[2+] organique 2 Gd(CH3(CH2)2CO2)++ 4.5 -1 H[+] 1 Acide butanoïque(aq) 1 Gd[3+] -2.1778 25 Gd(CH3COO)2[+] organique 1 4 -2 H[+] 1 Gd[3+] 2 Acide éthanoïque(aq) -4.9625 25 Gd(CH3COO)3(aq) organique -3 H[+] 1 Gd[3+] 3 Acide éthanoïque(aq) -8.3489 25 Gd(For)2[+] organique 1 Gd(CHO2)2+ 4 -2 H[+] 1 Gd[3+] 2 Acide méthanoïque(aq) -2.9562 25 Gd(For)[2+] organique 2 GdCHO2++ 4.5 -1 H[+] 1 Acide méthanoïque(aq) 1 Gd[3+] -1.0929 25 Gd(Prop)2[+] organique 1 Gd(CH3CH2CO2)2+ 4 -2 H[+] 1 Gd[3+] 2 Acide propanoïque(aq) -5.1127 25 Gd(Prop)[2+] organique 2 GdCH3CH2CO2++ 4.5 -1 H[+] 1 Gd[3+] 1 Acide propanoïque(aq) -2.1763 25 GdCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Gd[3+] -2.1037 25 Glutamine(aq) organique amid_amin C5H10N2O3 -0.75 O2(aq) -0.5 H2O -0.5 NH3(aq) 2.5 Glycine(aq) -48.6534 25 Glutarate[2-] organique acide -2 52.6 C5H6O4-- 4 -1 H[+] 1 H-Glutarate[-] -5.4169 25 GlycH[+] organique aminoacide -1 34.3 C2H6NO2[+] 1 Glycine(aq) 1 H[+] 2.4 25 Glycine(aq) organique aminoacide C2H5NO2 -1 H2O -1.5 O2(aq) 2 H[+] 2 HCO3[-] 1 NH3(aq) -108.171 25 Glycolate[-] organique acide -1 C2H3O3- 4 -1 H[+] 1 Acide glycolique(aq) -3.8336 25 Glyc[-] organique aminoacide -1 15 C2H4NO2[-] -1 H[+] 1 Glycine(aq) -9.7 25 H(o-Phtalate)[-] organique acide -1 4 1 H[+] 1 o-Phtalate[2-] 5.408 25 H-Adipate[-] organique acide -1 C6H9O4- 4 -1 H[+] 1 Acide adipique(aq) -4.4127 25 H-Azelate[-] organique acide -1 C9H15O4- 4 -1 H[+] 1 Acide azélaïque(aq) -4.523 25 H-Glutarate[-] organique acide -1 C5H7O4- 4 -1 H[+] 1 Acide glutarique(aq) -4.3394 25 H-Malonate[-] organique acide -1 C3H3O4- 4 -1 H[+] 1 Acide malonique(aq) -2.8511 25 H-Oxalate[-] organique acide -1 40.2 C2HO4- 4 -1 H[+] 1 Acide oxalique(aq) -1.2701 25 H-Pimelate[-] organique acide -1 C7H11O4- 4 -1 H[+] 1 Acide pimélique(aq) -4.4860 25 H-Sebacate[-] organique acide -1 C10H17O4- 4 -1 H[+] 1 Acide sébacique(aq) -4.544 25 H-Suberate[-] organique acide -1 C8H13O4- 4 -1 H[+] 1 Acide subérique(aq) -4.509 25 H-Succinate[-] organique acide -1 C4H504- 4 -1 H[+] 1 Acide succinique(aq) -4.2067 25 H2Citrate[-] organique acide -1 30 4 1 Acide citrique(aq) -1 H[+] -3.1 25 H2EDTA[2-] organique acide -2 0 4 -1 H[+] 1 H3EDTA[-] -2.7 25 H2Nta[-] organique acide -1 0 4 -1 H[+] 1 H3Nta(aq) -3 25 H3EDTA[-] organique acide -1 0 4 1 H4EDTA(aq) -1 H[+] -2 25 H3Nta(aq) organique Acide nitrilotriacétique acide N(CH2-COOH)(CH2-COOH)(CH2-COOH) -2 H2O 7 H[+] -6.5 O2(aq) 6 HCO3[-] 1 NO3[-] 0 25 H4EDTA(aq) organique acide C10H16N2O8 12 H[+] 10 HCO3[-] 2 NO3[-] -12.5 O2(aq) -3 H2O -956.96 25 H5EDTA[+] organique acide 1 0 4 1 H4EDTA(aq) 1 H[+] 1.5 25 H6EDTA[2+] organique acide 2 0 4 1 H[+] 1 H5EDTA[+] 1 25 HCitrate[2-] organique acide -2 0 4 -1 H[+] 1 H2Citrate[-] -4.8 25 HEDTA[3-] organique acide -3 0 4 -1 H[+] 1 H2EDTA[2-] -6.2 25 Heptanal(aq) organique aldehyd_cetone CH3(CH2)5CHO -0.5 O2(aq) 1 Acide éthanoïque(aq) 2.5 Ethylene(aq) -19.5141 25 Heptanoate[-] organique acide -1 C6H13COO- 4 -1 H[+] 1 Acide heptanoïque(aq) -4.892 25 Hexanal(aq) organique aldehyd_cetone CH3(CH2)4CHO -0.5 O2(aq) 1 Acide éthanoïque(aq) 2 Ethylene(aq) -24.1797 25 Hexanoate[-] organique acide -1 C5H11COO- 4 -1 H[+] 1 Acide hexanoïque(aq) -4.860 25 Hf(Acac)2[2+] organique complexe 2 0 4 1 Hf[4+] 2 Acétylacétonate[-] 15.4 25 Hf(Acac)3[+] organique complexe 1 0 4 1 Hf[4+] 3 Acétylacétonate[-] 21.8 25 Hf(Acac)4(aq) organique complexe 1 Hf[4+] 4 Acétylacétonate[-] 28.1 25 Hf(Acac)[3+] organique complexe 3 0 4 1 Hf[4+] 1 Acétylacétonate[-] 8.7 25 Hg(CH3COO)2(aq) organique -2 H[+] 1 Hg[2+] 2 Acide éthanoïque(aq) -2.6242 25 Hg(CH3COO)3[-] organique -1 4 -3 H[+] 1 Hg[2+] 3 Acide éthanoïque(aq) -4.3247 25 Hg(EDTA)[2-] organique -2 Hg((O2CCH2)(O2CCH2)NCH2CH2N(CH2CO2)(CH2CO2))[2-] 3 1 Hg[2+] 1 EDTA[4-] 21.9 25 Hg(Gly)2(aq) organique Hg(C2H4NO2)2(aq) 1 Hg[2+] 2 Glyc[-] 18.4 25 Hg(Nta)[-] organique complexe -1 0 4 1 Hg[2+] 1 Nta[3-] 12.6 25 HgCH3COO[+] organique 1 4 -1 H[+] 1 Acide éthanoïque(aq) 1 Hg[2+] -0.4691 25 HgEn2[2+] organique 2 Hg(NH2CH2CH2NH2)2[2+] 3 1 Hg[2+] 2 En 23.42 25 HNta[2-] organique acide -2 0 4 1 H2Nta[-] -1 H[+] -3.1 25 Ho(CH3COO)2[+] organique 1 4 -2 H[+] 1 Ho[3+] 2 Acide éthanoïque(aq) -4.9844 25 Ho(CH3COO)3(aq) organique -3 H[+] 1 Ho[3+] 3 Acide éthanoïque(aq) -8.3783 25 HoCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Ho[3+] -2.1184 25 Hydrogénotartrate[-] organique acide -1 0 HO2C-CHOH-CHOH-COO[-] 4 1 Acide tartrique -1 H[+] -2.98 25 In(Acac)2[+] organique complexe 1 0 4 1 In[3+] 2 Acétylacétonate[-] 14.2 25 In(Acac)[2+] organique complexe 2 0 4 1 In[3+] 1 Acétylacétonate[-] 7.5 25 Ion ascorbate organique aldehyd_cetone -1 0 1 Acide ascorbique -1 H[+] -4.1 25 Ion ascorbate [2-] organique aldehyd_cetone -2 0 1 Ion ascorbate -1 H[+] -11.6 25 Isoleucine(aq) organique aminoacide C6H13NO2 -3 O2(aq) -2 NH3(aq) 2 H2O 3 Glycine(aq) -217.062 25 K(But)(aq) organique K(CH3(CH2)2CO2)(aq) -1 H[+] 1 Acide butanoïque(aq) 1 K[+] -4.8078 25 K(But)2[-] organique -1 K(CH3(CH2)2CO2)2- 4 -2 H[+] 1 K[+] 2 Acide butanoïque(aq) -9.9359 25 K(CH3COO)2[-] organique -1 4 -2 H[+] 1 K[+] 2 Acide éthanoïque(aq) -10.2914 25 K(EDTA)[3-] organique complexe -3 0 4 1 K[+] 1 EDTA[4-] 1 25 K(For)(aq) organique K(CHO2)(aq) -1 H[+] 1 Acide méthanoïque(aq) 1 K[+] -3.7229 25 K(For)2[-] organique -1 K(CHO2)2- 4 -2 H[+] 1 K[+] 2 Acide méthanoïque(aq) -7.7757 25 K(Glyc)(aq) organique K(CH3OCO2)(aq) -1 H[+] 1 Acide glycolique(aq) 1 K[+] -3.8036 25 K(Glyc)2[-] organique -1 K(CH3OCO2)2- 4 -2 H[+] 1 K[+] 2 Acide glycolique(aq) -7.7471 25 K(Lac)(aq) organique K(CH3CH2OCO2)(aq) -1 H[+] 1 K[+] 1 Acide lactique(aq) -3.8329 25 K(Lac)2[-] organique -1 K(CH3CH2OCO2)2- 4 -2 H[+] 1 K[+] 2 Acide lactique(aq) -7.7955 25 K(Prop)(aq) organique KCH3CH2CO2(aq) -1 H[+] 1 K[+] 1 Acide propanoïque(aq) -4.8664 25 K(Prop)2[-] organique -1 K(CH3CH2CO2)2- 4 -2 H[+] 1 K[+] 2 Acide propanoïque(aq) -10.0429 25 KCH3COO(aq) organique -1 H[+] 1 Acide éthanoïque(aq) 1 K[+] -5.0211 25 La(Acac)2[+] organique complexe 1 0 4 1 La[3+] 2 Acétylacétonate[-] 8 25 La(Acac)3(aq) organique complexe 1 La[3+] 3 Acétylacétonate[-] 10.8 25 La(Acac)[2+] organique complexe 2 0 4 1 La[3+] 1 Acétylacétonate[-] 4.6 25 La(But)2[+] organique 1 La(CH3(CH2)2CO2)2+ 4 -2 H[+] 1 La[3+] 2 Acide butanoïque(aq) -5.1758 25 La(But)[2+] organique 2 La(CH3(CH2)2CO2)++ 4.5 -1 H[+] 1 Acide butanoïque(aq) 1 La[3+] -2.2078 25 La(CH3COO)2[+] organique 1 0 4 1 La[3+] 2 Ethanoate(aq) 3.3 25 La(CH3COO)3(aq) organique 1 La[3+] 3 Ethanoate(aq) 3 25 La(CH3COO)4[-] organique complexe -1 0 4 1 La[3+] 4 Ethanoate(aq) 2.9 25 La(EDTA)[-] organique complexe -1 0 4 1 La[3+] 1 EDTA[4-] 15.7 25 La(For)2[+] organique 1 La(CHO2)2+ 4 -2 H[+] 1 La[3+] 2 Acide méthanoïque(aq) -3.0163 25 La(For)[2+] organique 2 La(CHO2)++ 4.5 -1 H[+] 1 Acide méthanoïque(aq) 1 La[3+] -1.123 25 La(Lac)[2+] organique 2 4.5 -1 H[+] 1 La[3+] 1 Acide lactique(aq) -0.5226 25 La(o-Phtalate)2[-] organique complexe -1 0 4 1 La[3+] 2 o-Phtalate[2-] 3.9 25 La(Prop)2[+] organique 1 La(CH3CH2CO2)2+ 4 -2 H[+] 1 La[3+] 2 Acide propanoïque(aq) -5.4829 25 La(Prop)[2+] organique 2 La(CH3CH2CO2)++ 4.5 -1 H[+] 1 La[3+] 1 Acide propanoïque(aq) -2.3764 25 LaCH3COO[2+] organique 2 0 4.5 1 La[3+] 1 Ethanoate(aq) 2 25 Lactate[-] organique acide -1 38.8 C3H5O3- 4 -1 H[+] 1 Acide lactique(aq) -3.8629 25 Leucine(aq) organique aminoacide C6H13NO2 -3 O2(aq) -2 NH3(aq) 2 H2O 3 Glycine(aq) -217.208 25 Leucylglycine(aq) organique aminoacide C8H16N2O3 -3 O2(aq) -2 NH3(aq) 1 H2O 4 Glycine(aq) -219.635 25 Li(CH3COO)2[-] organique -1 4 -2 H[+] 1 Li[+] 2 Acide éthanoïque(aq) -9.2674 25 Li(EDTA)[3-] organique complexe -3 0 4 1 Li[+] 1 EDTA[4-] 2.8 25 Li(Lac)(aq) organique -1 H[+] 1 Acide lactique(aq) 1 Li[+] -3.6628 25 LiCH3COO(aq) organique -1 H[+] 1 Acide éthanoïque(aq) 1 Li[+] -4.4589 25 Lu(CH3COO)2[+] organique 1 4 -2 H[+] 1 Lu[3+] 2 Acide éthanoïque(aq) -4.9625 25 Lu(CH3COO)3(aq) organique -3 H[+] 1 Lu[3+] 3 Acide éthanoïque(aq) -8.3489 25 Lu(Lac)[2+] organique 2 LuCH3CH2OCO2++ 4.5 -1 H[+] 1 Acide lactique(aq) 1 Lu[3+] -0.0132 25 LuCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Lu[3+] -2.1037 25 m-Cresol(aq) organique alcool C7H8O(aq) 0.5 Ethylene(aq) 1 Phenol(aq) 8.3563 25 m-Toluate[-] organique acide -1 C8H7O2- 4 -1 H[+] 1 Acide m-toluique(aq) -4.2588 25 Malonate[2-] organique acide -2 63.5 C3H2O4-- 4 -1 H[+] 1 H-Malonate[-] -5.6955 25 Methanamine(aq) organique amid_amin CH3NH2 -1.5 O2(aq) 1 H[+] 1 HCO3[-] 1 NH3(aq) -115.5483000 25 Methane(aq) organique alc CH4 -2 O2(aq) 1 H[+] 1 HCO3[-] 1 H2O -144.141 25 Methanol(aq) organique alcool CH3OH 0.5 Ethanol(aq) 0.5 H2O -5.8339 25 Methionine(aq) organique aminoacide C5H11NO2S -1.75 O2(aq) -1.5 NH3(aq) 0.5 H2O 1 H[+] 1 HS[-] 2.5 Glycine(aq) -91.0203 25 Mg(Acac)2(aq) organique complexe 1 Mg[2+] 2 Acétylacétonate[-] 5.5 25 Mg(Acac)[+] organique complexe 1 0 4 1 Mg[2+] 1 Acétylacétonate[-] 3.2 25 Mg(Ala)2(aq) organique Mg(C3H6NO2)2(aq) -2 H[+] 1 Mg[2+] 2 Alanine(aq) -17.4998 25 Mg(Ala)[+] organique 1 Mg(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Mg[2+] -8.4047 25 Mg(Alan)2(aq) organique Mg(C3H6NO2)2(aq) -2 H[+] 1 Mg[2+] 2 Alanine(aq) -17.4998 25 Mg(Alan)[+] organique 1 Mg(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Mg[2+] -8.4047 25 Mg(But)2(aq) organique Mg(CH3(CH2)2CO2)2(aq) -2 H[+] 1 Mg[2+] 2 Acide butanoïque(aq) -8.9654 25 Mg(But)[+] organique 1 Mg(CH3(CH2)2CO2)+ 4 -1 H[+] 1 Acide butanoïque(aq) 1 Mg[2+] -4.2778 25 Mg(dipyridine)[2+] organique complexe 2 0 4 1 Mg[2+] 1 2,2' dipyridine 0.5 25 Mg(EDTA)[2-] organique complexe -2 0 4 1 Mg[2+] 1 EDTA[4-] 8.7 25 Mg(For)2(aq) organique Mg(CHO2)2(aq) -2 H[+] 1 Mg[2+] 2 Acide méthanoïque(aq) -5.2058 25 Mg(For)[+] organique 1 Mg(CHO2)+ 4 -1 H[+] 1 Acide méthanoïque(aq) 1 Mg[2+] -2.3229 25 Mg(Gly)2(aq) organique Mg(C2H4NO2)2(aq) -2 H[+] 1 Mg[2+] 2 Glycine(aq) -13.0966 25 Mg(Gly)[+] organique 1 Mg(C2H4NO2)+ 4 -1 H[+] 1 Glycine(aq) 1 Mg[2+] -6.328 25 Mg(Glyc)2(aq) organique Mg(CH3OCO2)2(aq) -2 H[+] 1 Mg[2+] 2 Acide glycolique(aq) -5.3671 25 Mg(Glyc)[+] organique 1 Mg(CH3OCO2)+ 4 -1 H[+] 1 Acide glycolique(aq) 1 Mg[2+] -2.5039 25 Mg(H2Citrate)[+] organique complexe 1 0 4 1 Mg[2+] 1 H[+] 1 HCitrate[2-] 7.1 25 Mg(HCitrate)(aq) organique complexe 1 Mg[2+] 1 HCitrate[2-] 2.8 25 Mg(Htartrate)[+] organique complexe 1 0 4 1 Mg[2+] 1 H[+] 1 Tartrate[2-] 4.65 25 Mg(Lac)2(aq) organique Mg(CH3CH2OCO2)2(aq) -2 H[+] 1 Mg[2+] 2 Acide lactique(aq) -5.3356 25 Mg(Lac)[+] organique 1 Mg(CH3CH2OCO2)+ 4 -1 H[+] 1 Acide lactique(aq) 1 Mg[2+] -2.493 25 Mg(Nta)[-] organique complexe -1 0 4 1 Mg[2+] 1 Nta[3-] 5.4 25 Mg(o-phénantroline)[2+] organique complexe 2 0 4 1 o-phénantroline 1 Mg[2+] 1.5 25 Mg(Prop)2(aq) organique Mg(CH3CH2CO2)2(aq) -2 H[+] 1 Mg[2+] 2 Acide propanoïque(aq) -8.7726 25 Mg(Prop)[+] organique 1 Mg(CH3CH2CO2)+ 4 -1 H[+] 1 Mg[2+] 1 Acide propanoïque(aq) -4.1767 25 Mg(tartrate)(aq) organique complexe 1 Mg[2+] 1 Tartrate[2-] 1.2 25 MgC2O4(aq) organique 1 Mg[2+] 1 Oxalate[2-] 4.1 25 MgCH3COO[+] organique 1 0 4 1 Mg[2+] 1 Ethanoate(aq) 0.5 25 Mn(Acac)2(aq) organique complexe 1 Mn[2+] 2 Acétylacétonate[-] 6.6 25 Mn(Acac)[+] organique complexe 1 0 4 1 Mn[2+] 1 Acétylacétonate[-] 3.8 25 Mn(Ala)2(aq) organique Mn(C3H6NO2)2(aq) -2 H[+] 1 Mn[2+] 2 Alanine(aq) -15.119 25 Mn(Ala)[+] organique 1 Mn(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Mn[2+] -7.5646 25 Mn(Alan)2(aq) organique Mn(C3H6NO2)2(aq) -2 H[+] 1 Mn[2+] 2 Alanine(aq) -15.119 25 Mn(Alan)[+] organique 1 Mn(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Mn[2+] -105.48 25 Mn(But)2(aq) organique Mn(CH3(CH2)2CO2)2(aq) -2 H[+] 1 Mn[2+] 2 Acide butanoïque(aq) -8.1752 25 Mn(But)[+] organique 1 Mn(CH3(CH2)2CO2)+ 4 -1 H[+] 1 Acide butanoïque(aq) 1 Mn[2+] -4.0477 25 Mn(C2O4)2[-] organique complexe -1 0 4 1 Mn[3+] 2 Oxalate[2-] 16.6 25 Mn(C2O4)2[2-] organique -2 3 1 Mn[2+] 2 Oxalate[2-] 5.6 25 Mn(C2O4)3[3-] organique complexe -3 0 4 1 Mn[3+] 3 Oxalate[2-] 19.4 25 Mn(CH3COO)2(aq) organique 1 Mn[2+] 2 Ethanoate(aq) 1.4 25 Mn(dipyridine)2[2+] organique complexe 2 0 4 1 Mn[2+] 2 2,2' dipyridine 4.6 25 Mn(dipyridine)3[2+] organique complexe 2 0 4 1 Mn[2+] 3 2,2' dipyridine 6.3 25 Mn(dipyridine)[2+] organique complexe 2 0 4 1 Mn[2+] 1 2,2' dipyridine 2.5 25 Mn(EDTA)[-] organique complexe -1 0 4 1 Mn[3+] 1 EDTA[4-] 24.9 25 Mn(EDTA)[2-] organique -2 Mn((O2CCH2)(O2CCH2)NCH2CH2N(CH2CO2)(CH2CO2))[2-] 3 1 Mn[2+] 1 EDTA[4-] 13.8 25 Mn(For)2(aq) organique Mn(CHO2)2(aq) -2 H[+] 1 Mn[2+] 2 Acide méthanoïque(aq) -5.156 25 Mn(For)[+] organique 1 Mn(CHO2)+ 4 -1 H[+] 1 Acide méthanoïque(aq) 1 Mn[2+] -2.493 25 Mn(Gly)2(aq) organique Mn(C2H4NO2)2(aq) -2 H[+] 1 Mn[2+] 2 Glycine(aq) -13.3664 25 Mn(Gly)[+] organique 1 Mn(C2H4NO2)+ 4 -1 H[+] 1 Glycine(aq) 1 Mn[2+] -6.5582 25 Mn(Glyc)2(aq) organique Mn(CH3OCO2)2(aq) -2 H[+] 1 Mn[2+] 2 Acide glycolique(aq) -5.6771 25 Mn(Glyc)[+] organique 1 Mn(CH3OCO2)+ 4 -1 H[+] 1 Acide glycolique(aq) 1 Mn[2+] -2.6916 25 Mn(H2Citrate)[+] organique complexe 1 0 4 1 Mn[2+] 1 H[+] 1 HCitrate[2-] 8 25 Mn(HCitrate)(aq) organique complexe 1 Mn[2+] 1 HCitrate[2-] 3.4 25 Mn(Lac)2(aq) organique Mn(CH3CH2OCO2)2(aq) -2 H[+] 1 Mn[2+] 2 Acide lactique(aq) -5.6654 25 Mn(Lac)[+] organique 1 Mn(CH3CH2OCO2)+ 4 -1 H[+] 1 Acide lactique(aq) 1 Mn[2+] -2.8727 25 Mn(Nta)[-] organique complexe -1 0 4 1 Mn[2+] 1 Nta[3-] 7.4 25 Mn(o-phénantroline)2[2+] organique complexe 2 0 4 2 o-phénantroline 1 Mn[2+] 7.2 25 Mn(o-phénantroline)3[2+] organique complexe 2 0 4 3 o-phénantroline 1 Mn[2+] 10.4 25 Mn(o-phénantroline)[2+] organique complexe 2 0 4 1 o-phénantroline 1 Mn[2+] 4.1 25 Mn(Prop)2(aq) organique Mn(CH3CH2CO2)2(aq) -2 H[+] 1 Mn[2+] 2 Acide propanoïque(aq) -8.1928 25 Mn(Prop)[+] organique 1 Mn(CH3CH2CO2)+ 4 -1 H[+] 1 Mn[2+] 1 Acide propanoïque(aq) -4.0565 25 Mn(salicylate)2(aq) organique 0 0 4 1 Mn[2+] 2 Salicylate[-] 9.8 25 Mn(salicylate)[+] organique 1 0 4 1 Mn[2+] 1 Salicylate[-] 5.9 25 MnC2O4(aq) organique 1 Mn[2+] 1 Oxalate[2-] 2.7 25 MnC2O4[+] organique complexe 1 0 4 1 Mn[3+] 1 Oxalate[2-] 10 25 MnCH3COO[+] organique 1 0 4 1 Mn[2+] 1 Ethanoate(aq) 0.5 25 MnEn2[2+] organique complexe 2 0 4 1 Mn[2+] 2 En 4.79 25 MnEn3[2+] organique complexe 2 0 4 1 Mn[2+] 3 En 5.67 25 MnEn[2+] organique complexe 2 0 4 1 Mn[2+] 1 En 2.73 25 Méthanal(aq) organique aldehyd_cetone HCHO -0.5 Ethylene(aq) -0.5 O2(aq) 1 Acide éthanoïque(aq) -58.8839 25 Méthanoate[-] organique acide -1 54.6 HCOO- 3.5 -1 H[+] 1 Acide méthanoïque(aq) -3.753 25 n-Butane(aq) organique alc C4H10 -1 H2O 0.5 O2(aq) 2 Ethane(aq) 37.2783 25 n-Butylbenzene(aq) organique benzene C6H5C4H9 -3 O2(aq) 5 Benzene(aq) 6 H2O -220.135 25 n-Heptane(aq) organique alc C7H16 -2.5 H2O 1.25 O2(aq) 3.5 Ethane(aq) 92.7919 25 n-Heptylbenzene(aq) organique benzene C6H5C7H15 -5.25 O2(aq) 6.5 Benzene(aq) 10.5 H2O -392.818 25 n-Hexane(aq) organique alc C6H14 -2 H2O 1 O2(aq) 3 Ethane(aq) 74.218 25 n-Hexylbenzene(aq) organique benzene C6H5C6H13 -1.5 O2(aq) 2 Benzene(aq) 3 H2O -111.699 25 n-Octane(aq) organique alc C8H18 -3 H2O 1.5 O2(aq) 4 Ethane(aq) 111.322 25 n-Octylbenzene(aq) organique benzene C6H5C8H17 -6 O2(aq) 7 Benzene(aq) 12 H2O -450.1 25 n-Pentane(aq) organique alc C5H12 -1.5 H2O 0.75 O2(aq) 2.5 Ethane(aq) 55.82 25 n-Pentylbenzene(aq) organique benzene C6H5C5H11 -3.75 O2(aq) 5.5 Benzene(aq) 7.5 H2O -277.528 25 n-Propylbenzene(aq) organique benzene C6H5C3H7 -0.75 O2(aq) 1.5 Benzene(aq) 1.5 H2O -54.365 25 Na(But)(aq) organique Na(CH3(CH2)2CO2)(aq) -1 H[+] 1 Acide butanoïque(aq) 1 Na[+] -4.788 25 Na(But)2[-] organique -1 Na(CH3(CH2)2CO2)2- 4 -2 H[+] 1 Na[+] 2 Acide butanoïque(aq) -9.8956 25 Na(CH3COO)2[-] organique -1 4 -2 H[+] 1 Na[+] 2 Acide éthanoïque(aq) -9.9989 25 Na(EDTA)[3-] organique complexe -3 0 4 1 Na[+] 1 EDTA[4-] 1.7 25 Na(For)(aq) organique Na(CHO2)(aq) -1 H[+] 1 Acide méthanoïque(aq) 1 Na[+] -3.7031 25 Na(For)2[-] organique -1 Na(CHO2)2- 4 -2 H[+] 1 Na[+] 2 Acide méthanoïque(aq) -7.7362 25 Na(Glyc)(aq) organique Na(CH3OCO2)(aq) -1 H[+] 1 Acide glycolique(aq) 1 Na[+] -3.7838 25 Na(Glyc)2[-] organique -1 Na(CH3OCO2)2- 4 -2 H[+] 1 Na[+] 2 Acide glycolique(aq) -7.7076 25 Na(Lac)(aq) organique Na(CH3CH2OCO2)(aq) -1 H[+] 1 Acide lactique(aq) 1 Na[+] -3.8131 25 Na(Lac)2[-] organique -1 Na(CH3CH2OCO2)2- 4 -2 H[+] 1 Na[+] 2 Acide lactique(aq) -7.7559 25 Na(o-Phtalate)[-] organique -1 4 1 Na[+] 1 o-Phtalate[2-] 0.7 25 Na(Prop)(aq) organique Na(CH3CH2CO2)(aq) -1 H[+] 1 Na[+] 1 Acide propanoïque(aq) -4.8466 25 Na(Prop)2[-] organique -1 Na(CH3CH2CO2)2- 4 -2 H[+] 1 Na[+] 2 Acide propanoïque(aq) -10.0026 25 NaCH3COO(aq) organique -1 H[+] 1 Acide éthanoïque(aq) 1 Na[+] -4.8606 25 Nd(CH3COO)2[+] organique 1 4 -2 H[+] 1 Nd[3+] 2 Acide éthanoïque(aq) -4.9771 25 Nd(CH3COO)3(aq) organique -3 H[+] 1 Nd[3+] 3 Acide éthanoïque(aq) -8.2976 25 NdCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Nd[3+] -2.0891 25 NH4(CH3COO)2[-] organique -1 4 -1 H[+] 1 NH3(aq) 2 Acide éthanoïque(aq) -0.1928 25 NH4CH3COO(aq) organique 1 Acide éthanoïque(aq) 1 NH3(aq) 4.6964 25 Ni(Acac)2(aq) organique complexe 1 Ni[2+] 2 Acétylacétonate[-] 9.8 25 Ni(Acac)3[-] organique complexe -1 0 4 1 Ni[2+] 3 Acétylacétonate[-] 11.9 25 Ni(Acac)[+] organique complexe 1 0 4 1 Ni[2+] 1 Acétylacétonate[-] 5.5 25 Ni(Ala)2(aq) organique Ni(C3H6NO2)2(aq) -2 H[+] 1 Ni[2+] 2 Alanine(aq) -10.2291 25 Ni(Ala)[+] organique 1 Ni(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Ni[2+] -4.5249 25 Ni(Alan)2(aq) organique Ni(C3H6NO2)2(aq) -2 H[+] 1 Ni[2+] 2 Alanine(aq) -10.2291 25 Ni(Alan)[+] organique 1 Ni(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Ni[2+] -4.5249 25 Ni(But)2(aq) organique Ni(CH3(CH2)2CO2)2(aq) -2 H[+] 1 Ni[2+] 2 Acide butanoïque(aq) -6.7459 25 Ni(But)[+] organique 1 Ni(CH3(CH2)2CO2)+ 4 -1 H[+] 1 Acide butanoïque(aq) 1 Ni[2+] -3.0676 25 Ni(C2O4)2[2-] organique -2 3 1 Ni[2+] 2 Oxalate[2-] 7.2 25 Ni(C2O4)3[4-] organique complexe -4 0 4 1 Ni[2+] 3 Oxalate[2-] 8.5 25 Ni(CH3COO)2(aq) organique 1 Ni[2+] 2 Ethanoate(aq) 1.25 25 Ni(Citrate)[-] organique complexe -1 0 4 1 Ni[2+] 1 Citrate[3-] 14.3 25 Ni(dipyridine)2[2+] organique complexe 2 0 4 1 Ni[2+] 2 2,2' dipyridine 13.9 25 Ni(dipyridine)3[2+] organique complexe 2 0 4 1 Ni[2+] 3 2,2' dipyridine 20.1 25 Ni(dipyridine)[2+] organique complexe 2 0 4 1 Ni[2+] 1 2,2' dipyridine 7.1 25 Ni(EDTA)[2-] organique -2 Ni((O2CCH2)(O2CCH2)NCH2CH2N(CH2CO2)(CH2CO2))[2-] 3 1 Ni[2+] 1 EDTA[4-] 18.6 25 Ni(For)2(aq) organique Ni(CHO2)2(aq) -2 H[+] 1 Ni[2+] 2 Acide méthanoïque(aq) -4.4061 25 Ni(For)[+] organique 1 Ni(CHO2)+ 4 -1 H[+] 1 Acide méthanoïque(aq) 1 Ni[2+] -1.8831 25 Ni(Gly)2(aq) organique Ni(C2H4NO2)2(aq) -2 H[+] 1 Ni[2+] 2 Glycine(aq) -8.5065 25 Ni(Gly)[+] organique 1 Ni(C2H4NO2)+ 4 -1 H[+] 1 Glycine(aq) 1 Ni[2+] -3.6482 25 Ni(Glyc)2(aq) organique Ni(CH3OCO2)2(aq) -2 H[+] 1 Ni[2+] 2 Acide glycolique(aq) -3.657 25 Ni(Glyc)[+] organique 1 Ni(CH3OCO2)+ 4 -1 H[+] 1 Acide glycolique(aq) 1 Ni[2+] -1.5738 25 Ni(H2Citrate)[+] organique complexe 1 0 04 1 Ni[2+] 1 H[+] 1 HCitrate[2-] 9 25 Ni(HCitrate)(aq) organique complexe 1 Ni[2+] 1 HCitrate[2-] 4.8 25 Ni(Lac)2(aq) organique Ni(CH3CH2OCO2)2(aq) -2 H[+] 1 Ni[2+] 2 Acide lactique(aq) -4.7961 25 Ni(Lac)[+] organique 1 Ni(CH3CH2OCO2)+ 4 -1 H[+] 1 Acide lactique(aq) 1 Ni[2+] -2.2731 25 Ni(Nta)[-] organique complexe -1 0 4 1 Ni[2+] 1 Nta[3-] 11.2 25 Ni(o-phénantroline)2[2+] organique complexe 2 0 4 2 o-phénantroline 1 Ni[2+] 17.1 25 Ni(o-phénantroline)3[2+] organique complexe 2 0 4 3 o-phénantroline 1 Ni[2+] 24.8 25 Ni(o-phénantroline)[2+] organique complexe 2 0 4 1 o-phénantroline 1 Ni[2+] 8.8 25 Ni(Prop)2(aq) organique Ni(CH3CH2CO2)2(aq) -2 H[+] 1 Ni[2+] 2 Acide propanoïque(aq) -7.4532 25 Ni(Prop)[+] organique 1 Ni(CH3CH2CO2)+ 4 -1 H[+] 1 Ni[2+] 1 Acide propanoïque(aq) -3.4561 25 Ni(salicylate)2(aq) organique 0 0 4 1 Ni[2+] 2 Salicylate[-] 11.8 25 Ni(salicylate)[+] organique 1 0 4 1 Ni[2+] 1 Salicylate[-] 7 25 NiC2O4(aq) organique 1 Ni[2+] 1 Oxalate[2-] 4.1 25 NiCH3COO[+] organique 1 0 4 1 Ni[2+] 1 Ethanoate(aq) 0.7 25 NiEn2[2+] organique 2 Ni(NH2CH2CH2NH2)2[2+] 3 1 Ni[2+] 2 En 14.06 25 NiEn3[2+] organique 2 Ni(NH2CH2CH2NH2)3[2+] 3 1 Ni[2+] 3 En 18.59 25 NiEn[2+] organique 2 Ni(NH2CH2CH2NH2)[2+] 3 1 Ni[2+] 1 En 7.66 25 Nonanal(aq) organique aldehyd_cetone CH3(CH2)7CHO -0.5 O2(aq) 1 Acide éthanoïque(aq) 3.5 Ethylene(aq) -7.742 25 Nonanoate[-] organique acide -1 C9H17O2- 4 -1 H[+] 1 Acide nonanoïque(aq) -4.728 25 Nta[3-] organique acide -3 0 4 1 HNta[2-] -1 H[+] -10.7 25 o-Cresol(aq) organique alcool C7H8O(aq) 0.5 Ethylene(aq) 1 Phenol(aq) 7.5023 25 o-Phtalate[2-] organique acide -2 C8O4H4 4 -5 H2O 8 HCO3[-] -7.5 O2(aq) 6 H[+] -542.834 25 o-phénantroline organique benzene -9 H2O 14 H[+] -16.5 O2(aq) 12 HCO3[-] 2 NO3[-] 0 25 o-Toluate[-] organique acide -1 C8H7O2- 4 -1 H[+] 1 Acide o-toluique(aq) -3.9069 25 Octanal(aq) organique aldehyd_cetone CH3(CH2)6CHO -0.5 O2(aq) 1 Acide éthanoïque(aq) 3 Ethylene(aq) -13.2506 25 Octanoate[-] organique acide -1 C7H15COO- 4 -1 H[+] 1 Acide octanoïque(aq) -4.897 25 Oxalate[2-] organique acide -2 74.11 C2O4-- 4 -1 H[+] 1 H-Oxalate[-] -4.2566 25 Oxinate organique acide -1 0 1 Oxine -1 H[+] -9.9 25 Oxine organique 8-hydroxyquinoléine acide -6 H2O 10 H[+] -11.5 O2(aq) 9 HCO3[-] 1 NO3[-] 0 25 OxineH[+] organique acide 1 0 1 Oxine 1 H[+] 5 25 p-Cresol(aq) organique alcool C7H8O(aq) 0.5 Ethylene(aq) 1 Phenol(aq) 6.696 25 Pb(Acac)2(aq) organique complexe 1 Pb[2+] 2 Acétylacétonate[-] 6.6 25 Pb(Acac)[+] organique complexe 1 0 4 1 Pb[2+] 1 Acétylacétonate[-] 4.2 25 Pb(Ala)2(aq) organique Pb(C3H6NO2)2(aq) -2 H[+] 1 Pb[2+] 2 Alanine(aq) -12.4897 25 Pb(Ala)[+] organique 1 Pb(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Pb[2+] -5.3649 25 Pb(Alan)2(aq) organique Pb(C3H6NO2)2(aq) -2 H[+] 1 Pb[2+] 2 Alanine(aq) -12.4904 25 Pb(Alan)[+] organique 1 Pb(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Pb[2+] -5.3649 25 Pb(But)2(aq) organique Pb(CH3(CH2)2CO2)2(aq) -2 H[+] 1 Pb[2+] 2 Acide butanoïque(aq) -6.6359 25 Pb(But)[+] organique 1 Pb(CH3(CH2)2CO2)+ 4 -1 H[+] 1 Acide butanoïque(aq) 1 Pb[2+] -3.0075 25 Pb(CH3COO)2(aq) organique 1 Pb[2+] 2 Ethanoate(aq) 3.3 25 Pb(Citrate)[-] organique complexe -1 0 4 1 Pb[2+] 1 Citrate[3-] 12.3 25 Pb(dipyridine)[2+] organique complexe 2 0 4 1 Pb[2+] 1 2,2' dipyridine 3 25 Pb(EDTA)[2-] organique -2 Pb((O2CCH2)(O2CCH2)NCH2CH2N(CH2CO2)(CH2CO2))[2-] 3 1 Pb[2+] 1 EDTA[4-] 18 25 Pb(For)2(aq) organique Pb(CHO2)2(aq) -2 H[+] 1 Pb[2+] 2 Acide méthanoïque(aq) -4.3658 25 Pb(For)[+] organique 1 Pb(CHO2)+ 4 -1 H[+] 1 Acide méthanoïque(aq) 1 Pb[2+] -1.8633 25 Pb(Gly)2(aq) organique Pb(C2H4NO2)2(aq) -2 H[+] 1 Pb[2+] 2 Glycine(aq) -10.6968 25 Pb(Gly)[+] organique 1 Pb(C2H4NO2)+ 4 -1 H[+] 1 Glycine(aq) 1 Pb[2+] -4.3086 25 Pb(Glyc)2(aq) organique Pb(CH3OCO2)2(aq) -2 H[+] 1 Pb[2+] 2 Acide glycolique(aq) -3.5873 25 Pb(Glyc)[+] organique 1 Pb(CH3OCO2)+ 4 -1 H[+] 1 Acide glycolique(aq) 1 Pb[2+] -1.5335 25 Pb(H2Citrate)[+] organique complexe 1 0 04 1 Pb[2+] 1 H[+] 1 HCitrate[2-] 11.2 25 Pb(HCitrate)(aq) organique complexe 1 Pb[2+] 1 HCitrate[2-] 5.2 25 Pb(Lac)2(aq) organique Pb(CH3CH2OCO2)2(aq) -2 H[+] 1 Pb[2+] 2 Acide lactique(aq) -3.676 25 Pb(Lac)[+] organique 1 Pb(CH3CH2OCO2)+ 4 -1 H[+] 1 Acide lactique(aq) 1 Pb[2+] -1.5833 25 Pb(Nta)[-] organique complexe -1 0 4 1 Pb[2+] 1 Nta[3-] 11.8 25 Pb(o-Phtalate)(aq) organique complexe 1 Pb[2+] 1 o-Phtalate[2-] 3.4 25 Pb(o-Phtalate)2[2-] organique complexe -2 0 4 1 Pb[2+] 2 o-Phtalate[2-] 3.4 25 Pb(o-phénantroline)2[2+] organique complexe 2 0 4 2 o-phénantroline 1 Pb[2+] 7.5 25 Pb(o-phénantroline)3[2+] organique complexe 2 0 4 3 o-phénantroline 1 Pb[2+] 9 25 Pb(o-phénantroline)[2+] organique complexe 2 0 4 1 o-phénantroline 1 Pb[2+] 5.1 25 Pb(Prop)2(aq) organique Pb(CH3CH2CO2)2(aq) -2 H[+] 1 Pb[2+] 2 Acide propanoïque(aq) -6.1631 25 Pb(Prop)[+] organique 1 Pb(CH3CH2CO2)+ 4 -1 H[+] 1 Pb[2+] 1 Acide propanoïque(aq) -2.5567 25 Pb(tartrate)(aq) organique complexe 1 Pb[2+] 1 Tartrate[2-] 3.8 25 PbCH3COO[+] organique 1 0 4 1 Pb[2+] 1 Ethanoate(aq) 1.9 25 Pd(EDTA)[2-] organique complexe -2 0 4 1 Pd[2+] 1 EDTA[4-] 18.5 25 Pentanal(aq) organique aldehyd_cetone CH3(CH2)3CHO -0.5 O2(aq) 1 Acide éthanoïque(aq) 1.5 Ethylene(aq) -29.7176 25 Phenol(aq) organique alcool C6H5OH -7 O2(aq) 6 H[+] 6 HCO3[-] -3 H2O -503.643 25 Phenolate organique benzene -1 0 C6H5O[-] 1 Phenol(aq) -1 H[+] -9.9 25 Phenylalanine(aq) organique aminoacide C9H11NO2 -3.5 NH3(aq) -3.25 O2(aq) -0.5 H2O 4.5 Glycine(aq) -228.293 25 Pimelate[2-] organique acide -2 C7H10O4-- 4 -1 H[+] 1 H-Pimelate[-] -5.4243 25 Pr(CH3COO)2[+] organique 1 4 -2 H[+] 1 Pr[3+] 2 Acide éthanoïque(aq) -4.8525 25 Pr(CH3COO)3(aq) organique -3 H[+] 1 Pr[3+] 3 Acide éthanoïque(aq) -8.2023 25 PrCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Pr[3+] -2.0451 25 Propanal(aq) organique aldehyd_cetone CH3CH2CHO -0.5 O2(aq) 0.5 Ethylene(aq) 1 Acide éthanoïque(aq) -39.7891 25 Propane(aq) organique alc C3H8 -0.5 H2O 0.25 O2(aq) 1.5 Ethane(aq) 18.667 25 Propanoate[-] organique acide -1 C2H5COO- 4 -1 H[+] 1 Acide propanoïque(aq) -4.8892 25 Pu(Acac)2[2+] organique complexe 2 0 4 1 Pu[4+] 2 Acétylacétonate[-] 19.7 25 Pu(Acac)3[+] organique complexe 1 0 4 1 Pu[4+] 3 Acétylacétonate[-] 28.1 25 Pu(Acac)4(aq) organique complexe 1 Pu[4+] 4 Acétylacétonate[-] 34.1 25 Pu(Acac)[3+] organique complexe 3 0 4 1 Pu[4+] 1 Acétylacétonate[-] 10.6 25 Pu(EDTA) organique complexe 1 Pu[4+] 1 EDTA[4-] 26 25 Pu(EDTA)[-] organique complexe -1 0 4 1 Pu[3+] 1 EDTA[4-] 26 25 PuO2(EDTA)[3-] organique complexe -3 0 4 1 PuO2[+] 1 EDTA[4-] 12.9 25 Ra(CH3COO)2(aq) organique -2 H[+] 1 Ra[2+] 2 Acide éthanoïque(aq) -7.9018 25 Ra(HCitrate)(aq) organique complexe 1 Ra[2+] 1 HCitrate[2-] 2.1 25 Ra(tartrate)(aq) organique complexe 1 Ra[2+] 1 Tartrate[2-] 1 25 RaCH3COO[+] organique 1 4 -1 H[+] 1 Acide éthanoïque(aq) 1 Ra[2+] -3.709 25 Rb(CH3COO)2[-] organique -1 4 -2 H[+] 1 Rb[+] 2 Acide éthanoïque(aq) -9.7636 25 Rb(EDTA)[3-] organique complexe -3 0 4 1 Rb[+] 1 EDTA[4-] 0.6 25 RbCH3COO(aq) organique -1 H[+] 1 Acide éthanoïque(aq) 1 Rb[+] -4.7279 25 Salicylate[-] organique acide -1 0 C6H4(OH)(COO-) 4 1 Acide salicylique -1 H[+] -3 25 Sc(CH3COO)2[+] organique 1 4 -2 H[+] 1 Sc[3+] 2 Acide éthanoïque(aq) -3.7237 25 Sc(CH3COO)3(aq) organique -3 H[+] 1 Sc[3+] 3 Acide éthanoïque(aq) -6.6777 25 Sc(EDTA)[-] organique complexe -1 0 4 1 Sc[3+] 1 EDTA[4-] 23.1 25 ScCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Sc[3+] -1.4294 25 Sebacate[2-] organique acide -2 C10H16O4-- 4 -1 H[+] 1 H-Sebacate[-] -5.425 25 Serine(aq) organique aminoacide C3H7NO3 -0.5 NH3(aq) -0.25 O2(aq) 0.5 H2O 1.5 Glycine(aq) -27.0977 25 Sm(CH3COO)2[+] organique 1 4 -2 H[+] 1 Sm[3+] 2 Acide éthanoïque(aq) -4.7132 25 Sm(CH3COO)3(aq) organique -3 H[+] 1 Sm[3+] 3 Acide éthanoïque(aq) -7.8798 25 SmCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Sm[3+] -1.9205 25 Sn(EDTA)[2-] organique complexe -2 0 4 1 Sn[2+] 1 EDTA[4-] 18.3 25 Sr(Ala)2(aq) organique Sr(C3H6NO2)2(aq) -2 H[+] 1 Sr[2+] 2 Alanine(aq) -19.7391 25 Sr(Ala)[+] organique 1 Sr(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Sr[2+] -9.6244 25 Sr(Alan)2(aq) organique Sr(C3H6NO2)2(aq) -2 H[+] 1 Sr[2+] 2 Alanine(aq) -19.7391 25 Sr(Alan)[+] organique 1 Sr(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Sr[2+] -9.6244 25 Sr(But)2(aq) organique Sr(CH3(CH2)2CO2)2(aq) -2 H[+] 1 Sr[2+] 2 Acide butanoïque(aq) -9.716 25 Sr(But)[+] organique 1 Sr(CH3(CH2)2CO2)+ 4 -1 H[+] 1 Acide butanoïque(aq) 1 Sr[2+] -4.6876 25 Sr(EDTA)[2-] organique complexe -2 0 4 1 Sr[2+] 1 EDTA[4-] 8.6 25 Sr(For)2(aq) organique Sr(CHO2)2(aq) -2 H[+] 1 Sr[2+] 2 Acide méthanoïque(aq) -5.2857 25 Sr(For)[+] organique 1 Sr(CHO2)+ 4 -1 H[+] 1 Acide méthanoïque(aq) 1 Sr[2+] -2.3632 25 Sr(Gly)2(aq) organique Sr(C2H4NO2)2(aq) -2 H[+] 1 Sr[2+] 2 Glycine(aq) -18.1764 25 Sr(Gly)[+] organique 1 Sr(C2H4NO2)+ 4 -1 H[+] 1 Glycine(aq) 1 Sr[2+] -8.8283 25 Sr(Glyc)2(aq) organique Sr(CH3OCO2)2(aq) -2 H[+] 1 Sr[2+] 2 Acide glycolique(aq) -5.3971 25 Sr(Glyc)[+] organique 1 Sr(CH3OCO2)+ 4 -1 H[+] 1 Acide glycolique(aq) 1 Sr[2+] -2.5237 25 Sr(HCitrate)(aq) organique complexe 1 Sr[2+] 1 HCitrate[2-] 2.8 25 Sr(Lac)2(aq) organique Sr(CH3CH2OCO2)2(aq) -2 H[+] 1 Sr[2+] 2 Acide lactique(aq) -6.0561 25 Sr(Lac)[+] organique 1 Sr(CH3CH2OCO2)+ 4 -1 H[+] 1 Acide lactique(aq) 1 Sr[2+] -2.8829 25 Sr(Prop)2(aq) organique Sr(CH3CH2CO2)2(aq) -2 H[+] 1 Sr[2+] 2 Acide propanoïque(aq) -9.653 25 Sr(Prop)[+] organique 1 Sr(CH3CH2CO2)+ 4 -1 H[+] 1 Acide propanoïque(aq) 1 Sr[2+] -4.6568 25 SrCH3COO[+] organique 1 0 4 1 Sr[2+] 1 Ethanoate(aq) 0.4 25 Suberate[2-] organique acide -2 36 C8H12O4-- 4 -1 H[+] 1 H-Suberate[-] -5.402 25 Succinate[2-] organique acide -2 58.8 C4H4O4-- 4 -1 H[+] 1 H-Succinate[-] -5.6295 25 Tartrate[2-] organique acide -2 0 -OOC-CHOH-CHOH-COO- 4 -1 H[+] 1 Hydrogénotartrate[-] -4.34 25 Tb(CH3COO)2[+] organique 1 4 -2 H[+] 1 Tb[3+] 2 Acide éthanoïque(aq) -4.9625 25 Tb(CH3COO)3(aq) organique -3 H[+] 1 Tb[3+] 3 Acide éthanoïque(aq) -8.3489 25 TbCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Tb[3+] -2.1037 25 TetraglycineH organique GLY-GLY-GLY-GLY aminoacide -OOC-CH2-NH-CO-CH2-NH-CO-CH2-NH-CO-CH2-NH3+ -3 H2O 12 H[+] -14 O2(aq) 8 HCO3[-] 4 NO3[-] 1 25 TetraglycineH2[+] organique aminoacide -2 0 HOOC-CH2-NH-CO-CH2-NH-CO-CH2-NH-CO-CH2-NH3+ 1 TetraglycineH 1 H[+] 3.24 25 Tetraglycine[-] organique aminoacide -1 0 -OOC-CH2-NH-CO-CH2-NH-CO-CH2-NH-CO-CH2-NH2 1 TetraglycineH -1 H[+] -7.97 25 Th(Acac)2[2+] organique complexe 2 0 4 1 Th[4+] 2 Acétylacétonate[-] 15.3 25 Th(Acac)3[+] organique complexe 1 0 4 1 Th[4+] 3 Acétylacétonate[-] 21.2 25 Th(Acac)4(aq) organique complexe 1 Th[4+] 4 Acétylacétonate[-] 25.1 25 Th(Acac)[3+] organique complexe 3 0 4 1 Th[4+] 1 Acétylacétonate[-] 8.3 25 Th(C2O4)4[4-] organique complexe -4 0 4 1 Th[4+] 4 Oxalate[2-] 24.5 25 Th(EDTA) organique complexe 1 EDTA[4-] 1 Th[4+] 23.2 25 Threonine(aq) organique aminoacide C4H9NO3 -1 NH3(aq) -1 O2(aq) 1 H2O 2 Glycine(aq) -79.7692 25 Ti(EDTA)[-] organique complexe -1 0 4 1 Ti[3+] 1 EDTA[4-] 21.3 25 TiO(C2O4)2[2-] organique complexe -2 0 4 1 TiO[2+] 2 Oxalate[2-] 9.9 25 TiO(EDTA)[2-] organique complexe -2 0 4 1 TiO[2+] 1 EDTA[4-] 27.3 25 TiOC2O4(aq) organique complexe 1 TiO[2+] 1 Oxalate[2-] 6.6 25 Tl(CH3COO)4[-] organique complexe -1 0 4 1 Tl[3+] 4 Ethanoate(aq) 15.4 25 Tl(EDTA)[-] organique complexe -1 0 4 1 Tl[3+] 1 EDTA[4-] 38 25 Tl(EDTA)[3-] organique complexe -3 0 4 1 Tl[+] 1 EDTA[4-] 6.5 25 Tm(CH3COO)2[+] organique 1 4 -2 H[+] 1 Tm[3+] 2 Acide éthanoïque(aq) -4.9844 25 Tm(CH3COO)3(aq) organique -3 H[+] 1 Tm[3+] 3 Acide éthanoïque(aq) -8.3783 25 TmCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Tm[3+] -2.1184 25 Toluene(aq) organique benzene C6H5CH3 -9 O2(aq) 7 H[+] 7 HCO3[-] -3 H2O -643.402 25 Trichloroéthanoate organique acide -1 0 Cl3C-COO[-] 4 1 Acide trichloroéthanoïque -1 H[+] -0.7 25 Tryptophan(aq) organique aminoacide C11H12N2O2 -3.5 NH3(aq) -3.25 O2(aq) -2.5 H2O 5.5 Glycine(aq) -226.712 25 Tyrosine(aq) organique aminoacide C9H11NO3 -3.5 NH3(aq) -2.75 O2(aq) -0.5 H2O 4.5 Glycine(aq) -199.136 25 U(Acac)2[2+] organique complexe 2 0 4 1 U[4+] 2 Acétylacétonate[-] 17 25 U(Acac)3[+] organique complexe 1 0 4 1 U[4+] 3 Acétylacétonate[-] 23.4 25 U(Acac)4(aq) organique complexe 1 U[4+] 4 Acétylacétonate[-] 29.5 25 U(Acac)[3+] organique complexe 3 0 4 1 U[4+] 1 Acétylacétonate[-] 8.6 25 U(EDTA) organique complexe 1 U[4+] 1 EDTA[4-] 25.8 25 Undecanoate[-] organique acide -1 C11H21O2- 4 -1 H[+] 1 Acide undécanoïque(aq) -4.926 25 UO2(Acac)2(aq) organique complexe 1 UO2[2+] 2 Acétylacétonate[-] 13.6 25 UO2(Acac)[+] organique complexe 1 0 4 1 UO2[2+] 1 Acétylacétonate[-] 7.4 25 UO2(CH3COO)2(aq) organique complexe 1 UO2[2+] 2 Ethanoate(aq) 4.4 25 UO2(CH3COO)3[-] organique complexe -1 0 4 1 UO2[2+] 3 Ethanoate(aq) 6.3 25 UO2(EDTA)[2-] organique complexe -2 0 4 1 UO2[2+] 1 EDTA[4-] 10.4 25 UO2(HC2O4)2(aq) organique complexe 1 UO2[2+] 2 H[+] 2 Oxalate[2-] 9.5 25 UO2(HCitrate)(aq) organique complexe 1 UO2[2+] 1 HCitrate[2-] 8.2 25 UO2(HCitrate)2[2-] organique complexe -2 0 4 1 UO2[2+] 2 HCitrate[2-] 10.8 25 UO2(salicylate)[+] organique 1 0 4 1 UO2[2+] 1 Salicylate[-] 13.4 25 UO2CH3COO[+] organique complexe 1 0 4 1 UO2[2+] 1 Ethanoate(aq) 2.4 25 UO2HC2O4[+] organique complexe 1 0 4 1 UO2[2+] 1 H[+] 1 Oxalate[2-] 6.65 25 V(EDTA)[-] organique complexe -1 0 4 1 V[3+] 1 EDTA[4-] 25.9 25 V(EDTA)[2-] organique complexe -2 0 4 1 V[2+] 1 EDTA[4-] 12.7 25 Valine(aq) organique aminoacide C5H11NO2 -2.25 O2(aq) -1.5 NH3(aq) 1.5 H2O 2.5 Glycine(aq) -161.7 25 VO(C2O4)2[2-] organique complexe -2 0 4 1 VO[2+] 2 Oxalate[2-] 12.5 25 VO(EDTA)[2-] organique complexe -2 0 4 1 EDTA[4-] 1 VO[2+] 18.8 25 VO(o-phénantroline)2[2+] organique complexe 2 0 4 2 o-phénantroline 1 VO[2+] 9.7 25 VO(o-phénantroline)[2+] organique complexe 2 0 4 1 o-phénantroline 1 VO[2+] 5.5 25 VO2(EDTA)[3-] organique complexe -3 0 4 1 EDTA[4-] 1 VO2[+] 15.5 25 Y(Acac)2[+] organique complexe 1 0 4 1 Y[3+] 2 Acétylacétonate[-] 10.2 25 Y(Acac)3(aq) organique complexe 1 Y[3+] 3 Acétylacétonate[-] 12.8 25 Y(Acac)[2+] organique complexe 2 0 4 1 Y[3+] 1 Acétylacétonate[-] 5.9 25 Y(C2O4)2[-] organique complexe -1 0 4 1 Y[3+] 2 Oxalate[2-] 8.2 25 Y(C2O4)3[3-] organique complexe -3 0 4 1 Y[3+] 3 Oxalate[2-] 9.8 25 Y(CH3COO)2[+] organique 1 4 -2 H[+] 1 Y[3+] 2 Acide éthanoïque(aq) -4.9844 25 Y(CH3COO)3(aq) organique -3 H[+] 1 Y[3+] 3 Acide éthanoïque(aq) -8.3783 25 Y(EDTA)[-] organique complexe -1 0 4 1 EDTA[4-] 1 Y[3+] 18.2 25 Yb(But)2[+] organique 1 Yb(CH3(CH2)2CO2)2+ 4 -2 H[+] 1 Yb[3+] 2 Acide butanoïque(aq) -5.046 25 Yb(But)[2+] organique 2 Yb(CH3(CH2)2CO2)++ 4.5 -1 H[+] 1 Acide butanoïque(aq) 1 Yb[3+] -2.1382 25 Yb(CH3COO)2[+] organique 1 4 -2 H[+] 1 Yb[3+] 2 Acide éthanoïque(aq) -5.131 25 Yb(CH3COO)3(aq) organique -3 H[+] 1 Yb[3+] 3 Acide éthanoïque(aq) -8.5688 25 Yb(For)2[+] organique 1 Yb(CHO2)2+ 4 -2 H[+] 1 Yb[3+] 2 Acide méthanoïque(aq) -2.8858 25 Yb(For)[2+] organique 2 Yb(CHO2)++ 4.5 -1 H[+] 1 Acide méthanoïque(aq) 1 Yb[3+] -1.0533 25 Yb(Prop)2[+] organique 1 Yb(CH3CH2CO2)2+ 4 -2 H[+] 1 Yb[3+] 2 Acide propanoïque(aq) -5.3927 25 Yb(Prop)[2+] organique 2 Yb(CH3CH2CO2)++ 4.5 -1 H[+] 1 Acide propanoïque(aq) 1 Yb[3+] -2.3266 25 YbCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Yb[3+] -2.199 25 YC2O4[+] organique complexe 1 0 4 1 Y[3+] 1 Oxalate[2-] 5.1 25 YCH3COO[2+] organique 2 4.5 -1 H[+] 1 Acide éthanoïque(aq) 1 Y[3+] -2.1184 25 Z-C4O4H2[2-] organique acide -2 0 0 1 Z-C4O4H3[-] -1 H[+] -6.59 25 Z-C4O4H3[-] organique acide -1 0 0 1 Acide maléique -1 H[+] -1.83 25 Zn(Acac)2(aq) organique complexe 1 Zn[2+] 2 Acétylacétonate[-] 8.2 25 Zn(Acac)[+] organique complexe 1 0 4 1 Zn[2+] 1 Acétylacétonate[-] 4.6 25 Zn(Ala)2(aq) organique Zn(C3H6NO2)2(aq) -2 H[+] 1 Zn[2+] 2 Alanine(aq) -11.4994 25 Zn(Ala)[+] organique 1 Zn(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Zn[2+] -5.4147 25 Zn(Alan)2(aq) organique Zn(C3H6NO3)2(aq) -2 H[+] 1 Zn[2+] 2 Alanine(aq) -11.4994 25 Zn(Alan)[+] organique 1 Zn(C3H6NO2)+ 4 -1 H[+] 1 Alanine(aq) 1 Zn[2+] -5.4147 25 Zn(But)2(aq) organique Zn(CH3(CH2)2CO2)2(aq) -2 H[+] 1 Zn[2+] 2 Acide butanoïque(aq) -7.2956 25 Zn(But)[+] organique 1 Zn(CH3(CH2)2CO2)+ 4 -1 H[+] 1 Acide butanoïque(aq) 1 Zn[2+] -3.3682 25 Zn(C2O4)2[2-] organique -2 3 1 Zn[2+] 2 Oxalate[2-] 6 25 Zn(CH3COO)2(aq) organique 1 Zn[2+] 2 Ethanoate(aq) 2.1 25 Zn(Citrate)[-] organique complexe -1 0 4 1 Zn[2+] 1 Citrate[3-] 11.4 25 Zn(dipyridine)2[2+] organique complexe 2 0 4 1 Zn[2+] 2 2,2' dipyridine 9.8 25 Zn(dipyridine)3[2+] organique complexe 2 0 4 1 Zn[2+] 3 2,2' dipyridine 13.5 25 Zn(dipyridine)[2+] organique complexe 2 0 4 1 Zn[2+] 1 2,2' dipyridine 5.4 25 Zn(EDTA)[2-] organique -2 Zn((O2CCH2)(O2CCH2)NCH2CH2N(CH2CO2)(CH2CO2))[2-] 3 1 Zn[2+] 1 EDTA[4-] 16.7 25 Zn(For)2(aq) organique Zn(CHO2)2(aq) -2 H[+] 1 Zn[2+] 2 Acide méthanoïque(aq) -4.5857 25 Zn(For)3[-] organique -1 Zn(CHO2)3- 4 -3 H[+] 1 Zn[2+] 3 Acide méthanoïque(aq) -10.7706 25 Zn(For)4[2-] organique -2 Zn(CHO2)4-- 4 -4 H[+] 1 Zn[2+] 4 Acide méthanoïque(aq) -14.2746 25 Zn(For)[+] organique 1 Zn(CHO2)+ 4 -1 H[+] 1 Acide méthanoïque(aq) 1 Zn[2+] -1.9828 25 Zn(Gly)2(aq) organique Zn(C2H4NO2)2(aq) -2 H[+] 1 Zn[2+] 2 Glycine(aq) -9.7468 25 Zn(Gly)[+] organique 1 Zn(C2H4NO2)+ 4 -1 H[+] 1 Glycine(aq) 1 Zn[2+] -4.398 25 Zn(Glyc)2(aq) organique Zn(CH3OCO2)2(aq) -2 H[+] 1 Zn[2+] 2 Acide glycolique(aq) -3.4371 25 Zn(Glyc)[+] organique 1 Zn(CH3OCO2)+ 4 -1 H[+] 1 Acide glycolique(aq) 1 Zn[2+] -1.4536 25 Zn(H2Citrate)[+] organique complexe 1 0 04 1 Zn[2+] 1 H[+] 1 HCitrate[2-] 8.7 25 Zn(HC2O4)2(aq) organique complexe 2 H[+] 1 Zn[2+] 2 Oxalate[2-] 10.8 25 Zn(HCitrate)(aq) organique complexe 1 Zn[2+] 1 HCitrate[2-] 4.5 25 Zn(Htartrate)[+] organique complexe 1 0 4 1 Zn[2+] 1 H[+] 1 Tartrate[2-] 4.5 25 Zn(Lac)2(aq) organique Zn(CH3CH2OCO2)2(aq) -2 H[+] 1 Zn[2+] 2 Acide lactique(aq) -3.9758 25 Zn(Lac)[+] organique 1 Zn(CH3CH2OCO2)+ 4 -1 H[+] 1 Acide lactique(aq) 1 Zn[2+] -1.6632 25 Zn(Nta)[-] organique complexe -1 0 4 1 Zn[2+] 1 Nta[3-] 10.6 25 Zn(o-phénantroline)2[2+] organique complexe 2 0 4 2 o-phénantroline 1 Zn[2+] 12.5 25 Zn(o-phénantroline)3[2+] organique complexe 2 0 4 3 o-phénantroline 1 Zn[2+] 17 25 Zn(o-phénantroline)[2+] organique complexe 2 0 4 1 o-phénantroline 1 Zn[2+] 6.4 25 Zn(Prop)2(aq) organique Zn(CH3CH2CO2)2(aq) -2 H[+] 1 Zn[2+] 2 Acide propanoïque(aq) -7.8029 25 Zn(Prop)[+] organique 1 Zn(CH3CH2CO2)+ 4 -1 H[+] 1 Acide propanoïque(aq) 1 Zn[2+] -3.6467 25 Zn(salicylate)[+] organique 1 0 4 1 Zn[2+] 1 Salicylate[-] 6.9 25 Zn(tartrate)(aq) organique complexe 1 Zn[2+] 1 Tartrate[2-] 2.4 25 ZnC2O4(aq) organique 1 Zn[2+] 1 Oxalate[2-] 3.7 25 ZnCH3COO[+] organique 1 0 4 1 Zn[2+] 1 Ethanoate(aq) 1.3 25 ZnEn2[2+] organique 2 Zn(NH2CH2CH2NH2)2[2+] 3 1 Zn[2+] 2 En 10.37 25 ZnEn3[2+] organique 2 Zn(NH2CH2CH2NH2)3[2+] 3 1 Zn[2+] 3 En 12.08 25 ZnEn[2+] organique 2 Zn(NH2CH2CH2NH2)[2+] 3 1 Zn[2+] 2 En 5.71 25 ZnHC2O4[+] organique complexe 1 0 4 1 H[+] 1 Zn[2+] 1 Oxalate[2-] 5.6 25 Zr(Acac)2[2+] organique complexe 2 0 4 1 Zr[4+] 2 Acétylacétonate[-] 16 25 Zr(Acac)3[+] organique complexe 1 0 4 1 Zr[4+] 3 Acétylacétonate[-] 23.2 25 Zr(Acac)4(aq) organique complexe 1 Zr[4+] 4 Acétylacétonate[-] 30.1 25 Zr(Acac)[3+] organique complexe 3 0 4 1 Zr[4+] 1 Acétylacétonate[-] 8.4 25 Zr(EDTA) organique complexe 1 EDTA[4-] 1 Zr[4+] 29 25 (HOOC)-(CH2)-(CH)-(NH3+)(COOH) organique Acide conjugué acide aspartique pour COOH aminoacide 1 0 1 Acide aspartique(aq) 1 H[+] 1.88 25 (COO-)-(CH2)-(CH)-(NH3+)(COO-) organique Base conjuguée de l'acide aspartique pour COOH aminoacide -1 0 0 1 Acide aspartique(aq) -1 H[+] -3.65 25 (COO-)-(CH2)-(CH)-(NH2)(COO-) organique Base conjugué par NH3+ de la base conjuguée de l'acide aspartique pour COOH aminoacide -2 0 1 (COO-)-(CH2)-(CH)-(NH3+)(COO-) -1 H[+] -9.6 25 Co(o-phénantroline)3[3+] organique complexe 3 0 3 o-phénantroline 1 Co[3+] 44.4 25 Acide sulfamique aqueux Acide aminosulfonique molecule HOSO2NH2 3 H[+] -2 O2(aq) 1 NO3[-] 1 SO4[2-] 0 25 Ion sulfamate aqueux ion -1 0 –OSO2NH2 1 Acide sulfamique -1 H[+] -1.05 25 Acide gluconique organique Acide 2,3,4,5,6-pentahydroxyhexanoïque acide HOCH2(CHOH)4COOH 6 H[+] -5.5 O2(aq) 6 HCO3[-] 0 25 Ion gluconate organique acide -1 0 HOCH2(CHOH)4COO- 1 Acide gluconique -1 H[+] -3.86 25 [Zn(Cit)(OH)] 2- aqueux complexe -2 0 [Zn(Cit)(OH)] 2- 1 Zn(Citrate)[-] 1 OH[-] 8.1 25 Mannitol organique hexane-1,2,3,4,5,6-hexol alcool C6H14O6 1 H2O 6 H[+] -6.5 O2(aq) 6 HCO3[-] 0 25 BMa2[-] organique Complexe borate mannitol complexe -1 0 -2 H2O 1 BO2[-] 2 Mannitol 4.7 25 Glycérol organique alcool HOH2C–CHOH–CH2OH 1 H2O 3 H[+] -3.5 O2(aq) 3 HCO3[-] 0 25 Butylammonium organique amid_amin 1 0 CH3(CH2)3NH3[+] 1 1-Butanamine(aq) 1 H[+] 10.6 25 dozzaqueux-3.51/historique.html0000750000175000017500000003726713147330070017154 0ustar georgeskgeorgesk historique_dozzzaqueux Historique des versions

3.51 du 13/07/2017

- ajout de l'ion butylammonium dans la base
- modification du code pour compatibilit de compilation sous Lazarus 1.8

3.50 du 30/06/2016

- ajout de la possibilit de mettre les lgendes des courbes dans un encadr positionnable
- modification du code pour rsoudre un problme de compilation sous Lazarus 1.6

3.42 du 24/10/2015

- correction d'un bug empchant le fonctionnement normal lorsque le dossier d'installation contient des caractres accentus

3.41 du 16/03/2015

- correction d'un bug qui empchait un export correct de certains graphes

3.40 du 09/05/2014


- modification du systme de graduations afin d'avoir uniquement des multiples de 1, 2, 5.
- augmentation de la taille des points reprsentatifs l'imprimante (trop petits jusque l)


3.35 du 07/05/2014

- ajout dans la base des acides et bases drivs de l'acide aspartique
- correction des bugs de saisie pour la version OSX dans la fentre des formules brutes et celle des fonctions
- la fentre de trac se redimensionne maintenant en mme temps que la fentre


3.33 du 01/12/2013

- correction du bug de refus d'ouverture ou d'enregistrement depuis un dossier comprenant des caractres accentus


3.32 du 23/11/2013

- correction du bug d'export des rsultats bruts au format regressi
- prise en compte des caractres accentus dans le tri des bases
- possibilit de trier les bases par colonne en cliquant en haut de la colonne
- export des rsultats: sparation par menu entre export csv et export regressi, et export par dfaut dans le repertoire perso de simulation
- splashscreen compatible avec la compilation sous lazarus 1.0 sous OSX
- dans les saisies numriques, remplacement automatique de la virgule par le point dcimal
- modif du 
rpertoire d'accueil des dosages perso pour qu'il ne soit pas cach par dfaut sous linux et OSX:
/home/${USER}/MesDosages sous linux
Mes Documents\MesDosages sous windows
/Users/user/MesDosages sous Mac OSX
- correction d'un bug de dossier de chargement ou de sauvegarde lorsqu'on change de repertoire


3.31 du 11/11/2013
- ajout de l'ion phnolate dans la base
-correction de la fentre d'lectroneutralit qui tait noire sous OSX

3.30 du 23/08/2012
- ajout bouton "dilution" qui permet au choix de multiplier toutes les concentrations, ou d'ajouter de l'eau, ou d'imposer le volume total (avec recalcul des concentrations initiales, ce que ne fait pas la saisie "volume initial").
- H[+] et OH[-] plac en premiers dans la grille des acides-bases
- Modification des rpertoires:
    le rpertoire personnel de configuration de dozzzaqueux est maintenant  :
/home/${USER}/.config/dozzzaqueux sous linux
%appdata%\dozzzaqueux sous windows
/Users/user/.config/dozzzaqueux sous Mac OSX
le rpertoire d'accueil des dosages perso est
/home/${USER}/.config/dozzzaqueux/MesDosages sous linux
Mes Documents\MesDosages sous windows
/Users/user/.config/dozzzaqueux/MesDosages sous Mac OSX


3.21 du 02/10/2011

- correction bug de dcalage d'affichage dans la version linux
- amlioration prise en charge anciens fichiers .doz non encods en UTF8
- possibilit de copier dans le presse-papier le contenu de la fentre d'affichage des rsultats pour un point particulier
- correction bug boutons x10 et /10 quand aucune espce n'tait saisie

3.20 du 04/07/2011

- correction bug: limite infrieure pas non utilise en pas adaptatif
- correction bug: lors d'un trac avec utilisation des drives puis d'une suppression du calcul des drives, les grandeurs calcules utilisant les drives n'taient pas supprimes
- correction bug version windows: le bas de la fentre tait parfois masqu par la barre des taches
- correction bug: le curseur ne se mettait pas en fin de ligne dans l'diteur de saisie de formule brute
- correction bug version windows: l'icne avait disparu
- ajout d'un bouton "abandon" dans la fentre de saisie des expressions

3.10 du 28/02/2010
- ajout des indicateurs colors: la couleur de l'indicateur peut tre trace verticalement selon le pH ou horizontalement selon le volume; la bande peut tre deplace et sa taille modifie
- correction d'un bug: le pas adaptatif ne fonctionnait plus


3.06 du 02/09/2009

- correction d'un bug: fentre de recherche par identifiant vide pour la burette

3.05 du 22/08/2009
- correction d'un bug dans la lecture de fichier rw3 pour superposition

3.04 du 18/08/2009
- possibilit de choisir la taille de l'image lors de l'export du graphe en PNG et JPG
-correction d'un bug dans certaines boites de dialogue qui n'affichaient pas "OK"
-amlioration de l'adaptation des tailles de police aux duffrentes plateformes

3.03 du 10/08/2009
- 1ere version stable crite en Lazarus
- correction de quelques bugs
- les fichiers de la base  de donne et les fichiers d'exemple ont t rencods en UTF-8 afin d'tre pleinement multi-plateforme; attention, si vous avez des fichiers exemples des anciennes versions, il faut imprativement les transformer en UTF-8 (pour cela, il suffit de les ouvrir dans le logiciel gratuit Notepad++; faire Format, Encoder en ITF-8 (sans BOM), et de sauver).

2.5 du  27/04/2008
-ajout du calcul des potentiels redox (calcul purement thermodynamique (pas de cintique,  de potentiel mixte), pas de ddp interfaciale)
-correction d'un bug lorsque un mtal figurait dans le bcher

2.0b1 du 18/04/2008:
-ajout du calcul des drives des concentrations/volume vers
-ajout d'exemples avec comparaison formule de Henderson (facilit par l'ajout de fonctions sup, inf, nansup, naninf, nanin, nanout)
- possibilit de lancer une simulation en ligne de commande (Linux et Windows) et s'associer les fichiers .doz avec Dozzzaqueux (Windows)

1.04 du 15/12/2006:
-correction d'un bug dans la saisie des quantits de matire en g et en g/L


1.03 du 13/09/2006:

-correction d'un bug dans la slection d'incrment des valeurs pour un faisceau

1.02 du 09/09/2006:
-possibilit de superposer les simulations effectues depuis le dernier lancement de Dozzzaqueux sans les sauvegarder sur disque
-pour le mode faisceau, les couleurs sont en dgrad pour mieux les reprer
-ajout de boutons pour multiplier et diviser par 10 les concentrations dans le bacher et la burette

08/09/2006: l'installateur pour Windows a t modifi, celui en ligne ne fonctionnait pas sous Windows 98; la faute un patch de Delphi; avis ceux qui voudraient recompiler Dozzzaqueux: il faut patcher Delphi 7 Pro avec le "Delphi 7 VisualCLX patch" qu'on trouve sur Internet, mais en version 3.7: la 3.10 empche(chez moi du moins...)  l'application compile de tourner sous Windows 98.
 
[Mise jour du 08/09/2006: la version en ligne ne fonctionnait pas sous Windows 98 !]
1.01 du 22/08/2006:
-achvement de l'ajout dans la base de tous les complexes trouvs dans la littrature
-correction d'un bug mineur de calcul

1.00 du 15/08/2006:
-ajout de la possibilit de slectionner une espce par identifiant et par formule brute partielle
-modification de l'algorithme de calcul des concentrations en prsence de solides: le nouveau est peine plus lent mais plus efficace
-modifications importantes dans la base de donne: les solides portent systmatiquement la terminaison (s) pour les reprer plus facilement; beaucoup de noms peu explicites de solides ont t changs pour plus de clart (en consquence les fichiers .doz obtenus avec les versions prcdentes peuvent ne pas fonctionner avec celle-ci); poursuite de l'entre des complexes; il en reste encore entrer...
- amliorations cosmtiques dans Dozzzaqueux
-ajout de fonctionnalits dans ModifBase

1.0 bta 2 du 29/04/2006:
-ajout de la possibilit d'quilibrage automatique des charges
-ajout de la possibilit d'arrter les calculs par appui sur la touche Esc
-ajout de complexes dans la base de donnes avec l'ion fluor comme ligand (il reste des complexes entrer dans la base: des amateurs ?)
-correction d'un bug dans modifbase dans le cas o il n'y a pas de valeur de rayon quivalent pour Debye et Hckel
-ajout de l'exemple du dosage des ions Hg(II) par les ions cyanure

1.0 bta 1:
-ajout du logiciel "Modifbase" qui permet de modifier la base de donnes
-contrle d'lectroneutralit
-possibilit de modifier les conductivit molaires quivalentes temporairement dans une session Dozzzaqueux  (et dfinitivement avec Modifbase)
-correction d'un bug qui pouvait empcher l'afffichage des courbes si le titre tait trop large

0.995: correction d'un bug qui pouvait bloquer les calculs en prsence de solides; modification du format de la base de donnes; modification du script de lancement de la version Linux (voir remarque ci-dessous)

0.98: ajout du support du modle de Debye et Hckel pour les activits, et de l'utilisation directe des activits dans les tracs.
0.975: suppression d'un bug dans le chargement des fichiers d'exprience au format rw3 issus de Acquichimie
0.97: ajouts de conductivits dans la base de donnes; amlioration de l'algorithme de calcul pour volume vers nul
0.96: ajout du support du calcul de la conductivit
0.95: premire version mise en ligne
dozzaqueux-3.51/unit17.lfm0000750000175000017500000000365413147330070015712 0ustar georgeskgeorgeskobject splashscreen: Tsplashscreen Left = 368 Height = 308 Top = 82 Width = 785 BorderIcons = [] BorderStyle = bsNone Caption = 'splashscreen' ClientHeight = 308 ClientWidth = 785 Color = clAqua FormStyle = fsSplash OnCreate = FormCreate OnShow = FormShow ParentFont = True LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = Owner Left = 249 Height = 62 Top = 20 Width = 287 BorderSpacing.Top = 20 Caption = 'Dozzzaqueux' Font.Color = clFuchsia Font.Height = -46 Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Owner AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 118 Height = 30 Top = 102 Width = 548 BorderSpacing.Top = 20 Caption = 'Logiciel libre et gratuit de simulation de courbes de dosage' Font.Color = clGreen Font.Height = -21 ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideLeft.Control = Owner AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom Left = 241 Height = 20 Top = 152 Width = 302 BorderSpacing.Top = 20 Caption = 'Version 3.04 du 10/08/2009, codée en Lazarus' ParentColor = False end object Label4: TLabel AnchorSideLeft.Control = Owner AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrBottom Left = 262 Height = 20 Top = 192 Width = 260 BorderSpacing.Top = 20 Caption = 'Par Jean-Marie Biansan, 2005 à 2009' Font.Color = clRed Font.Style = [fsBold] ParentColor = False ParentFont = False end end dozzaqueux-3.51/unit19.lfm0000750000175000017500000001646713147330070015722 0ustar georgeskgeorgeskobject saisiefaisceau: Tsaisiefaisceau Left = 601 Height = 497 Top = 183 Width = 597 ActiveControl = SpinEdit1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Faisceau de courbes' ClientHeight = 497 ClientWidth = 597 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 158 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Grandeur à faire varier' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Label1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrCenter Left = 178 Height = 20 Top = 10 Width = 164 BorderSpacing.Left = 10 Caption = ' pour obtenir le faisceau:' ParentColor = False end object Label4: TLabel AnchorSideLeft.Control = RadioGrouptypefaisceau AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RadioGrouptypefaisceau Left = 211 Height = 20 Top = 273 Width = 76 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = '1ère valeur:' ParentColor = False end object Label5: TLabel AnchorSideLeft.Control = Label4 AnchorSideTop.Control = Label4 AnchorSideTop.Side = asrBottom Left = 211 Height = 20 Top = 313 Width = 69 BorderSpacing.Top = 20 Caption = 'Incrément:' ParentColor = False end object Label6: TLabel AnchorSideLeft.Control = Label4 AnchorSideTop.Control = Label5 AnchorSideTop.Side = asrBottom Left = 211 Height = 20 Top = 353 Width = 76 BorderSpacing.Top = 20 Caption = '1ère valeur:' ParentColor = False end object Label7: TLabel AnchorSideLeft.Control = Label4 AnchorSideTop.Control = Label6 AnchorSideTop.Side = asrBottom Left = 211 Height = 20 Top = 393 Width = 25 BorderSpacing.Top = 20 Caption = 'Pas:' ParentColor = False end object Label8: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = RadioGrouptypefaisceau AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 433 Width = 337 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Les couleurs en dégradé des courbes tendront vers:' ParentColor = False end object SpinEdit1: TSpinEdit AnchorSideLeft.Control = Label2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrCenter Left = 352 Height = 28 Top = 6 Width = 52 BorderSpacing.Left = 10 MinValue = 2 TabOrder = 0 Value = 2 end object ListBox1: TListBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 10 Height = 213 Top = 40 Width = 577 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 ItemHeight = 0 TabOrder = 1 end object RadioGrouptypefaisceau: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = ListBox1 AnchorSideTop.Side = asrBottom Left = 10 Height = 160 Top = 263 Width = 191 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Type de suite de valeurs' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 138 ClientWidth = 187 ItemIndex = 0 Items.Strings = ( 'Arithmétique' 'Géométrique' ) TabOrder = 2 end object Editlineairex1: TEdit AnchorSideLeft.Control = Label4 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label4 AnchorSideTop.Side = asrCenter Left = 297 Height = 28 Top = 269 Width = 78 BorderSpacing.Left = 10 OnKeyPress = Editlineairex1KeyPress TabOrder = 3 end object editlineairepas: TEdit AnchorSideLeft.Control = Label5 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label5 AnchorSideTop.Side = asrCenter Left = 290 Height = 28 Top = 309 Width = 80 BorderSpacing.Left = 10 OnKeyPress = editlineairepasKeyPress TabOrder = 4 end object Editgeometriquex1: TEdit AnchorSideLeft.Control = Label6 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label6 AnchorSideTop.Side = asrCenter Left = 297 Height = 28 Top = 349 Width = 78 BorderSpacing.Left = 10 OnKeyPress = Editgeometriquex1KeyPress TabOrder = 5 end object Editgeometriquepas: TEdit AnchorSideLeft.Control = Label7 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label7 AnchorSideTop.Side = asrCenter Left = 246 Height = 28 Top = 389 Width = 74 BorderSpacing.Left = 10 OnKeyPress = EditgeometriquepasKeyPress TabOrder = 6 end object BitBtn1: TBitBtn AnchorSideTop.Control = ListBox1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 419 Height = 85 Top = 263 Width = 168 Anchors = [akTop, akRight] BorderSpacing.Top = 10 BorderSpacing.Right = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 7 end object BitBtn2: TBitBtn AnchorSideTop.Control = BitBtn1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 429 Height = 69 Top = 358 Width = 158 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 10 BorderSpacing.Right = 10 Cancel = True Caption = 'Annuler' Kind = bkCancel ModalResult = 2 TabOrder = 8 end object Panel1: TPanel AnchorSideLeft.Control = Label8 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label8 Left = 357 Height = 58 Top = 433 Width = 65 BorderSpacing.Left = 10 Color = clSilver ParentColor = False TabOrder = 9 OnClick = Panel1Click end object ColorDialog1: TColorDialog Color = clBlack CustomColors.Strings = ( 'ColorA=000000' 'ColorB=000080' 'ColorC=008000' 'ColorD=008080' 'ColorE=800000' 'ColorF=800080' 'ColorG=808000' 'ColorH=808080' 'ColorI=C0C0C0' 'ColorJ=0000FF' 'ColorK=00FF00' 'ColorL=00FFFF' 'ColorM=FF0000' 'ColorN=FF00FF' 'ColorO=FFFF00' 'ColorP=FFFFFF' 'ColorQ=C0DCC0' 'ColorR=F0CAA6' 'ColorS=F0FBFF' 'ColorT=A4A0A0' ) left = 440 top = 2 end end dozzaqueux-3.51/dozzzaqueux.lpi0000750000175000017500000003473013147330070017201 0ustar georgeskgeorgesk <UseXPManifest Value="True"/> <Icon Value="0"/> </General> <i18n> <EnableI18N Value="True"/> <OutDir Value="languages"/> </i18n> <BuildModes Count="1"> <Item1 Name="default" Default="True"/> </BuildModes> <PublishOptions> <Version Value="2"/> <DestinationDirectory Value="C:\programmation\lazarus\Dozzzaqueux\dozzzaqueux_065&é\sources"/> <IgnoreBinaries Value="False"/> <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml|equ|txt|xml|html|ato|ico|fpc)"/> <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/> </PublishOptions> <RunParams> <local> <FormatVersion Value="1"/> <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/> </local> </RunParams> <RequiredPackages Count="3"> <Item1> <PackageName Value="SynEdit"/> <MinVersion Major="1" Valid="True"/> </Item1> <Item2> <PackageName Value="Printer4Lazarus"/> <MinVersion Minor="5" Valid="True"/> </Item2> <Item3> <PackageName Value="LCL"/> </Item3> </RequiredPackages> <Units Count="52"> <Unit0> <Filename Value="dozzzaqueux.lpr"/> <IsPartOfProject Value="True"/> </Unit0> <Unit1> <Filename Value="unit1.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form1"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit1"/> </Unit1> <Unit2> <Filename Value="pivotgauss.pas"/> <IsPartOfProject Value="True"/> </Unit2> <Unit3> <Filename Value="gibbs.pas"/> <IsPartOfProject Value="True"/> </Unit3> <Unit4> <Filename Value="unitgaussjordan.pas"/> <IsPartOfProject Value="True"/> <UnitName Value="UnitGaussJordan"/> </Unit4> <Unit5> <Filename Value="unit2.pas"/> <IsPartOfProject Value="True"/> <UnitName Value="Unit2"/> </Unit5> <Unit6> <Filename Value="unit10.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="modifnombremole"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit10"/> </Unit6> <Unit7> <Filename Value="unit3.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisienombremole"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit3"/> </Unit7> <Unit8> <Filename Value="unit_electroneutralite.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisie_electroneutralite"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit_electroneutralite"/> </Unit8> <Unit9> <Filename Value="unit4.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form4"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit4"/> </Unit9> <Unit10> <Filename Value="unit4b.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form4b"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit4b"/> </Unit10> <Unit11> <Filename Value="unit26.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form26"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit26"/> </Unit11> <Unit12> <Filename Value="unit26b.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form26b"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit26b"/> </Unit12> <Unit13> <Filename Value="unit5.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form5"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit5"/> </Unit13> <Unit14> <Filename Value="unit6.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisieexpression"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit6"/> </Unit14> <Unit15> <Filename Value="unit25.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisie_conductivite"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit25"/> </Unit15> <Unit16> <Filename Value="unit29.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisie_derivees"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit29"/> </Unit16> <Unit17> <Filename Value="unit7.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisietaillepoints"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit7"/> </Unit17> <Unit18> <Filename Value="unit9.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisieepaisseur"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit9"/> </Unit18> <Unit19> <Filename Value="unit8.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="sasiestyleordonnees"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit8"/> </Unit19> <Unit20> <Filename Value="unit14.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="formavertissement"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit14"/> </Unit20> <Unit21> <Filename Value="unit28.pas"/> <IsPartOfProject Value="True"/> <UnitName Value="Unit28"/> </Unit21> <Unit22> <Filename Value="unit19.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisiefaisceau"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit19"/> </Unit22> <Unit23> <Filename Value="unit12.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisiecouleurs"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit12"/> </Unit23> <Unit24> <Filename Value="unit24.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisiechiffressignificatifs"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit24"/> </Unit24> <Unit25> <Filename Value="unit11.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisietitre"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit11"/> </Unit25> <Unit26> <Filename Value="unit13.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisieunites"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit13"/> </Unit26> <Unit27> <Filename Value="unit_imp.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="configimpression"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit_imp"/> </Unit27> <Unit28> <Filename Value="monimprimante.pas"/> <IsPartOfProject Value="True"/> <UnitName Value="MonImprimante"/> </Unit28> <Unit29> <Filename Value="monpng.pas"/> <IsPartOfProject Value="True"/> <UnitName Value="MonPNG"/> </Unit29> <Unit30> <Filename Value="monjpeg.pas"/> <IsPartOfProject Value="True"/> <UnitName Value="MonJPEG"/> </Unit30> <Unit31> <Filename Value="unit21.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisiefichiertableur"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit21"/> </Unit31> <Unit32> <Filename Value="unit23.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisieregressi"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit23"/> </Unit32> <Unit33> <Filename Value="unit22.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisietypedonnee"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit22"/> </Unit33> <Unit34> <Filename Value="unit27.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form27"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit27"/> </Unit34> <Unit35> <Filename Value="unit16.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Formoptionscsv"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit16"/> </Unit35> <Unit36> <Filename Value="unit18.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="script"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit18"/> </Unit36> <Unit37> <Filename Value="unit20.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="saisietemporisation"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit20"/> </Unit37> <Unit38> <Filename Value="unitgpl.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Formgpl"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="UnitGPL"/> </Unit38> <Unit39> <Filename Value="unit15.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Formapropos"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit15"/> </Unit39> <Unit40> <Filename Value="unit17.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="splashscreen"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit17"/> </Unit40> <Unit41> <Filename Value="uchaines.pas"/> <IsPartOfProject Value="True"/> <UnitName Value="UChaines"/> </Unit41> <Unit42> <Filename Value="unitscalefont.pas"/> <IsPartOfProject Value="True"/> <UnitName Value="UnitScaleFont"/> </Unit42> <Unit43> <Filename Value="unitsaisietailleimage.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="SaisieTailleImage"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="UnitSaisieTailleImage"/> </Unit43> <Unit44> <Filename Value="monbitmap.pas"/> <IsPartOfProject Value="True"/> <UnitName Value="MonBitmap"/> </Unit44> <Unit45> <Filename Value="saisie_options_indicateur.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="options_indicateur"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> </Unit45> <Unit46> <Filename Value="unitcalculateurfonction.pas"/> <IsPartOfProject Value="True"/> <UnitName Value="UnitCalculateurFonction"/> </Unit46> <Unit47> <Filename Value="charencstreams.pas"/> <IsPartOfProject Value="True"/> </Unit47> <Unit48> <Filename Value="unit_dilution.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form_dilution"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> <UnitName Value="Unit_dilution"/> </Unit48> <Unit49> <Filename Value="unitsaisielegende.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="Form_saisie_legende"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> </Unit49> <Unit50> <Filename Value="deplace_legende.pas"/> <IsPartOfProject Value="True"/> <ComponentName Value="form_deplace_legende"/> <HasResources Value="True"/> <ResourceBaseClass Value="Form"/> </Unit50> <Unit51> <Filename Value="unit_commune.pas"/> <IsPartOfProject Value="True"/> <UnitName Value="Unit_commune"/> </Unit51> </Units> </ProjectOptions> <CompilerOptions> <Version Value="11"/> <PathDelim Value="\"/> <Target> <Filename Value="dozzzaqueux"/> </Target> <SearchPaths> <IncludeFiles Value="$(ProjOutDir)"/> <OtherUnitFiles Value="\home\moi\lazarus\commun;C:\programmation\lazarus\commun\;c:\lazarus\"/> </SearchPaths> <Parsing> <SyntaxOptions> <CStyleOperator Value="False"/> <UseAnsiStrings Value="False"/> </SyntaxOptions> </Parsing> <Linking> <Options> <Win32> <GraphicApplication Value="True"/> </Win32> </Options> </Linking> </CompilerOptions> </CONFIG> ����������������������������������������dozzaqueux-3.51/unit6.pas���������������������������������������������������������������������������0000750�0001750�0001750�00000077343�13147330070�015643� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit6; {$mode objfpc}{$H+} interface uses Classes, SysUtils,FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,UnitCalculateurFonction,Unit2,Unit1,Strutils,Unit25,UChaines,UnitScaleFont,LCLType,Unit_commune; type { Tsaisieexpression } Tsaisieexpression = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; Editexpression: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; ListBoxfonctions: TListBox; ListBoxvariables: TListBox; procedure BitBtn1Click(Sender: TObject); procedure EditexpressionKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure EditexpressionMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure ListBoxfonctionsSelectionChange(Sender: TObject; User: boolean); procedure ListBoxvariablesSelectionChange(Sender: TObject; User: boolean); private { private declarations } encreation:boolean; public { public declarations } end; var saisieexpression: Tsaisieexpression; mypos:integer; expression,expression_explicite:string; liste_variables:tableauchaine; nombre_variables:integer; procedure expression_vers_expression_explicite(ex:string; var ex_ex:string; var li_va:tableauchaine; var n_v:integer); procedure expression_explicite_vers_expression(ex_ex:string; var ex:string); procedure enleve_espaces(var s:string); function remplace_point_decimal(s:string):string; implementation function remplace_point_decimal(s:string):string; var z:string; begin if point_decimal_export then begin result:=s; exit; end; z:=s; if pos('.',z)>0 then z[pos('.',s)]:=','; result:=z; end; procedure enleve_espaces(var s:string); begin while pos(' ',s)>0 do delete(s,pos(' ',s),1); end; procedure expression_vers_expression_explicite(ex:string; var ex_ex:string; var li_va:tableauchaine; var n_v:integer); var i,popo,jj,kk:integer; ane,baudet:string; momo:integer; begin n_v:=0; setlength(li_va,n_v); ex_ex:=ex; ane:=ex; {modif version 2.5} if nombre_couples_redox>0 then for i:=nombre_couples_redox downto 1 do if pos('Po'+inttostr(i),ex_ex)<>0 then begin popo:=pos('Po'+inttostr(i),ex_ex); inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='Po'+inttostr(i); while popo<>0 do begin delete(ex_ex,popo,length ('Po'+inttostr(i))); insert('E('+liste_couples_redox[i-1].espece1+'/'+liste_couples_redox[i-1].espece2+')', ex_ex,popo); popo:=pos('Po'+inttostr(i),ex_ex); end; end; {modif version 2.5} {<ajout version 1.10} if calcul_derivees then if nombre_solutes_0>0 then for i:=nombre_solutes_0 downto 1 do if pos('dpc'+inttostr(i)+'_dV',ex_ex)<>0 then begin popo:=pos('dpc'+inttostr(i)+'_dV',ex_ex); inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='dpc'+inttostr(i)+'_dV'; while popo<>0 do begin delete(ex_ex,popo,length ('dpc'+inttostr(i)+'_dV')); insert('dp['+noms_solutes_0[i-1]+']_dV',ex_ex,popo); popo:=pos('dpc'+inttostr(i)+'_dV',ex_ex); end; end; if nombre_solutes_0>0 then for i:=nombre_solutes_0 downto 1 do if pos('pc'+inttostr(i),ex_ex)<>0 then begin popo:=pos('pc'+inttostr(i),ex_ex); inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='pc'+inttostr(i); while popo<>0 do begin delete(ex_ex,popo,length ('pc'+inttostr(i))); insert('p['+noms_solutes_0[i-1]+']',ex_ex,popo); popo:=pos('pc'+inttostr(i),ex_ex); end; end; if calcul_derivees then if nombre_solutes_0>0 then for i:=nombre_solutes_0 downto 1 do if pos('dpa'+inttostr(i)+'_dV',ex_ex)<>0 then begin popo:=pos('dpa'+inttostr(i)+'_dV',ex_ex); inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='dpa'+inttostr(i)+'_dV'; while popo<>0 do begin delete(ex_ex,popo,length ('dpa'+inttostr(i)+'_dV')); insert('dpa('+noms_solutes_0[i-1]+')_dV',ex_ex,popo); popo:=pos('dpa'+inttostr(i)+'_dV',ex_ex); end; end; if nombre_solutes_0>0 then for i:=nombre_solutes_0 downto 1 do if pos('pa'+inttostr(i),ex_ex)<>0 then begin popo:=pos('pa'+inttostr(i),ex_ex); inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='pa'+inttostr(i); while popo<>0 do begin delete(ex_ex,popo,length ('pa'+inttostr(i))); insert('pa('+noms_solutes_0[i-1]+')',ex_ex,popo); popo:=pos('pa'+inttostr(i),ex_ex); end; end; if calcul_derivees then if nombre_solutes_0>0 then for i:=nombre_solutes_0 downto 1 do if pos('dc'+inttostr(i)+'_dV',ex_ex)<>0 then begin popo:=pos('dc'+inttostr(i)+'_dV',ex_ex); inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='dc'+inttostr(i)+'_dV'; while popo<>0 do begin delete(ex_ex,popo,length ('dc'+inttostr(i)+'_dV')); insert('d['+noms_solutes_0[i-1]+']_dV',ex_ex,popo); popo:=pos('dc'+inttostr(i)+'_dV',ex_ex); end; end; if nombre_solutes_0>0 then for i:=nombre_solutes_0 downto 1 do if pos('c'+inttostr(i),ex_ex)<>0 then begin popo:=pos('c'+inttostr(i),ex_ex); inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='c'+inttostr(i); while popo<>0 do begin delete(ex_ex,popo,length ('c'+inttostr(i))); insert('['+noms_solutes_0[i-1]+']',ex_ex,popo); popo:=pos('c'+inttostr(i),ex_ex); end; end; if calcul_derivees then if nombre_solutes_0>0 then for i:=nombre_solutes_0 downto 1 do if pos('da'+inttostr(i)+'_dV',ex_ex)<>0 then begin popo:=pos('da'+inttostr(i)+'_dV',ex_ex); inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='da'+inttostr(i)+'_dV'; while popo<>0 do begin delete(ex_ex,popo,length ('da'+inttostr(i)+'_dV')); insert('da('+noms_solutes_0[i-1]+')_dV',ex_ex,popo); popo:=pos('da'+inttostr(i)+'_dV',ex_ex); end; end; if nombre_solutes_0>0 then for i:=nombre_solutes_0 downto 1 do if pos('a'+inttostr(i),ex_ex)<>0 then begin popo:=pos('a'+inttostr(i),ex_ex); inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='a'+inttostr(i); while popo<>0 do begin delete(ex_ex,popo,length ('a'+inttostr(i))); insert('a('+noms_solutes_0[i-1]+')',ex_ex,popo); popo:=pos('a'+inttostr(i),ex_ex); end; end; if calcul_derivees then if nombre_precipites_0>0 then for i:=nombre_precipites_0 downto 1 do if pos('dpn'+inttostr(i)+'_dV',ex_ex)<>0 then begin popo:=pos('dpn'+inttostr(i)+'_dV',ex_ex); inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='dpn'+inttostr(i)+'_dV'; while popo<>0 do begin delete(ex_ex,popo,length ('dpn'+inttostr(i)+'_dV')); insert('dpN('+noms_precipites_0[i-1]+')_dV',ex_ex,popo); popo:=pos('dpn'+inttostr(i)+'_dV',ex_ex); end; end; if nombre_precipites_0>0 then for i:=nombre_precipites_0 downto 1 do if pos('pn'+inttostr(i),ex_ex)<>0 then begin popo:=pos('pn'+inttostr(i),ex_ex); inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='pn'+inttostr(i); while popo<>0 do begin delete(ex_ex,popo,length ('pn'+inttostr(i))); insert('pN('+noms_precipites_0[i-1]+')',ex_ex,popo); popo:=pos('pn'+inttostr(i),ex_ex); end; end; if calcul_derivees then if nombre_precipites_0>0 then for i:=nombre_precipites_0 downto 1 do if pos('dn'+inttostr(i)+'_dV',ex_ex)<>0 then begin popo:=pos('dn'+inttostr(i)+'_dV',ex_ex); inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='dn'+inttostr(i)+'_dV'; while popo<>0 do begin delete(ex_ex,popo,length ('dn'+inttostr(i)+'_dV')); insert('dN('+noms_precipites_0[i-1]+')_dV',ex_ex,popo); popo:=pos('dn'+inttostr(i)+'_dV',ex_ex); end; end; if nombre_precipites_0>0 then for i:=nombre_precipites_0 downto 1 do if pos('n'+inttostr(i),ex_ex)<>0 then begin popo:=pos('n'+inttostr(i),ex_ex); inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='n'+inttostr(i); while popo<>0 do begin delete(ex_ex,popo,length ('n'+inttostr(i))); insert('N('+noms_precipites_0[i-1]+')',ex_ex,popo); popo:=pos('n'+inttostr(i),ex_ex); end; end; if calcul_derivees then if pos('dpH_dV',ane)<>0 then begin inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='dpH_dV'; popo:=pos('dpH_dV',ane); while popo<>0 do begin delete(ane,popo,length('dpH_dV')); popo:=pos('dpH_dV',ane); end; end; if pos('pH',ane)<>0 then begin inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='pH'; popo:=pos('pH',ane); while popo<>0 do begin delete(ane,popo,length('pH')); popo:=pos('pH',ane); end; end; if calcul_derivees then if pos('dpOH_dV',ane)<>0 then begin inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='dpOH_dV'; popo:=pos('dpOH_dV',ane); while popo<>0 do begin delete(ane,popo,length('dpOH_dV')); popo:=pos('dpOH_dV',ane); end; end; if pos('pOH',ane)<>0 then begin inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='pOH'; popo:=pos('pOH',ane); while popo<>0 do begin delete(ane,popo,length('pOH')); popo:=pos('pOH',ane); end; end; if pos('Vtotal',ane)<>0 then begin inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='Vtotal'; popo:=pos('Vtotal',ane); while popo<>0 do begin delete(ane,popo,length('Vtotal')); popo:=pos('Vtotal',ane); end; end; if pos('V0',ane)<>0 then begin inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='V0'; popo:=pos('V0',ane); while popo<>0 do begin delete(ane,popo,length('V0')); popo:=pos('V0',ane); end; end; popo:=0; while posex('V',ane,popo+1)<>0 do begin popo:=posex('V',ane,popo+1); if ((popo>1) and (ane[popo-1]<>'d')) or (popo=1) then begin if ((n_v>0) and (li_va[n_v-1]<>'V')) or (n_v=0) then begin inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='V'; end; delete(ane,popo,length('V')); end; end; {ajout version 1.10>} if pos('gamma',ane)<>0 then begin inc(n_v); setlength(li_va,n_v); li_va[n_v-1]:='gamma'; baudet:=''; for jj:=1 to nombre_solutes_0 do if ((charges_solutes_0[jj-1]<>0) and (conductivites_solutes_0[jj-1]=0)) then begin saisie_conductivite:=tsaisie_conductivite.create(form1); with saisie_conductivite do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisie_conductivite.Label2.Caption:=noms_solutes_0[jj-1]; repeat momo:=saisie_conductivite.ShowModal; if momo=mrcancel then application.MessageBox(pchar(rsSyntaxeIncor9), pchar(rsAttention2), mb_ok); until momo=mrok; conductivites_solutes_0[jj-1]:=mystrtofloat(saisie_conductivite.Edit1.Text); if indice_element_base(noms_solutes_0[jj-1])<>0 then tableau_elements_base[indice_element_base(noms_solutes_0[jj-1])-1].conductivite:= conductivites_solutes_0[jj-1]; if indice_element_aqueux(noms_solutes_0[jj-1])<>0 then tableau_elements_aqueux[indice_element_aqueux(noms_solutes_0[jj-1])-1].conductivite:= conductivites_solutes_0[jj-1]; if indice_tableau_anions_simples(noms_solutes_0[jj-1])<>0 then begin tableau_anions_simples[indice_tableau_anions_simples(noms_solutes_0[jj-1])-1].conductivite:= conductivites_solutes_0[jj-1]; form1.stringgridanionssimples.cells[1,form1.stringgridanionssimples.cols[0].indexof( noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridanionssimples_.cells[1,form1.stringgridanionssimples_.cols[0].indexof( noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; if indice_tableau_cations_simples(noms_solutes_0[jj-1])<>0 then begin tableau_cations_simples[indice_tableau_cations_simples(noms_solutes_0[jj-1])-1].conductivite:= conductivites_solutes_0[jj-1]; form1.stringgridcationssimples.cells[1,form1.stringgridcationssimples.cols[0].indexof( noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridcationssimples_.cells[1,form1.stringgridcationssimples_.cols[0].indexof( noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; if indice_tableau_complexes(noms_solutes_0[jj-1])<>0 then begin tableau_complexes[indice_tableau_complexes(noms_solutes_0[jj-1])-1].conductivite:= conductivites_solutes_0[jj-1]; form1.stringgridaqueuxcomplexes.cells[1,form1.stringgridaqueuxcomplexes.cols[0].indexof( noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridaqueuxcomplexes_.cells[1,form1.stringgridaqueuxcomplexes_.cols[0].indexof( noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; if indice_tableau_ab(noms_solutes_0[jj-1])<>0 then begin tableau_ab[indice_tableau_ab(noms_solutes_0[jj-1])-1].conductivite:= conductivites_solutes_0[jj-1]; form1.stringgridaqueuxab.cells[1,form1.stringgridaqueuxab.cols[0].indexof( noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridaqueuxab_.cells[1,form1.stringgridaqueuxab_.cols[0].indexof( noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; if indice_tableau_ions(noms_solutes_0[jj-1])<>0 then begin tableau_ions[indice_tableau_ions(noms_solutes_0[jj-1])-1].conductivite:= conductivites_solutes_0[jj-1]; form1.stringgridions.cells[1,form1.stringgridions.cols[0].indexof( noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridions_.cells[1,form1.stringgridions_.cols[0].indexof( noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; if indice_tableau_molecules(noms_solutes_0[jj-1])<>0 then begin tableau_molecules[indice_tableau_molecules(noms_solutes_0[jj-1])-1].conductivite:= conductivites_solutes_0[jj-1]; form1.stringgridmolecules.cells[1,form1.stringgridmolecules.cols[0].indexof( noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridmolecules_.cells[1,form1.stringgridmolecules_.cols[0].indexof( noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; if indice_element_organique(noms_solutes_0[jj-1])<>0 then begin tableau_elements_organiques[indice_element_organique(noms_solutes_0[jj-1])-1].conductivite:= conductivites_solutes_0[jj-1]; case tableau_elements_organiques[indice_element_organique(noms_solutes_0[jj-1])-1].genre of acide: begin form1.stringgridorganiques_acide.Cells[1,form1.stringgridorganiques_acide.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridorganiques_acide_.Cells[1,form1.stringgridorganiques_acide_.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; aminoacide:begin form1.stringgridorganiques_aminoacide.Cells[1,form1.stringgridorganiques_aminoacide.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridorganiques_aminoacide_.Cells[1,form1.stringgridorganiques_aminoacide_.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; amid_amin: begin form1.stringgridorganiques_amid_amin.Cells[1,form1.stringgridorganiques_amid_amin.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridorganiques_amid_amin_.Cells[1,form1.stringgridorganiques_amid_amin_.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; alcool: begin form1.stringgridorganiques_alcool.Cells[1,form1.stringgridorganiques_alcool.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridorganiques_alcool_.Cells[1,form1.stringgridorganiques_alcool_.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; alc: begin form1.stringgridorganiques_alc.Cells[1,form1.stringgridorganiques_alc.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridorganiques_alc_.Cells[1,form1.stringgridorganiques_alc_.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; benzene: begin form1.stringgridorganiques_benzene.Cells[1,form1.stringgridorganiques_benzene.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridorganiques_benzene_.Cells[1,form1.stringgridorganiques_benzene_.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; complexe: begin form1.stringgridorganiques_complexe.Cells[1,form1.stringgridorganiques_complexe.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridorganiques_complexe_.Cells[1,form1.stringgridorganiques_complexe_.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; aldehyd_cetone: begin form1.stringgridorganiques_aldehyd_cetone.Cells[1,form1.stringgridorganiques_aldehyd_cetone.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); form1.stringgridorganiques_aldehyd_cetone_.Cells[1,form1.stringgridorganiques_aldehyd_cetone_.Cols[0]. IndexOf(noms_solutes_0[jj-1])]:=floattostr(conductivites_solutes_0[jj-1]); end; end; end; end; popo:=pos('gamma',ane); while popo<>0 do begin delete(ane,popo,length('gamma')); popo:=pos('gamma',ane); end; end; end; procedure expression_explicite_vers_expression( ex_ex:string; var ex:string); var i,popo:integer; begin ex:=ex_ex; {modif version 2.5} if nombre_couples_redox>0 then for i:=1 to nombre_couples_redox do begin popo:=pos('E('+liste_couples_redox[i-1].espece1+'/'+liste_couples_redox[i-1].espece2+')',ex); while popo<>0 do begin delete(ex,popo,length('E('+liste_couples_redox[i-1].espece1+'/'+liste_couples_redox[i-1].espece2+')')); insert('Po'+inttostr(i),ex,popo); popo:=pos('E('+liste_couples_redox[i-1].espece1+'/'+liste_couples_redox[i-1].espece2+')',ex); end; end; {modif version 2.5} {<ajout version 1.10} if calcul_derivees then if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin popo:=pos('dp['+noms_solutes_0[i-1]+']_dV',ex); while popo<>0 do begin delete(ex,popo,length('dp['+noms_solutes_0[i-1]+']_dV')); insert('dpc'+inttostr(i)+'_dV',ex,popo); popo:=pos('dp['+noms_solutes_0[i-1]+']_dV',ex); end; end; if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin popo:=pos('p['+noms_solutes_0[i-1]+']',ex); while popo<>0 do begin delete(ex,popo,length('p['+noms_solutes_0[i-1]+']')); insert('pc'+inttostr(i),ex,popo); popo:=pos('p['+noms_solutes_0[i-1]+']',ex); end; end; if calcul_derivees then if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin popo:=pos('dpa('+noms_solutes_0[i-1]+')_dV',ex); while popo<>0 do begin delete(ex,popo,length('dpa('+noms_solutes_0[i-1]+')_dV')); insert('dpa'+inttostr(i)+'_dV',ex,popo); popo:=pos('dpa('+noms_solutes_0[i-1]+')_dV',ex); end; end; if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin popo:=pos('pa('+noms_solutes_0[i-1]+')',ex); while popo<>0 do begin delete(ex,popo,length('pa('+noms_solutes_0[i-1]+')')); insert('pa'+inttostr(i),ex,popo); popo:=pos('pa('+noms_solutes_0[i-1]+')',ex); end; end; if calcul_derivees then if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin popo:=pos('d['+noms_solutes_0[i-1]+']_dV',ex); while popo<>0 do begin delete(ex,popo,length('d['+noms_solutes_0[i-1]+']_dV')); insert('dc'+inttostr(i)+'_dV',ex,popo); popo:=pos('d['+noms_solutes_0[i-1]+']_dV',ex); end; end; if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin popo:=pos('['+noms_solutes_0[i-1]+']',ex); while popo<>0 do begin delete(ex,popo,length('['+noms_solutes_0[i-1]+']')); insert('c'+inttostr(i),ex,popo); popo:=pos('['+noms_solutes_0[i-1]+']',ex); end; end; if calcul_derivees then if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin popo:=pos('da('+noms_solutes_0[i-1]+')_dV',ex); while popo<>0 do begin delete(ex,popo,length('da('+noms_solutes_0[i-1]+')_dV')); insert('da'+inttostr(i)+'_dV',ex,popo); popo:=pos('da('+noms_solutes_0[i-1]+')_dV',ex); end; end; if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 do begin popo:=pos('a('+noms_solutes_0[i-1]+')',ex); while popo<>0 do begin delete(ex,popo,length('a('+noms_solutes_0[i-1]+')')); insert('a'+inttostr(i),ex,popo); popo:=pos('a('+noms_solutes_0[i-1]+')',ex); end; end; if calcul_derivees then if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do begin popo:=pos('dpN('+noms_precipites_0[i-1]+')_dV',ex); while popo<>0 do begin delete(ex,popo,length('dpN('+noms_precipites_0[i-1]+')_dV')); insert('dpn'+inttostr(i)+'_dV',ex,popo); popo:=pos('dpN('+noms_precipites_0[i-1]+')_dV',ex); end; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do begin popo:=pos('pN('+noms_precipites_0[i-1]+')',ex); while popo<>0 do begin delete(ex,popo,length('pN('+noms_precipites_0[i-1]+')')); insert('pn'+inttostr(i),ex,popo); popo:=pos('pN('+noms_precipites_0[i-1]+')',ex); end; end; if calcul_derivees then if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do begin popo:=pos('dN('+noms_precipites_0[i-1]+')_dV',ex); while popo<>0 do begin delete(ex,popo,length('dN('+noms_precipites_0[i-1]+')_dV')); insert('dn'+inttostr(i)+'_dV',ex,popo); popo:=pos('dN('+noms_precipites_0[i-1]+')_dV',ex); end; end; if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 do begin popo:=pos('N('+noms_precipites_0[i-1]+')',ex); while popo<>0 do begin delete(ex,popo,length('N('+noms_precipites_0[i-1]+')')); insert('n'+inttostr(i),ex,popo); popo:=pos('N('+noms_precipites_0[i-1]+')',ex); end; end; end; { Tsaisieexpression } procedure Tsaisieexpression.FormCreate(Sender: TObject); var i:integer; begin encreation:=true; Caption := rsSaisieDeLExp; Label1.Caption := rsSaisissezLEx; Label2.Caption := rsSignificatio; Label3.Caption := rsVariablesUti; Label4.Caption := rsOpRateursEtF ; BitBtn1.Caption := rsValider; listboxvariables.Items.Clear; listboxvariables.Items.Add (rsVVolumeVersE); listboxvariables.Items.Add (rsV0VolumeDeLa); listboxvariables.Items.Add (rsVtotalSommeD); listboxvariables.Items.Add(rsPHLogActivit); listboxvariables.Items.Add(rsPOHLogActivi); if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 DO listboxvariables.Items.Add (Format(rsCConcentrati, [inttostr(i), noms_solutes_0[i-1]])); if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 DO listboxvariables.Items.Add (Format(rsNQuantitDeMa, [inttostr(i), noms_precipites_0[i-1]])); if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 DO listboxvariables.Items.Add (Format(rsPcCologarith, [inttostr(i), noms_solutes_0[i-1]])); if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 DO listboxvariables.Items.Add (Format(rsPnCologarith, [inttostr(i), noms_precipites_0[i-1]])); if debye_0 then if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 DO listboxvariables.Items.Add (Format(rsAActivitDe, [inttostr(i), noms_solutes_0[i-1]])); if debye_0 then if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 DO listboxvariables.Items.Add (Format(rsPaCologarith, [inttostr(i), noms_solutes_0[i-1]])); listboxvariables.Items.Add (rsGammaConduct); if calcul_derivees then begin listboxvariables.Items.Add(rsDpH_dVDRivED); listboxvariables.Items.Add(rsDpOH_dVDRivE); if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 DO listboxvariables.Items.Add (Format(rsDc_dVDRivEPa, [inttostr(i), noms_solutes_0[i-1]])); if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 DO listboxvariables.Items.Add (Format(rsDn_dVDRivEPa, [inttostr(i), noms_precipites_0[i-1]])); if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 DO listboxvariables.Items.Add (Format(rsDpc_dVDRivEP, [inttostr(i), noms_solutes_0[i-1]])); if nombre_precipites_0>0 then for i:=1 to nombre_precipites_0 DO listboxvariables.Items.Add (Format(rsDpn_dVDRivEP, [inttostr(i), noms_precipites_0[i-1]])); if debye_0 then begin if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 DO listboxvariables.Items.Add (Format(rsDa_dVDRivEPa, [inttostr(i), noms_solutes_0[i-1]])); if nombre_solutes_0>0 then for i:=1 to nombre_solutes_0 DO listboxvariables.Items.Add (Format(rsDpa_dVDRivEP, [inttostr(i), noms_solutes_0[i-1]])); end; end; {ajout version 1.10>} {modif version 2.5} if nombre_couples_redox>0 then begin for i:=1 to nombre_couples_redox do listboxvariables.Items.Add(Format(rsPoPotentielR, [inttostr(i), liste_couples_redox[i-1].espece1, liste_couples_redox[i-1].espece2])); listboxvariables.Items.Add(rsECSPotentiel); listboxvariables.Items.Add(rsESMPotentiel); end; {modif version2.5} listboxfonctions.Items.Clear; listboxfonctions.Items.Add(rsOpRateurs); listboxfonctions.Items.Add(''); listboxfonctions.Items.Add(rsSomme); listboxfonctions.Items.Add(rsDiffRence); listboxfonctions.Items.Add(rsProduit); listboxfonctions.Items.Add(rsQuotient); listboxfonctions.Items.Add(rsLVationLaPui); listboxfonctions.Items.Add(''); listboxfonctions.Items.Add(rsFonctions); listboxfonctions.Items.Add(''); listboxfonctions.Items.Add(rsLog10Logarit); listboxfonctions.Items.Add(rsLnLogarithme); listboxfonctions.Items.Add(rsExpExponenti); listboxfonctions.Items.Add(rsCosCosinus); listboxfonctions.Items.Add(rsSinSinus); listboxfonctions.Items.Add(rsTanTangente); listboxfonctions.Items.Add(rsCotanCotange); listboxfonctions.Items.Add(rsArctanArctan); listboxfonctions.Items.Add(rsCoshCosinusH); listboxfonctions.Items.Add(rsSinhSinusHyp); listboxfonctions.Items.Add(rsSqrtRacineCa); listboxfonctions.Items.Add(rsSqrCarr); listboxfonctions.Items.Add(rsAbsValeurAbs); listboxfonctions.Items.Add(rsTruncPartieE); listboxfonctions.Items.Add(rsHeavHeavisid); listboxfonctions.Items.Add(rsSignSigne1Si); listboxfonctions.Items.Add(rsPower1erArgu); listboxfonctions.Items.Add(rsMinMinimumDe); listboxfonctions.Items.Add(rsMaxMaximumDe); {<ajout version 1.10} listboxfonctions.Items.Add(rsInf1Si1erArg); listboxfonctions.Items.Add(rsInfe1Si1erAr); listboxfonctions.Items.Add(rsSup1Si1erArg); listboxfonctions.Items.Add(rsSupe1Si1erAr); listboxfonctions.Items.Add(rsNaninfNANSi1); listboxfonctions.Items.Add(rsNansupNANSi1); listboxfonctions.Items.Add(rsNaninNANSiAb); listboxfonctions.Items.Add(rsNanoutNANSiA); {ajout version 1.10>} end; procedure Tsaisieexpression.FormShow(Sender: TObject); begin //if encreation then begin scalefont(self); encreation:=false; end; end; procedure Tsaisieexpression.ListBoxfonctionsSelectionChange(Sender: TObject; User: boolean); var sss,aj:string; popo,posa,i:integer; begin sss:=editexpression.Text; popo:=mypos+1; aj:=''; if listboxfonctions.itemindex=-1 then exit; aj:=listboxfonctions.Items[listboxfonctions.itemindex]; if pos('cosh',aj)>0 then begin aj:='cosh()'; posa:=1; end else if pos('sinh',aj)>0 then begin aj:='sinh()'; posa:=1; end else {<ajout version 1.10} if pos('naninf(',aj)>0 then begin aj:='naninf(,)'; posa:=2; end else if pos('nanin(',aj)>0 then begin aj:='nanin(,)'; posa:=2; end else if pos('nanout(',aj)>0 then begin aj:='nanout(,)'; posa:=2; end else if pos('nansup(',aj)>0 then begin aj:='nansup(,)'; posa:=2; end else if pos('inf(',aj)>0 then begin aj:='inf(,)'; posa:=2; end else if pos('infe(',aj)>0 then begin aj:='infe(,)'; posa:=2; end else if pos('sup(',aj)>0 then begin aj:='sup(,)'; posa:=2; end else if pos('supe(',aj)>0 then begin aj:='supe(,)'; posa:=2; end else {ajout version 1.10>} if pos('exp(',aj)>0 then begin aj:='exp()'; posa:=1; end else if pos('log10(',aj)>0 then begin aj:='log10()'; posa:=1; end else if pos('ln(',aj)>0 then begin aj:='ln()'; posa:=1; end else if pos('sin(',aj)>0 then begin aj:='sin()'; posa:=1; end else if pos('cos(',aj)>0 then begin aj:='cos()'; posa:=1; end else if pos('cotan(',aj)>0 then begin aj:='cotan()'; posa:=1; end else if pos('arctan(',aj)>0 then begin aj:='arctan()'; posa:=1; end else if pos('tan(',aj)>0 then begin aj:='tan()'; posa:=1; end else if pos('sqrt(',aj)>0 then begin aj:='sqrt()'; posa:=1; end else if pos('sqr(',aj)>0 then begin aj:='sqr()'; posa:=1; end else if pos('abs(',aj)>0 then begin aj:='abs()'; posa:=1; end else if pos('trunc(',aj)>0 then begin aj:='trunc()'; posa:=1; end else if pos('heav(',aj)>0 then begin aj:='heav()'; posa:=1; end else if pos('sign(',aj)>0 then begin aj:='sign()'; posa:=1; end else if pos('power(',aj)>0 then begin aj:='power(,)'; posa:=2; end else if pos('min(',aj)>0 then begin aj:='min(,)'; posa:=2; end else if pos('max(',aj)>0 then begin aj:='max(,)'; posa:=2; end else if pos('élévation',aj)>0 then begin aj:='^'; posa:=0; end else if pos('somme',aj)>0 then begin aj:='+'; posa:=0; end else if pos('différence',aj)>0 then begin aj:='-'; posa:=0; end else if pos('produit',aj)>0 then begin aj:='*'; posa:=0; end else if pos('quotient',aj)>0 then begin aj:='/'; posa:=0; end else begin aj:=''; posa:=0; end; insert(aj,sss,popo); editexpression.SetFocus; editexpression.Text:=sss; editexpression.selstart:=mypos+length(aj)-posa; mypos:=mypos+length(aj)-posa; for I := 0 to (listboxfonctions.Items.Count - 1) do if listboxfonctions.Selected[i] then listboxfonctions.Selected[i] := False; end; procedure Tsaisieexpression.BitBtn1Click(Sender: TObject); var i,popo:integer; parseressai:TCalculateurFonction; begin expression:=editexpression.Text; enleve_espaces(expression); if expression='' then begin modalresult:=mrcancel; exit; end; expression_vers_expression_explicite(expression,expression_explicite,liste_variables, nombre_variables); try parseressai:=TCalculateurFonction.Create(expression,liste_variables,nombre_variables); except application.MessageBox(pchar(rsLaSyntaxeDeL), pchar(rsMaisEuhhh), mb_ok); modalresult:=mrcancel; exit; end; finalize(liste_variables); parseressai.Destroy; end; procedure Tsaisieexpression.EditexpressionKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin mypos:=saisieexpression.editexpression.SelStart; end; procedure Tsaisieexpression.EditexpressionMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin mypos:=saisieexpression.editexpression.SelStart; end; procedure Tsaisieexpression.ListBoxvariablesSelectionChange(Sender: TObject; User: boolean); {<ajout version 1.10} var sss,aj:string; popo,dodo,i:integer; begin sss:=editexpression.Text; popo:=mypos+1; aj:=''; if listboxvariables.itemindex=-1 then exit; if ListBoxvariables.ItemIndex>=0 then begin dodo:=pos(': ',ListBoxvariables.Items[ListBoxvariables.itemindex]); if dodo<>-1 then aj:=copy(ListBoxvariables.Items[ListBoxvariables.itemindex], 1,dodo-1); end; {ajout version 1.10>} insert(aj,sss,popo); editexpression.SetFocus; editexpression.Text:=sss; editexpression.selstart:=popo+length(aj)-1; mypos:=mypos+length(aj); for I := 0 to (Listboxvariables.Items.Count - 1) do if ListBoxvariables.Selected[i] then ListBoxvariables.Selected[i] := False; end; initialization {$I unit6.lrs} end. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/teval.inc���������������������������������������������������������������������������0000750�0001750�0001750�00000120531�13147330070�015663� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ $ id: $ Copyright (c) 2000 by Marco van de Voort (marco@freepascal.org) member of the Free Pascal development team See the file COPYING.FPC, included in this distribution, for details about the copyright. (LGPL) Evaluator class implementation. Evaluates a parsetree expression in a way optimized for fast repeated evaluations of the same expression with different variables and constants. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ********************************************************************** } const MaxLog = 11355.830259113584004; MinLog = -11354.443964752464114; {$IFDEF DebugDump} procedure TEvaluator.WriteVliw(p:VLIWEvalWord); forward; {$ENDIF} Procedure TEvalInternalError(A,B:ArbInt); VAR S,S2 : String; begin Str(ORD(A),S); Str(ORD(B),S2); Raise TEvaluatorIE.Create(SEvalIE+S+' '+S2); end; CONSTRUCTOR TEvaluator.Create(VariableList:TStringList;Expression:pnode); {Constructor. Stringlist to set the order of variables in the function while xconverting the pnode tree to a TEvaluator structure. This avoids any string parsing during a real evaluation, and moves all stringparsing to the setup. So for Func(x,y,z) Variablelist contains ('x','y','z') in that order. } begin VariableName:=VariableList; ConstantNames:=TStringList.Create; ConstantValue:=TList.Create; Getmem(VLIWRPnExpr,SIZEOF(VLIWEvalWord)*VLIWIncr); VLIWCount:=0; VLIWAlloc:=VLIWIncr; MaxStack :=0; TreeToVLIWRPN(Expression); end; CONSTRUCTOR TEvaluator.Create(VariableList:TStringList;Expression:TExpression); {Overloaded, same as other constructor. (which it even calls), except that it has a TExpression as argument. Besides that it gets the pnode from the TExpression, it sets the TExpression.Evaluator to self, and a flag to set in the TExpression that its assiociated TEvaluator is up to date with the TExpression. } begin Self.Create(VariableList,Expression.ExprTree); Expression.Evaluator:=Self; Expression.EvaluatorUpToDate:=TRUE; end; DESTRUCTOR TEvaluator.Destroy; VAR I : LONGINT; TmpList : Tlist; begin VariableName.Free; ConstantNames.Free; IF ConstantValue.Count>0 THEN FOR I:=0 to ConstantValue.Count -1 DO begin TmpList:=TList(ConstantValue[I]); TmpList.Free; end; ConstantValue.Free; If VLIWAlloc>0 THEN FreeMem(VLIWRPNExpr,VLIWAlloc*SIZEOF(VLIWEvalWord)); inherited Destroy; end; PROCEDURE TEvaluator.SetConstant(Name:String;Value:ArbFloat); Var Ind,I : Longint; TmpList : TList; begin Ind:=ConstantNames.IndexOf(Name); If Ind<>-1 THEN begin TmpList:=TList(ConstantValue[Ind]); I:=TmpList.Count; If I>0 Then For I:=0 TO TmpList.Count-1 DO begin PVLIWEvalWord(TmpList[I])^.VLIWEntity:=AfConstant; PVLIWEvalWord(TmpList[I])^.Value:=Value; end; end; end; procedure TEvaluator.TreeToVLIWRPN(expr:pnode); procedure CheckVLIWArr; begin if VLIWCount=VLIWAlloc then begin ReAllocMem(VLIWRPNExpr,(VLIWAlloc+VLIWIncr)*SIZEOF(VLIWEvalWord)); Inc(VLIWAlloc,VLIWIncr); end; end; procedure searchTree(Tree:pnode); var Ind : ArbInt; TmpList : TList; begin if tree<>nil then case Tree^.nodetype of VarNode : begin {some variable or constant. First: Variable?} Ind:=VariableName.IndexOf(Tree^.Variable); If Ind<>-1 then begin {We have identified a variable} CheckVLIWArr; {Make sure there is at least room for one variable} WITH VLIWRPNExpr[VLIWCount] do begin VLIWEntity:=AVariable; IndexOfVar:=Ind; end; {$IFDEF DebugDump} WriteVliw(VLIWRPNExpr[VLIWCOUNT]); {$ENDIF} inc(VLIWCount); end else begin {We have a constant} ind:=ConstantNames.IndexOf(Tree^.Variable); if Ind=-1 then begin {That doesn't exist. Make sure it exists} ConstantNames.Add(Tree^.Variable); TmpList:=TList.Create; ConstantValue.Add(TmpList); end else begin TmpList:=tlist(ConstantValue[Ind]); end; {Create the VLIW record} CheckVLIWArr; WITH VLIWRPNExpr[VLIWCount] do begin VLIWEntity:=Placeholder; IndexOfConstant:=255; end; {$IFDEF DebugDump} WriteVliw(VLIWRPNExpr[VLIWCOUNT]); {$ENDIF} {Store a pointer to the VLIW record to be able to change the constant} TmpList.Add(pointer(VLIWCount)); {Can't pick pointer here, due to realloc} inc(VLIWCount); end; {Ind<>-1} end; ConstNode: begin CheckVLIWArr; WITH VLIWRPNExpr[VLIWCount] do begin VLIWEntity:=AfConstant; Value:=tree^.value; end; {$IFDEF DebugDump} WriteVliw(VLIWRPNExpr[VLIWCOUNT]); {$ENDIF} inc(VLIWCount); end; iconstnode: begin CheckVLIWArr; WITH VLIWRPNExpr[VLIWCount] do begin VLIWEntity:=AiConstant; IValue:=tree^.ivalue; end; {$IFDEF DebugDump} WriteVliw(VLIWRPNExpr[VLIWCOUNT]); {$ENDIF} inc(VLIWCount); end; CalcNode : begin CheckVLIWArr; WITH VLIWRPNExpr[VLIWCount] do begin VLIWEntity:=AnOperation; op:=vliwop2(ord(Tree^.op)); end; {$IFDEF DebugDump} WriteVliw(VLIWRPNExpr[VLIWCOUNT]); {$ENDIF} inc(VLIWCount); SearchTree(tree^.left); SearchTree(tree^.right); end; FuncNode: begin CheckVLIWArr; WITH VLIWRPNExpr[VLIWCount] do begin VLIWEntity:=AFunction; fun1:=Tree^.fun; end; {$IFDEF DebugDump} WriteVliw(VLIWRPNExpr[VLIWCOUNT]); {$ENDIF} inc(VLIWCount); SearchTree(tree^.son); end; Func2Node: begin CheckVLIWArr; WITH VLIWRPNExpr[VLIWCount] do begin VLIWEntity:=AnOperation; if tree^.fun2=powerx then op:=VLIWOp2(powo) else if tree^.fun2 >powerx then op:=vliwop2(ord(powv)+ord(tree^.fun2)-ord(arctan2x)) else op:=vliwop2(1+ord(powv)+ord(tree^.fun2)-ord(arctan2x)) end; {$IFDEF DebugDump} WriteVliw(VLIWRPNExpr[VLIWCOUNT]); {$ENDIF} inc(VLIWCount); SearchTree(tree^.son2left); SearchTree(tree^.son2right); end else TEvalInternalError(4,ORD(Tree^.nodetype )); end; end; Procedure FixLists; {We added constants as VLIWCount indexes. To speed up we convert them to pointers. We couldn't do that directly as a consequence of the ReAlloc.} VAR I,J : Longint; TmpList : TList; begin I:=ConstantValue.Count; IF I>0 THEN FOR J:=0 TO I-1 DO begin TmpList:=TList(ConstantValue[J]); IF (Tmplist<>NIL) and (TmpList.Count>0) then for I:=0 TO TmpList.Count-1 DO TmpList[I]:=@VLIWRPNExpr[longint(TmpList[I])]; end; end; begin VLIWCount:=0; SearchTree(expr); FixLists; end; function PowerTests(X, Y : float; var Res : float) : Boolean; { Tests the cases X=0, Y=0 and Y=1. Returns X^Y in Res } begin if X = 0.0 then begin PowerTests := True; if Y = 0.0 then { 0^0 = lim X^X = 1 } Res := 1.0 { X->0 } else if Y > 0.0 then Res := 0.0 { 0^Y = 0 } else begin Res := maxfloat; raise TEvaluatorError.Create('erreur dans powertests'); exit; end; end else if Y = 0.0 then begin Res := 1.0; { X^0 = 1 } PowerTests := True; end else if Y = 1.0 then begin Res := X; { X^1 = X } PowerTests := True; end else PowerTests := False; end; function TPMathIntPower(X : float; N : Integer) : float; { Computes X^N by repeated multiplications } const InverseMaxNum = 1.0 / Maxfloat; var T : float; M : Integer; Invert : Boolean; begin if PowerTests(X, N, T) then begin TPMathIntPower := T; Exit; end; Invert := (N < 0); { Test if inverting is needed } if 1.0 < Abs(X) then { Test for 0 ..|x| .. 1 } begin X := 1.0 / X; Invert := not Invert; end; { Legendre's algorithm for minimizing the number of multiplications } T := 1.0; M := Abs(N); while 0 < M do begin if Odd(M) then T := T * X; X := Sqr(X); M := M div 2; end; if Invert then if Abs(T) < InverseMaxNum then { Only here overflow } begin T := Sign(T) * Maxfloat; raise TEvaluatorError.Create('erreur dans TPMathIntPower'); exit; end else T := 1.0 / T; TPMathIntPower := T; end; function TEvaluator.Evaluate(const variables:Array of ArbFloat):ArbFloat; {The one that does the work} CONST StackDepth=50; var TheArray : pVLIWEvalWord; VLIWRecs : Longint; RPNStack : ARRAY[0..StackDepth] OF ArbFloat; I, RPNPointer : Longint; // S : ansiString; var X,Y,Res : float; YLnX : float; procedure push(Val:ArbFloat); {$IFDEF FPC} InLine; {$endif} begin IF RPNPointer=StackDepth THEN RAISE TEvaluatorStackException.Create(SEvalStackDepthExceeded); RPNStack[RpnPointer]:=Val; INC(RPNPointer); end; begin VLIWRecs:=VariableName.Count; if (High(Variables)+1)<>VLIWRecs then Raise TEvaluatorNotEnoughVariables.Create(SeValBadNumberOfVars); RPNPointer:=0; VliwRecs:=VliwCount-1; TheArray:=@VLIWRPNExpr[VLIWRecs]; REPEAT {$IFDEF DebugMe} Writeln(VliwRecs,' ',ord(TheArray^.VLIWEntity)); {$ENDIF} TheArray:=@VLIWRPNExpr[VLIWRecs]; CASE TheArray^.VLIWEntity OF AVariable : begin {$IFDEF DebugMe} Writeln('var:', TheArray^.IndexOfVar); {$ENDIF} Push(Variables[TheArray^.IndexOfVar]); end; AfConstant : begin {$IFDEF DebugMe} Writeln('FP value:', TheArray^.value); {$ENDIF} Push(TheArray^.Value); end; AiConstant : begin {$IFDEF DebugMe} Writeln('Int value:', TheArray^.ivalue); {$ENDIF} Push(TheArray^.iValue); end; Placeholder: begin // RAISE TEvaluatorBadConstant.Create(ConstantNames[TheArray^.IndexOfConstant]); end; AnOperation: begin {$IFDEF DebugMe} Writeln('Operator value:', ord(TheArray^.op)); {$ENDIF} Case TheArray^.Op of addv : begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=RPNStack[RPNPointer]+RPNStack[RPNPointer-1]; end; subv : begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=RPNStack[RPNPointer]-RPNStack[RPNPointer-1]; end; mulv : begin Dec(RPNPointer); if (RPNStack[RPNPointer]=0) or (RPNStack[RPNPointer-1]=0) then RPNStack[RPNPointer-1]:=0 else if ln(abs(RPNStack[RPNPointer]))+ln(abs(RPNStack[RPNPointer-1]))>MaxLog then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('Depassement de maxfloat dans Multiply'); exit; end else if ln(abs(RPNStack[RPNPointer]))+ln(abs(RPNStack[RPNPointer-1]))<MinLog then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('Depassement de minfloat dans Multiply'); exit; end else RPNStack[RPNPointer-1]:=RPNStack[RPNPointer]*RPNStack[RPNPointer-1]; end; dvdv : begin Dec(RPNPointer); if RPNStack[RPNPointer-1]=0 then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('Division par zéro'); exit; end else if RPNStack[RPNPointer]=0 then begin RPNStack[RPNPointer-1]:=0; end else if (ln(abs(RPNStack[RPNPointer]))-ln(abs(RPNStack[RPNPointer-1]))>MaxLog) then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('Depassement de maxfloat dans Division'); exit; end else if (ln(abs(RPNStack[RPNPointer]))-ln(abs(RPNStack[RPNPointer-1]))<MinLog) then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('Depassement de minfloat dans Division'); exit; end else RPNStack[RPNPointer-1]:=RPNStack[RPNPointer]/RPNStack[RPNPointer-1]; end; powv : begin Dec(RPNPointer); X:=RPNStack[RPNPointer]; Y:=RPNStack[RPNPointer-1]; if PowerTests(X, Y, Res) then RPNStack[RPNPointer-1] := Res else if (Abs(Y) < MaxInt) and (Trunc(Y) = Y) then { Integer exponent } RPNStack[RPNPointer-1] := TPMathIntPower(X, Trunc(Y)) else if X <= 0.0 then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans power'); exit; end else begin YLnX := Y * Ln(X); if YLnX < MinLog then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('Depassement de maxfloat dans power'); exit; end else if YLnX > MaxLog then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('Depassement de maxfloat dans power'); exit; end else RPNStack[RPNPointer-1]:= Exp(YLnX); end; end; arctan2v : begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=ArcTan2(RPNStack[RPNPointer],RPNStack[RPNPointer-1]); end; stepv : begin Dec(RPNPointer); If RPNStack[RPNPointer-1]>RPNStack[RPNPOINTER] THEN RPNStack[RPNPointer-1]:=1.0 else RPNStack[RPNPointer-1]:=0.0; end; hypotv : begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=hypot(RPNStack[RPNPointer],RPNStack[RPNPointer-1]); end; lognv : begin Dec(RPNPointer); if ((RPNStack[RPNPointer]<=0) or (RPNStack[RPNPointer-1]<=0)) then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans logN'); exit; end else if ((RPNStack[RPNPointer-1]=0)) then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans logN'); exit; end else RPNStack[RPNPointer-1]:=logn(RPNStack[RPNPointer],RPNStack[RPNPointer-1]); end; argv: begin Dec(RPNPointer); if RPNStack[RPNPointer]<0 then RPNStack[RPNPointer-1]:=arctan(RPNStack[RPNPointer-1]/ RPNStack[RPNPointer])+Pi else if RPNStack[RPNPointer]>0 then RPNStack[RPNPointer-1]:=arctan(RPNStack[RPNPointer-1]/ RPNStack[RPNPointer]) else if RPNStack[RPNPointer-1]>0 then RPNStack[RPNPointer-1]:=0.5*Pi else RPNStack[RPNPointer-1]:=-0.5*Pi; end; minv: begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=min(RPNStack[RPNPointer],RPNStack[RPNPointer-1]); end; maxv: begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=max(RPNStack[RPNPointer],RPNStack[RPNPointer-1]); end; infv: begin Dec(RPNPointer); if RPNStack[RPNPointer]<RPNStack[RPNPointer-1] then RPNStack[RPNPointer-1]:=1 else RPNStack[RPNPointer-1]:=0; end; infev: begin Dec(RPNPointer); if RPNStack[RPNPointer]<=RPNStack[RPNPointer-1] then RPNStack[RPNPointer-1]:=1 else RPNStack[RPNPointer-1]:=0; end; supv: begin Dec(RPNPointer); if RPNStack[RPNPointer]>RPNStack[RPNPointer-1] then RPNStack[RPNPointer-1]:=1 else RPNStack[RPNPointer-1]:=0; end; supev: begin Dec(RPNPointer); if RPNStack[RPNPointer]>=RPNStack[RPNPointer-1] then RPNStack[RPNPointer-1]:=1 else RPNStack[RPNPointer-1]:=0; end; naninfv: begin Dec(RPNPointer); if RPNStack[RPNPointer]<RPNStack[RPNPointer-1] then RPNStack[RPNPointer-1]:=NAN else RPNStack[RPNPointer-1]:=0; end; nansupv: begin Dec(RPNPointer); if RPNStack[RPNPointer]>RPNStack[RPNPointer-1] then RPNStack[RPNPointer-1]:=NAN else RPNStack[RPNPointer-1]:=0; end; naninv: begin Dec(RPNPointer); if abs(RPNStack[RPNPointer])<abs(RPNStack[RPNPointer-1]) then RPNStack[RPNPointer-1]:=NAN else RPNStack[RPNPointer-1]:=0; end; nanoutv: begin Dec(RPNPointer); if abs(RPNStack[RPNPointer])>abs(RPNStack[RPNPointer-1]) then RPNStack[RPNPointer-1]:=NAN else RPNStack[RPNPointer-1]:=0; end; else TEvalInternalError(1,ORD(TheArray^.op)); end; end; AFunction : begin {$IFDEF DebugMe} Writeln('function value:', ord(TheArray^.fun1)); {$ENDIF} if isnan(RPNStack[RPNPointer-1]) then begin raise TEvaluatorError.Create('erreur en cours d''empilement'); exit; end; Case TheArray^.Fun1 of absx: RPNStack[RPNPointer-1]:=abs(RPNStack[RPNPointer-1]); signx: if RPNStack[RPNPointer-1]>0 then RPNStack[RPNPointer-1]:=1 else if RPNStack[RPNPointer-1]<0 then RPNStack[RPNPointer-1]:=-1 else RPNStack[RPNPointer-1]:=0; heavx: if RPNStack[RPNPointer-1]>0 then RPNStack[RPNPointer-1]:=1 else RPNStack[RPNPointer-1]:=0; zerox: if RPNStack[RPNPointer-1]=0 then RPNStack[RPNPointer-1]:=0 else RPNStack[RPNPointer-1]:=1; truncx: RPNStack[RPNPointer-1]:=int(RPNStack[RPNPointer-1]); ceilx: if frac(RPNStack[RPNPointer-1])>0 then RPNStack[RPNPointer-1]:= int(RPNStack[RPNPointer-1]+1) else RPNStack[RPNPointer-1]:=int(RPNStack[RPNPointer-1]); floorx: if frac(RPNStack[RPNPointer-1])<0 then RPNStack[RPNPointer-1]:= int(RPNStack[RPNPointer-1]-1) else RPNStack[RPNPointer-1]:=int(RPNStack[RPNPointer-1]); cosx: RPNStack[RPNPointer-1]:=cos(RPNStack[RPNPointer-1]); sinx: RPNStack[RPNPointer-1]:=sin(RPNStack[RPNPointer-1]); tanx: RPNStack[RPNPointer-1]:=tan(RPNStack[RPNPointer-1]); sqrx: begin if RPNStack[RPNPointer-1]<>0 then if 2*ln(abs(RPNStack[RPNPointer-1]))>maxlog then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans sqr'); exit; end else if 2*ln(abs(RPNStack[RPNPointer-1]))<minlog then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans sqr'); exit; end else RPNStack[RPNPointer-1]:=sqr(RPNStack[RPNPointer-1]); end; sqrtx: begin if RPNStack[RPNPointer-1]<0 then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans sqrt'); exit; end else RPNStack[RPNPointer-1]:=sqrt(RPNStack[RPNPointer-1]); end; expx: begin if RPNStack[RPNPointer-1]<minlog then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans exp'); exit; end else if RPNStack[RPNPointer-1]>maxlog then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans exp'); exit; end else RPNStack[RPNPointer-1]:=exp(RPNStack[RPNPointer-1]); end; lnx: begin if RPNStack[RPNPointer-1]<=0 then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans ln'); exit; end else RPNStack[RPNPointer-1]:=ln(RPNStack[RPNPointer-1]); end; invx: begin if RPNStack[RPNPointer-1]=0 then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans inv'); exit; end else RPNStack[RPNPointer-1]:=1/RPNStack[RPNPointer-1]; end; minus: RPNStack[RPNPointer-1]:=-RPNStack[RPNPointer-1]; cotanx: RPNStack[RPNPointer-1]:=cotan(RPNStack[RPNPointer-1]); arcsinx: begin if abs(RPNStack[RPNPointer-1])>1 then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans arcsin'); exit; end else RPNStack[RPNPointer-1]:=arcsin(RPNStack[RPNPointer-1]); end; arccosx: begin if abs(RPNStack[RPNPointer-1])>1 then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans arccos'); exit; end else RPNStack[RPNPointer-1]:=arccos(RPNStack[RPNPointer-1]); end; arctanx: RPNStack[RPNPointer-1]:=arctan(RPNStack[RPNPointer-1]); sinhx: RPNStack[RPNPointer-1]:=sinh(RPNStack[RPNPointer-1]); coshx: RPNStack[RPNPointer-1]:=cosh(RPNStack[RPNPointer-1]); tanhx: RPNStack[RPNPointer-1]:=tanh(RPNStack[RPNPointer-1]); arcsinhx: RPNStack[RPNPointer-1]:=ArcSinh(RPNStack[RPNPointer-1]); arccoshx: begin if RPNStack[RPNPointer-1]<0 then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans arcosh'); exit; end else RPNStack[RPNPointer-1]:=ArcCosh(RPNStack[RPNPointer-1]); end; arctanhx: begin if RPNStack[RPNPointer-1]>1 then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans arctanh'); exit; end else RPNStack[RPNPointer-1]:=ArcTanh(RPNStack[RPNPointer-1]); end; log10x: begin if RPNStack[RPNPointer-1]<=0 then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans log10'); exit; end else RPNStack[RPNPointer-1]:=Log10(RPNStack[RPNPointer-1]); end; log2x: begin if RPNStack[RPNPointer-1]<=0 then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans log2'); exit; end else RPNStack[RPNPointer-1]:=Log2(RPNStack[RPNPointer-1]); end; logx: begin if RPNStack[RPNPointer-1]<=0 then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans log'); exit; end else RPNStack[RPNPointer-1]:=Log10(RPNStack[RPNPointer-1]); end; lnxpix: begin if RPNStack[RPNPointer-1]<=-1 then begin RPNStack[RPNPointer-1]:=NAN; raise TEvaluatorError.Create('erreur dans ln'); exit; end else RPNStack[RPNPointer-1]:=lnxp1(RPNStack[RPNPointer-1]); end; else TEvalInternalError(2,ORD(TheArray^.fun1)); end; end; else TEvalInternalError(3,ORD(TheArray^.VLIWEntity)); end; {$Ifdef DebugDump} Writeln('RecordNo: ',VliwRecs); IF RPNPointer>0 then begin Writeln('RPN stack'); for I:=0 TO RpnPointer-1 DO Writeln(I:2,' ',RpnStack[I]); end; {$Endif} dec(TheArray); dec(VliwRecs); UNTIL VliwRecs<0; Result:=RPNStack[0]; end; { function TEvaluator.i387Evaluate(const variables:Array of ArbFloat):ArbFloat; {This should become the really *cool* one in time. Still experimental though. Current status: - Can be entirely FP, but isn't allowed to use more that 4 stack-pos then. - Math's ARCCOS ARCCOSH ARCSIN ARCSINH ARCTAN2 ARCTANH COSH COTAN HYPOT LNXP1 LOG10 LOG2 LOGN POWER SINH TAN TANH and System.Exp are forbidden because they use stackroom internally. This is a problem, because specially Exp() is much too common. } CONST StackDepth=50; var TheArray : pVLIWEvalWord; VLIWRecs : Longint; RPNStack : ARRAY[0..StackDepth] OF ArbFloat; I, RPNPointer : Longint; procedure push(Val:ArbFloat); {$IFDEF FPC} InLine; {$endif} begin IF RPNPointer=StackDepth THEN RAISE TEvaluatorStackException.Create(SEvalStackDepthExceeded); RPNStack[RpnPointer]:=Val; INC(RPNPointer); end; begin VLIWRecs:=VariableName.Count; if (High(Variables)+1)<>VLIWRecs then Raise TEvaluatorNotEnoughVariables.Create(SeValBadNumberOfVars); RPNPointer:=0; VliwRecs:=VliwCount-1; TheArray:=@VLIWRPNExpr[VLIWRecs]; REPEAT {$IFDEF DebugMe} Writeln(VliwRecs,' ',ord(TheArray^.VLIWEntity)); {$ENDIF} TheArray:=@VLIWRPNExpr[VLIWRecs]; CASE TheArray^.VLIWEntity OF AVariable : begin {$IFDEF DebugMe} Writeln('var:', TheArray^.IndexOfVar); {$ENDIF} Push(Variables[TheArray^.IndexOfVar]); end; AfConstant : begin {$IFDEF DebugMe} Writeln('FP value:', TheArray^.value); {$ENDIF} Push(TheArray^.Value); end; AiConstant : begin {$IFDEF DebugMe} Writeln('Int value:', TheArray^.ivalue); {$ENDIF} Push(TheArray^.iValue); end; Placeholder: begin // RAISE TEvaluatorBadConstant.Create(ConstantNames[TheArray^.IndexOfConstant]); end; AnOperation: begin {$IFDEF DebugMe} Writeln('Operator value:', ord(TheArray^.op)); {$ENDIF} Case TheArray^.Op of addv : begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=RPNStack[RPNPointer]+RPNStack[RPNPointer-1]; end; subv : begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=RPNStack[RPNPointer]-RPNStack[RPNPointer-1]; end; mulv : begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=RPNStack[RPNPointer]*RPNStack[RPNPointer-1]; end; dvdv : begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=RPNStack[RPNPointer]/RPNStack[RPNPointer-1]; end; powv : begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=Power(RPNStack[RPNPointer],RPNStack[RPNPointer-1]); end; arctan2v : begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=ArcTan2(RPNStack[RPNPointer],RPNStack[RPNPointer-1]); end; stepv : begin Dec(RPNPointer); If RPNStack[RPNPointer-1]>RPNStack[RPNPOINTER] THEN RPNStack[RPNPointer-1]:=1.0 else RPNStack[RPNPointer-1]:=0.0; end; hypotv : begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=hypot(RPNStack[RPNPointer],RPNStack[RPNPointer-1]); end; lognv : begin Dec(RPNPointer); RPNStack[RPNPointer-1]:=logn(RPNStack[RPNPointer],RPNStack[RPNPointer-1]); end; else TEvalInternalError(1,ORD(TheArray^.op)); end; end; AFunction : begin {$IFDEF DebugMe} Writeln('function value:', ord(TheArray^.fun1)); {$ENDIF} Case TheArray^.Fun1 of cosx: RPNStack[RPNPointer-1]:=cos(RPNStack[RPNPointer-1]); sinx: RPNStack[RPNPointer-1]:=sin(RPNStack[RPNPointer-1]); tanx: RPNStack[RPNPointer-1]:=tan(RPNStack[RPNPointer-1]); sqrx: RPNStack[RPNPointer-1]:=sqr(RPNStack[RPNPointer-1]); sqrtx: RPNStack[RPNPointer-1]:=sqrt(RPNStack[RPNPointer-1]); expx: RPNStack[RPNPointer-1]:=exp(RPNStack[RPNPointer-1]); lnx: RPNStack[RPNPointer-1]:=ln(RPNStack[RPNPointer-1]); invx: RPNStack[RPNPointer-1]:=1/RPNStack[RPNPointer-1]; minus: RPNStack[RPNPointer-1]:=-RPNStack[RPNPointer-1]; cotanx: RPNStack[RPNPointer-1]:=cotan(RPNStack[RPNPointer-1]); arcsinx: RPNStack[RPNPointer-1]:=arcsin(RPNStack[RPNPointer-1]); arccosx: RPNStack[RPNPointer-1]:=arccos(RPNStack[RPNPointer-1]); arctanx: RPNStack[RPNPointer-1]:=arctan(RPNStack[RPNPointer-1]); sinhx: RPNStack[RPNPointer-1]:=sinh(RPNStack[RPNPointer-1]); coshx: RPNStack[RPNPointer-1]:=cosh(RPNStack[RPNPointer-1]); tanhx: RPNStack[RPNPointer-1]:=tanh(RPNStack[RPNPointer-1]); arcsinhx: RPNStack[RPNPointer-1]:=ArcSinh(RPNStack[RPNPointer-1]); arccoshx: RPNStack[RPNPointer-1]:=ArcCosh(RPNStack[RPNPointer-1]); arctanhx: RPNStack[RPNPointer-1]:=ArcTanh(RPNStack[RPNPointer-1]); log10x: RPNStack[RPNPointer-1]:=Log10(RPNStack[RPNPointer-1]); log2x: RPNStack[RPNPointer-1]:=Log2(RPNStack[RPNPointer-1]); lnxpix: RPNStack[RPNPointer-1]:=lnxp1(RPNStack[RPNPointer-1]); else TEvalInternalError(2,ORD(TheArray^.fun1)); end; end; else TEvalInternalError(3,ORD(TheArray^.VLIWEntity)); end; {$Ifdef DebugDump} Writeln('RecordNo: ',VliwRecs); IF RPNPointer>0 then begin Writeln('RPN stack'); for I:=0 TO RpnPointer-1 DO Writeln(I:2,' ',RpnStack[I]); end; {$Endif} dec(TheArray); dec(VliwRecs); UNTIL VliwRecs<0; Result:=RPNStack[0]; end; } function TEvaluator.Evaldepth:longint; {estimate stackdepth} var TheArray : pVLIWEvalWord; VLIWRecs : Longint; Deepest : Longint; RPNPointer : Longint; begin RPNPointer:=0; Deepest:=0; VliwRecs:=VliwCount-1; TheArray:=@VLIWRPNExpr[VLIWRecs]; REPEAT TheArray:=@VLIWRPNExpr[VLIWRecs]; CASE TheArray^.VLIWEntity OF AVariable, afconstant, aiconstant, {a placeholder always changes into a push} placeholder : Inc(rpnpointer); AnOperation : Dec(rpnpointer); {take two args, put one back} { AFunction : Doesn't do anything} end; If Deepest<RPNPointer then Deepest:=RPNPointer; dec(TheArray); dec(VliwRecs); UNTIL VliwRecs<0; Result:=deepest; end; {$IFDEF DebugDump} CONST VLIWOPNames : array[addv..nanoutv] of String[9] = ('add','sub','mul','dd','pow', 'arctan2','step','hypot','logn','arg','min','max', 'inf','infe','sup','supe','naninf','nansup','nanin','nanout'); procedure TEvaluator.WriteVliw(p:VLIWEvalWord); begin Write('writevliw ',(ord(p.vliwentity)-ORD(AVariable)):2,' '); CASE p.VLIWEntity OF AVariable : Writeln('variable : ', VariableName[p.IndexOfVar]); AfConstant : Writeln('FP value : ', p.value); AiConstant : Writeln('Int value: ', p.ivalue); Placeholder: begin writeln('placeholder'); end; AnOperation: begin Write('Operator : '); IF not (p.OP IN [addv..nanoutv]) then Writeln('Bad OPERATOR!') ELSE Writeln(VLIWOpNames[p.op]); end; AFunction : begin Write('Function: '); IF not (p.fun1 IN [absx..nanoutx]) then Writeln('xBad function') ELSE Writeln(FunctionNames[p.fun1]); end; else Writeln('xBAD Entity'); end; end; procedure TEvaluator.debugger; {Dump the VLIWArray in textual form for debugging} var TheArray : pVLIWEvalWord; VLIWRecs : Longint; {$IFNDEF GoUp} {$DEFINE GoDown} {$ENDIF} begin VLIWRecs:=VariableName.Count; Writeln('Variables : ',VLIWRecs); Writeln('Constants : ',ConstantNames.Count); VliwRecs:=VliwCount-1; Writeln('VLIWCount : ',VLIWCOUNT); {$IFDEF GoDown} TheArray:=@VLIWRPNExpr[VLIWRecs-1]; {$ELSE} TheArray:=VLIWRPNExpr; {$ENDIF} REPEAT {$IFDEF GoDown} Writeln(VliwRecs,' ',ord(TheArray^.VLIWEntity)); {$ELSE} Writeln(VLIWCount-VliwRecs,' ',ord(TheArray^.VLIWEntity)); {$ENDIF} Writeln('------------------------------------------------------'); WriteVliw(TheArray^); {$IFDEF GoDown} dec(TheArray); {$ELSE} INC(TheArray); {$ENDIF} dec(VliwRecs); UNTIL VliwRecs<0; end; {$ENDIF} { $Log$ Revision 1.1 2002/12/15 21:01:28 marco Initial revision }  �����������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit_commune.pas��������������������������������������������������������������������0000750�0001750�0001750�00000007755�13147330070�017300� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit_commune; {$mode objfpc}{$H+} interface uses LazUTF8,Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons, ComCtrls, Menus, ExtCtrls, StdCtrls,Grids{$ifdef windows},windows,shellapi,registry{$endif}, LazFileUtils; var repertoire_executable,repertoire_exemples,repertoire_aide,nomexecutable,repertoire_config_perso, repertoire_dosage_perso,chemin_po:string; Function MyGetAppConfigDirUTF8: String; {$ifdef windows} Function MyGetMesDocumentsUTF8: String; {$endif} Function ExpandEnvironmentString(s: String): String; Function Mystrtofloat(s:string):extended; implementation Function Mystrtofloat(s:string):extended; begin result:=strtofloat(trim(s)); end; Function ExpandEnvironmentString(s: String): String; Var i, k: Integer; sl: TStringList; s2: String; bP, bD: Boolean; Begin Result := s; bP := Pos('%', s) > 0; bD := Pos('$', s) > 0; If Not(bP Or bD) Then Exit; // Nichts zu konvertieren sl := TStringList.Create; sl.Sorted := bD; For i := GetEnvironmentVariableCount - 1 DownTo 0 Do // Alle Variablen in eine Liste merken Begin s2 := GetEnvironmentStringUTF8(i); If Length(s2) >= 2 Then If s2[1] <> '=' Then // Bei Windows kommt sowas auch vor, daher wegoptimieren sl.Add(s2); end; k := 0; Repeat // Durchlaufe so oft bis alle Env-Variablen aufgelöst sind s2 := Result; For i := sl.Count - 1 DownTo 0 Do Begin If bP Then Begin Result := StringReplace(Result, '%' + sl.Names[i] + '%', sl.ValueFromIndex[i], [rfReplaceAll, rfIgnoreCase]); If Pos('%', Result) = 0 Then bP := False; end; If bD Then Begin Result := StringReplace(Result, '$' + sl.Names[i], sl.ValueFromIndex[i], [rfReplaceAll]); If Pos('$', Result) = 0 Then bD := False; end; If Not(bP Or bD) Then Break; end; If Not(bP Or bD) Then Break; If SameText(s2, Result) Then Break; // % $ nicht konvertierbar, da im System nicht vorhanden Inc(k); If k > sl.Count - 2 Then Break; // Max Durchläufe Until True; sl.Free; end; Function MyGetAppConfigDirUTF8: String; {il est necessaire de modifier GetAppConfigDir car sur les systemes windows renvoie local setting\application data au lieu de application data} var I: Integer; EnvVars: TStringList; begin {$ifndef windows} result:=(SysUtils.GetAppConfigDir(false)); {$endif} {$ifdef windows} EnvVars := TStringList.Create; try for I := 0 to GetEnvironmentVariableCount - 1 do EnvVars.Add(GetEnvironmentString(I)); result:=AppendPathDelim(EnvVars.Values['APPDATA'])+'dozzzaqueux\'; finally EnvVars.Free; end; {$endif} end; {$ifdef windows} Function MyGetMesDocumentsUTF8: String; var Reg: TRegistry; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_CURRENT_USER; Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\' + 'Explorer\User Shell Folders\', False); result:=ExpandEnvironmentString(Reg.ReadString('Personal')); finally Reg.Free; end; end; {$endif} initialization repertoire_executable:=AppendPathDelim(extractfilepath((Application.ExeName))); nomexecutable:=extractfilename(Application.ExeName); repertoire_exemples:=AppendPathDelim(repertoire_executable+'Exemples'); repertoire_aide:=AppendPathDelim(repertoire_executable+'Aide'); repertoire_config_perso:=AppendPathDelim(MyGetAppConfigDirUTF8); {$ifdef windows} repertoire_dosage_perso:=AppendPathDelim(AppendPathDelim(MyGetMesDocumentsUTF8)+'MesDosages'); {$endif} {$ifndef windows} repertoire_dosage_perso:=AppendPathDelim({repertoire_config_perso}GetUserDir+'MesDosages'); {$endif} end. �������������������dozzaqueux-3.51/unit26b.lfm�������������������������������������������������������������������������0000750�0001750�0001750�00000011124�13147330070�016043� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object Form26b: TForm26b Left = 730 Height = 438 Top = 183 Width = 630 ActiveControl = Editformulebrute BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Recherche dans la base' ClientHeight = 438 ClientWidth = 630 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 380 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Entrez tout ou partie de l''indentifiant ou du synonyme' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 40 Width = 341 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = ' Exemples: éthanoïque Acide pentanedioïque ' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = BitBtn1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 199 Width = 210 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Puis cliquez sur l''espéce choisie:' ParentColor = False end object Editformulebrute: TEdit AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 10 Height = 28 Top = 70 Width = 620 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 BorderSpacing.Top = 10 TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = Editformulebrute AnchorSideTop.Side = asrBottom AnchorSideRight.Control = BitBtn2 Left = 10 Height = 81 Top = 108 Width = 463 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 Caption = 'Chercher' Default = True Glyph.Data = { DE010000424DDE01000000000000760000002800000024000000120000000100 04000000000068010000120B0000120B00001000000010000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333 3333333333333333333333330000333333333333333333333333F33333333333 00003333344333333333333333388F3333333333000033334224333333333333 338338F3333333330000333422224333333333333833338F3333333300003342 222224333333333383333338F3333333000034222A22224333333338F338F333 8F33333300003222A3A2224333333338F3838F338F33333300003A2A333A2224 33333338F83338F338F33333000033A33333A222433333338333338F338F3333 0000333333333A222433333333333338F338F33300003333333333A222433333 333333338F338F33000033333333333A222433333333333338F338F300003333 33333333A222433333333333338F338F00003333333333333A22433333333333 3338F38F000033333333333333A223333333333333338F830000333333333333 333A333333333333333338330000333333333333333333333333333333333333 0000 } NumGlyphs = 2 OnClick = BitBtn1Click TabOrder = 1 end object sgreactifs: TStringGrid AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 209 Hint = 'Pour sélectionner un réactif, cliquez sur la ligne correspondante.' Top = 229 Width = 610 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 ParentShowHint = False ShowHint = True TabOrder = 2 OnMouseUp = sgreactifsMouseUp end object BitBtn2: TBitBtn AnchorSideTop.Control = BitBtn1 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 483 Height = 81 Top = 108 Width = 137 Anchors = [akTop, akRight] BorderSpacing.Right = 10 Cancel = True Caption = 'Annuler' Kind = bkCancel ModalResult = 2 TabOrder = 3 end end ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/deplace_legende.lfm�����������������������������������������������������������������0000750�0001750�0001750�00000002725�13147330070�017641� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object form_deplace_legende: Tform_deplace_legende Left = 565 Height = 240 Top = 208 Width = 320 BorderStyle = bsDialog Caption = 'Déplacement légende' ClientHeight = 240 ClientWidth = 320 OnCreate = FormCreate LCLVersion = '1.2.2.0' object TrackBar1: TTrackBar AnchorSideLeft.Control = Owner AnchorSideRight.Control = TrackBar2 Left = 10 Height = 26 Top = 80 Width = 180 Max = 100 Position = 0 Anchors = [akLeft, akRight] BorderSpacing.Left = 10 BorderSpacing.Right = 10 TabOrder = 0 end object TrackBar2: TTrackBar AnchorSideTop.Control = Owner AnchorSideBottom.Control = BitBtn1 Left = 200 Height = 157 Top = 10 Width = 23 Max = 100 Orientation = trVertical Position = 0 Anchors = [akTop, akBottom] BorderSpacing.Top = 10 BorderSpacing.Bottom = 10 TabOrder = 1 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 53 Top = 177 Width = 300 Anchors = [akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Default = True DefaultCaption = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 2 end end �������������������������������������������dozzaqueux-3.51/exprstrs.inc������������������������������������������������������������������������0000750�0001750�0001750�00000003470�13147330070�016444� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ $ id: $ Copyright (c) 2000 by Marco van de Voort(marco@freepascal.org) member of the Free Pascal development team See the file COPYING.FPC, included in this distribution, for details about the copyright. (LGPL) Some resourcestrings. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. **********************************************************************} resourcestring SEvalIE ='TEvaluator: Internal Error: '; SEvalStackDepthExceeded ='TEvaluator: Stack depth Evaluate exceeded'; SEvalBadNumberOfVars ='TEvaluator: Invalid number of variables'; SParsIE ='TBaseExprParser: Internal Error:'; SParseRPNOverflow ='TBaseExprParser: RPN stack overflow'; SParseRPNUnderflow ='TBaseExprParser: RPN stack underflow'; SParsDiv0 ='TBaseExprParser: RPN Division by zero in parser'; SParsOpOverflow ='TBaseExprParser: Operator stack Overflow'; SParsOpUnderflow ='TBaseExprParser: Operator stack Underflow'; SNILDeref ='NIL dereference'; SExprIE ='TExpression: Internal error: '; SExprNotInt ='TExpression: This is not an integer'; SExprNotFloat ='TExpression: This is not a float'; SExprInvmsg ='TExpression: Inv(x) evaluates to 1/0'; SExprInvSimp ='TExpression: Division by 0 encountered while simplifying'; SExprNotAfterVar ='TExpression: illegal symbol after variable or constant'; { $Log$ Revision 1.1 2002/12/15 21:01:22 marco Initial revision }  ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit3.pas���������������������������������������������������������������������������0000750�0001750�0001750�00000011761�13147330070�015630� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ Copyright 2005 Jean-Marie Biansan This file is part of Dozzzaqueux. Dozzzaqueux is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Dozzzaqueux is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Dozzzaqueux; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA } unit Unit3; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,UChaines,UnitScaleFont,math,LCLType, ExtCtrls,Unit_commune; type { Tsaisienombremole } Tsaisienombremole = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; Edit_quantite: TEdit; Label1: TLabel; Label_unite: TLabel; Memo1: TMemo; RadioGroup1: TRadioGroup; procedure BitBtn1Click(Sender: TObject); procedure Edit_quantiteKeyPress(Sender: TObject; var Key: char); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure RadioGroup1SelectionChanged(Sender: TObject); private { Dclarations prives } encreation:boolean; public { Dclarations publiques } end; var saisienombremole: Tsaisienombremole; nono,mama,nono1,mama1:float; implementation uses Unit1; procedure Tsaisienombremole.BitBtn1Click(Sender: TObject); var vbe,vbu:float; begin nono:=0; mama:=0; nono1:=0; mama1:=0; try vbe:=mystrtofloat(form1.editvolume.text)/1000; except vbe:=volume_becher; end; try vbu:=mystrtofloat(form1.editvolume_burette.Text)/1000; except vbu:=volume_burette_max; end; if vbe>0 then volume_becher:=vbe; if vbu>0 then volume_burette_max:=vbu; if edit_quantite.Text='' then begin application.MessageBox(pchar(Format(rsPasDeValeurE, ['"', '"'])), pchar(rsAttention2), mb_ok); modalresult:=mrretry; exit; end; case radiogroup1.ItemIndex of 1:begin try nono:=mystrtofloat(edit_quantite.Text); except application.MessageBox(pchar(rsFormatDeVale), pchar(rsAttention2), mb_ok); modalresult:=mrretry; exit; end; if nono<=0 then begin application.MessageBox(pchar(rsLeNombreDeMo), pchar(rsAttention2), mb_ok); modalresult:=mrretry; exit; end; end; 2: begin try mama:=mystrtofloat(edit_quantite.Text); except application.MessageBox(pchar(rsFormatDeVale2), pchar(rsAttention2), mb_ok); modalresult:=mrretry; exit; end; if mama<=0 then begin application.MessageBox(pchar(rsLaMasseDoitT), pchar(rsAttention2), mb_ok); modalresult:=mrretry; exit; end; end; 0: begin try nono1:=mystrtofloat(edit_quantite.Text); except application.MessageBox(pchar(rsFormatDeVale3), pchar(rsAttention2), mb_ok); modalresult:=mrretry; exit; end; if nono1<=0 then begin application.MessageBox(pchar(rsLeNombreDeMo), pchar(rsAttention2), mb_ok); modalresult:=mrretry; exit; end; end; 3: begin try mama1:=mystrtofloat(edit_quantite.Text); except application.MessageBox(pchar(rsFormatDeVale2), pchar(rsAttention2), mb_ok); modalresult:=mrretry; exit; end; if mama1<=0 then begin application.MessageBox(pchar(rsLaMasseDoitT), pchar(rsAttention2), mb_ok); modalresult:=mrretry; exit; end; end; end; end; procedure Tsaisienombremole.Edit_quantiteKeyPress(Sender: TObject; var Key: char ); begin if key=',' then key:='.'; end; procedure Tsaisienombremole.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsNombreDeMole2 ; Label_unite.Caption := rsLaQuantitDeM ; BitBtn1.Caption := rsOK ; BitBtn2.Caption := rsAnnuler ; radiogroup1.Items.Clear; radiogroup1.Items.Add(rsLaQuantitDeM2); radiogroup1.Items.Add(rsLaQuantitDeM); radiogroup1.Items.Add(rsLaMasse); radiogroup1.Items.Add(rsLaMasseParLD); radiogroup1.ItemIndex:=0; label_unite.Caption:=rsMolL; memo1.Lines.Clear; memo1.Lines.Add(rsAttentionLeV); memo1.Lines.Add(rsAinsiSiLeVol); memo1.Lines.Add(rsLaConcentrat); memo1.Lines.Add(rsSiVousSaisis); end; procedure Tsaisienombremole.FormShow(Sender: TObject); begin //if encreation then begin scalefont(self); encreation:=false; end; edit_quantite.SetFocus; end; procedure Tsaisienombremole.RadioGroup1SelectionChanged(Sender: TObject); begin case RadioGroup1.ItemIndex of 0: label_unite.Caption:=rsMolL; 1: label_unite.Caption:=rsMol; 2:label_unite.Caption:=rsG; 3: label_unite.Caption:=rsGL; end; end; initialization {$I unit3.lrs} end. ���������������dozzaqueux-3.51/unit25.lfm��������������������������������������������������������������������������0000750�0001750�0001750�00000006706�13147330070�015712� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object saisie_conductivite: Tsaisie_conductivite Left = 578 Height = 254 Top = 249 Width = 668 ActiveControl = Edit1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Saisie conductivité' ClientHeight = 254 ClientWidth = 668 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 186 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'La conductivité de l''espèce' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Label1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrCenter Left = 206 Height = 20 Top = 10 Width = 46 BorderSpacing.Left = 10 Caption = 'Label2' Font.Color = clBlue Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 40 Width = 555 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'ne figure pas dans ma base de données. Vous pouvez saisir la valeur ci-dessous:' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label4: TLabel AnchorSideLeft.Control = Edit1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Edit1 AnchorSideTop.Side = asrCenter Left = 87 Height = 20 Top = 74 Width = 106 BorderSpacing.Left = 10 Caption = '0,1 mS.m²/mol' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label5: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Edit1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 108 Width = 570 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Remarque: cette modification ne perdurera que durant cette session de Dozzzaqueux..' ParentColor = False end object Label6: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label5 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 138 Width = 573 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Si vous voulez la rendre définitive, modifiez cette espèce dans la base avec Modifbase.' ParentColor = False end object Edit1: TEdit AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrBottom Left = 10 Height = 28 Top = 70 Width = 67 BorderSpacing.Left = 10 BorderSpacing.Top = 10 OnKeyPress = Edit1KeyPress TabOrder = 0 Text = '40' end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label6 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 76 Top = 168 Width = 648 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 1 end end ����������������������������������������������������������dozzaqueux-3.51/unitsaisietailleimage.lfm�����������������������������������������������������������0000750�0001750�0001750�00000006177�13147330070�021141� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object SaisieTailleImage: TSaisieTailleImage Left = 739 Height = 116 Top = 345 Width = 332 ActiveControl = SpinEditLargeur BorderIcons = [biSystemMenu] BorderStyle = bsDialog Caption = 'Taille de l''image' ClientHeight = 116 ClientWidth = 332 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 20 Width = 58 BorderSpacing.Left = 10 BorderSpacing.Top = 20 Caption = 'Largeur:' Font.Color = clGreen Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 70 Width = 61 BorderSpacing.Left = 10 BorderSpacing.Top = 30 Caption = 'Hauteur:' Font.Color = clMaroon Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideLeft.Control = SpinEditLargeur AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpinEditLargeur AnchorSideTop.Side = asrCenter Left = 162 Height = 20 Top = 20 Width = 40 BorderSpacing.Left = 10 Caption = 'pixels' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label4: TLabel AnchorSideLeft.Control = SpinEditHauteur AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpinEditHauteur AnchorSideTop.Side = asrCenter Left = 165 Height = 20 Top = 70 Width = 40 BorderSpacing.Left = 10 Caption = 'pixels' Font.Style = [fsBold] ParentColor = False ParentFont = False end object SpinEditLargeur: TSpinEdit AnchorSideLeft.Control = Label1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrCenter Left = 78 Height = 28 Top = 16 Width = 74 BorderSpacing.Left = 10 MaxValue = 100000 MinValue = 1 TabOrder = 0 Value = 1 end object SpinEditHauteur: TSpinEdit AnchorSideLeft.Control = Label2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrCenter Left = 81 Height = 28 Top = 66 Width = 74 BorderSpacing.Left = 10 MaxValue = 100000 MinValue = 1 TabOrder = 1 Value = 1 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Label4 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 215 Height = 96 Top = 10 Width = 107 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 2 end end �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit22.lfm��������������������������������������������������������������������������0000750�0001750�0001750�00000015744�13147330070�015711� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object saisietypedonnee: Tsaisietypedonnee Left = 821 Height = 347 Top = 195 Width = 549 ActiveControl = RadioGroupechelle_e.RadioButton0 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Type de donnée' ClientHeight = 347 ClientWidth = 549 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label15: TLabel AnchorSideLeft.Control = RadioGrouptype_e AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RadioGrouptype_e Left = 170 Height = 17 Top = 143 Width = 99 BorderSpacing.Left = 10 BorderSpacing.Top = 20 Caption = 'Taille des points:' ParentColor = False end object Label2: TLabel AnchorSideLeft.Control = RadioGrouptype_e AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label15 AnchorSideTop.Side = asrBottom Left = 170 Height = 17 Top = 170 Width = 90 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Epaisseur trait:' ParentColor = False end object Label3: TLabel AnchorSideLeft.Control = RadioGrouptype_e AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom Left = 170 Height = 17 Top = 207 Width = 52 BorderSpacing.Left = 10 BorderSpacing.Top = 20 Caption = 'Couleur:' ParentColor = False end object Label4: TLabel AnchorSideLeft.Control = RadioGrouptype_e AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrBottom Left = 170 Height = 17 Top = 244 Width = 34 BorderSpacing.Left = 10 BorderSpacing.Top = 20 Caption = 'Nom:' ParentColor = False end object Label1: TLabel Left = 14 Height = 1 Top = 3 Width = 1 ParentColor = False end object RadioGroupechelle_e: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 89 Top = 14 Width = 118 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Echelle:' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 67 ClientWidth = 114 ItemIndex = 0 Items.Strings = ( 'Gauche' 'Droite' ) TabOrder = 0 end object RadioGroupjoindre_e: TRadioGroup AnchorSideLeft.Control = RadioGroupechelle_e AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 138 Height = 90 Top = 14 Width = 151 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Joindre les points' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 68 ClientWidth = 147 ItemIndex = 0 Items.Strings = ( 'Non' 'Oui' ) TabOrder = 1 end object RadioGrouptype_e: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = RadioGroupechelle_e AnchorSideTop.Side = asrBottom Left = 10 Height = 145 Top = 123 Width = 150 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 20 Caption = 'Représentée par:' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 123 ClientWidth = 146 ItemIndex = 0 Items.Strings = ( 'Disque' 'Croix (x)' 'Cercle' 'Croix (+)' ) TabOrder = 2 end object SpinEdittaille_e: TSpinEdit AnchorSideLeft.Control = Label15 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label15 AnchorSideTop.Side = asrCenter Left = 279 Height = 25 Top = 139 Width = 39 BorderSpacing.Left = 10 MinValue = 1 TabOrder = 3 Value = 1 end object SpinEditepaisseur_e: TSpinEdit AnchorSideLeft.Control = Label2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrCenter Left = 270 Height = 25 Top = 166 Width = 43 BorderSpacing.Left = 10 MinValue = 1 TabOrder = 4 Value = 1 end object Edit_nom_e: TEdit AnchorSideLeft.Control = Label4 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label4 AnchorSideTop.Side = asrCenter Left = 214 Height = 25 Top = 240 Width = 82 BorderSpacing.Left = 10 TabOrder = 5 end object CheckBoxrepresente: TCheckBox AnchorSideLeft.Control = Owner AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 21 Top = 316 Width = 234 Anchors = [akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Bottom = 10 Caption = 'Ne pas représenter cette grandeur' TabOrder = 6 end object BitBtn1: TBitBtn AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 432 Height = 327 Top = 10 Width = 107 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 7 end object SpeedButtoncouleur_e: TPanel AnchorSideLeft.Control = Label3 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrCenter Left = 232 Height = 31 Top = 200 Width = 66 BorderSpacing.Left = 10 TabOrder = 8 OnClick = SpeedButtoncouleur_eClick end object ColorDialog1: TColorDialog Color = clBlack CustomColors.Strings = ( 'ColorA=000000' 'ColorB=000080' 'ColorC=008000' 'ColorD=008080' 'ColorE=800000' 'ColorF=800080' 'ColorG=808000' 'ColorH=808080' 'ColorI=C0C0C0' 'ColorJ=0000FF' 'ColorK=00FF00' 'ColorL=00FFFF' 'ColorM=FF0000' 'ColorN=FF00FF' 'ColorO=FFFF00' 'ColorP=FFFFFF' 'ColorQ=C0DCC0' 'ColorR=F0CAA6' 'ColorS=F0FBFF' 'ColorT=A4A0A0' ) left = 336 end end ����������������������������dozzaqueux-3.51/unit6.lfm���������������������������������������������������������������������������0000750�0001750�0001750�00000011132�13147330070�015616� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object saisieexpression: Tsaisieexpression Left = 445 Height = 560 Top = 221 Width = 911 ActiveControl = Editexpression BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Saisie de l''expression' ClientHeight = 560 ClientWidth = 911 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.6.0.4' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 17 Top = 10 Width = 797 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Saisissez l''expression de la grandeur . Les noms des variables (V,..., c1, c2,...,n1, n2...) et les noms de fonction ont les' Font.Color = clBlue Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 17 Top = 37 Width = 238 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'significations indiquées ci-dessous:' Font.Color = clBlue Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideTop.Control = BitBtn1 AnchorSideTop.Side = asrBottom Left = 6 Height = 17 Top = 198 Width = 137 BorderSpacing.Top = 10 Caption = 'Variables utilisables:' Font.Color = clRed Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label4: TLabel AnchorSideLeft.Control = Label3 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrCenter Left = 443 Height = 17 Top = 198 Width = 239 BorderSpacing.Left = 300 Caption = 'Opérateurs et fonctions utilisables:' Font.Color = clGreen Font.Style = [fsBold] ParentColor = False ParentFont = False end object Editexpression: TEdit AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 10 Height = 25 Top = 64 Width = 891 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 OnKeyUp = EditexpressionKeyUp OnMouseUp = EditexpressionMouseUp TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = Editexpression AnchorSideTop.Side = asrBottom AnchorSideRight.Control = BitBtn2 Left = 10 Height = 89 Top = 99 Width = 619 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 Caption = 'Valider' Default = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 1 end object ListBoxvariables: TListBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 325 Top = 225 Width = 400 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Bottom = 10 ClickOnSelChange = False ItemHeight = 0 OnSelectionChange = ListBoxvariablesSelectionChange TabOrder = 2 end object ListBoxfonctions: TListBox AnchorSideLeft.Control = ListBoxvariables AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label4 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 440 Height = 325 Top = 225 Width = 461 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 30 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 ClickOnSelChange = False ItemHeight = 0 OnSelectionChange = ListBoxfonctionsSelectionChange TabOrder = 3 end object BitBtn2: TBitBtn AnchorSideTop.Control = BitBtn1 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 639 Height = 85 Top = 101 Width = 262 Anchors = [akTop, akRight] BorderSpacing.Right = 10 Cancel = True Caption = 'Annuler' Kind = bkCancel ModalResult = 2 TabOrder = 4 end end ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit16.lfm��������������������������������������������������������������������������0000750�0001750�0001750�00000005363�13147330070�015710� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object Formoptionscsv: TFormoptionscsv Left = 292 Height = 244 Top = 195 Width = 758 ActiveControl = RadioGroupseparateur_csv.RadioButton0 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Options pour l''export au format tableur texte' ClientHeight = 244 ClientWidth = 758 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object RadioGroupseparateur_csv: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 128 Top = 10 Width = 271 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Séparateur de colonnes:' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 106 ClientWidth = 267 ItemIndex = 0 Items.Strings = ( 'Point virgule' 'Espace' ) TabOrder = 0 end object RadioGroupseparateurdecimal: TRadioGroup AnchorSideLeft.Control = RadioGroupseparateur_csv AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner Left = 291 Height = 128 Top = 10 Width = 445 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Séparateur décimal' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 106 ClientWidth = 441 ItemIndex = 0 Items.Strings = ( 'Virgule (recommandé pour OpenOffice/Staroffice)' 'Point (recommandé pour Excel)' ) TabOrder = 1 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = RadioGroupseparateur_csv AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 86 Top = 148 Width = 738 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 2 end end �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit23.lrs��������������������������������������������������������������������������0000750�0001750�0001750�00000005631�13147330070�015726� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisieregressi','FORMDATA',[ 'TPF0'#15'Tsaisieregressi'#14'saisieregressi'#4'Left'#3'$'#1#6'Height'#3'8'#1 +#3'Top'#3#195#0#5'Width'#3#222#1#13'ActiveControl'#7#5'Memo1'#11'BorderIcons' +#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Captio' +'n'#6#30'Chargement fichier exp'#195#169'rience'#12'ClientHeight'#3'8'#1#11 +'ClientWidth'#3#222#1#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10 +'LCLVersion'#6#7'1.2.2.0'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7 +#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3 +'Top'#2#10#5'Width'#3#250#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top' +#2#10#7'Caption'#6'%Grandeurs pr'#195#169'sentes dans le fichier:'#10'Font.S' +'tyle'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Lab' +'el2'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Me' +'mo1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'To' +'p'#3#228#0#5'Width'#3'b'#1#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top' +#2#10#7'Caption'#6'6Indice de la ligne de la grandeur qui sera l''abscisse:' +#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#5'TMem' +'o'#5'Memo1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control' +#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#3 +#178#0#3'Top'#2'('#5'Width'#3#214#0#18'BorderSpacing.Left'#2#10#17'BorderSpa' +'cing.Top'#2#10#8'TabOrder'#2#0#0#0#9'TSpinEdit'#9'SpinEdit1'#22'AnchorSideL' +'eft.Control'#7#6'Label2'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSi' +'deTop.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3 +'v'#1#6'Height'#2#28#3'Top'#3#224#0#5'Width'#2''''#18'BorderSpacing.Left'#2 +#10#8'MinValue'#2#1#8'TabOrder'#2#1#5'Value'#2#1#0#0#9'TCheckBox'#24'CheckBo' +'xrecalculechelles'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.C' +'ontrol'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'He' +'ight'#2#24#3'Top'#3#2#1#5'Width'#3'z'#1#18'BorderSpacing.Left'#2#10#17'Bord' +'erSpacing.Top'#2#10#7'Caption'#6'3Recalculer automatiquement les '#195#169 +'chelles verticales'#7'Checked'#9#10'Font.Style'#11#6'fsBold'#0#10'ParentFon' +'t'#8#5'State'#7#9'cbChecked'#8'TabOrder'#2#2#0#0#7'TBitBtn'#7'BitBtn1'#22'A' +'nchorSideLeft.Control'#7#5'Memo1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21 +'AnchorSideTop.Control'#7#5'Memo1'#24'AnchorSideBottom.Control'#7#5'Memo1'#21 +'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#234#0#6'Height'#3#178#0#3'T' +'op'#2'('#5'Width'#3#190#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18 +'BorderSpacing.Left'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK' +#11'ModalResult'#2#1#7'OnClick'#7#12'BitBtn1Click'#8'TabOrder'#2#3#0#0#0 ]); �������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit1.lrs���������������������������������������������������������������������������0000750�0001750�0001750�00000241314�13147330070�015642� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm1','FORMDATA',[ 'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#185#1#6'Height'#3#148#2#3'Top'#3#157#0#5 +'Width'#3#194#4#18'HorzScrollBar.Page'#3#172#3#18'VertScrollBar.Page'#3'g'#2 +#7'Caption'#6#11'Dozzzaqueux'#12'ClientHeight'#3'{'#2#11'ClientWidth'#3#194#4 +#13'DesignTimePPI'#2'x'#4'Menu'#7#9'MainMenu1'#10'OnActivate'#7#12'FormActiv' +'ate'#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11'FormDestroy'#8'OnResize' +#7#10'FormResize'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.8.0.4'#11'Win' +'dowState'#7#11'wsMaximized'#0#12'TPageControl'#12'PageControl4'#4'Left'#2#0 +#6'Height'#3'{'#2#3'Top'#2#0#5'Width'#3#194#4#10'ActivePage'#7#15'TabSheetch' +'oisir'#5'Align'#7#8'alClient'#8'TabIndex'#2#0#8'TabOrder'#2#0#8'OnChange'#7 +#18'PageControl4Change'#10'OnChanging'#7#20'PageControl4Changing'#0#9'TTabSh' +'eet'#15'TabSheetchoisir'#7'Caption'#6#27'Choix des r'#195#169'actifs:b'#195 +#169'cher'#12'ClientHeight'#3'Z'#2#11'ClientWidth'#3#186#4#8'OnResize'#7#21 +'TabSheetchoisirResize'#0#6'TLabel'#7'Label14'#22'AnchorSideLeft.Control'#7 +#15'TabSheetchoisir'#21'AnchorSideTop.Control'#7#15'TabSheetchoisir'#4'Left' +#2#10#6'Height'#2#25#3'Top'#2#5#5'Width'#2'<'#18'BorderSpacing.Left'#2#10#17 +'BorderSpacing.Top'#2#5#7'Caption'#6#7'B'#195#169'cher'#10'Font.Color'#7#6'c' +'lBlue'#11'Font.Height'#2#237#10'Font.Style'#11#6'fsBold'#11'fsUnderline'#0 +#11'ParentColor'#8#10'ParentFont'#8#0#0#12'TSpeedButton'#22'SpeedButtonvider' +'becher'#22'AnchorSideLeft.Control'#7#7'Label14'#19'AnchorSideLeft.Side'#7#9 +'asrBottom'#21'AnchorSideTop.Control'#7#7'Label14'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#2'Z'#6'Height'#2#25#3'Top'#2#5#5'Width'#2'A'#18'BorderSp' +'acing.Left'#2#20#7'Caption'#6#5'Vider'#10'Font.Color'#7#5'clRed'#11'Font.He' +'ight'#2#245#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#27'SpeedButtonviderb' +'echerClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#14'SpeedButtonx10'#22'Anc' +'horSideLeft.Control'#7#15'TabSheetchoisir'#21'AnchorSideTop.Control'#7#6'La' +'bel1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#30#4'H' +'int'#6'%Multiplier les concentrations par 10'#3'Top'#2'z'#5'Width'#2')'#18 +'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#3'x10'#7'O' +'nClick'#7#19'SpeedButtonx10Click'#8'ShowHint'#9#14'ParentShowHint'#8#0#0#12 +'TSpeedButton'#14'SpeedButton_10'#22'AnchorSideLeft.Control'#7#14'SpeedButto' +'nx10'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#14 +'SpeedButtonx10'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'='#6'Height' +#2#30#4'Hint'#6'"Diviser les concentrations par 10'#3'Top'#2'z'#5'Width'#2 +'#'#18'BorderSpacing.Left'#2#10#7'Caption'#6#3'/10'#7'OnClick'#7#19'SpeedBut' +'ton_10Click'#8'ShowHint'#9#14'ParentShowHint'#8#0#0#6'TLabel'#6'Label5'#22 +'AnchorSideLeft.Control'#7#15'TabSheetchoisir'#21'AnchorSideTop.Control'#7#7 +'Label14'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#13#3 +'Top'#2'('#5'Width'#2'O'#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2 +#10#7'Caption'#6#15'Volume initial='#11'Font.Height'#2#245#10'Font.Style'#11 +#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label6'#22'A' +'nchorSideLeft.Control'#7#10'Editvolume'#19'AnchorSideLeft.Side'#7#9'asrBott' +'om'#21'AnchorSideTop.Control'#7#10'Editvolume'#18'AnchorSideTop.Side'#7#9'a' +'srCenter'#4'Left'#3#150#0#6'Height'#2#13#3'Top'#2'('#5'Width'#2#16#18'Borde' +'rSpacing.Left'#2#10#7'Caption'#6#2'mL'#11'Font.Height'#2#245#10'Font.Style' +#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label7'#22 +'AnchorSideLeft.Control'#7#15'TabSheetchoisir'#21'AnchorSideTop.Control'#7#6 +'Label5'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#13#3 +'Top'#2'D'#5'Width'#2'I'#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2 +#15#7'Caption'#6#13'Temp'#195#169'rature='#11'Font.Height'#2#245#10'Font.Sty' +'le'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label' +'8'#22'AnchorSideLeft.Control'#7#15'Edittemperature'#19'AnchorSideLeft.Side' +#7#9'asrBottom'#21'AnchorSideTop.Control'#7#15'Edittemperature'#18'AnchorSid' +'eTop.Side'#7#9'asrCenter'#4'Left'#3#144#0#6'Height'#2#13#3'Top'#2'D'#5'Widt' +'h'#2#7#18'BorderSpacing.Left'#2#10#7'Caption'#6#1'K'#11'Font.Height'#2#245 +#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLab' +'el'#6'Label1'#22'AnchorSideLeft.Control'#7#15'TabSheetchoisir'#21'AnchorSid' +'eTop.Control'#7#6'Label7'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#30 +#6'Height'#2#21#3'Top'#2'['#5'Width'#2'x'#18'BorderSpacing.Left'#2#30#17'Bor' +'derSpacing.Top'#2#10#7'Caption'#6#18'R'#195#169'actifs choisis:'#10'Font.Co' +'lor'#7#7'clGreen'#11'Font.Height'#2#240#10'Font.Style'#11#6'fsBold'#11'fsUn' +'derline'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label11'#22'A' +'nchorSideLeft.Control'#7#25'stringgridreactifs_becher'#19'AnchorSideLeft.Si' +'de'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#15'TabSheetchoisir'#4'Left'#3 +#8#2#6'Height'#2#25#3'Top'#2#10#5'Width'#3#141#0#18'BorderSpacing.Left'#3#200 ,#0#17'BorderSpacing.Top'#2#10#7'Caption'#6#18'Base de r'#195#169'actifs:'#10 +'Font.Color'#7#5'clRed'#11'Font.Height'#2#237#10'Font.Style'#11#6'fsBold'#11 +'fsUnderline'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#5'TEdit'#10'Editvolum' +'e'#22'AnchorSideLeft.Control'#7#6'Label5'#19'AnchorSideLeft.Side'#7#9'asrBo' +'ttom'#21'AnchorSideTop.Control'#7#6'Label5'#18'AnchorSideTop.Side'#7#9'asrC' +'enter'#4'Left'#2'c'#6'Height'#2#28#4'Hint'#6#127'Changer cette valeur ne mo' +'difie pas les concentrations ! Utilisez le bouton "dilution" si vous voulez' +' les modifier par dilution'#3'Top'#2' '#5'Width'#2')'#18'BorderSpacing.Left' +#2#10#8'OnChange'#7#16'EditvolumeChange'#10'OnKeyPress'#7#18'EditvolumeKeyPr' +'ess'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#0#4'Text'#6#2'20'#0#0 +#5'TEdit'#15'Edittemperature'#22'AnchorSideLeft.Control'#7#6'Label7'#19'Anch' +'orSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Label7'#18'An' +'chorSideTop.Side'#7#9'asrCenter'#4'Left'#2']'#6'Height'#2#28#3'Top'#2'<'#5 +'Width'#2')'#18'BorderSpacing.Left'#2#10#10'OnKeyPress'#7#23'Edittemperature' +'KeyPress'#8'TabOrder'#2#1#4'Text'#6#3'298'#0#0#11'TStringGrid'#25'stringgri' +'dreactifs_becher'#22'AnchorSideLeft.Control'#7#15'TabSheetchoisir'#21'Ancho' +'rSideTop.Control'#7#14'SpeedButtonx10'#18'AnchorSideTop.Side'#7#9'asrBottom' +#24'AnchorSideBottom.Control'#7#7'BitBtn4'#4'Left'#2#10#6'Height'#3#24#1#3'T' +'op'#3#162#0#5'Width'#3'6'#1#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0 +#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#20'BorderSpacing.Bot' +'tom'#2#10#8'ColCount'#2#3#11'Font.Height'#2#245#10'ParentFont'#8#8'RowCount' +#2#2#8'TabOrder'#2#2#16'TitleFont.Height'#2#243#11'OnMouseDown'#7'"stringgri' +'dreactifs_bechermousedown'#0#0#7'TBitBtn'#7'BitBtn4'#22'AnchorSideLeft.Cont' +'rol'#7#15'TabSheetchoisir'#24'AnchorSideBottom.Control'#7#7'BitBtn1'#4'Left' +#2#10#6'Height'#2'A'#3'Top'#3#196#1#5'Width'#3'8'#1#7'Anchors'#11#6'akLeft'#8 +'akBottom'#0#18'BorderSpacing.Left'#2#10#20'BorderSpacing.Bottom'#2#10#7'Cap' +'tion'#6#22'Rechercher une esp'#195#169'ce'#4'Kind'#7#6'bkHelp'#7'OnClick'#7 +#12'BitBtn4Click'#8'TabOrder'#2#3#0#0#12'TPageControl'#12'PageControl1'#22'A' +'nchorSideLeft.Control'#7#25'stringgridreactifs_becher'#19'AnchorSideLeft.Si' +'de'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#7'Label11'#18'AnchorSideTop.' +'Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#15'TabSheetchoisir'#20'A' +'nchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#15'TabSh' +'eetchoisir'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'J'#1#6'Heigh' +'t'#3'#'#2#4'Hint'#6'CPour s'#195#169'lectionner un r'#195#169'actif, faites' +' un clic simple sur sa ligne.'#3'Top'#2'-'#5'Width'#3'f'#3#10'ActivePage'#7 +#10'TabSheetga'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18 +'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right' +#2#10#20'BorderSpacing.Bottom'#2#10#14'ParentShowHint'#8#8'ShowHint'#9#8'Tab' +'Index'#2#3#8'TabOrder'#2#4#0#9'TTabSheet'#14'TabSheetAqueux'#7'Caption'#6#12 +'Inorganiques'#12'ClientHeight'#3#155#2#11'ClientWidth'#3'y'#2#0#12'TPageCon' +'trol'#12'PageControl3'#4'Left'#2#0#6'Height'#3#155#2#3'Top'#2#0#5'Width'#3 +'y'#2#10'ActivePage'#7#10'TabSheet14'#5'Align'#7#8'alClient'#8'TabIndex'#2#4 +#8'TabOrder'#2#0#0#9'TTabSheet'#10'TabSheet10'#7'Caption'#6#15'Cations simpl' +'es'#12'ClientHeight'#3'z'#2#11'ClientWidth'#3'q'#2#0#11'TStringGrid'#24'Str' +'ingGridcationssimples'#4'Left'#2#0#6'Height'#3'z'#2#3'Top'#2#0#5'Width'#3'q' +#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Options'#11#15'goFixedVer' +'tLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmoothScroll' +#0#8'TabOrder'#2#0#14'OnCompareCells'#7'$StringGridcationssimplesCompareCell' +'s'#11'OnMouseDown'#7'!StringGridcationssimplesmousedown'#0#0#0#9'TTabSheet' +#10'TabSheet11'#7'Caption'#6#14'Anions simples'#12'ClientHeight'#3'z'#2#11'C' +'lientWidth'#3'q'#2#0#11'TStringGrid'#23'StringGridanionssimples'#4'Left'#2#0 +#6'Height'#3'z'#2#3'Top'#2#0#5'Width'#3'q'#2#5'Align'#7#8'alClient'#16'Colum' +'nClickSorts'#9#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goV' +'ertLine'#10'goHorzLine'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCompareCe' +'lls'#7'#StringGridanionssimplesCompareCells'#11'OnMouseDown'#7' StringGrida' +'nionssimplesmousedown'#0#0#0#9'TTabSheet'#10'TabSheet12'#7'Caption'#6#15'Ac' +'ides et bases'#12'ClientHeight'#3'z'#2#11'ClientWidth'#3'q'#2#0#11'TStringG' +'rid'#18'StringGridaqueuxab'#4'Left'#2#0#6'Height'#3'z'#2#3'Top'#2#0#5'Width' +#3'q'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#8'TabOrder'#2#0#14'OnC' +'ompareCells'#7#30'StringGridaqueuxabCompareCells'#11'OnMouseDown'#7#27'Stri' +'ngGridaqueuxabmousedown'#0#0#0#9'TTabSheet'#10'TabSheet13'#7'Caption'#6#19 +'Complexes et divers'#12'ClientHeight'#3'z'#2#11'ClientWidth'#3'q'#2#0#11'TS' +'tringGrid'#25'StringGridaqueuxcomplexes'#4'Left'#2#0#6'Height'#3'z'#2#3'Top' +#2#0#5'Width'#3'q'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Options' ,#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14 +'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7'%StringGridaqueuxcom' +'plexesCompareCells'#11'OnMouseDown'#7'"StringGridaqueuxcomplexesmousedown'#0 +#0#0#9'TTabSheet'#10'TabSheet14'#7'Caption'#6#4'Ions'#12'ClientHeight'#3'z'#2 +#11'ClientWidth'#3'q'#2#0#11'TStringGrid'#14'StringGridIons'#4'Left'#2#0#6'H' +'eight'#3'z'#2#3'Top'#2#0#5'Width'#3'q'#2#5'Align'#7#8'alClient'#16'ColumnCl' +'ickSorts'#9#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVert' +'Line'#10'goHorzLine'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCompareCells' +#7#26'StringGridIonsCompareCells'#11'OnMouseDown'#7#23'StringGridIonsmousedo' +'wn'#0#0#0#9'TTabSheet'#10'TabSheet15'#7'Caption'#6#20'Atomes et mol'#195#169 +'cules'#12'ClientHeight'#3#135#2#11'ClientWidth'#3'w'#2#0#11'TStringGrid'#19 +'StringGridMolecules'#4'Left'#2#0#6'Height'#3#135#2#3'Top'#2#0#5'Width'#3'w' +#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Options'#11#15'goFixedVer' +'tLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmoothScroll' +#0#8'TabOrder'#2#0#14'OnCompareCells'#7#31'StringGridMoleculesCompareCells' +#11'OnMouseDown'#7#28'StringGridMoleculesmousedown'#0#0#0#0#0#9'TTabSheet'#15 +'TabSheetSolides'#7'Caption'#6#7'Solides'#12'ClientHeight'#3#155#2#11'Client' +'Width'#3'y'#2#0#11'TStringGrid'#18'stringgridmineraux'#4'Left'#2#0#6'Height' +#3#155#2#3'Top'#2#0#5'Width'#3'y'#2#5'Align'#7#8'alClient'#16'ColumnClickSor' +'ts'#9#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine' +#10'goHorzLine'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7#30 +'stringgridminerauxCompareCells'#11'OnMouseDown'#7#27'stringgridminerauxmous' +'edown'#0#0#0#9'TTabSheet'#12'TabSheetorga'#7'Caption'#6#10'Organiques'#12'C' +'lientHeight'#3#155#2#11'ClientWidth'#3'y'#2#0#12'TPageControl'#12'PageContr' +'ol2'#4'Left'#2#0#6'Height'#3#155#2#3'Top'#2#0#5'Width'#3'y'#2#10'ActivePage' +#7#9'TabSheet5'#5'Align'#7#8'alClient'#8'TabIndex'#2#3#8'TabOrder'#2#0#0#9'T' +'TabSheet'#9'TabSheet2'#7'Caption'#6#26'Acides et bases organiques'#12'Clien' +'tHeight'#3'z'#2#11'ClientWidth'#3'q'#2#0#11'TStringGrid'#26'StringGridorgan' +'iques_acide'#4'Left'#2#0#6'Height'#3'z'#2#3'Top'#2#0#5'Width'#3'q'#2#5'Alig' +'n'#7#8'alClient'#16'ColumnClickSorts'#9#7'Options'#11#15'goFixedVertLine'#15 +'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmoothScroll'#0#8'TabOr' +'der'#2#0#14'OnCompareCells'#7'&StringGridorganiques_acideCompareCells'#11'O' +'nMouseDown'#7'#StringGridorganiques_acidemousedown'#0#0#0#9'TTabSheet'#9'Ta' +'bSheet3'#7'Caption'#6'*Complexes '#195#160' ligands organiques, et divers' +#12'ClientHeight'#3'z'#2#11'ClientWidth'#3'q'#2#0#11'TStringGrid'#29'StringG' +'ridorganiques_complexe'#4'Left'#2#0#6'Height'#3'z'#2#3'Top'#2#0#5'Width'#3 +'q'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Options'#11#15'goFixed' +'VertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmoothScro' +'ll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7')StringGridorganiques_complexeCo' +'mpareCells'#11'OnMouseDown'#7'&StringGridorganiques_complexemousedown'#0#0#0 +#9'TTabSheet'#9'TabSheet4'#7'Caption'#6#21'Benz'#195#169'ne et d'#195#169'ri' +'v'#195#169's'#12'ClientHeight'#3'z'#2#11'ClientWidth'#3'q'#2#0#11'TStringGr' +'id'#28'StringGridorganiques_benzene'#4'Left'#2#0#6'Height'#3'z'#2#3'Top'#2#0 +#5'Width'#3'q'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Options'#11 +#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'go' +'SmoothScroll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7'(StringGridorganiques_' +'benzeneCompareCells'#11'OnMouseDown'#7'%StringGridorganiques_benzenemousedo' +'wn'#0#0#0#9'TTabSheet'#9'TabSheet5'#7'Caption'#6#16'Amines et amides'#12'Cl' +'ientHeight'#3'z'#2#11'ClientWidth'#3'q'#2#0#11'TStringGrid'#30'StringGridor' +'ganiques_amid_amin'#4'Left'#2#0#6'Height'#3'z'#2#3'Top'#2#0#5'Width'#3'q'#2 +#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Options'#11#15'goFixedVertL' +'ine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmoothScroll'#0 +#8'TabOrder'#2#0#14'OnCompareCells'#7'*StringGridorganiques_amid_aminCompare' +'Cells'#11'OnMouseDown'#7'''StringGridorganiques_amid_aminmousedown'#0#0#0#9 +'TTabSheet'#9'TabSheet6'#7'Caption'#6#7'Alcools'#12'ClientHeight'#3#135#2#11 +'ClientWidth'#3'w'#2#0#11'TStringGrid'#27'StringGridorganiques_alcool'#4'Lef' +'t'#2#0#6'Height'#3#135#2#3'Top'#2#0#5'Width'#3'w'#2#5'Align'#7#8'alClient' +#16'ColumnClickSorts'#9#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine' +#10'goVertLine'#10'goHorzLine'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCom' +'pareCells'#7'''StringGridorganiques_alcoolCompareCells'#11'OnMouseDown'#7'$' +'StringGridorganiques_alcoolmousedown'#0#0#0#9'TTabSheet'#9'TabSheet7'#7'Cap' +'tion'#6#26'Alcanes, alc'#195#169'nes, alcynes'#12'ClientHeight'#3#135#2#11 +'ClientWidth'#3'w'#2#0#11'TStringGrid'#24'StringGridorganiques_alc'#4'Left'#2 +#0#6'Height'#3#135#2#3'Top'#2#0#5'Width'#3'w'#2#5'Align'#7#8'alClient'#16'Co' ,'lumnClickSorts'#9#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10 +'goVertLine'#10'goHorzLine'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCompar' +'eCells'#7'$StringGridorganiques_alcCompareCells'#11'OnMouseDown'#7'!StringG' +'ridorganiques_alcmousedown'#0#0#0#9'TTabSheet'#9'TabSheet8'#7'Caption'#6#12 +'Amminoacides'#12'ClientHeight'#3#135#2#11'ClientWidth'#3'w'#2#0#11'TStringG' +'rid'#31'StringGridorganiques_aminoacide'#4'Left'#2#0#6'Height'#3#135#2#3'To' +'p'#2#0#5'Width'#3'w'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Opti' +'ons'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLin' +'e'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7'+StringGridorg' +'aniques_aminoacideCompareCells'#11'OnMouseDown'#7'(StringGridorganiques_ami' +'noacidemousedown'#0#0#0#9'TTabSheet'#9'TabSheet9'#7'Caption'#6#22'Ald'#195 +#169'hydes et c'#195#169'tones'#12'ClientHeight'#3#135#2#11'ClientWidth'#3'w' +#2#0#11'TStringGrid#StringGridorganiques_aldehyd_cetone'#4'Left'#2#0#6'Heigh' +'t'#3#135#2#3'Top'#2#0#5'Width'#3'w'#2#5'Align'#7#8'alClient'#16'ColumnClick' +'Sorts'#9#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLin' +'e'#10'goHorzLine'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7 +'/StringGridorganiques_aldehyd_cetoneCompareCells'#11'OnMouseDown'#7',String' +'Gridorganiques_aldehyd_cetonemousedown'#0#0#0#0#0#9'TTabSheet'#10'TabSheetg' +'a'#12'ClientHeight'#3#2#2#11'ClientWidth'#3'^'#3#7'Enabled'#8#10'TabVisible' +#8#0#11'TStringGrid'#16'stringgridgazeux'#4'Left'#2#0#6'Height'#3#2#2#3'Top' +#2#0#5'Width'#3'^'#3#5'Align'#7#8'alClient'#7'Options'#11#15'goFixedVertLine' +#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmoothScroll'#0#8'Ta' +'bOrder'#2#0#11'OnMouseDown'#7#25'stringgridgazeuxmousedown'#0#0#0#0#7'TBitB' +'tn'#7'BitBtn1'#22'AnchorSideLeft.Control'#7#15'TabSheetchoisir'#24'AnchorSi' +'deBottom.Control'#7#15'TabSheetchoisir'#21'AnchorSideBottom.Side'#7#9'asrBo' +'ttom'#4'Left'#2#10#6'Height'#2'A'#3'Top'#3#15#2#5'Width'#3'6'#1#7'Anchors' +#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#20'BorderSpacing.Bot' +'tom'#2#10#7'Caption'#6'%Valider et passer '#195#160' la burette >>>>>'#4'Ki' +'nd'#7#4'bkOK'#11'ModalResult'#2#1#7'OnClick'#7#12'BitBtn1Click'#8'TabOrder' +#2#5#0#0#12'TSpeedButton'#20'SpeedButton_dilution'#22'AnchorSideLeft.Control' +#7#14'SpeedButton_10'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTo' +'p.Control'#7#14'SpeedButtonx10'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Lef' +'t'#2'j'#6'Height'#2#30#3'Top'#2'z'#5'Width'#2'B'#18'BorderSpacing.Left'#2#10 +#7'Caption'#6#8'Dilution'#7'OnClick'#7#25'SpeedButton_dilutionClick'#0#0#0#9 +'TTabSheet'#16'TabSheetChoisir_'#7'Caption'#6#27'Choix des r'#195#169'actifs' +':burette'#12'ClientHeight'#3'V'#2#11'ClientWidth'#3#137#4#8'OnResize'#7#22 +'TabSheetChoisir_Resize'#0#6'TLabel'#8'Label14_'#22'AnchorSideLeft.Control'#7 +#16'TabSheetChoisir_'#21'AnchorSideTop.Control'#7#16'TabSheetChoisir_'#4'Lef' +'t'#2#10#6'Height'#2#25#3'Top'#2#5#5'Width'#2'B'#18'BorderSpacing.Left'#2#10 +#17'BorderSpacing.Top'#2#5#7'Caption'#6#7'Burette'#10'Font.Color'#7#6'clBlue' +#11'Font.Height'#2#237#10'Font.Style'#11#6'fsBold'#11'fsUnderline'#0#11'Pare' +'ntColor'#8#10'ParentFont'#8#0#0#12'TSpeedButton'#23'SpeedButtonviderburette' +#22'AnchorSideLeft.Control'#7#8'Label14_'#19'AnchorSideLeft.Side'#7#9'asrBot' +'tom'#21'AnchorSideTop.Control'#7#8'Label14_'#18'AnchorSideTop.Side'#7#9'asr' +'Center'#4'Left'#2'`'#6'Height'#2#25#3'Top'#2#5#5'Width'#2'A'#18'BorderSpaci' +'ng.Left'#2#20#7'Caption'#6#5'Vider'#10'Font.Color'#7#5'clRed'#11'Font.Heigh' +'t'#2#245#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#28'SpeedButtonviderbure' +'tteClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#15'SpeedButtonx10_'#22'Anch' +'orSideLeft.Control'#7#16'TabSheetChoisir_'#21'AnchorSideTop.Control'#7#7'La' +'bel1_'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#30#4 +'Hint'#6'%Multiplier les concentrations par 10'#3'Top'#2'h'#5'Width'#2'1'#18 +'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#3'x10'#7'O' +'nClick'#7#20'SpeedButtonx10_Click'#8'ShowHint'#9#14'ParentShowHint'#8#0#0#12 +'TSpeedButton'#15'SpeedButton_10_'#22'AnchorSideLeft.Control'#7#15'SpeedButt' +'onx10_'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7 +#15'SpeedButtonx10_'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'E'#6'He' +'ight'#2#30#4'Hint'#6'"Diviser les concentrations par 10'#3'Top'#2'h'#5'Wid' +'th'#2'-'#18'BorderSpacing.Left'#2#10#7'Caption'#6#3'/10'#7'OnClick'#7#20'Sp' +'eedButton_10_Click'#8'ShowHint'#9#14'ParentShowHint'#8#0#0#6'TLabel'#7'Labe' +'l16'#22'AnchorSideLeft.Control'#7#16'TabSheetChoisir_'#21'AnchorSideTop.Con' +'trol'#7#8'Label14_'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'He' +'ight'#2#13#3'Top'#2'2'#5'Width'#3#138#0#18'BorderSpacing.Left'#2#10#17'Bord' +'erSpacing.Top'#2#20#7'Caption'#6#25'Volume maximal '#195#160' verser='#11'F' +'ont.Height'#2#245#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'Parent' ,'Font'#8#0#0#6'TLabel'#7'Label15'#22'AnchorSideLeft.Control'#7#18'Editvolume' +'_burette'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7 +#18'Editvolume_burette'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#209#0 +#6'Height'#2#13#3'Top'#2'2'#5'Width'#2#16#18'BorderSpacing.Left'#2#10#7'Capt' +'ion'#6#2'mL'#11'Font.Height'#2#245#10'Font.Style'#11#6'fsBold'#0#11'ParentC' +'olor'#8#10'ParentFont'#8#0#0#6'TLabel'#7'Label1_'#22'AnchorSideLeft.Control' +#7#16'TabSheetChoisir_'#21'AnchorSideTop.Control'#7#7'Label16'#18'AnchorSide' +'Top.Side'#7#9'asrBottom'#4'Left'#2#30#6'Height'#2#21#3'Top'#2'I'#5'Width'#2 +'x'#18'BorderSpacing.Left'#2#30#17'BorderSpacing.Top'#2#10#7'Caption'#6#18'R' +#195#169'actifs choisis:'#10'Font.Color'#7#7'clGreen'#11'Font.Height'#2#240 +#10'Font.Style'#11#6'fsBold'#11'fsUnderline'#0#11'ParentColor'#8#10'ParentFo' +'nt'#8#0#0#6'TLabel'#8'Label11_'#22'AnchorSideLeft.Control'#7#26'stringgridr' +'eactifs_burette'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Co' +'ntrol'#7#16'TabSheetChoisir_'#4'Left'#3#25#2#6'Height'#2#25#3'Top'#2#10#5'W' +'idth'#3#141#0#18'BorderSpacing.Left'#3#200#0#17'BorderSpacing.Top'#2#10#7'C' +'aption'#6#18'Base de r'#195#169'actifs:'#10'Font.Color'#7#5'clRed'#11'Font.' +'Height'#2#237#10'Font.Style'#11#6'fsBold'#11'fsUnderline'#0#11'ParentColor' +#8#10'ParentFont'#8#0#0#5'TEdit'#18'Editvolume_burette'#22'AnchorSideLeft.Co' +'ntrol'#7#7'Label16'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop' +'.Control'#7#7'Label16'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#158#0 +#6'Height'#2#28#4'Hint'#6#127'Changer cette valeur ne modifie pas les concen' +'trations ! Utilisez le bouton "dilution" si vous voulez les modifier par di' +'lution'#3'Top'#2'*'#5'Width'#2')'#18'BorderSpacing.Left'#2#10#10'OnKeyPress' +#7#26'Editvolume_buretteKeyPress'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOr' +'der'#2#0#4'Text'#6#2'20'#0#0#11'TStringGrid'#26'stringgridreactifs_burette' +#22'AnchorSideLeft.Control'#7#16'TabSheetChoisir_'#21'AnchorSideTop.Control' +#7#15'SpeedButtonx10_'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBo' +'ttom.Control'#7#8'BitBtn4_'#4'Left'#2#10#6'Height'#3'&'#1#3'Top'#3#144#0#5 +'Width'#3'G'#1#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpaci' +'ng.Left'#2#10#17'BorderSpacing.Top'#2#10#20'BorderSpacing.Bottom'#2#10#11'F' +'ont.Height'#2#245#10'ParentFont'#8#8'TabOrder'#2#1#16'TitleFont.Height'#2 +#243#11'OnMouseDown'#7'#stringgridreactifs_burettemousedown'#0#0#7'TBitBtn'#8 +'BitBtn4_'#22'AnchorSideLeft.Control'#7#16'TabSheetChoisir_'#24'AnchorSideBo' +'ttom.Control'#7#8'BitBtn1_'#4'Left'#2#10#6'Height'#2'A'#3'Top'#3#192#1#5'Wi' +'dth'#3'H'#1#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2 +#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6#22'Rechercher une esp'#195#169 +'ce'#4'Kind'#7#6'bkHelp'#7'OnClick'#7#13'BitBtn4_Click'#8'TabOrder'#2#2#0#0 +#12'TPageControl'#13'PageControl1_'#22'AnchorSideLeft.Control'#7#26'stringgr' +'idreactifs_burette'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop' +'.Control'#7#8'Label11_'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSide' +'Right.Control'#7#16'TabSheetChoisir_'#20'AnchorSideRight.Side'#7#9'asrBotto' +'m'#24'AnchorSideBottom.Control'#7#16'TabSheetChoisir_'#21'AnchorSideBottom.' +'Side'#7#9'asrBottom'#4'Left'#3'['#1#6'Height'#3#31#2#4'Hint'#6'CPour s'#195 +#169'lectionner un r'#195#169'actif, faites un clic simple sur sa ligne.'#3 +'Top'#2'-'#5'Width'#3'$'#3#10'ActivePage'#7#11'TabSheetga_'#7'Anchors'#11#5 +'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#17'Bo' +'rderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#20'BorderSpacing.Bottom' +#2#10#14'ParentShowHint'#8#8'ShowHint'#9#8'TabIndex'#2#3#8'TabOrder'#2#4#0#9 +'TTabSheet'#15'TabSheetAqueux_'#7'Caption'#6#12'Inorganiques'#12'ClientHeigh' +'t'#3#155#2#11'ClientWidth'#3'y'#2#0#12'TPageControl'#13'PageControl3_'#4'Le' +'ft'#2#0#6'Height'#3#155#2#3'Top'#2#0#5'Width'#3'y'#2#10'ActivePage'#7#11'Ta' +'bSheet14_'#5'Align'#7#8'alClient'#8'TabIndex'#2#4#8'TabOrder'#2#0#0#9'TTabS' +'heet'#11'TabSheet10_'#7'Caption'#6#15'Cations simples'#12'ClientHeight'#3'z' +#2#11'ClientWidth'#3'q'#2#0#11'TStringGrid'#25'StringGridcationssimples_'#4 +'Left'#2#0#6'Height'#3'z'#2#3'Top'#2#0#5'Width'#3'q'#2#5'Align'#7#8'alClient' +#16'ColumnClickSorts'#9#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine' +#10'goVertLine'#10'goHorzLine'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCom' +'pareCells'#7'%StringGridcationssimples_CompareCells'#11'OnMouseDown'#7'"Str' +'ingGridcationssimples_mousedown'#0#0#0#9'TTabSheet'#11'TabSheet11_'#7'Capti' +'on'#6#14'Anions simples'#12'ClientHeight'#3'z'#2#11'ClientWidth'#3'q'#2#0#11 +'TStringGrid'#24'StringGridanionssimples_'#4'Left'#2#0#6'Height'#3'z'#2#3'To' +'p'#2#0#5'Width'#3'q'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Opti' +'ons'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLin' +'e'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7'$StringGridani' ,'onssimples_CompareCells'#11'OnMouseDown'#7'!StringGridanionssimples_mousedo' +'wn'#0#0#0#9'TTabSheet'#11'TabSheet12_'#7'Caption'#6#15'Acides et bases'#12 +'ClientHeight'#3'z'#2#11'ClientWidth'#3'q'#2#0#11'TStringGrid'#19'StringGrid' +'aqueuxab_'#4'Left'#2#0#6'Height'#3'z'#2#3'Top'#2#0#5'Width'#3'q'#2#5'Align' +#7#8'alClient'#16'ColumnClickSorts'#9#8'TabOrder'#2#0#14'OnCompareCells'#7#31 +'StringGridaqueuxab_CompareCells'#11'OnMouseDown'#7#28'StringGridaqueuxab_mo' +'usedown'#0#0#0#9'TTabSheet'#11'TabSheet13_'#7'Caption'#6#19'Complexes et di' +'vers'#12'ClientHeight'#3'z'#2#11'ClientWidth'#3'q'#2#0#11'TStringGrid'#26'S' +'tringGridaqueuxcomplexes_'#4'Left'#2#0#6'Height'#3'z'#2#3'Top'#2#0#5'Width' +#3'q'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Options'#11#15'goFix' +'edVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmoothSc' +'roll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7'&StringGridaqueuxcomplexes_Com' +'pareCells'#11'OnMouseDown'#7'#StringGridaqueuxcomplexes_mousedown'#0#0#0#9 +'TTabSheet'#11'TabSheet14_'#7'Caption'#6#4'Ions'#12'ClientHeight'#3'z'#2#11 +'ClientWidth'#3'q'#2#0#11'TStringGrid'#15'StringGridIons_'#4'Left'#2#0#6'Hei' +'ght'#3'z'#2#3'Top'#2#0#5'Width'#3'q'#2#5'Align'#7#8'alClient'#16'ColumnClic' +'kSorts'#9#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLi' +'ne'#10'goHorzLine'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7 +#27'StringGridIons_CompareCells'#11'OnMouseDown'#7#24'StringGridIons_mousedo' +'wn'#0#0#0#9'TTabSheet'#11'TabSheet15_'#7'Caption'#6#20'Atomes et mol'#195 +#169'cules'#12'ClientHeight'#3#135#2#11'ClientWidth'#3'w'#2#0#11'TStringGrid' +#20'StringGridMolecules_'#4'Left'#2#0#6'Height'#3#135#2#3'Top'#2#0#5'Width'#3 +'w'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Options'#11#15'goFixed' +'VertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmoothScro' +'ll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7' StringGridMolecules_CompareCell' +'s'#11'OnMouseDown'#7#29'StringGridMolecules_mousedown'#0#0#0#0#0#9'TTabShee' +'t'#16'TabSheetSolides_'#7'Caption'#6#7'Solides'#12'ClientHeight'#3#155#2#11 +'ClientWidth'#3'y'#2#0#11'TStringGrid'#19'stringgridmineraux_'#4'Left'#2#0#6 +'Height'#3#155#2#3'Top'#2#0#5'Width'#3'y'#2#5'Align'#7#8'alClient'#16'Column' +'ClickSorts'#9#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVe' +'rtLine'#10'goHorzLine'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCompareCel' +'ls'#7#31'stringgridmineraux_CompareCells'#11'OnMouseDown'#7#28'stringgridmi' +'neraux_mousedown'#0#0#0#9'TTabSheet'#13'TabSheetorga_'#7'Caption'#6#10'Orga' +'niques'#12'ClientHeight'#3#155#2#11'ClientWidth'#3'y'#2#0#12'TPageControl' +#13'PageControl2_'#4'Left'#2#0#6'Height'#3#155#2#3'Top'#2#0#5'Width'#3'y'#2 +#10'ActivePage'#7#10'TabSheet5_'#5'Align'#7#8'alClient'#8'TabIndex'#2#3#8'Ta' +'bOrder'#2#0#0#9'TTabSheet'#10'TabSheet2_'#7'Caption'#6#26'Acides et bases o' +'rganiques'#12'ClientHeight'#3'z'#2#11'ClientWidth'#3'q'#2#0#11'TStringGrid' +#27'StringGridorganiques_acide_'#4'Left'#2#0#6'Height'#3'z'#2#3'Top'#2#0#5'W' +'idth'#3'q'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Options'#11#15 +'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmo' +'othScroll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7'''StringGridorganiques_ac' +'ide_CompareCells'#11'OnMouseDown'#7'$StringGridorganiques_acide_mousedown'#0 +#0#0#9'TTabSheet'#10'TabSheet3_'#7'Caption'#6'*Complexes '#195#160' ligands ' +'organiques, et divers'#12'ClientHeight'#3'z'#2#11'ClientWidth'#3'q'#2#0#11 +'TStringGrid'#30'StringGridorganiques_complexe_'#4'Left'#2#0#6'Height'#3'z'#2 +#3'Top'#2#0#5'Width'#3'q'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7 +'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHor' +'zLine'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7'*StringGri' +'dorganiques_complexe_CompareCells'#11'OnMouseDown'#7'''StringGridorganiques' +'_complexe_mousedown'#0#0#0#9'TTabSheet'#10'TabSheet4_'#7'Caption'#6#21'Benz' +#195#169'ne et d'#195#169'riv'#195#169's'#12'ClientHeight'#3'z'#2#11'ClientW' +'idth'#3'q'#2#0#11'TStringGrid'#29'StringGridorganiques_benzene_'#4'Left'#2#0 +#6'Height'#3'z'#2#3'Top'#2#0#5'Width'#3'q'#2#5'Align'#7#8'alClient'#16'Colum' +'nClickSorts'#9#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goV' +'ertLine'#10'goHorzLine'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCompareCe' +'lls'#7')StringGridorganiques_benzene_CompareCells'#11'OnMouseDown'#7'&Strin' +'gGridorganiques_benzene_mousedown'#0#0#0#9'TTabSheet'#10'TabSheet5_'#7'Capt' +'ion'#6#16'Amines et amides'#12'ClientHeight'#3'z'#2#11'ClientWidth'#3'q'#2#0 +#11'TStringGrid'#31'StringGridorganiques_amid_amin_'#4'Left'#2#0#6'Height'#3 +'z'#2#3'Top'#2#0#5'Width'#3'q'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts' +#9#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'g' +'oHorzLine'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7'+Strin' +'gGridorganiques_amid_amin_CompareCells'#11'OnMouseDown'#7'(StringGridorgani' ,'ques_amid_amin_mousedown'#0#0#0#9'TTabSheet'#10'TabSheet6_'#7'Caption'#6#7 +'Alcools'#12'ClientHeight'#3#135#2#11'ClientWidth'#3'w'#2#0#11'TStringGrid' +#28'StringGridorganiques_alcool_'#4'Left'#2#0#6'Height'#3#135#2#3'Top'#2#0#5 +'Width'#3'w'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Options'#11#15 +'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmo' +'othScroll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7'(StringGridorganiques_alc' +'ool_CompareCells'#11'OnMouseDown'#7'%StringGridorganiques_alcool_mousedown' +#0#0#0#9'TTabSheet'#10'TabSheet7_'#7'Caption'#6#26'Alcanes, alc'#195#169'nes' +', alcynes'#12'ClientHeight'#3#135#2#11'ClientWidth'#3'w'#2#0#11'TStringGrid' +#25'StringGridorganiques_alc_'#4'Left'#2#0#6'Height'#3#135#2#3'Top'#2#0#5'Wi' +'dth'#3'w'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Options'#11#15 +'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmo' +'othScroll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7'%StringGridorganiques_alc' +'_CompareCells'#11'OnMouseDown'#7'"StringGridorganiques_alc_mousedown'#0#0#0 +#9'TTabSheet'#10'TabSheet8_'#7'Caption'#6#12'Amminoacides'#12'ClientHeight'#3 +#135#2#11'ClientWidth'#3'w'#2#0#11'TStringGrid StringGridorganiques_aminoaci' +'de_'#4'Left'#2#0#6'Height'#3#135#2#3'Top'#2#0#5'Width'#3'w'#2#5'Align'#7#8 +'alClient'#16'ColumnClickSorts'#9#7'Options'#11#15'goFixedVertLine'#15'goFix' +'edHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmoothScroll'#0#8'TabOrder'#2 +#0#14'OnCompareCells'#7',StringGridorganiques_aminoacide_CompareCells'#11'On' +'MouseDown'#7')StringGridorganiques_aminoacide_mousedown'#0#0#0#9'TTabSheet' +#10'TabSheet9_'#7'Caption'#6#22'Ald'#195#169'hydes et c'#195#169'tones'#12'C' +'lientHeight'#3#135#2#11'ClientWidth'#3'w'#2#0#11'TStringGrid$StringGridorga' +'niques_aldehyd_cetone_'#4'Left'#2#0#6'Height'#3#135#2#3'Top'#2#0#5'Width'#3 +'w'#2#5'Align'#7#8'alClient'#16'ColumnClickSorts'#9#7'Options'#11#15'goFixed' +'VertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#14'goSmoothScro' +'ll'#0#8'TabOrder'#2#0#14'OnCompareCells'#7'0StringGridorganiques_aldehyd_ce' +'tone_CompareCells'#11'OnMouseDown'#7'-StringGridorganiques_aldehyd_cetone_m' +'ousedown'#0#0#0#0#0#9'TTabSheet'#11'TabSheetga_'#12'ClientHeight'#3#254#1#11 +'ClientWidth'#3#28#3#7'Enabled'#8#10'TabVisible'#8#0#11'TStringGrid'#17'stri' +'nggridgazeux_'#4'Left'#2#0#6'Height'#3#254#1#3'Top'#2#0#5'Width'#3#28#3#5'A' +'lign'#7#8'alClient'#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10 +'goVertLine'#10'goHorzLine'#14'goSmoothScroll'#0#8'TabOrder'#2#0#11'OnMouseD' +'own'#7#26'stringgridgazeux_mousedown'#0#0#0#0#7'TBitBtn'#8'BitBtn1_'#22'Anc' +'horSideLeft.Control'#7#16'TabSheetChoisir_'#24'AnchorSideBottom.Control'#7 +#16'TabSheetChoisir_'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#10#6 +'Height'#2'A'#3'Top'#3#11#2#5'Width'#3'H'#1#7'Anchors'#11#6'akLeft'#8'akBott' +'om'#0#18'BorderSpacing.Left'#2#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6 +'&Valider et passer au recensement >>>>>'#4'Kind'#7#4'bkOK'#11'ModalResult'#2 +#1#7'OnClick'#7#13'BitBtn1_Click'#8'TabOrder'#2#3#0#0#12'TSpeedButton'#21'Sp' +'eedButton_dilution_'#22'AnchorSideLeft.Control'#7#15'SpeedButton_10_'#19'An' +'chorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#15'SpeedButto' +'nx10_'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'|'#6'Height'#2#29#3 +'Top'#2'i'#5'Width'#2'V'#18'BorderSpacing.Left'#2#10#7'Caption'#6#8'Dilution' +#7'OnClick'#7#26'SpeedButton_dilution_Click'#0#0#0#9'TTabSheet'#16'TabSheete' +'liminer'#7'Caption'#6#19'Esp'#195#169'ces pr'#195#169'sentes'#12'ClientHeig' +'ht'#3'V'#2#11'ClientWidth'#3#137#4#8'OnResize'#7#22'TabSheeteliminerResize' +#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.Control'#7#16'TabSheeteliminer'#21 +'AnchorSideTop.Control'#7#16'TabSheeteliminer'#4'Left'#2#10#6'Height'#2#20#3 +'Top'#2#10#5'Width'#3#208#1#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top' +#2#10#7'Caption'#6'LVoici la liste des esp'#195#169'ces susceptibles d'''#195 +#170'tre pr'#195#169'sentes '#195#160' l'''#195#169'quilibre.'#10'Font.Color' +#7#6'clBlue'#11'Font.Height'#2#241#10'Font.Style'#11#6'fsBold'#0#11'ParentCo' +'lor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label3'#22'AnchorSideLeft.Control'#7 +#16'TabSheeteliminer'#21'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSideTop' +'.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#2'('#5'Width'#3#1#3 +#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6'sSi vou' +'s pensez que certaines ne seront pas pr'#195#169'sentes (blocage cin'#195 +#169'tique par exemple), il suffit de les d'#195#169'cocher.'#10'Font.Color' +#7#5'clRed'#11'Font.Height'#2#241#10'Font.Style'#11#6'fsBold'#0#11'ParentCol' +'or'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label4'#22'AnchorSideLeft.Control'#7 +#16'TabSheeteliminer'#21'AnchorSideTop.Control'#7#21'SpeedButtontoutcocher' +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#2 +'s'#5'Width'#3's'#2#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7 ,'Caption'#6'cPour obtenir la formule brute d''une esp'#195#169'ce, s'#195#169 +'lectionnez la puis cliquez sur le bouton ci-contre:'#11'ParentColor'#8#10'P' +'arentFont'#8#0#0#12'TSpeedButton'#12'SpeedButton4'#22'AnchorSideLeft.Contro' +'l'#7#6'Label4'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Cont' +'rol'#7#6'Label4'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#135#2#6'He' +'ight'#2#30#3'Top'#2'n'#5'Width'#3#153#0#18'BorderSpacing.Left'#2#10#7'Capti' +'on'#6#15'Formule brute ?'#10'Font.Color'#7#7'clGreen'#10'Font.Style'#11#6'f' +'sBold'#0#7'OnClick'#7#17'SpeedButton4Click'#10'ParentFont'#8#0#0#13'TCheckL' +'istBox'#13'CheckListBox1'#22'AnchorSideLeft.Control'#7#16'TabSheeteliminer' +#21'AnchorSideTop.Control'#7#12'SpeedButton4'#18'AnchorSideTop.Side'#7#9'asr' +'Bottom'#23'AnchorSideRight.Control'#7#16'TabSheeteliminer'#20'AnchorSideRig' +'ht.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#7'BitBtn2'#4'Left'#2 +#10#6'Height'#3'\'#1#3'Top'#3#150#0#5'Width'#3'u'#4#7'Anchors'#11#5'akTop'#6 +'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#17'BorderSpaci' +'ng.Top'#2#10#19'BorderSpacing.Right'#2#10#20'BorderSpacing.Bottom'#2#10#7'C' +'olumns'#2#3#11'Font.Height'#2#241#10'ItemHeight'#2#0#7'OnClick'#7#18'CheckL' +'istBox1Click'#12'OnClickCheck'#7#23'CheckListBox1ClickCheck'#11'OnItemClick' +#7#22'CheckListBox1ItemClick'#11'OnMouseDown'#7#22'CheckListBox1MouseDown'#10 +'ParentFont'#8#8'TabOrder'#2#0#0#0#13'TCheckListBox'#17'CheckListBoxSauve'#4 +'Left'#3#206#1#6'Height'#2#21#3'Top'#3#143#0#5'Width'#2#19#10'ItemHeight'#2#0 +#12'OnClickCheck'#7#27'CheckListBoxSauveClickCheck'#8'TabOrder'#2#1#7'Visibl' +'e'#8#0#0#7'TBitBtn'#7'BitBtn2'#22'AnchorSideLeft.Control'#7#16'TabSheetelim' +'iner'#24'AnchorSideBottom.Control'#7#16'TabSheeteliminer'#21'AnchorSideBott' +'om.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2'P'#3'Top'#3#252#1#5'Width' +#3#248#1#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#20 +'BorderSpacing.Bottom'#2#10#7'Caption'#6'3Valider et passer aux constantes d' +'e r'#195#169'action >>>>>'#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#7'OnClick' +#7#12'BitBtn2Click'#8'TabOrder'#2#2#0#0#7'TBitBtn'#21'SpeedButtontoutcocher' +#22'AnchorSideLeft.Control'#7#16'TabSheeteliminer'#21'AnchorSideTop.Control' +#7#6'Label3'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2 +'#'#3'Top'#2'F'#5'Width'#3#150#0#18'BorderSpacing.Left'#2#10#17'BorderSpacin' +'g.Top'#2#10#7'Caption'#6#21'SpeedButtontoutcocher'#10'Font.Color'#7#8'clMar' +'oon'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#26'SpeedButtontoutcocherCli' +'ck'#10'ParentFont'#8#8'TabOrder'#2#3#0#0#7'TBitBtn'#23'SpeedButtontoutdecoc' +'her'#22'AnchorSideLeft.Control'#7#21'SpeedButtontoutcocher'#19'AnchorSideLe' +'ft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#21'SpeedButtontoutcoche' +'r'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#180#0#6'Height'#2'#'#3'T' +'op'#2'F'#5'Width'#3#135#0#18'BorderSpacing.Left'#2#20#7'Caption'#6#23'Speed' +'Buttontoutdecocher'#10'Font.Color'#7#9'clFuchsia'#10'Font.Style'#11#6'fsBol' +'d'#0#7'OnClick'#7#28'SpeedButtontoutdecocherClick'#10'ParentFont'#8#8'TabOr' +'der'#2#4#0#0#0#9'TTabSheet'#16'TabSheetverifier'#7'Caption'#6#24'R'#195#169 +'actions et constantes'#12'ClientHeight'#3'V'#2#11'ClientWidth'#3#137#4#8'On' +'Resize'#7#22'TabSheetverifierResize'#0#6'TLabel'#6'Label9'#22'AnchorSideLef' +'t.Control'#7#16'TabSheetverifier'#21'AnchorSideTop.Control'#7#16'TabSheetve' +'rifier'#4'Left'#2#10#6'Height'#2#20#3'Top'#2#10#5'Width'#3#28#3#18'BorderSp' +'acing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6'vVoici un ensemble' +' d'''#195#169'quations de r'#195#169'actions lin'#195#169'airement ind'#195 +#169'pendantes entre elles d'#195#169'crivant le syst'#195#168'me chimique.' +#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLab' +'el'#7'Label10'#22'AnchorSideLeft.Control'#7#16'TabSheetverifier'#21'AnchorS' +'ideTop.Control'#7#6'Label9'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2 +#10#6'Height'#2#20#3'Top'#2'('#5'Width'#3'!'#3#18'BorderSpacing.Left'#2#10#17 +'BorderSpacing.Top'#2#10#7'Caption'#6'sVous pouvez modifier les logarithmes ' +'des constantes d'''#195#169'quilibre si vous pensez en avoir de meilleures ' +'estimations.'#10'Font.Color'#7#7'clGreen'#10'Font.Style'#11#6'fsBold'#0#11 +'ParentColor'#8#10'ParentFont'#8#0#0#11'TStringGrid'#19'StringGridReactions' +#22'AnchorSideLeft.Control'#7#16'TabSheetverifier'#21'AnchorSideTop.Control' +#7#12'ProgressBar1'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight' +'.Control'#7#16'TabSheetverifier'#20'AnchorSideRight.Side'#7#9'asrBottom'#24 +'AnchorSideBottom.Control'#7#7'BitBtn3'#4'Left'#2#10#6'Height'#3#182#1#3'Top' +#2'K'#5'Width'#3'u'#4#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom' +#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.R' +'ight'#2#10#20'BorderSpacing.Bottom'#2#10#8'ColCount'#2#2#7'Options'#11#15'g' +'oFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#13'goRang' ,'eSelect'#9'goEditing'#14'goSmoothScroll'#0#8'TabOrder'#2#0#10'OnKeyPress'#7 +#27'StringGridReactionsKeyPress'#13'OnSetEditText'#7#30'StringGridReactionsS' +'etEditText'#0#0#5'TEdit'#15'Editpourcentage'#22'AnchorSideLeft.Control'#7#12 +'ProgressBar1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Contr' +'ol'#7#12'ProgressBar1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#187#3 +#6'Height'#2#28#3'Top'#2'$'#5'Width'#2'8'#18'BorderSpacing.Left'#2#10#10'OnK' +'eyPress'#7#23'EditpourcentageKeyPress'#8'TabOrder'#2#1#0#0#12'TProgressBar' +#12'ProgressBar1'#22'AnchorSideLeft.Control'#7#7'Label10'#19'AnchorSideLeft.' +'Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#7'Label10'#18'AnchorSideTo' +'p.Side'#7#9'asrCenter'#4'Left'#3'?'#3#6'Height'#2#29#3'Top'#2'$'#5'Width'#2 +'r'#18'BorderSpacing.Left'#2#20#8'TabOrder'#2#2#0#0#7'TBitBtn'#7'BitBtn3'#22 +'AnchorSideLeft.Control'#7#16'TabSheetverifier'#24'AnchorSideBottom.Control' +#7#16'TabSheetverifier'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#10 +#6'Height'#2'A'#3'Top'#3#11#2#5'Width'#3#136#1#7'Anchors'#11#6'akLeft'#8'akB' +'ottom'#0#18'BorderSpacing.Left'#2#10#20'BorderSpacing.Bottom'#2#10#7'Captio' +'n'#6'#Valider et lancer les calculs>>>>>>'#4'Kind'#7#4'bkOK'#11'ModalResult' +#2#1#7'OnClick'#7#12'BitBtn3Click'#10'OnKeyPress'#7#15'BitBtn3KeyPress'#8'Ta' +'bOrder'#2#3#0#0#0#9'TTabSheet'#17'TabSheetresultats'#7'Caption'#6#10'R'#195 +#169'sultats'#12'ClientHeight'#3'V'#2#11'ClientWidth'#3#137#4#8'OnResize'#7 +#23'TabSheetresultatsResize'#0#11'TStringGrid'#19'StringGridResultats'#22'An' +'chorSideLeft.Control'#7#17'TabSheetresultats'#21'AnchorSideTop.Control'#7#17 +'TabSheetresultats'#23'AnchorSideRight.Control'#7#17'TabSheetresultats'#20'A' +'nchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#7'BitBtn' +'6'#4'Left'#2#10#6'Height'#3#247#1#3'Top'#2#10#5'Width'#3#127#4#7'Anchors'#11 +#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#17 +'BorderSpacing.Top'#2#10#20'BorderSpacing.Bottom'#2#10#7'Options'#11#15'goFi' +'xedHorzLine'#10'goVertLine'#10'goHorzLine'#13'goRangeSelect'#14'goSmoothScr' +'oll'#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn6'#22'AnchorSideLeft.Control' +#7#17'TabSheetresultats'#24'AnchorSideBottom.Control'#7#17'TabSheetresultats' +#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2'A'#3'Top' +#3#11#2#5'Width'#3'f'#1#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpaci' +'ng.Left'#2#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6'%Choisir les courb' +'es '#195#160' tracer >>>>>>>'#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#7'OnCli' +'ck'#7#12'BitBtn6Click'#8'TabOrder'#2#1#0#0#7'TBitBtn'#7'BitBtn5'#22'AnchorS' +'ideLeft.Control'#7#7'BitBtn6'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Anc' +'horSideTop.Control'#7#7'BitBtn6'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Le' +'ft'#3#132#1#6'Height'#2'A'#4'Hint'#6'[Sauvegarder les r'#195#169'sultats nu' +'m'#195#169'riques pour une exploitation avec tableur ou avec R'#195#169'gre' +'ssi'#3'Top'#3#11#2#5'Width'#3'D'#1#18'BorderSpacing.Left'#2#20#7'Caption'#6 +#23'Export r'#195#169'sultats bruts'#4'Kind'#7#8'bkIgnore'#11'ModalResult'#2 +#5#7'OnClick'#7#12'BitBtn5Click'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrd' +'er'#2#2#0#0#0#9'TTabSheet'#20'TabSheetchoixcourbes'#7'Caption'#6#17'Choix d' +'es courbes'#12'ClientHeight'#3'^'#2#11'ClientWidth'#3#137#4#8'OnResize'#7#26 +'TabSheetchoixcourbesResize'#0#6'TLabel'#7'Label12'#22'AnchorSideLeft.Contro' +'l'#7#23'Radioechellehorizontale'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21 +'AnchorSideTop.Control'#7#23'Radioechellehorizontale'#4'Left'#3't'#3#6'Heigh' +'t'#2#17#3'Top'#2#20#5'Width'#2'('#18'BorderSpacing.Left'#2#10#17'BorderSpac' +'ing.Top'#2#10#7'Caption'#6#5'Xmin='#11'ParentColor'#8#0#0#6'TLabel'#7'Label' +'13'#22'AnchorSideLeft.Control'#7#23'Radioechellehorizontale'#19'AnchorSideL' +'eft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#7'Label12'#18'AnchorSi' +'deTop.Side'#7#9'asrBottom'#4'Left'#3't'#3#6'Height'#2#17#3'Top'#2'/'#5'Widt' +'h'#2'-'#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6 +#5'Xmax='#11'ParentColor'#8#0#0#6'TLabel'#7'Label19'#22'AnchorSideLeft.Contr' +'ol'#7#27'Radioechelleverticaledroite'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#27'Radioechelleverticaledroite'#4'Left'#3'z'#3#6 +'Height'#2#17#3'Top'#2'g'#5'Width'#2'('#18'BorderSpacing.Left'#2#10#17'Borde' +'rSpacing.Top'#2#10#7'Caption'#6#5'Ymin='#11'ParentColor'#8#0#0#6'TLabel'#7 +'Label20'#22'AnchorSideLeft.Control'#7#27'Radioechelleverticaledroite'#19'An' +'chorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#7'Label19'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3'z'#3#6'Height'#2#17#3'Top'#3 +#130#0#5'Width'#2'-'#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7 +'Caption'#6#5'Ymax='#11'ParentColor'#8#0#0#6'TLabel'#7'Label17'#22'AnchorSid' +'eLeft.Control'#7#27'Radioechelleverticalegauche'#19'AnchorSideLeft.Side'#7#9 +'asrBottom'#21'AnchorSideTop.Control'#7#27'Radioechelleverticalegauche'#4'Le' ,'ft'#3#27#2#6'Height'#2#17#3'Top'#2'\'#5'Width'#2'('#18'BorderSpacing.Left'#2 +#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#5'Ymin='#11'ParentColor'#8#0#0#6 +'TLabel'#7'Label18'#22'AnchorSideLeft.Control'#7#27'Radioechelleverticalegau' +'che'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#7'L' +'abel17'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#27#2#6'Height'#2#17 +#3'Top'#2'w'#5'Width'#2'-'#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top' +#2#10#7'Caption'#6#5'Ymax='#11'ParentColor'#8#0#0#5'TEdit'#12'Editabscisse' +#22'AnchorSideLeft.Control'#7#7'BitBtn8'#19'AnchorSideLeft.Side'#7#9'asrBott' +'om'#21'AnchorSideTop.Control'#7#7'BitBtn8'#18'AnchorSideTop.Side'#7#9'asrCe' +'nter'#4'Left'#3'B'#1#6'Height'#2#25#3'Top'#2#21#5'Width'#3'V'#1#18'BorderSp' +'acing.Left'#2#10#7'OnClick'#7#17'EditabscisseClick'#10'OnKeyPress'#7#20'Edi' +'tabscisseKeyPress'#8'ReadOnly'#9#8'TabOrder'#2#0#0#0#11'TRadioGroup'#23'Rad' +'ioechellehorizontale'#22'AnchorSideLeft.Control'#7#12'Editabscisse'#19'Anch' +'orSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#20'TabSheetchoi' +'xcourbes'#4'Left'#3#162#2#6'Height'#2'K'#3'Top'#2#10#5'Width'#3#200#0#8'Aut' +'oFill'#9#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6 +#19'Echelle horizontale'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing' +'.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenous' +'ChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize' +#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.Shrink' +'Vertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightTh' +'enTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'2'#11 +'ClientWidth'#3#196#0#9'ItemIndex'#2#0#13'Items.Strings'#1#6#11'Automatique' +#6#8'Manuelle'#0#7'OnClick'#7#28'RadioechellehorizontaleClick'#8'TabOrder'#2 +#1#0#0#11'TRadioGroup'#27'Radioechelleverticaledroite'#22'AnchorSideLeft.Con' +'trol'#7#23'Radioechellehorizontale'#24'AnchorSideBottom.Control'#7#7'bitbtn' +'9'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#162#2#6'Height'#2'R'#3 +'Top'#2']'#5'Width'#3#206#0#7'Anchors'#11#6'akLeft'#8'akBottom'#0#8'AutoFill' +#9#7'Caption'#6#24'Echelle verticale droite'#28'ChildSizing.LeftRightSpacing' +#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7 +#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomoge' +'nousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'C' +'hildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29 +'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'Clien' +'tHeight'#2'9'#11'ClientWidth'#3#202#0#9'ItemIndex'#2#0#13'Items.Strings'#1#6 +#11'Automatique'#6#8'Manuelle'#0#7'OnClick'#7' RadioechelleverticaledroiteCl' +'ick'#8'TabOrder'#2#2#0#0#11'TRadioGroup'#27'Radioechelleverticalegauche'#22 +'AnchorSideLeft.Control'#7#7'bitbtn9'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#24'AnchorSideBottom.Control'#7#7'bitbtn9'#21'AnchorSideBottom.Side'#7#9'asr' +'Bottom'#4'Left'#3'B'#1#6'Height'#2']'#3'Top'#2'R'#5'Width'#3#207#0#7'Anchor' +'s'#11#6'akLeft'#8'akBottom'#0#8'AutoFill'#9#18'BorderSpacing.Left'#2#10#7'C' +'aption'#6#24'Echelle verticale gauche'#28'ChildSizing.LeftRightSpacing'#2#6 +#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24 +'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenou' +'sChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'Chil' +'dSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cc' +'lLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientH' +'eight'#2'D'#11'ClientWidth'#3#203#0#9'ItemIndex'#2#0#13'Items.Strings'#1#6 +#11'Automatique'#6#8'Manuelle'#0#7'OnClick'#7' RadioechelleverticalegaucheCl' +'ick'#8'TabOrder'#2#3#0#0#5'TEdit'#8'Editxmin'#22'AnchorSideLeft.Control'#7#7 +'Label12'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7 +#7'Label12'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#166#3#6'Height'#2 +#25#3'Top'#2#16#5'Width'#2'H'#18'BorderSpacing.Left'#2#10#7'Enabled'#8#8'OnC' +'hange'#7#14'EditxminChange'#10'OnKeyPress'#7#16'EditxminKeyPress'#8'TabOrde' +'r'#2#4#0#0#5'TEdit'#8'editxmax'#22'AnchorSideLeft.Control'#7#7'Label13'#19 +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#7'Label13' +#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#8'Editx' +'min'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#171#3#6'Height'#2#25 +#3'Top'#2'+'#5'Width'#2'C'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18 +'BorderSpacing.Left'#2#10#7'Enabled'#8#8'OnChange'#7#14'editxmaxChange'#10'O' +'nKeyPress'#7#16'editxmaxKeyPress'#8'TabOrder'#2#5#0#0#5'TEdit'#14'Editymind' +'roite'#22'AnchorSideLeft.Control'#7#7'Label19'#19'AnchorSideLeft.Side'#7#9 +'asrBottom'#21'AnchorSideTop.Control'#7#7'Label19'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#23'AnchorSideRight.Control'#7#8'Editxmin'#20'AnchorSideRight.Sid' ,'e'#7#9'asrBottom'#4'Left'#3#172#3#6'Height'#2#25#3'Top'#2'c'#5'Width'#2'B'#7 +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#10#7'E' +'nabled'#8#8'OnChange'#7#20'EditymindroiteChange'#10'OnKeyPress'#7#22'Editym' +'indroiteKeyPress'#8'TabOrder'#2#6#0#0#5'TEdit'#14'Editymaxdroite'#22'Anchor' +'SideLeft.Control'#7#7'Label20'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'An' +'chorSideTop.Control'#7#7'Label20'#18'AnchorSideTop.Side'#7#9'asrCenter'#23 +'AnchorSideRight.Control'#7#8'Editxmin'#20'AnchorSideRight.Side'#7#9'asrBott' +'om'#4'Left'#3#177#3#6'Height'#2#25#3'Top'#2'~'#5'Width'#2'='#7'Anchors'#11#5 +'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#10#7'Enabled'#8#8'On' +'Change'#7#20'EditymaxdroiteChange'#10'OnKeyPress'#7#22'EditymaxdroiteKeyPre' +'ss'#8'TabOrder'#2#7#0#0#5'TEdit'#14'editymingauche'#22'AnchorSideLeft.Contr' +'ol'#7#7'Label17'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Co' +'ntrol'#7#7'Label17'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRigh' +'t.Control'#7#12'Editabscisse'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Lef' +'t'#3'M'#2#6'Height'#2#25#3'Top'#2'X'#5'Width'#2'K'#7'Anchors'#11#5'akTop'#6 +'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#10#7'Enabled'#8#8'OnChange'#7 +#20'editymingaucheChange'#10'OnKeyPress'#7#22'editymingaucheKeyPress'#8'TabO' +'rder'#2#8#0#0#5'TEdit'#14'Editymaxgauche'#22'AnchorSideLeft.Control'#7#7'La' +'bel18'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#7 +'Label18'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7 +#12'Editabscisse'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3'R'#2#6'H' +'eight'#2#25#3'Top'#2's'#5'Width'#2'F'#7'Anchors'#11#5'akTop'#6'akLeft'#7'ak' +'Right'#0#18'BorderSpacing.Left'#2#10#7'Enabled'#8#8'OnChange'#7#20'Editymax' +'gaucheChange'#10'OnKeyPress'#7#22'EditymaxgaucheKeyPress'#8'TabOrder'#2#9#0 +#0#7'TBitBtn'#7'BitBtn7'#22'AnchorSideLeft.Control'#7#20'TabSheetchoixcourbe' +'s'#24'AnchorSideBottom.Control'#7#20'TabSheetchoixcourbes'#21'AnchorSideBot' +'tom.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2'A'#3'Top'#3#19#2#5'Width' +#3#168#1#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#20 +'BorderSpacing.Bottom'#2#10#7'Caption'#6'#Valider et tracer les courbes >>>>' +'>'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#7'OnClick'#7#12'BitBt' +'n7Click'#8'TabOrder'#2#10#0#0#11'TStringGrid'#19'StringGridordonnees'#22'An' +'chorSideLeft.Control'#7#20'TabSheetchoixcourbes'#21'AnchorSideTop.Control'#7 +#7'bitbtn9'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control' +#7#20'TabSheetchoixcourbes'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'Ancho' +'rSideBottom.Control'#7#7'BitBtn7'#4'Left'#2#10#6'Height'#3'P'#1#3'Top'#3#185 +#0#5'Width'#3'u'#4#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0 +#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Rig' +'ht'#2#10#20'BorderSpacing.Bottom'#2#10#8'ColCount'#2#9#8'TabOrder'#2#11#10 +'OnDrawCell'#7#27'StringGridordonneesDrawCell'#11'OnMouseDown'#7#28'StringGr' +'idordonneesmousedown'#0#0#7'TBitBtn'#7'BitBtn8'#22'AnchorSideLeft.Control'#7 +#20'TabSheetchoixcourbes'#21'AnchorSideTop.Control'#7#20'TabSheetchoixcourbe' +'s'#4'Left'#2#10#6'Height'#2'.'#3'Top'#2#10#5'Width'#3'.'#1#18'BorderSpacing' +'.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#7'BitBtn8'#10'Font.Colo' +'r'#7#7'clGreen'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#12'bitbtn8Click' +#10'ParentFont'#8#8'TabOrder'#2#12#0#0#7'TBitBtn'#24'SpeedButtontoutsupprime' +'r'#22'AnchorSideLeft.Control'#7#7'BitBtn8'#21'AnchorSideTop.Control'#7#7'Bi' +'tBtn8'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#7 +'BitBtn8'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2'1' +#3'Top'#2'B'#5'Width'#3'.'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17 +'BorderSpacing.Top'#2#10#7'Caption'#6#24'SpeedButtontoutsupprimer'#10'Font.C' +'olor'#7#6'clBlue'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#29'SpeedButton' +'toutsupprimerClick'#10'ParentFont'#8#8'TabOrder'#2#13#0#0#7'TBitBtn'#7'bitb' +'tn9'#22'AnchorSideLeft.Control'#7#7'BitBtn8'#21'AnchorSideTop.Control'#7#24 +'SpeedButtontoutsupprimer'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSi' +'deRight.Control'#7#7'BitBtn8'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Lef' +'t'#2#10#6'Height'#2'2'#3'Top'#2'}'#5'Width'#3'.'#1#7'Anchors'#11#5'akTop'#6 +'akLeft'#7'akRight'#0#17'BorderSpacing.Top'#2#10#7'Caption'#6#7'bitbtn9'#10 +'Font.Color'#7#5'clRed'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#12'bitbtn' +'9Click'#10'ParentFont'#8#8'TabOrder'#2#14#0#0#0#9'TTabSheet'#20'TabSheettra' +'cecourbes'#7'Caption'#6#18'Trac'#195#169' des courbes'#12'ClientHeight'#3'Z' +#2#11'ClientWidth'#3#186#4#14'ParentShowHint'#8#0#6'TLabel'#7'Label21'#22'An' +'chorSideLeft.Control'#7#20'TabSheettracecourbes'#21'AnchorSideTop.Control'#7 +#8'ToolBar2'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2 +#21#3'Top'#3#138#0#5'Width'#2#22#18'BorderSpacing.Left'#2#10#17'BorderSpacin' ,'g.Top'#2#10#7'Caption'#6#2'V='#11'Font.Height'#2#240#10'Font.Style'#11#6'fs' +'Bold'#0#11'ParentColor'#8#10'ParentFont'#8#7'Visible'#8#0#0#6'TLabel'#7'Lab' +'el22'#22'AnchorSideLeft.Control'#7#12'Editvolumepp'#19'AnchorSideLeft.Side' +#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'Editvolumepp'#18'AnchorSideTo' +'p.Side'#7#9'asrCenter'#4'Left'#2'w'#6'Height'#2#20#3'Top'#3#138#0#5'Width'#2 +#22#18'BorderSpacing.Left'#2#10#7'Caption'#6#2'mL'#10'Font.Style'#11#6'fsBol' +'d'#0#11'ParentColor'#8#10'ParentFont'#8#7'Visible'#8#0#0#8'TToolBar'#8'Tool' +'Bar1'#4'Left'#2#0#6'Height'#2'B'#3'Top'#2#0#5'Width'#3#186#4#8'AutoSize'#9 +#12'ButtonHeight'#2' '#11'ButtonWidth'#3#200#0#7'Caption'#6#8'ToolBar1'#8'Ta' +'bOrder'#2#0#0#11'TToolButton'#11'ToolButton1'#4'Left'#3#154#3#6'Height'#2#8 +#3'Top'#2#2#7'Caption'#6#11'ToolButton1'#5'Style'#7#12'tbsSeparator'#0#0#11 +'TToolButton'#11'ToolButton2'#4'Left'#2#127#6'Height'#2#8#3'Top'#2'"'#7'Capt' +'ion'#6#11'ToolButton2'#5'Style'#7#12'tbsSeparator'#0#0#12'TSpeedButton'#12 +'SpeedButton9'#4'Left'#3#135#0#6'Height'#2' '#4'Hint'#6#17'Modifier couleurs' +#3'Top'#2'"'#5'Width'#2#29#10'Glyph.Data'#10#246#6#0#0#242#6#0#0'BM'#242#6#0 +#0#0#0#0#0'6'#4#0#0'('#0#0#0#25#0#0#0#25#0#0#0#1#0#8#0#0#0#0#0#188#2#0#0#18 +#11#0#0#18#11#0#0#0#1#0#0#0#1#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128 +#0#0#0#128#0#128#0#128#128#0#0#192#192#192#0#192#220#192#0#240#202#166#0#0' ' +'@'#0#0' `'#0#0' '#128#0#0' '#160#0#0' '#192#0#0' '#224#0#0'@'#0#0#0'@ '#0#0 +'@@'#0#0'@`'#0#0'@'#128#0#0'@'#160#0#0'@'#192#0#0'@'#224#0#0'`'#0#0#0'` '#0#0 +'`@'#0#0'``'#0#0'`'#128#0#0'`'#160#0#0'`'#192#0#0'`'#224#0#0#128#0#0#0#128' ' +#0#0#128'@'#0#0#128'`'#0#0#128#128#0#0#128#160#0#0#128#192#0#0#128#224#0#0 +#160#0#0#0#160' '#0#0#160'@'#0#0#160'`'#0#0#160#128#0#0#160#160#0#0#160#192#0 +#0#160#224#0#0#192#0#0#0#192' '#0#0#192'@'#0#0#192'`'#0#0#192#128#0#0#192#160 +#0#0#192#192#0#0#192#224#0#0#224#0#0#0#224' '#0#0#224'@'#0#0#224'`'#0#0#224 +#128#0#0#224#160#0#0#224#192#0#0#224#224#0'@'#0#0#0'@'#0' '#0'@'#0'@'#0'@'#0 +'`'#0'@'#0#128#0'@'#0#160#0'@'#0#192#0'@'#0#224#0'@ '#0#0'@ '#0'@ @'#0'@ `' +#0'@ '#128#0'@ '#160#0'@ '#192#0'@ '#224#0'@@'#0#0'@@ '#0'@@@'#0'@@`'#0'@@' +#128#0'@@'#160#0'@@'#192#0'@@'#224#0'@`'#0#0'@` '#0'@`@'#0'@``'#0'@`'#128#0 +'@`'#160#0'@`'#192#0'@`'#224#0'@'#128#0#0'@'#128' '#0'@'#128'@'#0'@'#128'`'#0 +'@'#128#128#0'@'#128#160#0'@'#128#192#0'@'#128#224#0'@'#160#0#0'@'#160' '#0 +'@'#160'@'#0'@'#160'`'#0'@'#160#128#0'@'#160#160#0'@'#160#192#0'@'#160#224#0 +'@'#192#0#0'@'#192' '#0'@'#192'@'#0'@'#192'`'#0'@'#192#128#0'@'#192#160#0'@' +#192#192#0'@'#192#224#0'@'#224#0#0'@'#224' '#0'@'#224'@'#0'@'#224'`'#0'@'#224 +#128#0'@'#224#160#0'@'#224#192#0'@'#224#224#0#128#0#0#0#128#0' '#0#128#0'@'#0 +#128#0'`'#0#128#0#128#0#128#0#160#0#128#0#192#0#128#0#224#0#128' '#0#0#128' ' +' '#0#128' @'#0#128' `'#0#128' '#128#0#128' '#160#0#128' '#192#0#128' '#224#0 +#128'@'#0#0#128'@ '#0#128'@@'#0#128'@`'#0#128'@'#128#0#128'@'#160#0#128'@' +#192#0#128'@'#224#0#128'`'#0#0#128'` '#0#128'`@'#0#128'``'#0#128'`'#128#0#128 +'`'#160#0#128'`'#192#0#128'`'#224#0#128#128#0#0#128#128' '#0#128#128'@'#0#128 +#128'`'#0#128#128#128#0#128#128#160#0#128#128#192#0#128#128#224#0#128#160#0#0 +#128#160' '#0#128#160'@'#0#128#160'`'#0#128#160#128#0#128#160#160#0#128#160 +#192#0#128#160#224#0#128#192#0#0#128#192' '#0#128#192'@'#0#128#192'`'#0#128 +#192#128#0#128#192#160#0#128#192#192#0#128#192#224#0#128#224#0#0#128#224' '#0 +#128#224'@'#0#128#224'`'#0#128#224#128#0#128#224#160#0#128#224#192#0#128#224 +#224#0#192#0#0#0#192#0' '#0#192#0'@'#0#192#0'`'#0#192#0#128#0#192#0#160#0#192 +#0#192#0#192#0#224#0#192' '#0#0#192' '#0#192' @'#0#192' `'#0#192' '#128#0 +#192' '#160#0#192' '#192#0#192' '#224#0#192'@'#0#0#192'@ '#0#192'@@'#0#192'@' +'`'#0#192'@'#128#0#192'@'#160#0#192'@'#192#0#192'@'#224#0#192'`'#0#0#192'` ' +#0#192'`@'#0#192'``'#0#192'`'#128#0#192'`'#160#0#192'`'#192#0#192'`'#224#0 +#192#128#0#0#192#128' '#0#192#128'@'#0#192#128'`'#0#192#128#128#0#192#128#160 +#0#192#128#192#0#192#128#224#0#192#160#0#0#192#160' '#0#192#160'@'#0#192#160 +'`'#0#192#160#128#0#192#160#160#0#192#160#192#0#192#160#224#0#192#192#0#0#192 +#192' '#0#192#192'@'#0#192#192'`'#0#192#192#128#0#192#192#160#0#240#251#255#0 +#164#160#160#0#128#128#128#0#0#0#255#0#0#255#0#0#0#255#255#0#255#0#0#0#255#0 +#255#0#255#255#0#0#255#255#255#0#254#254#254#254#254#167#167#167#167#167#6#6 +#6#6#6#176#176#176#176#176#173#173#173#173#173#0#0#0#254#254#254#254#254#167 +#167#167#167#167#6#6#6#6#6#176#176#176#176#176#173#173#173#173#173#0#0#0#254 +#254#254#254#254#167#167#167#167#167#6#6#6#6#6#176#176#176#176#176#173#173 +#173#173#173#0#0#0#254#254#254#254#254#167#167#167#167#167#6#6#6#6#6#176#176 +#176#176#176#173#173#173#173#173#0#0#0#254#254#254#254#254#167#167#167#167 +#167#6#6#6#6#6#176#176#176#176#176#173#173#173#173#173#0#0#0#14#14#14#14#14#3 +#3#3#3#3#251#251#251#251#251#135#135#135#135#135'^^^^^'#0#0#0#14#14#14#14#14 +#3#3#3#3#3#251#251#251#251#251#135#135#135#135#135'^^^^^'#0#0#0#14#14#14#14 ,#14#3#3#3#3#3#251#251#251#251#251#135#135#135#135#135'^^^^^'#0#0#0#14#14#14 +#14#14#3#3#3#3#3#251#251#251#251#251#135#135#135#135#135'^^^^^'#0#0#0#14#14 +#14#14#14#3#3#3#3#3#251#251#251#251#251#135#135#135#135#135'^^^^^'#0#0#0':::' +'::'#164#164#164#164#164#24#24#24#24#24'.....zzzzz'#0#0#0':::::'#164#164#164 +#164#164#24#24#24#24#24'.....zzzzz'#0#0#0':::::'#164#164#164#164#164#24#24#24 +#24#24'.....zzzzz'#0#0#0':::::'#164#164#164#164#164#24#24#24#24#24'.....zzzz' +'z'#0#0#0':::::'#164#164#164#164#164#24#24#24#24#24'.....zzzzz'#0#0#0#135#135 +#135#135#135'EEEEE'#135#135#135#135#135'*****'#147#147#147#147#147#0#0#0#135 +#135#135#135#135'EEEEE'#135#135#135#135#135'*****'#147#147#147#147#147#0#0#0 +#135#135#135#135#135'EEEEE'#135#135#135#135#135'*****'#147#147#147#147#147#0 +#0#0#135#135#135#135#135'EEEEE'#135#135#135#135#135'*****'#147#147#147#147 +#147#0#0#0#135#135#135#135#135'EEEEE'#135#135#135#135#135'*****'#147#147#147 +#147#147#0#0#0#252#252#252#252#252'@@@@@'#29#29#29#29#29'RRRRR'#134#134#134 +#134#134#0#0#0#252#252#252#252#252'@@@@@'#29#29#29#29#29'RRRRR'#134#134#134 +#134#134#0#0#0#252#252#252#252#252'@@@@@'#29#29#29#29#29'RRRRR'#134#134#134 +#134#134#0#0#0#252#252#252#252#252'@@@@@'#29#29#29#29#29'RRRRR'#134#134#134 +#134#134#0#0#0#252#252#252#252#252'@@@@@'#29#29#29#29#29'RRRRR'#134#134#134 +#134#134#0#0#0#7'OnClick'#7#17'SpeedButton9Click'#8'ShowHint'#9#14'ParentSho' +'wHint'#8#0#0#9'TCheckBox'#20'CheckBoxgrillegauche'#4'Left'#2#1#6'Height'#2 +#24#3'Top'#2#2#5'Width'#3#162#0#7'Caption'#6#22'Grille '#195#169'chelle gauc' +'he'#7'Checked'#9#7'OnClick'#7#25'CheckBoxgrillegaucheClick'#5'State'#7#9'cb' +'Checked'#8'TabOrder'#2#0#0#0#9'TCheckBox'#20'CheckBoxgrilledroite'#4'Left'#3 +#163#0#6'Height'#2#24#3'Top'#2#2#5'Width'#3#154#0#7'Caption'#6#22'Grille ' +#195#169'chelle droite'#7'Checked'#9#7'OnClick'#7#25'CheckBoxgrilledroiteCli' +'ck'#5'State'#7#9'cbChecked'#8'TabOrder'#2#1#0#0#9'TCheckBox'#19'CheckBoxgra' +'duations'#4'Left'#3'='#1#6'Height'#2#24#3'Top'#2#2#5'Width'#2'h'#7'Caption' +#6#11'Graduations'#7'Checked'#9#7'OnClick'#7#24'CheckBoxgraduationsClick'#5 +'State'#7#9'cbChecked'#8'TabOrder'#2#2#0#0#9'TCheckBox'#12'CheckBoxaxes'#4'L' +'eft'#3#165#1#6'Height'#2#24#3'Top'#2#2#5'Width'#2'7'#7'Caption'#6#4'Axes'#7 +'Checked'#9#8'OnChange'#7#18'CheckBoxaxesChange'#7'OnClick'#7#17'CheckBoxaxe' +'sClick'#5'State'#7#9'cbChecked'#8'TabOrder'#2#3#0#0#9'TCheckBox'#15'CheckBo' +'xlegende'#4'Left'#3#220#1#6'Height'#2#24#3'Top'#2#2#5'Width'#2'Q'#7'Caption' +#6#8'L'#195#169'gende'#7'OnClick'#7#20'CheckBoxlegendeClick'#8'TabOrder'#2#4 +#0#0#9'TCheckBox'#11'CheckBoxexp'#4'Left'#3#29#3#6'Height'#2#24#4'Hint'#6'8A' +'ctiver/d'#195#169'sactiver l''affichage du fichier exp'#195#169'rimental'#3 +'Top'#2#2#5'Width'#2'3'#7'Caption'#6#4'Exp.'#7'OnClick'#7#16'CheckBoxexpClic' +'k'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#5#0#0#9'TCheckBox'#21'C' +'heckBoxsuperposition'#4'Left'#3'P'#3#6'Height'#2#24#4'Hint'#6'$Activer/d' +#195#169'sactiver la superposition'#3'Top'#2#2#5'Width'#2'J'#7'Caption'#6#7 +'Superp.'#8'OnChange'#7#27'CheckBoxsuperpositionChange'#7'OnClick'#7#26'Chec' +'kBoxsuperpositionClick'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#6#0 +#0#7'TBitBtn'#12'SpeedButton5'#4'Left'#2#1#6'Height'#2#30#3'Top'#2'"'#5'Widt' +'h'#2'~'#8'AutoSize'#9#7'Caption'#6#12'SpeedButton5'#10'Font.Color'#7#6'clBl' +'ue'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'SpeedButton5Click'#10'Par' +'entFont'#8#8'TabOrder'#2#7#0#0#7'TBitBtn'#17'SpeedButtonunites'#4'Left'#3 +#162#3#6'Height'#2#30#3'Top'#2#2#5'Width'#3#160#0#8'AutoSize'#9#7'Caption'#6 +#17'SpeedButtonunites'#10'Font.Color'#7#5'clRed'#10'Font.Style'#11#6'fsBold' +#0#7'OnClick'#7#22'SpeedButtonunitesClick'#10'ParentFont'#8#8'TabOrder'#2#8#0 +#0#9'TCheckBox'#20'CheckBoxlegendeapart'#4'Left'#3'-'#2#6'Height'#2#24#3'Top' +#2#2#5'Width'#2'|'#7'Caption'#6#16'L'#195#169'gende '#195#160' part'#7'Check' +'ed'#9#7'OnClick'#7#25'CheckBoxlegendeapartClick'#5'State'#7#9'cbChecked'#8 +'TabOrder'#2#9#0#0#7'TBitBtn'#27'SpeedButton_deplace_legende'#4'Left'#3#169#2 +#6'Height'#2#30#3'Top'#2#2#5'Width'#2't'#8'AutoSize'#9#7'Caption'#6#15'D'#195 +#169'placer l'#195#169'g.'#10'Font.Color'#7#6'clBlue'#10'Font.Style'#11#6'fs' +'Bold'#0#7'OnClick'#7' SpeedButton_deplace_legendeClick'#10'ParentFont'#8#14 +'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#10#0#0#0#8'TToolBar'#8'ToolBa' +'r2'#4'Left'#2#0#6'Height'#2'>'#3'Top'#2'B'#5'Width'#3#186#4#8'AutoSize'#9#12 +'ButtonHeight'#2' '#11'ButtonWidth'#3#200#0#7'Caption'#6#8'ToolBar2'#8'TabOr' +'der'#2#1#0#11'TToolButton'#11'ToolButton3'#4'Left'#3#29#2#6'Height'#2#8#3'T' +'op'#2#2#7'Caption'#6#11'ToolButton3'#5'Style'#7#12'tbsSeparator'#0#0#11'TTo' +'olButton'#11'ToolButton4'#4'Left'#3#172#2#6'Height'#2#8#3'Top'#2#2#7'Captio' +'n'#6#11'ToolButton4'#5'Style'#7#12'tbsSeparator'#0#0#11'TToolButton'#11'Too' +'lButton5'#4'Left'#3';'#3#6'Height'#2#8#3'Top'#2#2#7'Caption'#6#11'ToolButto' +'n5'#5'Style'#7#12'tbsSeparator'#0#0#11'TToolButton'#11'ToolButton6'#4'Left' ,#3#202#3#6'Height'#2#8#3'Top'#2#2#7'Caption'#6#11'ToolButton6'#5'Style'#7#12 +'tbsSeparator'#0#0#9'TComboBox'#9'ComboBox1'#4'Left'#2#1#6'Height'#2#28#3'To' +'p'#2'"'#5'Width'#3#17#1#10'ItemHeight'#2#20#8'OnChange'#7#15'ComboBox1Chang' +'e'#8'TabOrder'#2#0#4'Text'#6#9'ComboBox1'#0#0#7'TBitBtn'#13'SpeedButton10'#4 +'Left'#2#1#6'Height'#2#30#3'Top'#2#2#5'Width'#3#135#0#8'AutoSize'#9#7'Captio' +'n'#6#13'SpeedButton10'#10'Font.Color'#7#7'clGreen'#10'Font.Style'#11#6'fsBo' +'ld'#0#7'OnClick'#7#18'SpeedButton10Click'#10'ParentFont'#8#8'TabOrder'#2#1#0 +#0#7'TBitBtn'#13'SpeedButton12'#4'Left'#3#136#0#6'Height'#2#30#3'Top'#2#2#5 +'Width'#3#135#0#8'AutoSize'#9#7'Caption'#6#13'SpeedButton12'#10'Font.Color'#7 +#8'clMaroon'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#18'SpeedButton12Clic' +'k'#10'ParentFont'#8#8'TabOrder'#2#2#0#0#7'TBitBtn'#13'SpeedButton13'#4'Left' +#3#15#1#6'Height'#2#30#3'Top'#2#2#5'Width'#3#135#0#8'AutoSize'#9#7'Caption'#6 +#13'SpeedButton13'#10'Font.Color'#7#6'clBlue'#10'Font.Style'#11#6'fsBold'#0#7 +'OnClick'#7#18'SpeedButton13Click'#10'ParentFont'#8#8'TabOrder'#2#3#0#0#7'TB' +'itBtn'#13'SpeedButton14'#4'Left'#3#150#1#6'Height'#2#30#3'Top'#2#2#5'Width' +#3#135#0#8'AutoSize'#9#7'Caption'#6#13'SpeedButton14'#10'Font.Color'#7#5'clR' +'ed'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#18'SpeedButton14Click'#10'Pa' +'rentFont'#8#8'TabOrder'#2#4#0#0#7'TBitBtn'#13'SpeedButton15'#4'Left'#3'%'#2 +#6'Height'#2#30#3'Top'#2#2#5'Width'#3#135#0#8'AutoSize'#9#7'Caption'#6#13'Sp' +'eedButton15'#10'Font.Color'#7#8'clPurple'#10'Font.Style'#11#6'fsBold'#0#7'O' +'nClick'#7#18'SpeedButton15Click'#10'ParentFont'#8#8'TabOrder'#2#5#0#0#7'TBi' +'tBtn'#13'SpeedButton16'#4'Left'#3#180#2#6'Height'#2#30#3'Top'#2#2#5'Width'#3 +#135#0#8'AutoSize'#9#7'Caption'#6#13'SpeedButton16'#10'Font.Color'#7#9'clFuc' +'hsia'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#18'SpeedButton16Click'#10 +'ParentFont'#8#8'TabOrder'#2#6#0#0#7'TBitBtn'#13'SpeedButton17'#4'Left'#3'C' +#3#6'Height'#2#30#3'Top'#2#2#5'Width'#3#135#0#8'AutoSize'#9#7'Caption'#6#13 +'SpeedButton17'#10'Font.Color'#7#8'clMaroon'#10'Font.Style'#11#6'fsBold'#0#7 +'OnClick'#7#18'SpeedButton17Click'#10'ParentFont'#8#8'TabOrder'#2#7#0#0#0#5 +'TEdit'#12'Editvolumepp'#22'AnchorSideLeft.Control'#7#7'Label21'#19'AnchorSi' +'deLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#7'Label21'#18'Ancho' +'rSideTop.Side'#7#9'asrCenter'#4'Left'#2'*'#6'Height'#2#28#3'Top'#3#134#0#5 +'Width'#2'C'#18'BorderSpacing.Left'#2#10#10'OnKeyPress'#7#20'EditvolumeppKey' +'Press'#8'TabOrder'#2#2#7'Visible'#8#0#0#7'TUpDown'#17'SpinEdit1pourcent'#22 +'AnchorSideLeft.Control'#7#7'Label22'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#12'Editvolumepp'#18'AnchorSideTop.Side'#7#9'asr' +'Center'#4'Left'#3#151#0#6'Height'#2#24#3'Top'#3#136#0#5'Width'#2#17#18'Bord' +'erSpacing.Left'#2#10#3'Min'#2#156#7'OnClick'#7#22'SpinEdit1pourcentClick'#8 +'Position'#2#0#8'TabOrder'#2#3#4'Wrap'#8#0#0#7'TUpDown'#18'SpinEdit01pourcen' +'t'#22'AnchorSideLeft.Control'#7#17'SpinEdit1pourcent'#19'AnchorSideLeft.Sid' +'e'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'Editvolumepp'#18'AnchorSid' +'eTop.Side'#7#9'asrCenter'#4'Left'#3#168#0#6'Height'#2#24#3'Top'#3#136#0#5'W' +'idth'#2#17#3'Min'#2#156#7'OnClick'#7#23'SpinEdit01pourcentClick'#8'Position' +#2#0#8'TabOrder'#2#4#4'Wrap'#8#0#0#7'TUpDown'#19'SpinEdit001pourcent'#22'Anc' +'horSideLeft.Control'#7#18'SpinEdit01pourcent'#19'AnchorSideLeft.Side'#7#9'a' +'srBottom'#21'AnchorSideTop.Control'#7#12'Editvolumepp'#18'AnchorSideTop.Sid' +'e'#7#9'asrCenter'#4'Left'#3#185#0#6'Height'#2#24#3'Top'#3#136#0#5'Width'#2 +#17#3'Min'#2#156#7'OnClick'#7#24'SpinEdit001pourcentClick'#8'Position'#2#0#8 +'TabOrder'#2#5#4'Wrap'#8#0#0#7'TUpDown'#20'SpinEdit0001pourcent'#22'AnchorSi' +'deLeft.Control'#7#19'SpinEdit001pourcent'#19'AnchorSideLeft.Side'#7#9'asrBo' +'ttom'#21'AnchorSideTop.Control'#7#12'Editvolumepp'#18'AnchorSideTop.Side'#7 +#9'asrCenter'#4'Left'#3#202#0#6'Height'#2#24#3'Top'#3#136#0#5'Width'#2#17#3 +'Min'#2#156#7'OnClick'#7#25'SpinEdit0001pourcentClick'#8'Position'#2#0#8'Tab' +'Order'#2#6#4'Wrap'#8#0#0#6'TImage'#6'Image1'#22'AnchorSideLeft.Control'#7#20 +'TabSheettracecourbes'#21'AnchorSideTop.Control'#7#8'ToolBar2'#18'AnchorSide' +'Top.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#20'TabSheettracecour' +'bes'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7 +#20'TabSheettracecourbes'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2 +#0#6'Height'#3#218#1#3'Top'#3#128#0#5'Width'#3#186#4#7'Anchors'#11#5'akTop'#6 +'akLeft'#7'akRight'#8'akBottom'#0#11'OnMouseDown'#7#15'Image1MouseDown'#11'O' +'nMouseMove'#7#15'Image1MouseMove'#9'OnMouseUp'#7#13'Image1MouseUp'#8'OnResi' +'ze'#7#12'Image1Resize'#0#0#5'TMemo Memo_resultats_point_particulier'#22'Anc' +'horSideLeft.Control'#7#20'TabSheettracecourbes'#21'AnchorSideTop.Control'#7 +#17'SpeedButtonfermer'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBo' +'ttom.Control'#7#20'TabSheettracecourbes'#21'AnchorSideBottom.Side'#7#9'asrB' ,'ottom'#4'Left'#2#0#6'Height'#3'i'#1#3'Top'#3#241#0#5'Width'#3#246#0#7'Ancho' +'rs'#11#5'akTop'#6'akLeft'#8'akBottom'#0#13'Lines.Strings'#1#6' Memo_resulta' +'ts_point_particulier'#0#9'PopupMenu'#7'!PopupMenu_copie_resultats_1_point'#8 +'ReadOnly'#9#8'TabOrder'#2#7#7'Visible'#8#0#0#7'TBitBtn'#19'SpeedButtoncalcu' +'ler'#22'AnchorSideLeft.Control'#7#20'TabSheettracecourbes'#21'AnchorSideTop' +'.Control'#7#12'Editvolumepp'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2 +#0#6'Height'#2'!'#3'Top'#3#172#0#5'Width'#3#248#0#17'BorderSpacing.Top'#2#10 +#7'Caption'#6#19'SpeedButtoncalculer'#10'Font.Color'#7#7'clGreen'#10'Font.St' +'yle'#11#6'fsBold'#0#7'OnClick'#7#24'SpeedButtoncalculerClick'#10'ParentFont' +#8#8'TabOrder'#2#8#0#0#7'TBitBtn'#17'SpeedButtonfermer'#22'AnchorSideLeft.Co' +'ntrol'#7#20'TabSheettracecourbes'#21'AnchorSideTop.Control'#7#19'SpeedButto' +'ncalculer'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#2'$' +#3'Top'#3#205#0#5'Width'#3#248#0#7'Caption'#6#17'SpeedButtonfermer'#10'Font.' +'Color'#7#6'clBlue'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#22'SpeedButto' +'nfermerClick'#10'ParentFont'#8#8'TabOrder'#2#9#0#0#0#0#5'TMemo'#5'Memo1'#4 +'Left'#3#216#1#6'Height'#2'#'#3'Top'#3#227#0#5'Width'#2'#'#13'Lines.Strings' +#1#6#2'Me'#6#1'm'#6#1'o'#6#1'1'#0#8'TabOrder'#2#1#7'Visible'#8#0#0#5'TMemo'#5 +'Memo2'#4'Left'#3#8#2#6'Height'#2'&'#3'Top'#3'H'#1#5'Width'#2'6'#13'Lines.St' +'rings'#1#6#3'Mem'#6#2'o2'#0#8'TabOrder'#2#2#7'Visible'#8#0#0#9'TMainMenu'#9 +'MainMenu1'#4'left'#3'X'#3#3'top'#2'p'#0#9'TMenuItem'#8'Fichier1'#7'Caption' +#6#7'Fichier'#0#9'TMenuItem'#19'Nouvellesimulation1'#7'Caption'#6#19'Nouvell' +'e simulation'#7'OnClick'#7#24'Nouvellesimulation1Click'#0#0#9'TMenuItem'#2 +'N2'#7'Caption'#6#1'-'#0#0#9'TMenuItem Enregistrerlefilmdelasimulation1'#7'C' +'aption'#6'$Enregistrer le film de la simulation'#7'OnClick'#7'%Enregistrerl' +'efilmdelasimulation1Click'#0#0#9'TMenuItem'#24'Jouerunfilmdesimulation1'#7 +'Caption'#6#27'Jouer un film de simulation'#7'OnClick'#7#29'Jouerunfilmdesim' +'ulation1Click'#0#9'TMenuItem'#25'MenuItem_charger_exemples'#7'Caption'#6#25 +'du r'#195#169'pertoire "exemples"'#7'OnClick'#7#30'MenuItem_charger_exemple' +'sClick'#0#0#9'TMenuItem'#26'MenuItem_charger_personnel'#7'Caption'#6#28'de ' +'mon r'#195#169'pertoire personnel'#7'OnClick'#7#31'MenuItem_charger_personn' +'elClick'#0#0#0#0#9'TMenuItem'#8'Options1'#7'Caption'#6#7'Options'#0#9'TMenu' +'Item'#23'Nombredepointsdecalcul1'#7'Caption'#6#26'Nombre de points de calcu' +'l'#7'OnClick'#7#28'Nombredepointsdecalcul1Click'#0#0#9'TMenuItem'#23'Autori' +'serractionsredox1'#7'Caption'#6#26'Autoriser r'#195#169'actions redox'#7'On' +'Click'#7#28'Autoriserractionsredox1Click'#0#0#9'TMenuItem'#21'UtiliserDebye' +'etHckel1'#7'Caption'#6#25'Utiliser Debye et H'#195#188'ckel'#7'OnClick'#7#26 +'UtiliserDebyeetHckel1Click'#0#0#9'TMenuItem'#9'MenuItem2'#7'Caption'#6#1'-' +#0#0#9'TMenuItem'#16'Calculdesdrives1'#7'Caption'#6#21'Calcul des d'#195#169 +'riv'#195#169'es'#7'OnClick'#7#21'Calculdesdrives1Click'#0#0#9'TMenuItem'#9 +'MenuItem1'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#19'Exporttableurtexte1'#7'Cap' +'tion'#6#20'Export tableur texte'#7'OnClick'#7#24'Exporttableurtexte1Click'#0 +#0#9'TMenuItem'#9'MenuItem4'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#18'Temporisa' +'tionfilm1'#7'Caption'#6#18'Temporisation film'#7'OnClick'#7#23'Temporisatio' +'nfilm1Click'#0#0#9'TMenuItem'#9'MenuItem8'#7'Caption'#6#1'-'#7'OnClick'#7#14 +'MenuItem8Click'#0#0#9'TMenuItem'#22'Chiffressignificatifs1'#7'Caption'#6#22 +'Chiffres significatifs'#7'OnClick'#7#27'Chiffressignificatifs1Click'#0#0#9 +'TMenuItem'#9'MenuItem3'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem11'#7 +'Caption'#6#18'Indicateur color'#195#169#7'OnClick'#7#15'MenuItem11Click'#0#0 +#9'TMenuItem'#10'MenuItem10'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem9' +#7'Caption'#6#6'Langue'#7'OnClick'#7#14'MenuItem9Click'#0#0#0#9'TMenuItem'#5 +'Aide1'#7'Caption'#6#4'Aide'#0#9'TMenuItem'#16'AideDozzzaqueux1'#7'Caption'#6 +#16'Aide Dozzzaqueux'#7'OnClick'#7#21'AideDozzzaqueux1Click'#0#0#9'TMenuItem' +#9'MenuItem5'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#11'LicenseGPL1'#7'Caption'#6 +#11'License GPL'#7'OnClick'#7#16'LicenseGPL1Click'#0#0#9'TMenuItem'#9'MenuIt' +'em6'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem12'#7'Caption'#6#8'Site ' +'web'#7'OnClick'#7#15'MenuItem12Click'#0#0#9'TMenuItem'#10'MenuItem14'#7'Cap' +'tion'#6#23'Historique des versions'#7'OnClick'#7#15'MenuItem14Click'#0#0#9 +'TMenuItem'#10'MenuItem13'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#16'Versiondela' +'base1'#7'Caption'#6#18'Version de la base'#7'OnClick'#7#21'Versiondelabase1' +'Click'#0#0#9'TMenuItem'#9'MenuItem7'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#8'A' +'propos1'#7'Caption'#6#11'A propos...'#7'OnClick'#7#13'Apropos1Click'#0#0#0#0 +#11'TOpenDialog'#11'OpenDialog1'#4'left'#3'@'#1#3'top'#3#0#1#0#0#11'TOpenDia' +'log'#11'OpenDialog2'#6'Filter'#6'!Film simulation Dozzzaqueux|*.doz'#11'Fil' +'terIndex'#2#0#4'left'#3'8'#1#3'top'#3#232#0#0#0#11'TOpenDialog'#11'OpenDial' ,'og3'#6'Filter'#6'?Tableur texte (*.txt;*.csv)|*.txt;*.csv|R'#195#169'gressi' +' (*.rw3)|*.rw3'#11'FilterIndex'#2#0#4'left'#3's'#1#3'top'#3#193#0#0#0#12'TC' +'olorDialog'#12'ColorDialog1'#5'Color'#7#7'clBlack'#20'CustomColors.Strings' +#1#6#13'ColorA=000000'#6#13'ColorB=000080'#6#13'ColorC=008000'#6#13'ColorD=0' +'08080'#6#13'ColorE=800000'#6#13'ColorF=800080'#6#13'ColorG=808000'#6#13'Col' +'orH=808080'#6#13'ColorI=C0C0C0'#6#13'ColorJ=0000FF'#6#13'ColorK=00FF00'#6#13 +'ColorL=00FFFF'#6#13'ColorM=FF0000'#6#13'ColorN=FF00FF'#6#13'ColorO=FFFF00'#6 +#13'ColorP=FFFFFF'#6#13'ColorQ=C0DCC0'#6#13'ColorR=F0CAA6'#6#13'ColorS=F0FBF' +'F'#6#13'ColorT=A4A0A0'#0#4'left'#3'q'#1#3'top'#3#242#0#0#0#11'TSaveDialog' +#11'SaveDialog1'#5'Title'#6#11'Enregistrer'#10'DefaultExt'#6#4'.csv'#6'Filte' +'r'#6'?Tableur texte (*.csv;*.txt)|*.csv;*.txt|R'#195#169'gressi (*.rw3)|*.r' +'w3'#11'FilterIndex'#2#0#4'left'#3'm'#1#3'top'#3#31#1#0#0#11'TSaveDialog'#11 +'SaveDialog2'#5'Title'#6#11'Enregistrer'#11'FilterIndex'#2#0#4'left'#3'Z'#1#3 +'top'#3'U'#1#0#0#11'TSaveDialog'#11'SaveDialog3'#5'Title'#6#11'Enregistrer' +#10'DefaultExt'#6#4'.doz'#6'Filter'#6'!Film simulation Dozzzaqueux|*.doz'#11 +'FilterIndex'#2#0#4'left'#3'^'#1#3'top'#3'~'#1#0#0#10'TPopupMenu'#10'PopupMe' +'nu1'#4'left'#3'j'#1#3'top'#3#179#1#0#9'TMenuItem'#15'Parfomulebrute1'#7'Cap' +'tion'#6#16'Par fomule brute'#7'OnClick'#7#20'Parfomulebrute1Click'#0#0#9'TM' +'enuItem'#25'Paridentifiantousynonyme1'#7'Caption'#6#27'Par identifiant ou s' +'ynonyme'#7'OnClick'#7#30'Paridentifiantousynonyme1Click'#0#0#0#10'TPopupMen' +'u'#10'PopupMenu2'#4'left'#3#146#1#3'top'#3#173#1#0#9'TMenuItem'#16'Parformu' +'lebrute1'#7'Caption'#6#17'Par formule brute'#7'OnClick'#7#21'Parformulebrut' +'e1Click'#0#0#9'TMenuItem'#25'Paridentifiantousynonyme2'#7'Caption'#6#27'Par' +' identifiant ou synonyme'#7'OnClick'#7#30'Paridentifiantousynonyme2Click'#0 +#0#0#10'TPopupMenu'#19'PopupMenuSuperposer'#4'left'#3'h'#1#3'top'#3#222#1#0#9 +'TMenuItem#Expriencefichierformattableautexte1'#7'Caption'#6'6Exp'#195#169'r' +'ience (fichier format tableau texte ou Regressi)'#7'OnClick'#7'(Expriencefi' +'chierformattableautexte1Click'#0#0#9'TMenuItem?Uneouplusieursdessimulations' +'faitesdepuisledernierlancementdeDoz'#7'Caption'#6'RUne ou plusieurs des sim' +'ulations faites depuis le dernier lancement de Dozzzaqueux'#7'OnClick'#7'DU' +'neouplusieursdessimulationsfaitesdepuisledernierlancementdeDozClick'#0#0#0 +#12'TPrintDialog'#12'PrintDialog1'#4'left'#3'p'#1#3'top'#2'h'#0#0#19'TPrinte' +'rSetupDialog'#19'PrinterSetupDialog1'#4'left'#3#176#1#3'top'#2'@'#0#0#10'TP' +'opupMenu'#15'PopupMenu_image'#4'left'#3'@'#4#3'top'#3#224#0#0#9'TMenuItem' +#12'MenuItem_png'#7'Caption'#6#3'PNG'#7'OnClick'#7#17'MenuItem_pngClick'#0#0 +#9'TMenuItem'#12'MenuItem_jpg'#7'Caption'#6#4'JPEG'#7'OnClick'#7#17'MenuItem' +'_jpgClick'#0#0#0#17'THTMLHelpDatabase'#17'HTMLHelpDatabase1'#7'BaseURL'#6#6 +'./Aide'#12'AutoRegister'#8#13'KeywordPrefix'#6#9'htkeyword'#4'left'#2'R'#3 +'top'#3#183#1#0#0#10'TPopupMenu!PopupMenu_copie_resultats_1_point'#4'left'#3 +#249#1#3'top'#3#208#1#0#9'TMenuItem'#10'MenuItem15'#7'Caption'#6#30'Tout cop' +'ier dans presse-papier'#7'OnClick'#7#15'MenuItem15Click'#0#0#9'TMenuItem'#10 +'MenuItem16'#7'Caption'#6'0Copier texte s'#195#169'lectionn'#195#169' dans l' +'e presse-papier'#7'OnClick'#7#15'MenuItem16Click'#0#0#0#10'TPopupMenu'#13'P' +'opupMenubrut'#4'left'#3#200#2#3'top'#3'`'#1#0#9'TMenuItem'#23'MenuItem_sauv' +'e_brut_csv'#7'Caption'#6'!Format tableur texte (.csv, .txt)'#7'OnClick'#7#28 +'MenuItem_sauve_brut_csvClick'#0#0#9'TMenuItem'#22'MenuItem_save_brut_rw3'#7 +'Caption'#6#23'Format R'#195#169'gressi (.rw3)'#7'OnClick'#7#27'MenuItem_sav' +'e_brut_rw3Click'#0#0#0#10'TPopupMenu'#16'PopupMenuRaffine'#4'left'#3'9'#3#3 +'top'#3#223#1#0#9'TMenuItem'#18'MenuItemRaffineCSV'#7'Caption'#6'!Format tab' +'leur texte (.csv, .txt)'#7'OnClick'#7#23'MenuItemRaffineCSVClick'#0#0#9'TMe' +'nuItem'#18'MenuItemRaffineRW3'#7'Caption'#6#22'Format Regressi (.rw3)'#7'On' +'Click'#7#23'MenuItemRaffineRW3Click'#0#0#0#0 ]); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit29.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000002306�13147330070�015713� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit29; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin, Buttons,UChaines,UnitScaleFont; type { Tsaisie_derivees } Tsaisie_derivees = class(TForm) BitBtn1: TBitBtn; CheckBoxDerivees: TCheckBox; Label1: TLabel; Label2: TLabel; SpinEditDerivee: TSpinEdit; procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisie_derivees: Tsaisie_derivees; implementation { Tsaisie_derivees } procedure Tsaisie_derivees.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsCalculDesDRi ; Label1.Caption := rsLeCalculDeLa ; Label2.Caption := rsChoixDeHVolu; CheckBoxDerivees.Caption := rsActiverLeCal; BitBtn1.Caption := rsOK; end; procedure Tsaisie_derivees.BitBtn1Click(Sender: TObject); begin end; procedure Tsaisie_derivees.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit29.lrs} end. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit18.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000001537�13147330070�015716� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit18; {$mode objfpc}{$H+} interface uses Classes, SysUtils,FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,UChaines,UnitScaleFont; type { Tscript } Tscript = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var script: Tscript; implementation { Tscript } procedure Tscript.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsScript ; Label2.Caption := rsNeTouchezRie; Label3.Caption := rsAprSLAfficha; end; procedure Tscript.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit18.lrs} end. �����������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit10.lrs��������������������������������������������������������������������������0000750�0001750�0001750�00000004357�13147330070�015726� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tmodifnombremole','FORMDATA',[ 'TPF0'#16'Tmodifnombremole'#15'modifnombremole'#4'Left'#3'"'#1#6'Height'#3#128 +#0#3'Top'#3#179#0#5'Width'#3#249#1#13'ActiveControl'#7#5'Edit1'#11'BorderIco' +'ns'#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Ca' +'ption'#6#26'Modification concentration'#12'ClientHeight'#3#128#0#11'ClientW' +'idth'#3#249#1#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVe' +'rsion'#6#7'1.2.2.0'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Ow' +'ner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3'Top' +#2#10#5'Width'#3#160#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10 +#7'Caption'#6#22'Concentration molaire:'#10'Font.Style'#11#6'fsBold'#0#11'Pa' +'rentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.Con' +'trol'#7#5'Edit1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Co' +'ntrol'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3''''#1#6 +'Height'#2#20#3'Top'#2#10#5'Width'#2'*'#18'BorderSpacing.Left'#2#10#7'Captio' +'n'#6#5'mol/L'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont' +#8#0#0#5'TEdit'#5'Edit1'#22'AnchorSideLeft.Control'#7#6'Label1'#19'AnchorSid' +'eLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorS' +'ideTop.Side'#7#9'asrCenter'#4'Left'#3#180#0#6'Height'#2#28#3'Top'#2#6#5'Wid' +'th'#2'i'#18'BorderSpacing.Left'#2#10#10'OnKeyPress'#7#13'Edit1KeyPress'#8'T' +'abOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLeft.Control'#7#5'Owner' +#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom' +#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBott' +'om'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'a' +'srBottom'#4'Left'#2#10#6'Height'#2'D'#3'Top'#2'2'#5'Width'#3#229#1#7'Anchor' +'s'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2 +#10#17'BorderSpacing.Top'#2#20#19'BorderSpacing.Right'#2#10#20'BorderSpacing' +'.Bottom'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalRe' +'sult'#2#1#8'TabOrder'#2#1#0#0#0 ]); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unitgaussjordan.pas�����������������������������������������������������������������0000750�0001750�0001750�00000057110�13147330070�020004� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit UnitGaussJordan; {$mode objfpc}{$H+} interface uses pivotgauss,SysUtils,gibbs,math; procedure DetermineReactions(aa:matricereelle; bb:tableaureel; nombre_especes,nombre_type_atomes_gj:longint; noms_1,f_b_1:tableaustring; var rang,reac:longint; var reactions,equations_conservation,equations_avancements: tableaustring; var aaa:matricereelle; var b:tableaureel; var coeff_stoechio:matricereelle; potentiel_standard:tableaureel; var deltarG0,logK:tableaureel; temperature:float); procedure DetermineReactionsAnnexe(aa:matricereelle; bb:tableaureel; nombre_especes,nombre_type_atomes_gj:longint; noms_1,f_b_1:tableaustring; var rang,reac:longint; var reactions,equations_conservation: tableaustring; var aaa:matricereelle; var bbb:tableaureel; var coeff_stoechio:matricereelle; potentiel_standard:tableaureel; var deltarG0:tableaureel; temperature:float); procedure DetermineMu0(coefficient_stoechiometriques:matricereelle; logk:tableaureel; var mu0:tableaureel; nombre_especes,nombre_reactions: integer; temperature:float); procedure multiplieligne(var ma:matricereelle; ii:longint; x:float; nombre_especes:longint); procedure ajouteligne(var ma:matricereelle; ii,jj:longint; x:float; nombre_especes:longint); procedure permutecolonnes(var ma:matricereelle; ii,jj:longint; nombre_type_atomes_gj:longint); procedure permutelignes(var ma:matricereelle; ii,jj:longint; nombre_especes:longint); procedure permutenoms(var nono:tableaustring; ii,jj:longint); function MinEntier(a,b:longint):longint; procedure permutereels(var nono:tableaureel; ii,jj:longint); procedure permuteentiers(var nono:tableauentier; ii,jj:longint); procedure VerifieMatriceNulle(var a:matricereelle; nombre_especes,nombre_type_atomes_gj:integer); function MyFrac(x:float):float; function EstEntier(x,maxfrac:float): boolean; function presentdanstableauentier(elementachercher:integer; dansqueltableau:tableauentier; nombreelementsdutableau:integer; var saplace:integer):boolean; implementation function presentdanstableauentier(elementachercher:integer; dansqueltableau:tableauentier; nombreelementsdutableau:integer; var saplace:integer):boolean; var i:integer; begin if nombreelementsdutableau=0 then begin result:=false; exit; end; i:=0; repeat inc(i); until ((i=nombreelementsdutableau) or (dansqueltableau[i-1]=elementachercher)); result:= ((i<nombreelementsdutableau) or (dansqueltableau[nombreelementsdutableau-1]=elementachercher)) ; saplace:=i; end; function MyFrac(x:float):float; begin result:=abs(abs(x)-round(abs(x))); end; function EstEntier(x,maxfrac:float): boolean; begin result:= (MyFrac(x)<maxfrac); end; function MinEntier(a,b:longint):longint; begin if a<b then result:=a else result:=b; end; procedure multiplieligne(var ma:matricereelle; ii:longint; x:float; nombre_especes:longint); var kk:longint; begin for kk:=1 to nombre_especes do ma[ii-1,kk-1]:=ma[ii-1,kk-1]*x; end; procedure ajouteligne(var ma:matricereelle; ii,jj:longint; x:float; nombre_especes:longint); var kk:longint; begin for kk:=1 to nombre_especes do ma[ii-1,kk-1]:=ma[ii-1,kk-1]+x*ma[jj-1,kk-1]; end; procedure permutecolonnes(var ma:matricereelle; ii,jj:longint; nombre_type_atomes_gj:longint); var kk:longint; x:float; begin for kk:=1 to nombre_type_atomes_gj do begin x:=ma[kk-1,ii-1]; ma[kk-1,ii-1]:=ma[kk-1,jj-1]; ma[kk-1,jj-1]:=x; end; end; procedure permutelignes(var ma:matricereelle; ii,jj:longint; nombre_especes:longint); var kk:longint; x:float; begin for kk:=1 to nombre_especes do begin x:=ma[ii-1,kk-1]; ma[ii-1,kk-1]:=ma[jj-1,kk-1]; ma[jj-1,kk-1]:=x; end; end; procedure permutenoms(var nono:tableaustring; ii,jj:longint); var s:string; begin s:=nono[ii-1]; nono[ii-1]:=nono[jj-1]; nono[jj-1]:=s; end; procedure permutereels(var nono:tableaureel; ii,jj:longint); var s:float; begin s:=nono[ii-1]; nono[ii-1]:=nono[jj-1]; nono[jj-1]:=s; end; procedure permuteentiers(var nono:tableauentier; ii,jj:longint); var s:longint; begin s:=nono[ii-1]; nono[ii-1]:=nono[jj-1]; nono[jj-1]:=s; end; procedure VerifieMatriceNulle(var a:matricereelle; nombre_especes,nombre_type_atomes_gj:integer); var fracmax:float; var i,j:integer; begin fracmax:=1e-10; for i:=1 to nombre_type_atomes_gj do for j:=1 to nombre_especes do if EstEntier(a[i-1,j-1],fracmax) then a[i-1,j-1]:=round(a[i-1,j-1]); end; procedure DetermineReactionsAnnexe(aa:matricereelle; bb:tableaureel; nombre_especes,nombre_type_atomes_gj:longint; noms_1,f_b_1:tableaustring; var rang,reac:longint; var reactions,equations_conservation: tableaustring; var aaa:matricereelle; var bbb:tableaureel; var coeff_stoechio:matricereelle; potentiel_standard:tableaureel; var deltarG0:tableaureel; temperature:float); var i,j,k:longint; trouve,coefentiers,reaction_ne_compte_pas,bon_facteur:boolean; s1,s2:string; fracmax,facteur,facteur_actuel,toto:float; a,coefficients_stoechiometriques:matricereelle; places_especes:tableauentier; noms,f_b:tableaustring; label 3012,3017,3052,444,1024; begin fracmax:=1e-10; rang:=0; facteur:=1; setlength(a,nombre_type_atomes_gj,nombre_especes); setlength(bbb,nombre_type_atomes_gj); {a:=copy(aa);} for i:=1 to nombre_especes do for j:=1 to nombre_type_atomes_gj do a[j-1,i-1]:=aa[j-1,i-1]; {bbb:=copy(bb);} for i:=1 to nombre_type_atomes_gj do bbb[i-1]:=bb[i-1]; setlength(places_especes,nombre_especes); for i:=1 to nombre_especes do places_especes[i-1]:=i; setlength(noms,nombre_especes); for i:=1 to nombre_especes do noms[i-1]:=noms_1[i-1]; setlength(f_b,nombre_especes); for i:=1 to nombre_especes do f_b[i-1]:=f_b_1[i-1]; coefentiers:=true; for i:=1 to nombre_especes do for j:=1 to nombre_type_atomes_gj do coefentiers:=coefentiers and EstEntier(a[j-1,i-1],fracmax); for i:=1 to MinEntier(nombre_especes,nombre_type_atomes_gj) do begin verifiematricenulle(a,nombre_especes,nombre_type_atomes_gj); {cas ou le pivot est nul: on cherche quelles lignes et colonnes permuter} if (a[i-1,i-1]=0) then begin trouve:=false; if ((i<=nombre_especes) and (i<nombre_type_atomes_gj)) then begin k:=i; for j:=i+1 to nombre_type_atomes_gj do if a[j-1,k-1]<>0 then begin trouve:=true; goto 1024; end; end; if ((i<nombre_especes) and (i<=nombre_type_atomes_gj)) then begin j:=i; for k:=i+1 to nombre_especes do if a[j-1,k-1]<>0 then begin trouve:=true; goto 1024; end; end; if ((i<nombre_especes) and (i<nombre_type_atomes_gj)) then for k:=i+1 to nombre_especes do for j:=i+1 to nombre_type_atomes_gj do if a[j-1,k-1]<>0 then begin trouve:=true; goto 1024; end; if ((i=nombre_especes) and (i=nombre_type_atomes_gj)) then goto 3012; if not(trouve) then goto 3012; 1024: permutelignes(a,i,j,nombre_especes); permutecolonnes(a,i,k,nombre_type_atomes_gj); permutenoms(noms,i,k); permutenoms(f_b,i,k); permutereels(bbb,i,j); permuteentiers(places_especes,i,k); end; {du cas pivot nul} if a[i-1,i-1]=1 then inc(rang); if a[i-1,i-1]<>1 then begin if (coefentiers and (abs(a[i-1,i-1])>1)) then facteur:=facteur*abs(a[i-1,i-1]); bbb[i-1]:=bbb[i-1]/a[i-1,i-1]; multiplieligne(a,i,1/a[i-1,i-1],nombre_especes); inc(rang); end; if i>1 then for j:=1 to i-1 do if a[j-1,i-1]<>0 then begin bbb[j-1]:=bbb[j-1]-a[j-1,i-1]*bbb[i-1]; ajouteligne(a,j,i,-a[j-1,i-1],nombre_especes); end; if i<nombre_type_atomes_gj then for j:=i+1 to nombre_type_atomes_gj do if a[j-1,i-1]<>0 then begin bbb[j-1]:=bbb[j-1]-a[j-1,i-1]*bbb[i-1]; ajouteligne(a,j,i,-a[j-1,i-1],nombre_especes); end; end; 3012: setlength(reactions,nombre_especes-rang); setlength(coefficients_stoechiometriques, nombre_especes-rang,nombre_especes); reac:=0; for i:=1 to nombre_especes-rang do begin reaction_ne_compte_pas:=true; for j:=1 to rang do reaction_ne_compte_pas:= reaction_ne_compte_pas and (a[j-1,rang+i-1]=0); if reaction_ne_compte_pas then goto 3017; inc(reac); facteur_actuel:=1; {recherche du facteur pour avoir des coef entiers} if facteur>1 then for k:=1 to round(facteur) do begin bon_facteur:=true; for j:=1 to rang do bon_facteur:=bon_facteur and EstEntier(k*a[j-1,rang+i-1],fracmax); if bon_facteur then begin facteur_actuel:=k; goto 3052; end; end; 3052: for j:=1 to rang do begin coefficients_stoechiometriques[reac-1,j-1]:=-a[j-1,rang+i-1]*facteur_actuel; if EstEntier(coefficients_stoechiometriques[reac-1,j-1],fracmax) then coefficients_stoechiometriques[reac-1,j-1]:= round(coefficients_stoechiometriques[reac-1,j-1]); end; coefficients_stoechiometriques[reac-1,rang+i-1]:=facteur_actuel; if EstEntier(coefficients_stoechiometriques[reac-1,rang+i-1],fracmax) then coefficients_stoechiometriques[reac-1,rang+i-1]:= round(coefficients_stoechiometriques[reac-1,rang+i-1]); 3017: end; for i:=1 to reac do begin s1:=''; s2:=''; for j:=1 to nombre_especes do begin if coefficients_stoechiometriques[i-1,j-1]<0 then if s1<>'' then if (abs(abs(coefficients_stoechiometriques [i-1,j-1])-1)>fracmax) then s1:=s1+' + '+floattostr(-coefficients_stoechiometriques [i-1,j-1])+' '+noms[j-1] else s1:=s1+' + '+noms[j-1] else if (abs(abs(coefficients_stoechiometriques [i-1,j-1])-1)>fracmax) then s1:=floattostr(-coefficients_stoechiometriques [i-1,j-1])+' '+noms[j-1] else s1:=noms[j-1]; if coefficients_stoechiometriques[i-1,j-1]>0 then if s2<>'' then if (abs(abs(coefficients_stoechiometriques [i-1,j-1])-1)>fracmax) then s2:=s2+' + '+floattostr(coefficients_stoechiometriques [i-1,j-1])+' '+noms[j-1] else s2:=s2+' + '+noms[j-1] else if (abs(abs(coefficients_stoechiometriques [i-1,j-1])-1)>fracmax) then s2:=floattostr(coefficients_stoechiometriques [i-1,j-1])+' '+noms[j-1] else s2:=noms[j-1] ; end; reactions[i-1]:=s1+' = '+s2; end; setlength(reactions,reac); {recherche du facteur pour avoir des coef entiers} if facteur>1 then for j:=1 to rang do begin for k:=1 to round(facteur) do begin bon_facteur:=true; for i:=1 to nombre_especes do bon_facteur:=bon_facteur and EstEntier(k*a[j-1,i-1],fracmax); if bon_facteur then begin for i:=1 to nombre_especes do begin a[j-1,i-1]:=k*a[j-1,i-1]; if EstEntier(a[j-1,i-1],fracmax) then a[j-1,i-1]:=round(a[j-1,i-1]); end; bbb[j-1]:=k*bbb[j-1]; goto 444; end; {du cas bon facteur} end; {de la boucle en k} 444: end;{de la boucle en j} setlength(equations_conservation,rang); for i:=1 to rang do begin s1:=''; for j:=1 to nombre_especes do if (a[i-1,j-1]<>0) then begin if ((abs(abs(a[i-1,j-1])-1)>fracmax) and (a[i-1,j-1]>0)) then if s1<>'' then s1:=s1+' + '+floattostr(a[i-1,j-1])+' N( '+noms[j-1]+' )' else s1:=floattostr(a[i-1,j-1])+' N( '+noms[j-1]+' )'; if ((abs(abs(a[i-1,j-1])-1)>fracmax) and (a[i-1,j-1]<0)) then if s1<>'' then s1:=s1+' - '+floattostr(-a[i-1,j-1])+' N( '+noms[j-1]+' )' else s1:='- '+floattostr(-a[i-1,j-1])+' N( '+noms[j-1]+' )'; if (abs(a[i-1,j-1]-1)<fracmax) then if s1<>'' then s1:=s1+' + '+'N( '+noms[j-1]+' )' else s1:='N( '+noms[j-1]+' )'; if (abs(a[i-1,j-1]+1)<fracmax) then if s1<>'' then s1:=s1+' - '+'N( '+noms[j-1]+' )' else s1:='-N( '+noms[j-1]+' )'; end; if s1='' then s1:='0'; s1:=s1+' = '+floattostr(bbb[i-1])+' mol'; equations_conservation[i-1]:=s1; end; setlength(aaa,rang,nombre_especes); for i:=1 to rang do for j:=1 to nombre_especes do aaa[i-1,places_especes[j-1]-1]:=a[i-1,j-1]; setlength(coeff_stoechio,reac,nombre_especes); if reac>0 then for i:=1 to reac do for j:=1 to nombre_especes do coeff_stoechio[i-1,places_especes[j-1]-1]:=coefficients_stoechiometriques[i-1,j-1]; setlength(deltarG0,reac); if reac>0 then for i:=1 to reac do begin deltarG0[i-1]:=0; for j:=1 to nombre_especes do deltarG0[i-1]:= deltarG0[i-1]+coeff_stoechio[i-1,j-1]*potentiel_standard[j-1]; end; if reac>0 then for i:=1 to reac do reactions[i-1]:=reactions[i-1]+' log K='+floattostrf( -deltarG0[i-1]/temperature/constante_gaz_parfaits/ln(10),fffixed, 3,6); finalize(places_especes); finalize(a); finalize(coefficients_stoechiometriques); finalize(noms); finalize(f_b); end; procedure DetermineReactions(aa:matricereelle; bb:tableaureel; nombre_especes,nombre_type_atomes_gj:longint; noms_1,f_b_1:tableaustring; var rang,reac:longint; var reactions,equations_conservation,equations_avancements: tableaustring; var aaa:matricereelle; var b:tableaureel; var coeff_stoechio:matricereelle; potentiel_standard:tableaureel; var deltarG0,logk:tableaureel; temperature:float); var i,j,k:longint; trouve,coefentiers,reaction_ne_compte_pas,bon_facteur:boolean; s1,s2:string; fracmax,facteur,facteur_actuel,toto:float; bbb:tableaureel; a,coefficients_stoechiometriques:matricereelle; places_especes:tableauentier; noms,f_b:tableaustring; label 3012,3017,3052,444,1024; begin fracmax:=1e-10; rang:=0; facteur:=1; setlength(a,nombre_type_atomes_gj,nombre_especes); setlength(bbb,nombre_especes); {a:=copy(aa);} for i:=1 to nombre_especes do for j:=1 to nombre_type_atomes_gj do a[j-1,i-1]:=aa[j-1,i-1]; {bbb:=copy(bb);} for i:=1 to nombre_especes do bbb[i-1]:=bb[i-1]; setlength(places_especes,nombre_especes); for i:=1 to nombre_especes do places_especes[i-1]:=i; setlength(noms,nombre_especes); for i:=1 to nombre_especes do noms[i-1]:=noms_1[i-1]; setlength(f_b,nombre_especes); for i:=1 to nombre_especes do f_b[i-1]:=f_b_1[i-1]; coefentiers:=true; for i:=1 to nombre_especes do for j:=1 to nombre_type_atomes_gj do coefentiers:=coefentiers and EstEntier(a[j-1,i-1],fracmax); for i:=1 to MinEntier(nombre_especes,nombre_type_atomes_gj) do begin verifiematricenulle(a,nombre_especes,nombre_type_atomes_gj); {cas ou le pivot est nul: on cherche quelles lignes et colonnes permuter} if (a[i-1,i-1]=0) then begin trouve:=false; if ((i<=nombre_especes) and (i<nombre_type_atomes_gj)) then begin k:=i; for j:=i+1 to nombre_type_atomes_gj do if a[j-1,k-1]<>0 then begin trouve:=true; goto 1024; end; end; if ((i<nombre_especes) and (i<=nombre_type_atomes_gj)) then begin j:=i; for k:=i+1 to nombre_especes do if a[j-1,k-1]<>0 then begin trouve:=true; goto 1024; end; end; if ((i<nombre_especes) and (i<nombre_type_atomes_gj)) then for k:=i+1 to nombre_especes do for j:=i+1 to nombre_type_atomes_gj do if a[j-1,k-1]<>0 then begin trouve:=true; goto 1024; end; if ((i=nombre_especes) and (i=nombre_type_atomes_gj)) then goto 3012; if not(trouve) then goto 3012; 1024: permutelignes(a,i,j,nombre_especes); permutecolonnes(a,i,k,nombre_type_atomes_gj); permutenoms(noms,i,k); permutenoms(f_b,i,k); permutereels(bbb,i,k); permuteentiers(places_especes,i,k); end; {du cas pivot nul} if a[i-1,i-1]=1 then inc(rang); if a[i-1,i-1]<>1 then begin if (coefentiers and (abs(a[i-1,i-1])>1)) then facteur:=facteur*abs(a[i-1,i-1]); multiplieligne(a,i,1/a[i-1,i-1],nombre_especes); inc(rang); end; if i>1 then for j:=1 to i-1 do if a[j-1,i-1]<>0 then ajouteligne(a,j,i,-a[j-1,i-1],nombre_especes); if i<nombre_type_atomes_gj then for j:=i+1 to nombre_type_atomes_gj do if a[j-1,i-1]<>0 then ajouteligne(a,j,i,-a[j-1,i-1],nombre_especes); end; 3012: setlength(reactions,nombre_especes-rang); setlength(coefficients_stoechiometriques, nombre_especes-rang,nombre_especes); reac:=0; for i:=1 to nombre_especes-rang do begin reaction_ne_compte_pas:=true; for j:=1 to rang do reaction_ne_compte_pas:= reaction_ne_compte_pas and (a[j-1,rang+i-1]=0); if reaction_ne_compte_pas then goto 3017; inc(reac); facteur_actuel:=1; {recherche du facteur pour avoir des coef entiers} if facteur>1 then for k:=1 to round(facteur) do begin bon_facteur:=true; for j:=1 to rang do bon_facteur:=bon_facteur and EstEntier(k*a[j-1,rang+i-1],fracmax); if bon_facteur then begin facteur_actuel:=k; goto 3052; end; end; 3052: for j:=1 to rang do begin coefficients_stoechiometriques[reac-1,j-1]:=-a[j-1,rang+i-1]*facteur_actuel; if EstEntier(coefficients_stoechiometriques[reac-1,j-1],fracmax) then coefficients_stoechiometriques[reac-1,j-1]:= round(coefficients_stoechiometriques[reac-1,j-1]); end; coefficients_stoechiometriques[reac-1,rang+i-1]:=facteur_actuel; if EstEntier(coefficients_stoechiometriques[reac-1,rang+i-1],fracmax) then coefficients_stoechiometriques[reac-1,rang+i-1]:= round(coefficients_stoechiometriques[reac-1,rang+i-1]); 3017: end; for i:=1 to reac do begin s1:=''; s2:=''; for j:=1 to nombre_especes do begin if coefficients_stoechiometriques[i-1,j-1]<0 then if s1<>'' then if (abs(abs(coefficients_stoechiometriques [i-1,j-1])-1)>fracmax) then s1:=s1+' + '+floattostr(-coefficients_stoechiometriques [i-1,j-1])+' '+noms[j-1] else s1:=s1+' + '+noms[j-1] else if (abs(abs(coefficients_stoechiometriques [i-1,j-1])-1)>fracmax) then s1:=floattostr(-coefficients_stoechiometriques [i-1,j-1])+' '+noms[j-1] else s1:=noms[j-1]; if coefficients_stoechiometriques[i-1,j-1]>0 then if s2<>'' then if (abs(abs(coefficients_stoechiometriques [i-1,j-1])-1)>fracmax) then s2:=s2+' + '+floattostr(coefficients_stoechiometriques [i-1,j-1])+' '+noms[j-1] else s2:=s2+' + '+noms[j-1] else if (abs(abs(coefficients_stoechiometriques [i-1,j-1])-1)>fracmax) then s2:=floattostr(coefficients_stoechiometriques [i-1,j-1])+' '+noms[j-1] else s2:=noms[j-1] ; end; reactions[i-1]:=s1+' = '+s2; end; setlength(reactions,reac); setlength(b,rang); for i:=1 to rang do begin toto:=0; for j:=1 to nombre_especes do toto:=toto+a[i-1,j-1]*bbb[j-1]; b[i-1]:=toto; end; {recherche du facteur pour avoir des coef entiers} if facteur>1 then for j:=1 to rang do begin for k:=1 to round(facteur) do begin bon_facteur:=true; for i:=1 to nombre_especes do bon_facteur:=bon_facteur and EstEntier(k*a[j-1,i-1],fracmax); if bon_facteur then begin for i:=1 to nombre_especes do begin a[j-1,i-1]:=k*a[j-1,i-1]; if EstEntier(a[j-1,i-1],fracmax) then a[j-1,i-1]:=round(a[j-1,i-1]); end; b[j-1]:=k*b[j-1]; goto 444; end; {du cas bon facteur} end; {de la boucle en k} 444: end;{de la boucle en j} setlength(equations_conservation,rang); for i:=1 to rang do begin s1:=''; for j:=1 to nombre_especes do if (a[i-1,j-1]<>0) then begin if ((abs(abs(a[i-1,j-1])-1)>fracmax) and (a[i-1,j-1]>0)) then if s1<>'' then s1:=s1+' + '+floattostr(a[i-1,j-1])+' N( '+noms[j-1]+' )' else s1:=floattostr(a[i-1,j-1])+' N( '+noms[j-1]+' )'; if ((abs(abs(a[i-1,j-1])-1)>fracmax) and (a[i-1,j-1]<0)) then if s1<>'' then s1:=s1+' - '+floattostr(-a[i-1,j-1])+' N( '+noms[j-1]+' )' else s1:='- '+floattostr(-a[i-1,j-1])+' N( '+noms[j-1]+' )'; if (abs(a[i-1,j-1]-1)<fracmax) then if s1<>'' then s1:=s1+' + '+'N( '+noms[j-1]+' )' else s1:='N( '+noms[j-1]+' )'; if (abs(a[i-1,j-1]+1)<fracmax) then if s1<>'' then s1:=s1+' - '+'N( '+noms[j-1]+' )' else s1:='-N( '+noms[j-1]+' )'; end; if s1='' then s1:='0'; s1:=s1+' = '+floattostr(b[i-1])+' mol'; equations_conservation[i-1]:=s1; end; setlength(equations_avancements,nombre_especes); for i:=1 to nombre_especes do begin s1:='N( '+noms[i-1]+' ) = '; if bbb[i-1]<>0 then s1:=s1+floattostr(bbb[i-1])+' mol '; if reac>0 then for j:=1 to reac do if coefficients_stoechiometriques[j-1,i-1]<>0 then begin if ((abs(abs(coefficients_stoechiometriques[j-1,i-1])-1)>fracmax) and (coefficients_stoechiometriques[j-1,i-1]>0)) then s1:=s1+'+ '+floattostr(coefficients_stoechiometriques[j-1,i-1])+' X'+inttostr(j); if ((abs(abs(coefficients_stoechiometriques[j-1,i-1])-1)>fracmax) and (coefficients_stoechiometriques[j-1,i-1]<0)) then s1:=s1+' '+floattostr(coefficients_stoechiometriques[j-1,i-1])+' X'+inttostr(j); if ((abs(abs(coefficients_stoechiometriques[j-1,i-1])-1)<fracmax) and (coefficients_stoechiometriques[j-1,i-1]<0)) then s1:=s1+' -X'+inttostr(j); if ((abs(abs(coefficients_stoechiometriques[j-1,i-1])-1)<fracmax) and (coefficients_stoechiometriques[j-1,i-1]>0)) then s1:=s1+' +X'+inttostr(j); end; if copy(s1,length(s1)-1,2)='= ' then s1:=s1+'0 mol'; equations_avancements[i-1]:=s1; end; setlength(aaa,rang,nombre_especes); for i:=1 to rang do for j:=1 to nombre_especes do aaa[i-1,places_especes[j-1]-1]:=a[i-1,j-1]; setlength(coeff_stoechio,reac,nombre_especes); if reac>0 then for i:=1 to reac do for j:=1 to nombre_especes do coeff_stoechio[i-1,places_especes[j-1]-1]:=coefficients_stoechiometriques[i-1,j-1]; setlength(deltarG0,reac); if reac>0 then for i:=1 to reac do begin deltarG0[i-1]:=0; for j:=1 to nombre_especes do deltarG0[i-1]:= deltarG0[i-1]+coeff_stoechio[i-1,j-1]*potentiel_standard[j-1]; end; setlength(logk,reac); if reac>0 then for i:=1 to reac do logk[i-1]:= -deltarG0[i-1]/temperature/constante_gaz_parfaits/ln(10); finalize(bbb); finalize(places_especes); finalize(a); finalize(coefficients_stoechiometriques); finalize(noms); finalize(f_b); end; procedure DetermineMu0(coefficient_stoechiometriques:matricereelle; logk:tableaureel; var mu0:tableaureel; nombre_especes,nombre_reactions: integer; temperature:float); var i,j,k:longint; trouve,coefentiers,reaction_ne_compte_pas:boolean; s1,s2:string; fracmax,toto:float; a:matricereelle; places_especes:tableauentier; label 3012,1024; begin fracmax:=1e-10; setlength(a,nombre_reactions,nombre_especes+1); for j:=1 to nombre_reactions do begin for i:=1 to nombre_especes do a[j-1,i-1]:=coefficient_stoechiometriques[j-1,i-1]; a[j-1,nombre_especes]:= constante_gaz_parfaits*temperature*logk[j-1]*ln(10); end; setlength(places_especes,nombre_especes); for i:=1 to nombre_especes do places_especes[i-1]:=i; coefentiers:=true; for i:=1 to nombre_especes do for j:=1 to nombre_reactions do coefentiers:=coefentiers and EstEntier(a[j-1,i-1],fracmax); for i:=1 to MinEntier(nombre_especes,nombre_reactions) do begin verifiematricenulle(a,nombre_especes,nombre_reactions); {cas ou le pivot est nul: on cherche quelles lignes et colonnes permuter} if (a[i-1,i-1]=0) then begin trouve:=false; if ((i<=nombre_especes) and (i<nombre_reactions)) then begin k:=i; for j:=i+1 to nombre_reactions do if a[j-1,k-1]<>0 then begin trouve:=true; goto 1024; end; end; if ((i<nombre_especes) and (i<=nombre_reactions)) then begin j:=i; for k:=i+1 to nombre_especes do if a[j-1,k-1]<>0 then begin trouve:=true; goto 1024; end; end; if ((i<nombre_especes) and (i<nombre_reactions)) then for k:=i+1 to nombre_especes do for j:=i+1 to nombre_reactions do if a[j-1,k-1]<>0 then begin trouve:=true; goto 1024; end; if ((i=nombre_especes) and (i=nombre_reactions)) then goto 3012; if not(trouve) then goto 3012; 1024: permutelignes(a,i,j,nombre_especes+1); permutecolonnes(a,i,k,nombre_reactions); permuteentiers(places_especes,i,k); end; {du cas pivot nul} if a[i-1,i-1]<>1 then begin {if (coefentiers and (abs(a[i-1,i-1])>1)) then facteur:=facteur*abs(a[i-1,i-1]);} multiplieligne(a,i,1/a[i-1,i-1],nombre_especes+1); end; if i>1 then for j:=1 to i-1 do if a[j-1,i-1]<>0 then ajouteligne(a,j,i,-a[j-1,i-1],nombre_especes+1); if i<nombre_reactions then for j:=i+1 to nombre_reactions do if a[j-1,i-1]<>0 then ajouteligne(a,j,i,-a[j-1,i-1],nombre_especes+1); end; 3012: setlength(mu0,nombre_especes); for j:=1 to nombre_reactions do mu0[places_especes[j-1]-1]:=-a[j-1,nombre_especes]; if nombre_especes>nombre_reactions then for j:=nombre_reactions+1 to nombre_especes do mu0[places_especes[j-1]-1]:=0; finalize(places_especes); finalize(a); end; end. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit17.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000003122�13147330070�015705� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit17; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,UChaines,translations,UnitScaleFont; type { Tsplashscreen } Tsplashscreen = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var splashscreen: Tsplashscreen; Lang, FallbackLang: String; implementation { Tsplashscreen } procedure Tsplashscreen.FormCreate(Sender: TObject); var PODirectory: String; f:textfile; nom_ini_file:string; label 1888; begin encreation:=true; Caption := rsSplashscreen ; Label1.Caption := rsDozzzaqueux; Label2.Caption := rsLogicielLibr; Label3.Caption := rsVersion30Cod; Label4.Caption := rsParJeanMarie; end; procedure Tsplashscreen.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; { label1.Left:=(splashscreen.ClientWidth div 2)- (label1.Canvas.TextWidth(label1.Caption) div 2); label2.Left:=(splashscreen.ClientWidth div 2)- (label2.Canvas.TextWidth(label2.Caption) div 2); label3.Left:=(splashscreen.ClientWidth div 2)- (label3.Canvas.TextWidth(label3.Caption) div 2); label4.Left:=(splashscreen.ClientWidth div 2)- (label4.Canvas.TextWidth(label4.Caption) div 2); } end; initialization {$I unit17.lrs} end. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit9.lfm���������������������������������������������������������������������������0000750�0001750�0001750�00000003150�13147330070�015622� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object saisieepaisseur: Tsaisieepaisseur Left = 336 Height = 68 Top = 179 Width = 519 ActiveControl = SpinEdit1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Epaisseur trait' ClientHeight = 68 ClientWidth = 519 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 302 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Epaisseur du trait devant joindre les points:' Font.Color = clGreen Font.Style = [fsBold] ParentColor = False ParentFont = False end object SpinEdit1: TSpinEdit AnchorSideLeft.Control = Label1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrCenter Left = 322 Height = 28 Top = 6 Width = 60 BorderSpacing.Left = 10 MaxValue = 20 MinValue = 1 TabOrder = 0 Value = 1 end object BitBtn1: TBitBtn AnchorSideLeft.Control = SpinEdit1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 392 Height = 48 Top = 10 Width = 117 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 1 end end ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit27.lfm��������������������������������������������������������������������������0000750�0001750�0001750�00000004255�13147330070�015711� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object Form27: TForm27 Left = 730 Height = 389 Top = 203 Width = 529 ActiveControl = BitBtn1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Liste des simulations superposables' ClientHeight = 389 ClientWidth = 529 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object SpeedButton1: TSpeedButton AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 34 Top = 10 Width = 125 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Tout cocher' Font.Color = clGreen Font.Style = [fsBold] OnClick = SpeedButton1Click ParentFont = False end object SpeedButton2: TSpeedButton AnchorSideLeft.Control = SpeedButton1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButton1 AnchorSideTop.Side = asrCenter Left = 145 Height = 34 Top = 10 Width = 111 BorderSpacing.Left = 10 Caption = 'Tout décocher' Font.Color = clPurple Font.Style = [fsBold] OnClick = SpeedButton2Click ParentFont = False end object CheckListBoxSimulations: TCheckListBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = SpeedButton1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 325 Top = 54 Width = 509 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 ItemHeight = 0 TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideLeft.Control = SpeedButton2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButton1 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 266 Height = 36 Top = 9 Width = 253 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 BorderSpacing.Right = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 1 end end ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit20.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000002040�13147330070�015675� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit20; {$mode objfpc}{$H+} interface uses Classes, SysUtils,FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin, Buttons,UChaines,UnitScaleFont; type { Tsaisietemporisation } Tsaisietemporisation = class(TForm) BitBtn1: TBitBtn; Label1: TLabel; Label2: TLabel; SpinEdit1: TSpinEdit; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisietemporisation: Tsaisietemporisation; implementation { Tsaisietemporisation } procedure Tsaisietemporisation.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsTemporisatio2; Label1.Caption := Format(rsLorsDeLExCut, ['"', '"']) ; Label2.Caption := rsMs; BitBtn1.Caption := rsOK; end; procedure Tsaisietemporisation.FormShow(Sender: TObject); begin //if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit20.lrs} end. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit10.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000002173�13147330070�015703� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit10; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,UChaines,UnitScaleFont; type { Tmodifnombremole } Tmodifnombremole = class(TForm) BitBtn1: TBitBtn; Edit1: TEdit; Label1: TLabel; Label2: TLabel; procedure Edit1KeyPress(Sender: TObject; var Key: char); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var modifnombremole: Tmodifnombremole; implementation { Tmodifnombremole } procedure Tmodifnombremole.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsModification; Label1.Caption := rsConcentratio3; Label2.Caption := rsMolL; BitBtn1.Caption := rsOK; end; procedure Tmodifnombremole.Edit1KeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure Tmodifnombremole.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit10.lrs} end. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit21.lfm��������������������������������������������������������������������������0000750�0001750�0001750�00000013144�13147330070�015700� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object saisiefichiertableur: Tsaisiefichiertableur Left = 501 Height = 575 Top = 224 Width = 670 ActiveControl = Memo1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Chargement fichier expérience' ClientHeight = 575 ClientWidth = 670 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 263 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Voici les 4 premières lignes du fichier:' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Memo1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 163 Width = 321 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Veuillez compléter les informations suivantes:' Font.Color = clGreen Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = RadioGroupseparateur AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 317 Width = 293 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Ligne à laquelle commencent les données:' Font.Color = clRed Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label4: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 347 Width = 211 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Nombre de données par ligne:' Font.Color = clNavy Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label5: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label4 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 377 Width = 411 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Colonne dont la grandeur sera considérée comme abscisse:' Font.Color = clGreen Font.Style = [fsBold] ParentColor = False ParentFont = False end object Memo1: TMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 10 Height = 113 Top = 40 Width = 650 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 TabOrder = 0 end object RadioGroupseparateur: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom Left = 10 Height = 114 Top = 193 Width = 266 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Valeurs numériques séparées par:' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 92 ClientWidth = 262 ItemIndex = 1 Items.Strings = ( 'Un ou plusieurs espaces' 'Point virgule' ) TabOrder = 1 end object SpinEditlignedebut: TSpinEdit AnchorSideLeft.Control = Label3 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrCenter Left = 313 Height = 28 Top = 313 Width = 46 BorderSpacing.Left = 10 MaxValue = 10 MinValue = 1 TabOrder = 2 Value = 2 end object SpinEditnombredonneesparligne: TSpinEdit AnchorSideLeft.Control = Label4 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label4 AnchorSideTop.Side = asrCenter Left = 231 Height = 28 Top = 343 Width = 49 BorderSpacing.Left = 10 MinValue = 1 TabOrder = 3 Value = 2 end object SpinEditindiceabscisse: TSpinEdit AnchorSideLeft.Control = Label5 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label5 AnchorSideTop.Side = asrCenter Left = 431 Height = 28 Top = 373 Width = 42 BorderSpacing.Left = 10 MinValue = 1 TabOrder = 4 Value = 1 end object CheckBoxrecalculechelles: TCheckBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label5 AnchorSideTop.Side = asrBottom Left = 10 Height = 24 Top = 407 Width = 378 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Recalculer automatiquement les échelles verticales' Checked = True Font.Style = [fsBold] ParentFont = False State = cbChecked TabOrder = 5 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = CheckBoxrecalculechelles AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 124 Top = 441 Width = 650 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 6 end end ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unitscalefont.pas�������������������������������������������������������������������0000750�0001750�0001750�00000014507�13147330070�017445� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit UnitScaleFont; {redimensionne les tailles des polices entre les differentes plateformes; conditions d'utilisation: l'interface doit etre faite sous windows; la police de chaque form ne doit pas avoir d'attribus speciaux et doit etre "default"; la police de chaque controle est soit parenfont, soit la police "default" avec eventuellement leseul attribut fsbold} {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, Menus, ExtCtrls, StdCtrls, Spin, Buttons, ComCtrls,LCLType; const ma_jolie_chaine='Ma jolie chaîne pour faire l''amélioration.'; taille_ma_jolie_chaine:array[0..200] of integer= (189,35,35,35,63,65,100,100,130,130,164,164,177,189,213,213,231,235,284,284,284,297,335,335,359,376,392,392,401,426,462,462,462,475,511,511,532,545,567,567,581,604,636,636,636,648,689,689,706,728,742,742,763,779,795,795,816,838,867,867,881,881,917,917,942,945,977,977,988,1011,1037,1037,1064,1064,1099,1099,1111,1139,1145,1145,1172,1176,1218,1218,1239,1239,1271,1271,1291,1309,1321,1321,1338,1367,1395,1395,1395,1412,1456,1456,1470,1483,1502,1502,1523,1540,1574,1574,1574,1590,1622,1622,1643,1649,1686,1686,1700,1712,1755,1755,1755,1765,1805,1805,1821,1821,1857,1857,1875,1885,1916,1916,1924,1944,1983,1983,1993,1993,2028,2028,2055,2072,2088,2088,2102,2117,2154,2154,2176,2176,2217,2217,2221,2250,2260,2260,2274,2298,2332,2332,2332,2348,2385,2385,2406,2417,2443,2443,2455,2474,2505,2505,2505,2534,2560,2560,2580,2600,2618,2618,2633,2651,2696,2696,2696,2704,2733,2733,2762,2762,2791,2791,2809,2831,2848,2848,2863,2886,2924,2924,2936); taille_ma_jolie_chaine_gras:array[0..200] of integer= (226,44,44,44,65,77,132,132,137,137,202,202,202,226,244,244,258,271,331,331,331,345,387,387,409,423,450,450,472,482,532,532,532,547,595,595,612,628,651,651,672,687,736,736,736,752,791,791,818,831,854,854,884,889,921,921,932,955,992,992,1021,1021,1058,1058,1081,1094,1122,1122,1139,1158,1198,1198,1223,1223,1262,1262,1276,1301,1327,1327,1344,1361,1403,1403,1426,1426,1464,1464,1483,1502,1531,1531,1544,1565,1609,1609,1609,1623,1671,1671,1684,1705,1726,1726,1744,1769,1811,1811,1811,1828,1875,1875,1891,1910,1935,1935,1948,1969,2010,2010,2010,2029,2075,2075,2095,2095,2139,2139,2152,2168,2203,2203,2216,2232,2284,2284,2297,2297,2345,2345,2356,2374,2407,2407,2418,2438,2480,2480,2501,2501,2544,2544,2563,2574,2611,2611,2628,2639,2680,2680,2680,2706,2748,2748,2765,2782,2807,2807,2827,2847,2891,2891,2891,2909,2945,2945,2965,2985,3011,3011,3029,3048,3093,3093,3093,3111,3151,3151,3173,3173,3218,3218,3234,3250,3274,3274,3292,3318,3359,3359,3372); var taille_ma_jolie_chaine_dans_ce_systeme,taille_ma_jolie_chaine_dans_ce_systeme_gras:array[0..200] of integer; tableau_correspondance_tailles_polices,tableau_correspondance_tailles_polices_gras:array[0..200] of integer; taille_dans_ce_systeme_qui_correspond_a_0_sous_windows,taille_dans_ce_systeme_qui_correspond_a_0_sous_windows_gras:integer; procedure ScaleFont(AFenetre : TForm); implementation Procedure Applique_A_Tous_LesControles( Aparent : TWinControl); Var AWinControl: TWinControl; I : Integer; Begin with AParent do for i := 0 to ControlCount - 1 do begin {on change la taille si parentfont est false} if not(TButton(controls[i]).parentfont) then begin if Controls[i].Font.height=0 then begin if (fsbold in Controls[i].Font.style) then begin Controls[i].Font.height:=taille_dans_ce_systeme_qui_correspond_a_0_sous_windows_gras; //application.messagebox(pchar(inttostr(Controls[i].font.height)), // pchar(inttostr(taille_dans_ce_systeme_qui_correspond_a_0_sous_windows_gras)),mb_ok); end else Controls[i].Font.height:=taille_dans_ce_systeme_qui_correspond_a_0_sous_windows; end else begin if (fsbold in Controls[i].Font.style) then begin Controls[i].font.height:=tableau_correspondance_tailles_polices_gras[abs(Controls[i].font.height)]; // application.messagebox(pchar(inttostr(Controls[i].font.height)), // pchar(inttostr(tableau_correspondance_tailles_polices_gras[abs(Controls[i].font.height)])),mb_ok); end else Controls[i].font.height:=tableau_correspondance_tailles_polices[abs(Controls[i].font.height)]; end; end; {et on applique aux enfants si c'est un twincontrol} if Controls[i] is TWinControl then begin AWinControl := TWinControl(Controls[i]); if AWinControl.ControlCount > 0 then Applique_A_Tous_LesControles(AWinControl); end; end; end; procedure ScaleFont(AFenetre : TForm); var i,j:integer; s_i:tspeedbutton; begin s_i:=tspeedbutton.create(afenetre); s_i.Parent:=afenetre; s_i.visible:=false; for i:=0 to 200 do begin s_i.canvas.font.height:=i; taille_ma_jolie_chaine_dans_ce_systeme[i]:= s_i.Canvas.TextWidth(ma_jolie_chaine); end; for i:=0 to 200 do begin s_i.canvas.font.height:=i; s_i.canvas.font.style:=[fsbold]; taille_ma_jolie_chaine_dans_ce_systeme_gras[i]:= s_i.Canvas.TextWidth(ma_jolie_chaine); end; s_i.Destroy; AFenetre.Font.height:=abs(AFenetre.Font.height); for i:=1 to 200 do begin j:=1; {on cherche l'indice des tailles encadrantes} while ((j<200) and (taille_ma_jolie_chaine_dans_ce_systeme[j]<taille_ma_jolie_chaine[i])) do inc(j); tableau_correspondance_tailles_polices[i]:=j; end; for i:=1 to 200 do begin j:=1; {on cherche l'indice des tailles encadrantes} while ((j<200) and (taille_ma_jolie_chaine_dans_ce_systeme_gras[j]<taille_ma_jolie_chaine_gras[i])) do inc(j); tableau_correspondance_tailles_polices_gras[i]:=j; end; taille_dans_ce_systeme_qui_correspond_a_0_sous_windows:= tableau_correspondance_tailles_polices[13]; taille_dans_ce_systeme_qui_correspond_a_0_sous_windows_gras:= tableau_correspondance_tailles_polices_gras[13]; if AFenetre.Font.height=0 then begin AFenetre.Font.height:=taille_dans_ce_systeme_qui_correspond_a_0_sous_windows; end else begin {tout ce qui est en taille i doit passer en taille tableau_correspondance_tailles_polices[i]} afenetre.font.height:=tableau_correspondance_tailles_polices[abs(afenetre.font.height)]; end; Applique_A_Tous_LesControles(AFenetre); end; end. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit12.lfm��������������������������������������������������������������������������0000750�0001750�0001750�00000011750�13147330070�015701� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object saisiecouleurs: Tsaisiecouleurs Left = 336 Height = 212 Top = 195 Width = 409 ActiveControl = BitBtncouleurgrillegauche BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Couleurs' ClientHeight = 212 ClientWidth = 409 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 203 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Couleur grille échelle gauche:' Font.Color = clMaroon Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 45 Width = 195 BorderSpacing.Left = 10 BorderSpacing.Top = 15 Caption = 'Couleur grille échelle droite:' Font.Color = clFuchsia Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 80 Width = 146 BorderSpacing.Left = 10 BorderSpacing.Top = 15 Caption = 'Couleur graduations:' Font.Color = clBlue Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label4: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 115 Width = 117 BorderSpacing.Left = 10 BorderSpacing.Top = 15 Caption = 'Couleur du fond:' Font.Color = clGreen Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label5: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label4 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 150 Width = 121 BorderSpacing.Left = 10 BorderSpacing.Top = 15 Caption = 'Couleur des axes:' Font.Color = clRed Font.Style = [fsBold] ParentColor = False ParentFont = False end object BitBtn1: TBitBtn AnchorSideLeft.Control = BitBtncouleurgrillegauche AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 285 Height = 192 Top = 10 Width = 114 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 0 end object BitBtncouleurgrillegauche: TPanel AnchorSideLeft.Control = Label1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrCenter Left = 223 Height = 24 Top = 8 Width = 52 BorderSpacing.Left = 10 TabOrder = 1 OnClick = BitBtncouleurgrillegaucheClick end object BitBtncouleurgrilledroite: TPanel AnchorSideLeft.Control = Label2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrCenter Left = 215 Height = 24 Top = 43 Width = 52 BorderSpacing.Left = 10 TabOrder = 2 OnClick = BitBtncouleurgrilledroiteClick end object BitBtncouleurgraduations: TPanel AnchorSideLeft.Control = Label3 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrCenter Left = 166 Height = 24 Top = 78 Width = 52 BorderSpacing.Left = 10 TabOrder = 3 OnClick = BitBtncouleurgraduationsClick end object BitBtncouleurfond: TPanel AnchorSideLeft.Control = Label4 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label4 AnchorSideTop.Side = asrCenter Left = 137 Height = 24 Top = 113 Width = 52 BorderSpacing.Left = 10 TabOrder = 4 OnClick = BitBtncouleurfondClick end object BitBtncouleuraxes: TPanel AnchorSideLeft.Control = Label5 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label5 AnchorSideTop.Side = asrCenter Left = 141 Height = 24 Top = 148 Width = 52 BorderSpacing.Left = 10 TabOrder = 5 OnClick = BitBtncouleuraxesClick end object ColorDialog1: TColorDialog Color = clBlack CustomColors.Strings = ( 'ColorA=000000' 'ColorB=000080' 'ColorC=008000' 'ColorD=008080' 'ColorE=800000' 'ColorF=800080' 'ColorG=808000' 'ColorH=808080' 'ColorI=C0C0C0' 'ColorJ=0000FF' 'ColorK=00FF00' 'ColorL=00FFFF' 'ColorM=FF0000' 'ColorN=FF00FF' 'ColorO=FFFF00' 'ColorP=FFFFFF' 'ColorQ=C0DCC0' 'ColorR=F0CAA6' 'ColorS=F0FBFF' 'ColorT=A4A0A0' ) left = 336 top = 94 end end ������������������������dozzaqueux-3.51/unit23.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000007325�13147330070�015713� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit23; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin, Buttons,Unit22,UChaines,UnitScaleFont; type { Tsaisieregressi } Tsaisieregressi = class(TForm) BitBtn1: TBitBtn; CheckBoxrecalculechelles: TCheckBox; Label1: TLabel; Label2: TLabel; Memo1: TMemo; SpinEdit1: TSpinEdit; procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisieregressi: Tsaisieregressi; implementation uses Unit1; { Tsaisieregressi } procedure Tsaisieregressi.BitBtn1Click(Sender: TObject); var i:integer; begin indice_abscisse_e:=spinedit1.Value; recalcul_echelles_e:=CheckBoxrecalculechelles.checked; setlength(liste_nepastracer_e,nombre_valeurs_par_ligne_e-1); setlength(liste_noms_e,nombre_valeurs_par_ligne_e-1); setlength(liste_couleurs_ordonnees_e,nombre_valeurs_par_ligne_e-1); setlength(liste_echelles_e,nombre_valeurs_par_ligne_e-1); setlength(liste_styles_ordonnees_e,nombre_valeurs_par_ligne_e-1); setlength(liste_tailles_ordonnees_e,nombre_valeurs_par_ligne_e-1); setlength(liste_epaisseurs_ordonnees_e,nombre_valeurs_par_ligne_e-1); setlength(liste_tracerok_ordonnees_e,nombre_valeurs_par_ligne_e-1); for i:=1 to nombre_valeurs_par_ligne_e do if i<>indice_abscisse_e then begin saisietypedonnee:=tsaisietypedonnee.create(self); with saisietypedonnee do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; label1.Caption:=Format(rsTypeDeLaDonn2, [memo1.Lines[i-1]]); Edit_nom_e.Text:=memo1.Lines[i-1]; showmodal; if i<indice_abscisse_e then begin liste_noms_e[i-1]:=Edit_nom_e.Text; if RadioGroupechelle_e.ItemIndex=0 then liste_echelles_e[i-1]:=e_gauche else liste_echelles_e[i-1]:=e_droite; liste_nepastracer_e[i-1]:=checkboxrepresente.checked; case RadioGrouptype_e.ItemIndex of 0: liste_styles_ordonnees_e[i-1]:=disque; 1: liste_styles_ordonnees_e[i-1]:=croix; 2: liste_styles_ordonnees_e[i-1]:=cercle; 3: liste_styles_ordonnees_e[i-1]:=plus; end; liste_tailles_ordonnees_e[i-1]:=SpinEdittaille_e.Value; liste_epaisseurs_ordonnees_e[i-1]:=SpinEditepaisseur_e.Value; liste_tracerok_ordonnees_e[i-1]:=RadioGroupjoindre_e.ItemIndex=1; liste_nepastracer_e[i-1]:=checkboxrepresente.Checked; liste_couleurs_ordonnees_e[i-1]:=ma_couleur; end else begin liste_noms_e[i-2]:=Edit_nom_e.Text; if RadioGroupechelle_e.ItemIndex=0 then liste_echelles_e[i-2]:=e_gauche else liste_echelles_e[i-2]:=e_droite; case RadioGrouptype_e.ItemIndex of 0: liste_styles_ordonnees_e[i-2]:=disque; 1: liste_styles_ordonnees_e[i-2]:=croix; 2: liste_styles_ordonnees_e[i-2]:=cercle; 3: liste_styles_ordonnees_e[i-2]:=plus; end; liste_tailles_ordonnees_e[i-2]:=SpinEdittaille_e.Value; liste_epaisseurs_ordonnees_e[i-2]:=SpinEditepaisseur_e.Value; liste_tracerok_ordonnees_e[i-2]:=RadioGroupjoindre_e.ItemIndex=1; liste_nepastracer_e[i-2]:=checkboxrepresente.Checked; liste_couleurs_ordonnees_e[i-2]:=ma_couleur; end; end; end; end; procedure Tsaisieregressi.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsChargementFi ; Label1.Caption := rsGrandeursPrS; Label2.Caption := rsIndiceDeLaLi ; CheckBoxrecalculechelles.Caption := rsRecalculerAu; BitBtn1.Caption := rsOK; end; procedure Tsaisieregressi.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit23.lrs} end. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit16.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000003246�13147330070�015713� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit16; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, Buttons,UChaines,UnitScaleFont; type { TFormoptionscsv } TFormoptionscsv = class(TForm) BitBtn1: TBitBtn; RadioGroupseparateurdecimal: TRadioGroup; RadioGroupseparateur_csv: TRadioGroup; procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var Formoptionscsv: TFormoptionscsv; implementation uses Unit1; { TFormoptionscsv } procedure TFormoptionscsv.BitBtn1Click(Sender: TObject); begin if radiogroupseparateur_csv.ItemIndex=0 then separateur_csv:=';' else separateur_csv:=' '; if radiogroupseparateurdecimal.itemindex=0 then point_decimal_export:=false else point_decimal_export:=true; end; procedure TFormoptionscsv.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsOptionsPourL; RadioGroupseparateur_csv.Caption := rsSParateurDeC; // RadioGroupseparateur_csv.Items.Clear; RadioGroupseparateur_csv.Items[0]:=(rsPointVirgule); RadioGroupseparateur_csv.Items[1]:=(rsEspace); RadioGroupseparateurdecimal.Caption := rsSParateurDCi; //RadioGroupseparateurdecimal.Items.Clear; RadioGroupseparateurdecimal.Items[0]:=(rsVirguleRecom); RadioGroupseparateurdecimal.Items[1]:=(rsPointRecomma); BitBtn1.Caption := rsOK; end; procedure TFormoptionscsv.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit16.lrs} end. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit_dilution.lrs�������������������������������������������������������������������0000750�0001750�0001750�00000007272�13147330070�017473� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm_dilution','FORMDATA',[ 'TPF0'#14'TForm_dilution'#13'Form_dilution'#4'Left'#3#19#3#6'Height'#3#185#1#3 +'Top'#3#166#0#5'Width'#3'K'#3#11'BorderStyle'#7#8'bsDialog'#7'Caption'#6#13 +'Form_dilution'#12'ClientHeight'#3#185#1#11'ClientWidth'#3'K'#3#8'OnCreate'#7 +#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2.0'#0#6'TLab' +'el'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Contro' +'l'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3'Top'#2#10#5'Width'#3#155#0#18'B' +'orderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#21'Vous pou' +'vez au choix:'#10'Font.Color'#7#6'clBlue'#10'Font.Style'#11#6'fsBold'#0#11 +'ParentColor'#8#10'ParentFont'#8#0#0#11'TRadioGroup'#11'RadioGroup1'#22'Anch' +'orSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label1'#18'Anc' +'horSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#3#202#0#3'Top'#2'('#5 +'Width'#3#133#1#8'AutoFill'#9#18'BorderSpacing.Left'#2#10#17'BorderSpacing.T' +'op'#2#10#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpaci' +'ng'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27 +'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.' +'ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14 +'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom' +#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#3#180#0#11'ClientWidth' +#3#129#1#13'Items.Strings'#1#6'4Multiplier toutes les concentrations par le ' +'facteur:'#6' Ajouter le volume d''eau suivant:'#6'$Porter le volume total ' +#195#160' la valeur:'#0#18'OnSelectionChanged'#7#27'RadioGroup1SelectionChan' +'ged'#8'TabOrder'#2#0#0#0#5'TEdit'#5'Edit1'#22'AnchorSideLeft.Control'#7#11 +'RadioGroup1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Contro' +'l'#7#11'RadioGroup1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#153#1#6 +'Height'#2#28#3'Top'#2#127#5'Width'#2'\'#18'BorderSpacing.Left'#2#10#10'OnKe' +'yPress'#7#13'Edit1KeyPress'#8'TabOrder'#2#1#0#0#6'TLabel'#6'Label2'#22'Anch' +'orSideLeft.Control'#7#5'Edit1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'An' +'chorSideTop.Control'#7#5'Edit1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Lef' +'t'#3#255#1#6'Height'#2#20#3'Top'#3#131#0#5'Width'#2','#18'BorderSpacing.Lef' +'t'#2#10#7'Caption'#6#6'Label2'#11'ParentColor'#8#0#0#7'TBitBtn'#7'BitBtn1' +#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#11'RadioG' +'roup1'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5 +'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control' +#7#7'BitBtn2'#4'Left'#2#10#6'Height'#2'm'#3'Top'#3#252#0#5'Width'#3'7'#3#7'A' +'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Lef' +'t'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#20'BorderSp' +'acing.Bottom'#2#10#7'Default'#9#14'DefaultCaption'#9#4'Kind'#7#4'bkOK'#11'M' +'odalResult'#2#1#7'OnClick'#7#12'BitBtn1Click'#8'TabOrder'#2#2#0#0#7'TBitBtn' +#7'BitBtn2'#22'AnchorSideLeft.Control'#7#5'Owner'#23'AnchorSideRight.Control' +#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Cont' +'rol'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#10#6'Hei' +'ght'#2'<'#3'Top'#3's'#1#5'Width'#3'7'#3#7'Anchors'#11#5'akTop'#6'akLeft'#7 +'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#19'BorderSpacing.Right'#2 +#10#20'BorderSpacing.Bottom'#2#10#6'Cancel'#9#14'DefaultCaption'#9#4'Kind'#7 +#8'bkCancel'#11'ModalResult'#2#2#8'TabOrder'#2#3#0#0#0 ]); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/��������������������������������������������������������������������������0000750�0001750�0001750�00000000000�13147330266�016025� 5����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/dozzzaqueux.fr.po���������������������������������������������������������0000750�0001750�0001750�00000330201�13147327621�021407� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" #: tconfigimpression.bitbtn1.caption msgctxt "tconfigimpression.bitbtn1.caption" msgid "&OK" msgstr "" #: tconfigimpression.bitbtn2.caption msgctxt "tconfigimpression.bitbtn2.caption" msgid "Annuler" msgstr "" #: tconfigimpression.caption msgctxt "tconfigimpression.caption" msgid "Configuration de la page pour l'impression" msgstr "" #: tconfigimpression.groupbox1.caption msgctxt "tconfigimpression.groupbox1.caption" msgid "Position" msgstr "" #: tconfigimpression.groupbox2.caption msgctxt "tconfigimpression.groupbox2.caption" msgid "Nombre de copies" msgstr "" #: tconfigimpression.groupbox3.caption msgctxt "tconfigimpression.groupbox3.caption" msgid "Taille (en % de la page)" msgstr "" #: tconfigimpression.label1.caption msgctxt "tconfigimpression.label1.caption" msgid "Nombre:" msgstr "" #: tconfigimpression.label2.caption msgctxt "tconfigimpression.label2.caption" msgid "Horizontalement" msgstr "" #: tconfigimpression.label3.caption msgctxt "tconfigimpression.label3.caption" msgid "Verticalement" msgstr "" #: tconfigimpression.radiogroupehorizontal.caption msgctxt "tconfigimpression.radiogroupehorizontal.caption" msgid "Horizontale" msgstr "" #: tconfigimpression.radiogroupevertical.caption msgctxt "tconfigimpression.radiogroupevertical.caption" msgid "Verticale" msgstr "" #: tconfigimpression.radiogrouporientation.caption msgctxt "tconfigimpression.radiogrouporientation.caption" msgid "Orientation" msgstr "" #: tform1.aide1.caption msgctxt "tform1.aide1.caption" msgid "Aide" msgstr "" #: tform1.aidedozzzaqueux1.caption msgctxt "tform1.aidedozzzaqueux1.caption" msgid "Aide Dozzzaqueux" msgstr "" #: tform1.apropos1.caption msgctxt "tform1.apropos1.caption" msgid "A propos..." msgstr "" #: tform1.autoriserractionsredox1.caption msgctxt "tform1.autoriserractionsredox1.caption" msgid "Autoriser réactions redox" msgstr "" #: tform1.bitbtn1.caption msgctxt "tform1.bitbtn1.caption" msgid "Valider et passer à la burette >>>>>" msgstr "" #: tform1.bitbtn1_.caption msgctxt "tform1.bitbtn1_.caption" msgid "Valider et passer au recensement >>>>>" msgstr "" #: tform1.bitbtn2.caption msgctxt "tform1.bitbtn2.caption" msgid "Valider et passer aux constantes de réaction >>>>>" msgstr "" #: tform1.bitbtn3.caption msgctxt "tform1.bitbtn3.caption" msgid "Valider et lancer les calculs>>>>>>" msgstr "" #: tform1.bitbtn4.caption msgctxt "tform1.bitbtn4.caption" msgid "Rechercher une espéce" msgstr "" #: tform1.bitbtn4_.caption msgctxt "tform1.bitbtn4_.caption" msgid "Rechercher une espéce" msgstr "" #: tform1.bitbtn5.caption msgctxt "tform1.bitbtn5.caption" msgid "Export résultats bruts" msgstr "" #: tform1.bitbtn5.hint msgctxt "tform1.bitbtn5.hint" msgid "Sauvegarder les résultats numériques pour une exploitation avec tableur ou avec Régressi" msgstr "" #: tform1.bitbtn6.caption msgctxt "tform1.bitbtn6.caption" msgid "Choisir les courbes à tracer >>>>>>>" msgstr "" #: tform1.bitbtn7.caption msgctxt "tform1.bitbtn7.caption" msgid "Valider et tracer les courbes >>>>>" msgstr "" #: tform1.bitbtn8.caption msgctxt "tform1.bitbtn8.caption" msgid "BitBtn8" msgstr "" #: tform1.bitbtn9.caption msgctxt "tform1.bitbtn9.caption" msgid "bitbtn9" msgstr "" #: tform1.calculdesdrives1.caption msgctxt "tform1.calculdesdrives1.caption" msgid "Calcul des dérivées" msgstr "" #: tform1.caption msgctxt "tform1.caption" msgid "Dozzzaqueux" msgstr "" #: tform1.checkboxaxes.caption msgctxt "tform1.checkboxaxes.caption" msgid "Axes" msgstr "" #: tform1.checkboxexp.caption msgctxt "tform1.checkboxexp.caption" msgid "Exp." msgstr "" #: tform1.checkboxexp.hint msgctxt "tform1.checkboxexp.hint" msgid "Activer/désactiver l'affichage du fichier expérimental" msgstr "" #: tform1.checkboxgraduations.caption msgctxt "tform1.checkboxgraduations.caption" msgid "Graduations" msgstr "" #: tform1.checkboxgrilledroite.caption msgctxt "tform1.checkboxgrilledroite.caption" msgid "Grille échelle droite" msgstr "" #: tform1.checkboxgrillegauche.caption msgctxt "tform1.checkboxgrillegauche.caption" msgid "Grille échelle gauche" msgstr "" #: tform1.checkboxlegende.caption msgctxt "tform1.checkboxlegende.caption" msgid "Légende" msgstr "" #: tform1.checkboxlegendeapart.caption msgctxt "tform1.checkboxlegendeapart.caption" msgid "Légende à part" msgstr "" #: tform1.checkboxsuperposition.caption msgctxt "tform1.checkboxsuperposition.caption" msgid "Superp." msgstr "" #: tform1.checkboxsuperposition.hint msgctxt "tform1.checkboxsuperposition.hint" msgid "Activer/désactiver la superposition" msgstr "" #: tform1.chiffressignificatifs1.caption msgctxt "tform1.chiffressignificatifs1.caption" msgid "Chiffres significatifs" msgstr "" #: tform1.combobox1.text msgid "ComboBox1" msgstr "" #: tform1.edittemperature.text msgid "298" msgstr "" #: tform1.editvolume.hint msgctxt "tform1.editvolume.hint" msgid "Changer cette valeur ne modifie pas les concentrations ! Utilisez le bouton \"dilution\" si vous voulez les modifier par dilution" msgstr "" #: tform1.editvolume.text msgctxt "tform1.editvolume.text" msgid "20" msgstr "" #: tform1.editvolume_burette.hint msgctxt "tform1.editvolume_burette.hint" msgid "Changer cette valeur ne modifie pas les concentrations ! Utilisez le bouton \"dilution\" si vous voulez les modifier par dilution" msgstr "" #: tform1.editvolume_burette.text msgctxt "tform1.editvolume_burette.text" msgid "20" msgstr "" #: tform1.enregistrerlefilmdelasimulation1.caption msgctxt "tform1.enregistrerlefilmdelasimulation1.caption" msgid "Enregistrer le film de la simulation" msgstr "" #: tform1.exporttableurtexte1.caption msgctxt "tform1.exporttableurtexte1.caption" msgid "Export tableur texte" msgstr "" #: tform1.expriencefichierformattableautexte1.caption msgctxt "tform1.expriencefichierformattableautexte1.caption" msgid "Expérience (fichier format tableau texte ou Regressi)" msgstr "" #: tform1.fichier1.caption msgctxt "tform1.fichier1.caption" msgid "Fichier" msgstr "" #: tform1.jouerunfilmdesimulation1.caption msgctxt "tform1.jouerunfilmdesimulation1.caption" msgid "Jouer un film de simulation" msgstr "" #: tform1.label1.caption msgctxt "tform1.label1.caption" msgid "Réactifs choisis:" msgstr "" #: tform1.label10.caption msgctxt "tform1.label10.caption" msgid "Vous pouvez modifier les logarithmes des constantes d'équilibre si vous pensez en avoir de meilleures estimations." msgstr "" #: tform1.label11.caption msgctxt "tform1.label11.caption" msgid "Base de réactifs:" msgstr "" #: tform1.label11_.caption msgctxt "tform1.label11_.caption" msgid "Base de réactifs:" msgstr "" #: tform1.label12.caption msgctxt "tform1.label12.caption" msgid "Xmin=" msgstr "" #: tform1.label13.caption msgctxt "tform1.label13.caption" msgid "Xmax=" msgstr "" #: tform1.label14.caption msgctxt "tform1.label14.caption" msgid "Bécher" msgstr "" #: tform1.label14_.caption msgctxt "tform1.label14_.caption" msgid "Burette" msgstr "" #: tform1.label15.caption msgctxt "tform1.label15.caption" msgid "mL" msgstr "" #: tform1.label16.caption msgctxt "tform1.label16.caption" msgid "Volume maximal à verser=" msgstr "" #: tform1.label17.caption msgctxt "tform1.label17.caption" msgid "Ymin=" msgstr "" #: tform1.label18.caption msgctxt "tform1.label18.caption" msgid "Ymax=" msgstr "" #: tform1.label19.caption msgctxt "tform1.label19.caption" msgid "Ymin=" msgstr "" #: tform1.label1_.caption msgctxt "tform1.label1_.caption" msgid "Réactifs choisis:" msgstr "" #: tform1.label2.caption msgctxt "tform1.label2.caption" msgid "Voici la liste des espéces susceptibles d'être présentes à l'équilibre." msgstr "" #: tform1.label20.caption msgctxt "tform1.label20.caption" msgid "Ymax=" msgstr "" #: tform1.label21.caption msgctxt "tform1.label21.caption" msgid "V=" msgstr "" #: tform1.label22.caption msgctxt "tform1.label22.caption" msgid "mL" msgstr "" #: tform1.label3.caption msgctxt "tform1.label3.caption" msgid "Si vous pensez que certaines ne seront pas présentes (blocage cinétique par exemple), il suffit de les décocher." msgstr "" #: tform1.label4.caption msgctxt "tform1.label4.caption" msgid "Pour obtenir la formule brute d'une espéce, sélectionnez la puis cliquez sur le bouton ci-contre:" msgstr "" #: tform1.label5.caption msgctxt "tform1.label5.caption" msgid "Volume initial=" msgstr "" #: tform1.label6.caption msgctxt "tform1.label6.caption" msgid "mL" msgstr "" #: tform1.label7.caption msgctxt "tform1.label7.caption" msgid "Température=" msgstr "" #: tform1.label8.caption msgctxt "tform1.label8.caption" msgid "K" msgstr "" #: tform1.label9.caption msgctxt "tform1.label9.caption" msgid "Voici un ensemble d'équations de réactions linéairement indépendantes entre elles décrivant le système chimique." msgstr "" #: tform1.licensegpl1.caption msgctxt "tform1.licensegpl1.caption" msgid "License GPL" msgstr "" #: tform1.menuitem11.caption msgctxt "tform1.menuitem11.caption" msgid "Indicateur coloré" msgstr "" #: tform1.menuitem12.caption msgid "Site web" msgstr "" #: tform1.menuitem14.caption msgctxt "tform1.menuitem14.caption" msgid "Historique des versions" msgstr "" #: tform1.menuitem15.caption msgid "Tout copier dans presse-papier" msgstr "" #: tform1.menuitem16.caption msgid "Copier texte sélectionné dans le presse-papier" msgstr "" #: tform1.menuitem9.caption msgctxt "tform1.menuitem9.caption" msgid "Langue" msgstr "" #: tform1.menuitemraffinecsv.caption msgctxt "tform1.menuitemraffinecsv.caption" msgid "Format tableur texte (.csv, .txt)" msgstr "" #: tform1.menuitemraffinerw3.caption msgid "Format Regressi (.rw3)" msgstr "" #: tform1.menuitem_charger_exemples.caption msgctxt "tform1.menuitem_charger_exemples.caption" msgid "du répertoire \"exemples\"" msgstr "" #: tform1.menuitem_charger_personnel.caption msgctxt "tform1.menuitem_charger_personnel.caption" msgid "de mon répertoire personnel" msgstr "" #: tform1.menuitem_jpg.caption msgid "JPEG" msgstr "" #: tform1.menuitem_png.caption msgid "PNG" msgstr "" #: tform1.menuitem_sauve_brut_csv.caption msgctxt "tform1.menuitem_sauve_brut_csv.caption" msgid "Format tableur texte (.csv, .txt)" msgstr "" #: tform1.menuitem_save_brut_rw3.caption msgid "Format Régressi (.rw3)" msgstr "" #: tform1.nombredepointsdecalcul1.caption msgctxt "tform1.nombredepointsdecalcul1.caption" msgid "Nombre de points de calcul" msgstr "" #: tform1.nouvellesimulation1.caption msgctxt "tform1.nouvellesimulation1.caption" msgid "Nouvelle simulation" msgstr "" #: tform1.options1.caption msgctxt "tform1.options1.caption" msgid "Options" msgstr "" #: tform1.pagecontrol1.hint msgctxt "tform1.pagecontrol1.hint" msgid "Pour sélectionner un réactif, faites un clic simple sur sa ligne." msgstr "" #: tform1.pagecontrol1_.hint msgctxt "tform1.pagecontrol1_.hint" msgid "Pour sélectionner un réactif, faites un clic simple sur sa ligne." msgstr "" #: tform1.parfomulebrute1.caption msgctxt "tform1.parfomulebrute1.caption" msgid "Par fomule brute" msgstr "" #: tform1.parformulebrute1.caption msgctxt "tform1.parformulebrute1.caption" msgid "Par formule brute" msgstr "" #: tform1.paridentifiantousynonyme1.caption msgctxt "tform1.paridentifiantousynonyme1.caption" msgid "Par identifiant ou synonyme" msgstr "" #: tform1.paridentifiantousynonyme2.caption msgctxt "tform1.paridentifiantousynonyme2.caption" msgid "Par identifiant ou synonyme" msgstr "" #: tform1.radioechellehorizontale.caption msgctxt "tform1.radioechellehorizontale.caption" msgid "Echelle horizontale" msgstr "" #: tform1.radioechelleverticaledroite.caption msgctxt "tform1.radioechelleverticaledroite.caption" msgid "Echelle verticale droite" msgstr "" #: tform1.radioechelleverticalegauche.caption msgctxt "tform1.radioechelleverticalegauche.caption" msgid "Echelle verticale gauche" msgstr "" #: tform1.savedialog1.title msgctxt "tform1.savedialog1.title" msgid "Enregistrer" msgstr "" #: tform1.savedialog2.title msgctxt "tform1.savedialog2.title" msgid "Enregistrer" msgstr "" #: tform1.savedialog3.title msgctxt "tform1.savedialog3.title" msgid "Enregistrer" msgstr "" #: tform1.speedbutton10.caption msgctxt "tform1.speedbutton10.caption" msgid "SpeedButton10" msgstr "" #: tform1.speedbutton12.caption msgctxt "tform1.speedbutton12.caption" msgid "SpeedButton12" msgstr "" #: tform1.speedbutton13.caption msgctxt "tform1.speedbutton13.caption" msgid "SpeedButton13" msgstr "" #: tform1.speedbutton14.caption msgctxt "tform1.speedbutton14.caption" msgid "SpeedButton14" msgstr "" #: tform1.speedbutton15.caption msgctxt "tform1.speedbutton15.caption" msgid "SpeedButton15" msgstr "" #: tform1.speedbutton16.caption msgctxt "tform1.speedbutton16.caption" msgid "SpeedButton16" msgstr "" #: tform1.speedbutton17.caption msgctxt "tform1.speedbutton17.caption" msgid "SpeedButton17" msgstr "" #: tform1.speedbutton4.caption msgctxt "tform1.speedbutton4.caption" msgid "Formule brute ?" msgstr "" #: tform1.speedbutton5.caption msgctxt "tform1.speedbutton5.caption" msgid "SpeedButton5" msgstr "" #: tform1.speedbutton9.hint msgctxt "tform1.speedbutton9.hint" msgid "Modifier couleurs" msgstr "" #: tform1.speedbuttoncalculer.caption msgctxt "tform1.speedbuttoncalculer.caption" msgid "SpeedButtoncalculer" msgstr "" #: tform1.speedbuttonfermer.caption msgctxt "tform1.speedbuttonfermer.caption" msgid "SpeedButtonfermer" msgstr "" #: tform1.speedbuttontoutcocher.caption msgctxt "tform1.speedbuttontoutcocher.caption" msgid "SpeedButtontoutcocher" msgstr "" #: tform1.speedbuttontoutdecocher.caption msgctxt "tform1.speedbuttontoutdecocher.caption" msgid "SpeedButtontoutdecocher" msgstr "" #: tform1.speedbuttontoutsupprimer.caption msgctxt "tform1.speedbuttontoutsupprimer.caption" msgid "SpeedButtontoutsupprimer" msgstr "" #: tform1.speedbuttonunites.caption msgctxt "tform1.speedbuttonunites.caption" msgid "SpeedButtonunites" msgstr "" #: tform1.speedbuttonviderbecher.caption msgctxt "tform1.speedbuttonviderbecher.caption" msgid "Vider" msgstr "" #: tform1.speedbuttonviderburette.caption msgctxt "tform1.speedbuttonviderburette.caption" msgid "Vider" msgstr "" #: tform1.speedbuttonx10.caption msgctxt "tform1.speedbuttonx10.caption" msgid "x10" msgstr "" #: tform1.speedbuttonx10.hint msgctxt "tform1.speedbuttonx10.hint" msgid "Multiplier les concentrations par 10" msgstr "" #: tform1.speedbuttonx10_.caption msgctxt "tform1.speedbuttonx10_.caption" msgid "x10" msgstr "" #: tform1.speedbuttonx10_.hint msgctxt "tform1.speedbuttonx10_.hint" msgid "Multiplier les concentrations par 10" msgstr "" #: tform1.speedbutton_10.caption msgctxt "tform1.speedbutton_10.caption" msgid "/10" msgstr "" #: tform1.speedbutton_10.hint msgctxt "tform1.speedbutton_10.hint" msgid "Diviser les concentrations par 10" msgstr "" #: tform1.speedbutton_10_.caption msgctxt "tform1.speedbutton_10_.caption" msgid "/10" msgstr "" #: tform1.speedbutton_10_.hint msgctxt "tform1.speedbutton_10_.hint" msgid "Diviser les concentrations par 10" msgstr "" #: tform1.speedbutton_deplace_legende.caption msgctxt "tform1.speedbutton_deplace_legende.caption" msgid "Déplacer lég." msgstr "" #: tform1.speedbutton_dilution.caption msgctxt "tform1.speedbutton_dilution.caption" msgid "Dilution" msgstr "" #: tform1.speedbutton_dilution_.caption msgctxt "tform1.speedbutton_dilution_.caption" msgid "Dilution" msgstr "" #: tform1.tabsheet10.caption msgctxt "tform1.tabsheet10.caption" msgid "Cations simples" msgstr "" #: tform1.tabsheet10_.caption msgctxt "tform1.tabsheet10_.caption" msgid "Cations simples" msgstr "" #: tform1.tabsheet11.caption msgctxt "tform1.tabsheet11.caption" msgid "Anions simples" msgstr "" #: tform1.tabsheet11_.caption msgctxt "tform1.tabsheet11_.caption" msgid "Anions simples" msgstr "" #: tform1.tabsheet12.caption msgctxt "tform1.tabsheet12.caption" msgid "Acides et bases" msgstr "" #: tform1.tabsheet12_.caption msgctxt "tform1.tabsheet12_.caption" msgid "Acides et bases" msgstr "" #: tform1.tabsheet13.caption msgctxt "tform1.tabsheet13.caption" msgid "Complexes et divers" msgstr "" #: tform1.tabsheet13_.caption msgctxt "tform1.tabsheet13_.caption" msgid "Complexes et divers" msgstr "" #: tform1.tabsheet14.caption msgctxt "tform1.tabsheet14.caption" msgid "Ions" msgstr "" #: tform1.tabsheet14_.caption msgctxt "tform1.tabsheet14_.caption" msgid "Ions" msgstr "" #: tform1.tabsheet15.caption msgctxt "tform1.tabsheet15.caption" msgid "Atomes et molécules" msgstr "" #: tform1.tabsheet15_.caption msgctxt "tform1.tabsheet15_.caption" msgid "Atomes et molécules" msgstr "" #: tform1.tabsheet2.caption msgctxt "tform1.tabsheet2.caption" msgid "Acides et bases organiques" msgstr "" #: tform1.tabsheet2_.caption msgctxt "tform1.tabsheet2_.caption" msgid "Acides et bases organiques" msgstr "" #: tform1.tabsheet3.caption msgctxt "tform1.tabsheet3.caption" msgid "Complexes à ligands organiques, et divers" msgstr "" #: tform1.tabsheet3_.caption msgctxt "tform1.tabsheet3_.caption" msgid "Complexes à ligands organiques, et divers" msgstr "" #: tform1.tabsheet4.caption msgctxt "tform1.tabsheet4.caption" msgid "Benzéne et dérivés" msgstr "" #: tform1.tabsheet4_.caption msgctxt "tform1.tabsheet4_.caption" msgid "Benzéne et dérivés" msgstr "" #: tform1.tabsheet5.caption msgctxt "tform1.tabsheet5.caption" msgid "Amines et amides" msgstr "" #: tform1.tabsheet5_.caption msgctxt "tform1.tabsheet5_.caption" msgid "Amines et amides" msgstr "" #: tform1.tabsheet6.caption msgctxt "tform1.tabsheet6.caption" msgid "Alcools" msgstr "" #: tform1.tabsheet6_.caption msgctxt "tform1.tabsheet6_.caption" msgid "Alcools" msgstr "" #: tform1.tabsheet7.caption msgctxt "tform1.tabsheet7.caption" msgid "Alcanes, alcénes, alcynes" msgstr "" #: tform1.tabsheet7_.caption msgctxt "tform1.tabsheet7_.caption" msgid "Alcanes, alcénes, alcynes" msgstr "" #: tform1.tabsheet8.caption msgctxt "tform1.tabsheet8.caption" msgid "Amminoacides" msgstr "" #: tform1.tabsheet8_.caption msgctxt "tform1.tabsheet8_.caption" msgid "Amminoacides" msgstr "" #: tform1.tabsheet9.caption msgctxt "tform1.tabsheet9.caption" msgid "Aldéhydes et cétones" msgstr "" #: tform1.tabsheet9_.caption msgctxt "tform1.tabsheet9_.caption" msgid "Aldéhydes et cétones" msgstr "" #: tform1.tabsheetaqueux.caption msgctxt "tform1.tabsheetaqueux.caption" msgid "Inorganiques" msgstr "" #: tform1.tabsheetaqueux_.caption msgctxt "tform1.tabsheetaqueux_.caption" msgid "Inorganiques" msgstr "" #: tform1.tabsheetchoisir.caption msgctxt "tform1.tabsheetchoisir.caption" msgid "Choix des réactifs:bécher" msgstr "" #: tform1.tabsheetchoisir_.caption msgctxt "tform1.tabsheetchoisir_.caption" msgid "Choix des réactifs:burette" msgstr "" #: tform1.tabsheetchoixcourbes.caption msgctxt "tform1.tabsheetchoixcourbes.caption" msgid "Choix des courbes" msgstr "" #: tform1.tabsheeteliminer.caption msgctxt "tform1.tabsheeteliminer.caption" msgid "Espéces présentes" msgstr "" #: tform1.tabsheetorga.caption msgctxt "tform1.tabsheetorga.caption" msgid "Organiques" msgstr "" #: tform1.tabsheetorga_.caption msgctxt "tform1.tabsheetorga_.caption" msgid "Organiques" msgstr "" #: tform1.tabsheetresultats.caption msgctxt "tform1.tabsheetresultats.caption" msgid "Résultats" msgstr "" #: tform1.tabsheetsolides.caption msgctxt "tform1.tabsheetsolides.caption" msgid "Solides" msgstr "" #: tform1.tabsheetsolides_.caption msgctxt "tform1.tabsheetsolides_.caption" msgid "Solides" msgstr "" #: tform1.tabsheettracecourbes.caption msgctxt "tform1.tabsheettracecourbes.caption" msgid "Tracé des courbes" msgstr "" #: tform1.tabsheetverifier.caption msgctxt "tform1.tabsheetverifier.caption" msgid "Réactions et constantes" msgstr "" #: tform1.temporisationfilm1.caption msgctxt "tform1.temporisationfilm1.caption" msgid "Temporisation film" msgstr "" #: tform1.toolbar1.caption msgid "ToolBar1" msgstr "" #: tform1.toolbar2.caption msgid "ToolBar2" msgstr "" #: tform1.toolbutton1.caption msgid "ToolButton1" msgstr "" #: tform1.toolbutton2.caption msgid "ToolButton2" msgstr "" #: tform1.toolbutton3.caption msgid "ToolButton3" msgstr "" #: tform1.toolbutton4.caption msgid "ToolButton4" msgstr "" #: tform1.toolbutton5.caption msgid "ToolButton5" msgstr "" #: tform1.toolbutton6.caption msgid "ToolButton6" msgstr "" #: tform1.uneouplusieursdessimulationsfaitesdepuisledernierlancementdedoz.caption msgctxt "tform1.uneouplusieursdessimulationsfaitesdepuisledernierlancementdedoz.caption" msgid "Une ou plusieurs des simulations faites depuis le dernier lancement de Dozzzaqueux" msgstr "" #: tform1.utiliserdebyeethckel1.caption msgctxt "tform1.utiliserdebyeethckel1.caption" msgid "Utiliser Debye et Hückel" msgstr "" #: tform1.versiondelabase1.caption msgctxt "tform1.versiondelabase1.caption" msgid "Version de la base" msgstr "" #: tform26.bitbtn1.caption msgctxt "tform26.bitbtn1.caption" msgid "Chercher" msgstr "" #: tform26.bitbtn2.caption msgctxt "tform26.bitbtn2.caption" msgid "Annuler" msgstr "" #: tform26.caption msgctxt "tform26.caption" msgid "Recherche dans la base" msgstr "" #: tform26.label1.caption msgctxt "tform26.label1.caption" msgid "Entrez tout ou partie de l'indentifiant ou du synonyme" msgstr "" #: tform26.label2.caption msgctxt "tform26.label2.caption" msgid "Puis cliquez sur l'espéce choisie:" msgstr "" #: tform26.label3.caption msgctxt "tform26.label3.caption" msgid " Exemples: éthanoïque Acide pentanedioïque " msgstr "" #: tform26.sgreactifs.hint msgctxt "tform26.sgreactifs.hint" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: tform26b.bitbtn1.caption msgctxt "tform26b.bitbtn1.caption" msgid "Chercher" msgstr "" #: tform26b.bitbtn2.caption msgctxt "tform26b.bitbtn2.caption" msgid "Annuler" msgstr "" #: tform26b.caption msgctxt "tform26b.caption" msgid "Recherche dans la base" msgstr "" #: tform26b.label1.caption msgctxt "tform26b.label1.caption" msgid "Entrez tout ou partie de l'indentifiant ou du synonyme" msgstr "" #: tform26b.label2.caption msgctxt "tform26b.label2.caption" msgid "Puis cliquez sur l'espéce choisie:" msgstr "" #: tform26b.label3.caption msgctxt "tform26b.label3.caption" msgid " Exemples: éthanoïque Acide pentanedioïque " msgstr "" #: tform26b.sgreactifs.hint msgctxt "tform26b.sgreactifs.hint" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: tform27.bitbtn1.caption msgctxt "tform27.bitbtn1.caption" msgid "&OK" msgstr "" #: tform27.caption msgctxt "tform27.caption" msgid "Liste des simulations superposables" msgstr "" #: tform27.speedbutton1.caption msgctxt "tform27.speedbutton1.caption" msgid "Tout cocher" msgstr "" #: tform27.speedbutton2.caption msgctxt "tform27.speedbutton2.caption" msgid "Tout décocher" msgstr "" #: tform4.bitbtn1.caption msgctxt "tform4.bitbtn1.caption" msgid "OK" msgstr "" #: tform4.bitbtn2.caption msgctxt "tform4.bitbtn2.caption" msgid "&Fermer" msgstr "" #: tform4.caption msgctxt "tform4.caption" msgid "Recherche dans la base" msgstr "" #: tform4.label1.caption msgctxt "tform4.label1.caption" msgid "Entrez la formule brute. Puis cliquez sur \"OK\". Puis sélectionnez le réactif dans la liste ci-dessous." msgstr "" #: tform4.label2.caption msgctxt "tform4.label2.caption" msgid " mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)" msgstr "" #: tform4.label3.caption msgctxt "tform4.label3.caption" msgid " Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] " msgstr "" #: tform4.radiogroup1.caption msgctxt "tform4.radiogroup1.caption" msgid "Type de comparaison" msgstr "" #: tform4.sgreactifs.hint msgctxt "tform4.sgreactifs.hint" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: tform4.speedbutton1moins.caption msgctxt "tform4.speedbutton1moins.caption" msgid "[-]" msgstr "" #: tform4.speedbutton1plus.caption msgctxt "tform4.speedbutton1plus.caption" msgid "[+]" msgstr "" #: tform4.speedbutton2.caption msgctxt "tform4.speedbutton2.caption" msgid "2" msgstr "" #: tform4.speedbutton2moins.caption msgctxt "tform4.speedbutton2moins.caption" msgid "[2-]" msgstr "" #: tform4.speedbutton2plus.caption msgctxt "tform4.speedbutton2plus.caption" msgid "[2+]" msgstr "" #: tform4.speedbutton3.caption msgctxt "tform4.speedbutton3.caption" msgid "3" msgstr "" #: tform4.speedbutton3moins.caption msgctxt "tform4.speedbutton3moins.caption" msgid "[3-]" msgstr "" #: tform4.speedbutton3plus.caption msgctxt "tform4.speedbutton3plus.caption" msgid "[3+]" msgstr "" #: tform4.speedbuttonc.caption msgctxt "tform4.speedbuttonc.caption" msgid "C" msgstr "" #: tform4.speedbuttonh.caption msgctxt "tform4.speedbuttonh.caption" msgid "H" msgstr "" #: tform4.speedbuttonn.caption msgctxt "tform4.speedbuttonn.caption" msgid "N" msgstr "" #: tform4.speedbuttono.caption msgctxt "tform4.speedbuttono.caption" msgid "O" msgstr "" #: tform4.speedbuttonp.caption msgctxt "tform4.speedbuttonp.caption" msgid "P" msgstr "" #: tform4.speedbuttons.caption msgctxt "tform4.speedbuttons.caption" msgid "S" msgstr "" #: tform4b.bitbtn1.caption msgctxt "tform4b.bitbtn1.caption" msgid "OK" msgstr "" #: tform4b.bitbtn2.caption msgctxt "tform4b.bitbtn2.caption" msgid "&Fermer" msgstr "" #: tform4b.caption msgctxt "tform4b.caption" msgid "Recherche dans la base" msgstr "" #: tform4b.label1.caption msgctxt "tform4b.label1.caption" msgid "Entrez la formule brute. Puis cliquez sur \"OK\". Puis sélectionnez le réactif dans la liste ci-dessous." msgstr "" #: tform4b.label2.caption msgctxt "tform4b.label2.caption" msgid " mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)" msgstr "" #: tform4b.label3.caption msgctxt "tform4b.label3.caption" msgid " Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] " msgstr "" #: tform4b.radiogroup1.caption msgctxt "tform4b.radiogroup1.caption" msgid "Type de comparaison" msgstr "" #: tform4b.sgreactifs.hint msgctxt "tform4b.sgreactifs.hint" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: tform4b.speedbutton1moins.caption msgctxt "tform4b.speedbutton1moins.caption" msgid "[-]" msgstr "" #: tform4b.speedbutton1plus.caption msgctxt "tform4b.speedbutton1plus.caption" msgid "[+]" msgstr "" #: tform4b.speedbutton2.caption msgctxt "tform4b.speedbutton2.caption" msgid "2" msgstr "" #: tform4b.speedbutton2moins.caption msgctxt "tform4b.speedbutton2moins.caption" msgid "[2-]" msgstr "" #: tform4b.speedbutton2plus.caption msgctxt "tform4b.speedbutton2plus.caption" msgid "[2+]" msgstr "" #: tform4b.speedbutton3.caption msgctxt "tform4b.speedbutton3.caption" msgid "3" msgstr "" #: tform4b.speedbutton3moins.caption msgctxt "tform4b.speedbutton3moins.caption" msgid "[3-]" msgstr "" #: tform4b.speedbutton3plus.caption msgctxt "tform4b.speedbutton3plus.caption" msgid "[3+]" msgstr "" #: tform4b.speedbuttonc.caption msgctxt "tform4b.speedbuttonc.caption" msgid "C" msgstr "" #: tform4b.speedbuttonh.caption msgctxt "tform4b.speedbuttonh.caption" msgid "H" msgstr "" #: tform4b.speedbuttonn.caption msgctxt "tform4b.speedbuttonn.caption" msgid "N" msgstr "" #: tform4b.speedbuttono.caption msgctxt "tform4b.speedbuttono.caption" msgid "O" msgstr "" #: tform4b.speedbuttonp.caption msgctxt "tform4b.speedbuttonp.caption" msgid "P" msgstr "" #: tform4b.speedbuttons.caption msgctxt "tform4b.speedbuttons.caption" msgid "S" msgstr "" #: tform5.bitbtn1.caption msgctxt "tform5.bitbtn1.caption" msgid "&OK" msgstr "" #: tform5.caption msgctxt "tform5.caption" msgid "Nombre de points de calcul" msgstr "" #: tform5.label1.caption msgctxt "tform5.label1.caption" msgid "Les valeurs des concentrations sont calculées pour des valeurs discrétes du volume." msgstr "" #: tform5.label2.caption msgctxt "tform5.label2.caption" msgid "La variation maximale du logarithme d'une concentration" msgstr "" #: tform5.label3.caption msgid "On appelle \"pas\" l'écart entre deux valeurs successives du volume." msgstr "" #: tform5.label4.caption msgctxt "tform5.label4.caption" msgid "Nombre de points: N=" msgstr "" #: tform5.label5.caption msgctxt "tform5.label5.caption" msgid "entre deux volumes successifs ne doit pas excéder:" msgstr "" #: tform5.label6.caption msgctxt "tform5.label6.caption" msgid "Mais le pas ne peut devenir inférieur à:" msgstr "" #: tform5.label7.caption msgctxt "tform5.label7.caption" msgid "mL" msgstr "" #: tform5.radiogroup1.caption msgctxt "tform5.radiogroup1.caption" msgid "Choix du pas" msgstr "" #: tformapropos.bitbtn1.caption msgctxt "tformapropos.bitbtn1.caption" msgid "&OK" msgstr "" #: tformapropos.caption msgctxt "tformapropos.caption" msgid "A propos de...Dozzzaqueux" msgstr "" #: tformavertissement.bitbtn1.caption msgctxt "tformavertissement.bitbtn1.caption" msgid "&OK" msgstr "" #: tformavertissement.caption msgctxt "tformavertissement.caption" msgid "!!! Attention !!!" msgstr "" #: tformavertissement.checkbox1.caption msgctxt "tformavertissement.checkbox1.caption" msgid "Ne plus afficher ce message au cours de cette session" msgstr "" #: tformoptionscsv.bitbtn1.caption msgctxt "tformoptionscsv.bitbtn1.caption" msgid "&OK" msgstr "" #: tformoptionscsv.caption msgctxt "tformoptionscsv.caption" msgid "Options pour l'export au format tableur texte" msgstr "" #: tformoptionscsv.radiogroupseparateurdecimal.caption msgctxt "tformoptionscsv.radiogroupseparateurdecimal.caption" msgid "Séparateur décimal" msgstr "" #: tformoptionscsv.radiogroupseparateur_csv.caption msgctxt "tformoptionscsv.radiogroupseparateur_csv.caption" msgid "Séparateur de colonnes:" msgstr "" #: tform_dilution.caption msgid "Form_dilution" msgstr "" #: tform_dilution.label1.caption msgid "Vous pouvez au choix:" msgstr "" #: tform_dilution.label2.caption msgctxt "tform_dilution.label2.caption" msgid "Label2" msgstr "" #: tmodifnombremole.bitbtn1.caption msgctxt "tmodifnombremole.bitbtn1.caption" msgid "&OK" msgstr "" #: tmodifnombremole.caption msgctxt "tmodifnombremole.caption" msgid "Modification concentration" msgstr "" #: tmodifnombremole.label1.caption msgctxt "tmodifnombremole.label1.caption" msgid "Concentration molaire:" msgstr "" #: tmodifnombremole.label2.caption msgctxt "tmodifnombremole.label2.caption" msgid "mol/L" msgstr "" #: toptions_indicateur.bitbtn1.caption msgctxt "toptions_indicateur.bitbtn1.caption" msgid "&OK" msgstr "" #: toptions_indicateur.caption msgctxt "toptions_indicateur.caption" msgid "Options pour l'indicateur coloré" msgstr "" #: toptions_indicateur.radiogroup1.caption msgctxt "toptions_indicateur.radiogroup1.caption" msgid "Dégradé de couleurs de l'indicateur" msgstr "" #: tsaisiechiffressignificatifs.bitbtn1.caption msgctxt "tsaisiechiffressignificatifs.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisiechiffressignificatifs.caption msgctxt "tsaisiechiffressignificatifs.caption" msgid "Chiffres significatifs" msgstr "" #: tsaisiechiffressignificatifs.label1.caption msgctxt "tsaisiechiffressignificatifs.label1.caption" msgid "Nombre de chiffres affichés et gardés pour les logarithmes de constantes de réaction:" msgstr "" #: tsaisiechiffressignificatifs.label2.caption msgctxt "tsaisiechiffressignificatifs.label2.caption" msgid "Nombre de chiffres affichés pour les résultats:" msgstr "" #: tsaisiecouleurs.bitbtn1.caption msgctxt "tsaisiecouleurs.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisiecouleurs.caption msgctxt "tsaisiecouleurs.caption" msgid "Couleurs" msgstr "" #: tsaisiecouleurs.label1.caption msgctxt "tsaisiecouleurs.label1.caption" msgid "Couleur grille échelle gauche:" msgstr "" #: tsaisiecouleurs.label2.caption msgctxt "tsaisiecouleurs.label2.caption" msgid "Couleur grille échelle droite:" msgstr "" #: tsaisiecouleurs.label3.caption msgctxt "tsaisiecouleurs.label3.caption" msgid "Couleur graduations:" msgstr "" #: tsaisiecouleurs.label4.caption msgctxt "tsaisiecouleurs.label4.caption" msgid "Couleur du fond:" msgstr "" #: tsaisiecouleurs.label5.caption msgctxt "tsaisiecouleurs.label5.caption" msgid "Couleur des axes:" msgstr "" #: tsaisieepaisseur.bitbtn1.caption msgctxt "tsaisieepaisseur.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisieepaisseur.caption msgctxt "tsaisieepaisseur.caption" msgid "Epaisseur trait" msgstr "" #: tsaisieepaisseur.label1.caption msgctxt "tsaisieepaisseur.label1.caption" msgid "Epaisseur du trait devant joindre les points:" msgstr "" #: tsaisieexpression.bitbtn1.caption msgctxt "tsaisieexpression.bitbtn1.caption" msgid "Valider" msgstr "" #: tsaisieexpression.bitbtn2.caption msgctxt "tsaisieexpression.bitbtn2.caption" msgid "Annuler" msgstr "" #: tsaisieexpression.caption msgctxt "tsaisieexpression.caption" msgid "Saisie de l'expression" msgstr "" #: tsaisieexpression.label1.caption msgctxt "tsaisieexpression.label1.caption" msgid "Saisissez l'expression de la grandeur . Les noms des variables (V,..., c1, c2,...,n1, n2...) et les noms de fonction ont les" msgstr "" #: tsaisieexpression.label2.caption msgctxt "tsaisieexpression.label2.caption" msgid "significations indiquées ci-dessous:" msgstr "" #: tsaisieexpression.label3.caption msgctxt "tsaisieexpression.label3.caption" msgid "Variables utilisables:" msgstr "" #: tsaisieexpression.label4.caption msgctxt "tsaisieexpression.label4.caption" msgid "Opérateurs et fonctions utilisables:" msgstr "" #: tsaisiefaisceau.bitbtn1.caption msgctxt "tsaisiefaisceau.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisiefaisceau.bitbtn2.caption msgctxt "tsaisiefaisceau.bitbtn2.caption" msgid "Annuler" msgstr "" #: tsaisiefaisceau.caption msgctxt "tsaisiefaisceau.caption" msgid "Faisceau de courbes" msgstr "" #: tsaisiefaisceau.label1.caption msgctxt "tsaisiefaisceau.label1.caption" msgid "Grandeur à faire varier" msgstr "" #: tsaisiefaisceau.label2.caption msgctxt "tsaisiefaisceau.label2.caption" msgid " pour obtenir le faisceau:" msgstr "" #: tsaisiefaisceau.label4.caption msgctxt "tsaisiefaisceau.label4.caption" msgid "1ère valeur:" msgstr "" #: tsaisiefaisceau.label5.caption msgctxt "tsaisiefaisceau.label5.caption" msgid "Incrément:" msgstr "" #: tsaisiefaisceau.label6.caption msgctxt "tsaisiefaisceau.label6.caption" msgid "1ère valeur:" msgstr "" #: tsaisiefaisceau.label7.caption msgctxt "tsaisiefaisceau.label7.caption" msgid "Pas:" msgstr "" #: tsaisiefaisceau.label8.caption msgctxt "tsaisiefaisceau.label8.caption" msgid "Les couleurs en dégradé des courbes tendront vers:" msgstr "" #: tsaisiefaisceau.radiogrouptypefaisceau.caption msgctxt "tsaisiefaisceau.radiogrouptypefaisceau.caption" msgid "Type de suite de valeurs" msgstr "" #: tsaisiefichiertableur.bitbtn1.caption msgctxt "tsaisiefichiertableur.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisiefichiertableur.caption msgctxt "tsaisiefichiertableur.caption" msgid "Chargement fichier expérience" msgstr "" #: tsaisiefichiertableur.checkboxrecalculechelles.caption msgctxt "tsaisiefichiertableur.checkboxrecalculechelles.caption" msgid "Recalculer automatiquement les échelles verticales" msgstr "" #: tsaisiefichiertableur.label1.caption msgctxt "tsaisiefichiertableur.label1.caption" msgid "Voici les 4 premières lignes du fichier:" msgstr "" #: tsaisiefichiertableur.label2.caption msgctxt "tsaisiefichiertableur.label2.caption" msgid "Veuillez compléter les informations suivantes:" msgstr "" #: tsaisiefichiertableur.label3.caption msgctxt "tsaisiefichiertableur.label3.caption" msgid "Ligne à laquelle commencent les données:" msgstr "" #: tsaisiefichiertableur.label4.caption msgctxt "tsaisiefichiertableur.label4.caption" msgid "Nombre de données par ligne:" msgstr "" #: tsaisiefichiertableur.label5.caption msgctxt "tsaisiefichiertableur.label5.caption" msgid "Colonne dont la grandeur sera considérée comme abscisse:" msgstr "" #: tsaisiefichiertableur.radiogroupseparateur.caption msgctxt "tsaisiefichiertableur.radiogroupseparateur.caption" msgid "Valeurs numériques séparées par:" msgstr "" #: tsaisienombremole.bitbtn1.caption msgctxt "tsaisienombremole.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisienombremole.bitbtn2.caption msgctxt "tsaisienombremole.bitbtn2.caption" msgid "Annuler" msgstr "" #: tsaisienombremole.caption msgctxt "tsaisienombremole.caption" msgid "Nombre de moles ?" msgstr "" #: tsaisienombremole.label1.caption msgctxt "tsaisienombremole.label1.caption" msgid "Label1" msgstr "" #: tsaisienombremole.label_unite.caption msgid "toto" msgstr "" #: tsaisienombremole.radiogroup1.caption msgctxt "tsaisienombremole.radiogroup1.caption" msgid "au choix:" msgstr "" #: tsaisieregressi.bitbtn1.caption msgctxt "tsaisieregressi.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisieregressi.caption msgctxt "tsaisieregressi.caption" msgid "Chargement fichier expérience" msgstr "" #: tsaisieregressi.checkboxrecalculechelles.caption msgctxt "tsaisieregressi.checkboxrecalculechelles.caption" msgid "Recalculer automatiquement les échelles verticales" msgstr "" #: tsaisieregressi.label1.caption msgctxt "tsaisieregressi.label1.caption" msgid "Grandeurs présentes dans le fichier:" msgstr "" #: tsaisieregressi.label2.caption msgctxt "tsaisieregressi.label2.caption" msgid "Indice de la ligne de la grandeur qui sera l'abscisse:" msgstr "" #: tsaisietailleimage.bitbtn1.caption msgctxt "tsaisietailleimage.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisietailleimage.caption msgid "Taille de l'image" msgstr "" #: tsaisietailleimage.label1.caption msgid "Largeur:" msgstr "" #: tsaisietailleimage.label2.caption msgid "Hauteur:" msgstr "" #: tsaisietailleimage.label3.caption msgctxt "tsaisietailleimage.label3.caption" msgid "pixels" msgstr "" #: tsaisietailleimage.label4.caption msgctxt "tsaisietailleimage.label4.caption" msgid "pixels" msgstr "" #: tsaisietaillepoints.bitbtn1.caption msgctxt "tsaisietaillepoints.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisietaillepoints.caption msgctxt "tsaisietaillepoints.caption" msgid "Taille des points" msgstr "" #: tsaisietaillepoints.label1.caption msgctxt "tsaisietaillepoints.label1.caption" msgid "Taille des points:" msgstr "" #: tsaisietemporisation.bitbtn1.caption msgctxt "tsaisietemporisation.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisietemporisation.caption msgctxt "tsaisietemporisation.caption" msgid "Temporisation" msgstr "" #: tsaisietemporisation.label1.caption msgid "Lors de l'exécution d'un \"film\" de simulation, l'affichage de chaque écran doit durer:" msgstr "" #: tsaisietemporisation.label2.caption msgctxt "tsaisietemporisation.label2.caption" msgid "ms" msgstr "" #: tsaisietitre.bitbtn1.caption msgctxt "tsaisietitre.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisietitre.caption msgctxt "tsaisietitre.caption" msgid "Titre du graphe" msgstr "" #: tsaisietitre.label1.caption msgctxt "tsaisietitre.label1.caption" msgid "Titre du graphe:" msgstr "" #: tsaisietitre.speedbutton1.caption msgctxt "tsaisietitre.speedbutton1.caption" msgid "Police" msgstr "" #: tsaisietypedonnee.bitbtn1.caption msgctxt "tsaisietypedonnee.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisietypedonnee.caption msgctxt "tsaisietypedonnee.caption" msgid "Type de donnée" msgstr "" #: tsaisietypedonnee.checkboxrepresente.caption msgctxt "tsaisietypedonnee.checkboxrepresente.caption" msgid "Ne pas représenter cette grandeur" msgstr "" #: tsaisietypedonnee.label15.caption msgctxt "tsaisietypedonnee.label15.caption" msgid "Taille des points:" msgstr "" #: tsaisietypedonnee.label2.caption msgctxt "tsaisietypedonnee.label2.caption" msgid "Epaisseur trait:" msgstr "" #: tsaisietypedonnee.label3.caption msgctxt "tsaisietypedonnee.label3.caption" msgid "Couleur:" msgstr "" #: tsaisietypedonnee.label4.caption msgctxt "tsaisietypedonnee.label4.caption" msgid "Nom:" msgstr "" #: tsaisietypedonnee.radiogroupechelle_e.caption msgctxt "tsaisietypedonnee.radiogroupechelle_e.caption" msgid "Echelle:" msgstr "" #: tsaisietypedonnee.radiogroupjoindre_e.caption msgctxt "tsaisietypedonnee.radiogroupjoindre_e.caption" msgid "Joindre les points" msgstr "" #: tsaisietypedonnee.radiogrouptype_e.caption msgctxt "tsaisietypedonnee.radiogrouptype_e.caption" msgid "Représentée par:" msgstr "" #: tsaisieunites.bitbtn1.caption msgctxt "tsaisieunites.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisieunites.caption msgctxt "tsaisieunites.caption" msgid "Unités et labels des axes:" msgstr "" #: tsaisieunites.label1.caption msgctxt "tsaisieunites.label1.caption" msgid "Unité à afficher sur l'axe des abscisses:" msgstr "" #: tsaisieunites.label2.caption msgctxt "tsaisieunites.label2.caption" msgid "Label à afficher sur l'axe des abscisses:" msgstr "" #: tsaisieunites.label3.caption msgctxt "tsaisieunites.label3.caption" msgid "Unité à afficher sur l'axe gauche des ordonnées:" msgstr "" #: tsaisieunites.label4.caption msgctxt "tsaisieunites.label4.caption" msgid "Label à afficher sur l'axe gauche des ordonnées:" msgstr "" #: tsaisieunites.label5.caption msgctxt "tsaisieunites.label5.caption" msgid "Unité à afficher sur l'axe droit des ordonnées:" msgstr "" #: tsaisieunites.label6.caption msgctxt "tsaisieunites.label6.caption" msgid "Label à afficher sur l'axe droit des ordonnées:" msgstr "" #: tsaisie_conductivite.bitbtn1.caption msgctxt "tsaisie_conductivite.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisie_conductivite.caption msgctxt "tsaisie_conductivite.caption" msgid "Saisie conductivité" msgstr "" #: tsaisie_conductivite.edit1.text msgid "40" msgstr "" #: tsaisie_conductivite.label1.caption msgctxt "tsaisie_conductivite.label1.caption" msgid "La conductivité de l'espèce" msgstr "" #: tsaisie_conductivite.label2.caption msgctxt "tsaisie_conductivite.label2.caption" msgid "Label2" msgstr "" #: tsaisie_conductivite.label3.caption msgctxt "tsaisie_conductivite.label3.caption" msgid "ne figure pas dans ma base de données. Vous pouvez saisir la valeur ci-dessous:" msgstr "" #: tsaisie_conductivite.label4.caption msgctxt "tsaisie_conductivite.label4.caption" msgid "0,1 mS.m²/mol" msgstr "" #: tsaisie_conductivite.label5.caption msgctxt "tsaisie_conductivite.label5.caption" msgid "Remarque: cette modification ne perdurera que durant cette session de Dozzzaqueux.." msgstr "" #: tsaisie_conductivite.label6.caption msgctxt "tsaisie_conductivite.label6.caption" msgid "Si vous voulez la rendre définitive, modifiez cette espèce dans la base avec Modifbase." msgstr "" #: tsaisie_derivees.bitbtn1.caption msgctxt "tsaisie_derivees.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisie_derivees.caption msgctxt "tsaisie_derivees.caption" msgid "Calcul des dérivées" msgstr "" #: tsaisie_derivees.checkboxderivees.caption msgctxt "tsaisie_derivees.checkboxderivees.caption" msgid "Activer le calcul des dérivées par rapport au volume" msgstr "" #: tsaisie_derivees.label1.caption msgctxt "tsaisie_derivees.label1.caption" msgid "Le calcul de la dérivée numérique en V0 se fait par: (f(V0+h)-f(V0-h))/(2h)" msgstr "" #: tsaisie_derivees.label2.caption msgctxt "tsaisie_derivees.label2.caption" msgid "Choix de h: volume burette/" msgstr "" #: tsaisie_electroneutralite.bitbtn1.caption msgctxt "tsaisie_electroneutralite.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisie_electroneutralite.caption msgctxt "tsaisie_electroneutralite.caption" msgid "Electroneutralité" msgstr "" #: tsaisie_electroneutralite.label1.caption msgctxt "tsaisie_electroneutralite.label1.caption" msgid "La charge électrique totale est non nulle. Vous pouvez:" msgstr "" #: tsaisie_electroneutralite.radiogroup1.caption msgctxt "tsaisie_electroneutralite.radiogroup1.caption" msgid "au choix:" msgstr "" #: tsasiestyleordonnees.bitbtn1.caption msgctxt "tsasiestyleordonnees.bitbtn1.caption" msgid "&OK" msgstr "" #: tsasiestyleordonnees.caption msgctxt "tsasiestyleordonnees.caption" msgid "Style des points" msgstr "" #: tsasiestyleordonnees.radiogroupstyle.caption msgctxt "tsasiestyleordonnees.radiogroupstyle.caption" msgid "Style" msgstr "" #: tscript.caption msgctxt "tscript.caption" msgid "script" msgstr "" #: tscript.label1.caption msgctxt "tscript.label1.caption" msgid "Label1" msgstr "" #: tscript.label2.caption msgctxt "tscript.label2.caption" msgid "Ne touchez à rien, l'onglet suivant va bientôt être affiché." msgstr "" #: tscript.label3.caption msgctxt "tscript.label3.caption" msgid "Après l'affichage des courbes, vous pourrez revisiter tous les onglets." msgstr "" #: tsplashscreen.caption msgctxt "tsplashscreen.caption" msgid "splashscreen" msgstr "" #: tsplashscreen.label1.caption msgctxt "tsplashscreen.label1.caption" msgid "Dozzzaqueux" msgstr "" #: tsplashscreen.label2.caption msgctxt "tsplashscreen.label2.caption" msgid "Logiciel libre et gratuit de simulation de courbes de dosage" msgstr "" #: tsplashscreen.label3.caption msgid "Version 3.04 du 10/08/2009, codée en Lazarus" msgstr "" #: tsplashscreen.label4.caption msgid "Par Jean-Marie Biansan, 2005 à 2009" msgstr "" #: uchaines.rs msgid "***************************************" msgstr "" #: uchaines.rs0001duvolume msgid "+- 0,001% du volume maximum versable" msgstr "" #: uchaines.rs001duvolumem msgctxt "uchaines.rs001duvolumem" msgid "+- 0,01% du volume maximum versable" msgstr "" #: uchaines.rs01duvolumema msgctxt "uchaines.rs01duvolumema" msgid "+- 0,1% du volume maximum versable" msgstr "" #: uchaines.rs01msmmol msgctxt "uchaines.rs01msmmol" msgid "0,1 mS.m²/mol" msgstr "" #: uchaines.rs10 msgctxt "uchaines.rs10" msgid "/10" msgstr "" #: uchaines.rs1duvolumemax msgctxt "uchaines.rs1duvolumemax" msgid "+-1% du volume maximum versable" msgstr "" #: uchaines.rs1revaleur msgctxt "uchaines.rs1revaleur" msgid "1ère valeur:" msgstr "" #: uchaines.rs2 msgid "************************************" msgstr "" #: uchaines.rs3 msgid "*****************************************************" msgstr "" #: uchaines.rs4 msgid "********************" msgstr "" #: uchaines.rs5 msgid " " msgstr "" #: uchaines.rsaactivitde msgid "a%s: activité de %s" msgstr "" #: uchaines.rsabscisseordo msgid "%s Abscisse: %s Ordonnées: " msgstr "" #: uchaines.rsabsent msgid "ABSENT" msgstr "" #: uchaines.rsabsvaleurabs msgid "abs() : valeur absolue" msgstr "" #: uchaines.rsacidesetbase msgctxt "uchaines.rsacidesetbase" msgid "Acides et bases" msgstr "" #: uchaines.rsacidesetbase2 msgctxt "uchaines.rsacidesetbase2" msgid "Acides et bases organiques" msgstr "" #: uchaines.rsactiverdsact msgctxt "uchaines.rsactiverdsact" msgid "Activer/désactiver l'affichage du fichier expérimental" msgstr "" #: uchaines.rsactiverdsact2 msgctxt "uchaines.rsactiverdsact2" msgid "Activer/désactiver la superposition" msgstr "" #: uchaines.rsactiverlecal msgctxt "uchaines.rsactiverlecal" msgid "Activer le calcul des dérivées par rapport au volume" msgstr "" #: uchaines.rsactivit msgid "Activité" msgstr "" #: uchaines.rsactivit2 msgid "%sActivité" msgstr "" #: uchaines.rsactivitsdese msgid "Activités des espéces en solution:" msgstr "" #: uchaines.rsaffichagedes msgid "Affichage des résultats bruts..." msgstr "" #: uchaines.rsaffichebase msgctxt "uchaines.rsaffichebase" msgid "affiche base" msgstr "" #: uchaines.rsaide msgctxt "uchaines.rsaide" msgid "Aide" msgstr "" #: uchaines.rsaidedozzzaqu msgctxt "uchaines.rsaidedozzzaqu" msgid "Aide Dozzzaqueux" msgstr "" #: uchaines.rsainsisilevol msgid "Ainsi, si le volume initial du bêcher (ou volume maximal à verser pour la burette) est de 100mL et que vous mettez 0.01 mol," msgstr "" #: uchaines.rsajouterlevol msgid "Ajouter le volume d'eau suivant:" msgstr "" #: uchaines.rsajoutermodif msgctxt "uchaines.rsajoutermodif" msgid "Ajouter/modifier titre" msgstr "" #: uchaines.rsajoutermodif2 msgctxt "uchaines.rsajoutermodif2" msgid "Ajouter/modifier unité et labels des axes" msgstr "" #: uchaines.rsajouterouenl msgid "ajouter ou enlever des espèces " msgstr "" #: uchaines.rsajouterunegr msgctxt "uchaines.rsajouterunegr" msgid "Ajouter une grandeur en ordonnée" msgstr "" #: uchaines.rsalcanesalcne msgctxt "uchaines.rsalcanesalcne" msgid "Alcanes, alcénes, alcynes" msgstr "" #: uchaines.rsalcools msgctxt "uchaines.rsalcools" msgid "Alcools" msgstr "" #: uchaines.rsaldhydesetct msgctxt "uchaines.rsaldhydesetct" msgid "Aldéhydes et cétones" msgstr "" #: uchaines.rsaminesetamid msgctxt "uchaines.rsaminesetamid" msgid "Amines et amides" msgstr "" #: uchaines.rsamminoacides msgctxt "uchaines.rsamminoacides" msgid "Amminoacides" msgstr "" #: uchaines.rsanionssimple msgctxt "uchaines.rsanionssimple" msgid "Anions simples" msgstr "" #: uchaines.rsannuler msgctxt "uchaines.rsannuler" msgid "Annuler" msgstr "" #: uchaines.rsapropos msgctxt "uchaines.rsapropos" msgid "A propos..." msgstr "" #: uchaines.rsaproposdedoz msgctxt "uchaines.rsaproposdedoz" msgid "A propos de...Dozzzaqueux" msgstr "" #: uchaines.rsaprslafficha msgctxt "uchaines.rsaprslafficha" msgid "Après l'affichage des courbes, vous pourrez revisiter tous les onglets." msgstr "" #: uchaines.rsarctanarctan msgid "arctan() : arctangente" msgstr "" #: uchaines.rsarithmtique msgid "Arithmétique" msgstr "" #: uchaines.rsarrterlescal msgid "Arrêter les calculs ?" msgstr "" #: uchaines.rsatomesetmolc msgctxt "uchaines.rsatomesetmolc" msgid "Atomes et molécules" msgstr "" #: uchaines.rsattention msgid "Attention" msgstr "" #: uchaines.rsattention2 msgid "Attention !" msgstr "" #: uchaines.rsattention3 msgctxt "uchaines.rsattention3" msgid "!!! Attention !!!" msgstr "" #: uchaines.rsattentionaut msgid "Attention: autoriser les réactions rédox peut conduire à l'apparition d'un grand" msgstr "" #: uchaines.rsattentionlev msgid "Attention: le volume de référence est ici celui du bêcher (ou de la burette si vous êtes en train de remplir la burette)" msgstr "" #: uchaines.rsauchoix msgctxt "uchaines.rsauchoix" msgid "au choix:" msgstr "" #: uchaines.rsaucuneespcea msgctxt "uchaines.rsaucuneespcea" msgid "Aucune espéce ayant cette formule n'a été trouvée dans la base." msgstr "" #: uchaines.rsaucuneespcea2 msgctxt "uchaines.rsaucuneespcea2" msgid "Aucune espéce ayant cette formule n'a été trouvée dans la base." msgstr "" #: uchaines.rsaucuneespcea3 msgctxt "uchaines.rsaucuneespcea3" msgid "Aucune espéce ayant cette formule n'a été trouvée dans la base." msgstr "" #: uchaines.rsaucuneespcea4 msgctxt "uchaines.rsaucuneespcea4" msgid "Aucune espéce ayant cette formule n'a été trouvée dans la base." msgstr "" #: uchaines.rsautomatique msgid "Automatique" msgstr "" #: uchaines.rsautoriserrac msgctxt "uchaines.rsautoriserrac" msgid "Autoriser réactions redox" msgstr "" #: uchaines.rsaxes msgctxt "uchaines.rsaxes" msgid "Axes" msgstr "" #: uchaines.rsbas msgid "Bas" msgstr "" #: uchaines.rsbasederactif msgctxt "uchaines.rsbasederactif" msgid "Base de réactifs (clic en tête de colonne pour modifier l'ordre de tri):" msgstr "" #: uchaines.rsbcher msgctxt "uchaines.rsbcher" msgid "Bécher" msgstr "" #: uchaines.rsbchernombred msgid "[Bécher] %s (nombre de moles pour 1L)" msgstr "" #: uchaines.rsbenzneetdriv msgctxt "uchaines.rsbenzneetdriv" msgid "Benzéne et dérivés" msgstr "" #: uchaines.rsburette msgctxt "uchaines.rsburette" msgid "Burette" msgstr "" #: uchaines.rsburettenombr msgid "[Burette] %s (nombre de moles pour 1L)" msgstr "" #: uchaines.rscalculdesdri msgctxt "uchaines.rscalculdesdri" msgid "Calcul des dérivées" msgstr "" #: uchaines.rscalculer msgctxt "uchaines.rscalculer" msgid "Calculer" msgstr "" #: uchaines.rscalculerlesv msgid "Calculer les valeurs pour un point particulier" msgstr "" #: uchaines.rscationssimpl msgctxt "uchaines.rscationssimpl" msgid "Cations simples" msgstr "" #: uchaines.rscconcentrati msgid "c%s: concentration en %s (en mol/L)" msgstr "" #: uchaines.rscecipeutdonn msgid "Ceci peut donner des calculs très longs." msgstr "" #: uchaines.rscelaconduira msgid "Cela conduirait à une concentration ou un volume négatif..." msgstr "" #: uchaines.rscenomdefichi msgid "Ce nom de fichier existe déjà" msgstr "" #: uchaines.rscentr msgid "Centré" msgstr "" #: uchaines.rscercle msgid "Cercle" msgstr "" #: uchaines.rscettequantit msgid "Cette quantité doit être strictement positive !" msgstr "" #: uchaines.rschangercette msgctxt "uchaines.rschangercette" msgid "Changer cette valeur ne modifie pas les concentrations ! Utilisez le bouton \"dilution\" si vous voulez les modifier par dilution" msgstr "" #: uchaines.rschargementfi msgctxt "uchaines.rschargementfi" msgid "Chargement fichier expérience" msgstr "" #: uchaines.rschiffressign msgctxt "uchaines.rschiffressign" msgid "Chiffres significatifs" msgstr "" #: uchaines.rschoisirlesco msgctxt "uchaines.rschoisirlesco" msgid "Choisir les courbes à tracer >>>>>>>" msgstr "" #: uchaines.rschoixdehvolu msgctxt "uchaines.rschoixdehvolu" msgid "Choix de h: volume burette/" msgstr "" #: uchaines.rschoixdescour msgctxt "uchaines.rschoixdescour" msgid "Choix des courbes" msgstr "" #: uchaines.rschoixdesgran msgid "Choix des grandeurs à tracer..." msgstr "" #: uchaines.rschoixdesract msgid "Choix des réactifs du bécher..." msgstr "" #: uchaines.rschoixdesract2 msgid "Choix des réactifs de la burette..." msgstr "" #: uchaines.rschoixdesract3 msgctxt "uchaines.rschoixdesract3" msgid "Choix des réactifs:bécher" msgstr "" #: uchaines.rschoixdesract4 msgctxt "uchaines.rschoixdesract4" msgid "Choix des réactifs:burette" msgstr "" #: uchaines.rschoixdupas msgctxt "uchaines.rschoixdupas" msgid "Choix du pas" msgstr "" #: uchaines.rscolonnedontl msgctxt "uchaines.rscolonnedontl" msgid "Colonne dont la grandeur sera considérée comme abscisse:" msgstr "" #: uchaines.rscomplexesetd msgctxt "uchaines.rscomplexesetd" msgid "Complexes et divers" msgstr "" #: uchaines.rscomplexeslig msgctxt "uchaines.rscomplexeslig" msgid "Complexes à ligands organiques, et divers" msgstr "" #: uchaines.rsconcentratio msgid "Concentrations des espéces en solution:" msgstr "" #: uchaines.rsconcentratio2 msgid "Concentration (mol/L)" msgstr "" #: uchaines.rsconcentratio3 msgctxt "uchaines.rsconcentratio3" msgid "Concentration molaire:" msgstr "" #: uchaines.rsconcentratio4 msgid "Concentration négative impossible..." msgstr "" #: uchaines.rsconcmoll msgid "Conc.(mol/L)" msgstr "" #: uchaines.rsconcmoll2 msgid "%sConc.(mol/L)" msgstr "" #: uchaines.rsconductivit0 msgid "Conductivité (0,1 mS.m²/mol)" msgstr "" #: uchaines.rsconfiguratio msgctxt "uchaines.rsconfiguratio" msgid "Configuration de la page pour l'impression" msgstr "" #: uchaines.rsconsultezlef msgid "Consultez le fichier dozzzaqueux.html dans le répertoire Aide" msgstr "" #: uchaines.rscopier msgctxt "uchaines.rscopier" msgid "Copier" msgstr "" #: uchaines.rscopierdansle msgctxt "uchaines.rscopierdansle" msgid "Copier dans le presse papier" msgstr "" #: uchaines.rscoscosinus msgid "cos() : cosinus" msgstr "" #: uchaines.rscoshcosinush msgid "cosh() : cosinus hyperbolique" msgstr "" #: uchaines.rscotancotange msgid "cotan() : cotangente" msgstr "" #: uchaines.rscouleur msgid "Couleur" msgstr "" #: uchaines.rscouleur2 msgctxt "uchaines.rscouleur2" msgid "Couleur:" msgstr "" #: uchaines.rscouleurdesax msgctxt "uchaines.rscouleurdesax" msgid "Couleur des axes:" msgstr "" #: uchaines.rscouleurdufon msgctxt "uchaines.rscouleurdufon" msgid "Couleur du fond:" msgstr "" #: uchaines.rscouleurgradu msgctxt "uchaines.rscouleurgradu" msgid "Couleur graduations:" msgstr "" #: uchaines.rscouleurgrill msgctxt "uchaines.rscouleurgrill" msgid "Couleur grille échelle gauche:" msgstr "" #: uchaines.rscouleurgrill2 msgctxt "uchaines.rscouleurgrill2" msgid "Couleur grille échelle droite:" msgstr "" #: uchaines.rscouleurs msgctxt "uchaines.rscouleurs" msgid "Couleurs" msgstr "" #: uchaines.rscroix msgid "Croix (+)" msgstr "" #: uchaines.rscroixx msgid "Croix (x)" msgstr "" #: uchaines.rscsv msgid ".csv" msgstr "" #: uchaines.rsdadv1l msgid "da/dV (1/L)" msgstr "" #: uchaines.rsda_dv1l msgid "%sda_dV (1/L)" msgstr "" #: uchaines.rsda_dvdrivepa msgid "da%s_dV: dérivée par rapport au volume versé de l'activité de %s (en 1/L)" msgstr "" #: uchaines.rsdcdvmoll msgid "dC/dV (mol/L²)" msgstr "" #: uchaines.rsdc_dvdrivepa msgid "dc%s_dV: dérivée par rapport au volume versé de la concentration en %s (en mol/L²)" msgstr "" #: uchaines.rsdc_dvmoll msgid "%sdC_dV(mol/L²)" msgstr "" #: uchaines.rsde msgid "%s de " msgstr "" #: uchaines.rsdeaupure msgctxt "uchaines.rsdeaupure" msgid "%s d'eau pure" msgstr "" #: uchaines.rsdeaupure2 msgctxt "uchaines.rsdeaupure2" msgid "%s d'eau pure" msgstr "" #: uchaines.rsdemandedarrt msgid "Demande d'arrêt" msgstr "" #: uchaines.rsdemonrpertoi msgctxt "uchaines.rsdemonrpertoi" msgid "de mon répertoire personnel" msgstr "" #: uchaines.rsdeplusetsurt msgid "De plus et surtout, expérimentalement, ces espéces n'apparaissent pas " msgstr "" #: uchaines.rsdfinirlagran msgctxt "uchaines.rsdfinirlagran" msgid "Définir la grandeur portée en abscisse" msgstr "" #: uchaines.rsdgraddecoule msgctxt "uchaines.rsdgraddecoule" msgid "Dégradé de couleurs de l'indicateur" msgstr "" #: uchaines.rsdiffrence msgid "- : différence" msgstr "" #: uchaines.rsdilution msgctxt "uchaines.rsdilution" msgid "Dilution" msgstr "" #: uchaines.rsdilutionpour msgid "Dilution pour le bêcher" msgstr "" #: uchaines.rsdilutionpour2 msgid "Dilution pour la burette" msgstr "" #: uchaines.rsdisque msgid "Disque" msgstr "" #: uchaines.rsdiviserlesco msgctxt "uchaines.rsdiviserlesco" msgid "Diviser les concentrations par 10" msgstr "" #: uchaines.rsdndvmoll msgid "dN/dV (mol/L)" msgstr "" #: uchaines.rsdn_dvdrivepa msgid "dn%s_dV: dérivée par rapport au volume versé du nombre de moles du solide %s (en 1/L)" msgstr "" #: uchaines.rsdn_dvmoll msgid "%sdN_dV (mol/L)" msgstr "" #: uchaines.rsdosagedeml msgid "Dosage de %smL" msgstr "" #: uchaines.rsdozzzaqueux msgctxt "uchaines.rsdozzzaqueux" msgid "Dozzzaqueux" msgstr "" #: uchaines.rsdpa_dvdrivep msgid "dpa%s_dV: dérivée par rapport au volume versé du cologarithme de l'activité de %s (en 1/L)" msgstr "" #: uchaines.rsdpc_dvdrivep msgid "dpc%s_dV: dérivée par rapport au volume versé du pc de %s (en 1/L)" msgstr "" #: uchaines.rsdph_dvdrived msgid "dpH_dV: dérivée du pH par rapport au volume versé " msgstr "" #: uchaines.rsdplacerlgend msgctxt "uchaines.rsdplacerlgend" msgid "Déplacer lég." msgstr "" #: uchaines.rsdpn_dvdrivep msgid "dpn%s_dV: dérivée par rapport au volume versé du pn de %s (en 1/L)" msgstr "" #: uchaines.rsdpoh_dvdrive msgid "dpOH_dV: dérivée du pOH par rapport au volume versé" msgstr "" #: uchaines.rsdrivesvdesac msgid "Dérivées /V des activités des espéces en solution:" msgstr "" #: uchaines.rsdrivesvdesco msgid "Dérivées /V des concentrations des espéces en solution:" msgstr "" #: uchaines.rsdrivesvdesno msgid "Dérivées /V des nombres de moles pour les précipités:" msgstr "" #: uchaines.rsdroite msgid "Droite" msgstr "" #: uchaines.rsdurpertoiree msgctxt "uchaines.rsdurpertoiree" msgid "du répertoire \"exemples\"" msgstr "" #: uchaines.rsechelle msgid "Echelle" msgstr "" #: uchaines.rsechelle2 msgctxt "uchaines.rsechelle2" msgid "Echelle:" msgstr "" #: uchaines.rsechellehoriz msgctxt "uchaines.rsechellehoriz" msgid "Echelle horizontale" msgstr "" #: uchaines.rsechelleverti msgctxt "uchaines.rsechelleverti" msgid "Echelle verticale droite" msgstr "" #: uchaines.rsechelleverti2 msgctxt "uchaines.rsechelleverti2" msgid "Echelle verticale gauche" msgstr "" #: uchaines.rsecraserlefic msgid "Ecraser le fichier existant ?" msgstr "" #: uchaines.rsecspotentiel msgid "ECS: potentiel électrode de référence au calomel saturé=0,246V" msgstr "" #: uchaines.rselectroneutr msgctxt "uchaines.rselectroneutr" msgid "Electroneutralité" msgstr "" #: uchaines.rsenregistrer msgctxt "uchaines.rsenregistrer" msgid "Enregistrer" msgstr "" #: uchaines.rsenregistrerl msgctxt "uchaines.rsenregistrerl" msgid "Enregistrer le graphe sur le disque comme image" msgstr "" #: uchaines.rsenregistrerl2 msgctxt "uchaines.rsenregistrerl2" msgid "Enregistrer le film de la simulation" msgstr "" #: uchaines.rsentredeuxvol msgctxt "uchaines.rsentredeuxvol" msgid "entre deux volumes successifs ne doit pas excéder:" msgstr "" #: uchaines.rsentrersortir msgctxt "uchaines.rsentrersortir" msgid "Entrer/sortir du mode faisceau, qui permet de faire varier un des paramètres et d'obtenir le faisceau de courbes correspondant" msgstr "" #: uchaines.rsentrezlaform msgctxt "uchaines.rsentrezlaform" msgid "Entrez la formule brute. Puis cliquez sur %sOK%s. Puis sélectionnez le réactif dans la liste ci-dessous." msgstr "" #: uchaines.rsentrezlaform2 msgctxt "uchaines.rsentrezlaform2" msgid "Entrez la formule brute. Puis cliquez sur %sOK%s. Puis sélectionnez le réactif dans la liste ci-dessous." msgstr "" #: uchaines.rsentreztoutou msgctxt "uchaines.rsentreztoutou" msgid "Entrez tout ou partie de l'indentifiant ou du synonyme" msgstr "" #: uchaines.rsentreztoutou2 msgctxt "uchaines.rsentreztoutou2" msgid "Entrez tout ou partie de l'indentifiant ou du synonyme" msgstr "" #: uchaines.rsepaisseurdut msgctxt "uchaines.rsepaisseurdut" msgid "Epaisseur du trait devant joindre les points:" msgstr "" #: uchaines.rsepaisseurtra msgctxt "uchaines.rsepaisseurtra" msgid "Epaisseur trait" msgstr "" #: uchaines.rsepaisseurtra2 msgctxt "uchaines.rsepaisseurtra2" msgid "Epaisseur trait:" msgstr "" #: uchaines.rsequationdera msgid "Equation de réaction" msgstr "" #: uchaines.rsesmpotentiel msgid "ESM: potentiel électrode de référence au sulfate mercureux=0,6513V" msgstr "" #: uchaines.rsespace msgid "Espace" msgstr "" #: uchaines.rsespcesprsent msgctxt "uchaines.rsespcesprsent" msgid "Espéces présentes" msgstr "" #: uchaines.rsespcesprsent2 msgid "%sEspéces présentes%s, et décochez en éventuellement." msgstr "" #: uchaines.rsespcesprsent3 msgid "<Espéces présentes>, et décochez en éventuellement." msgstr "" #: uchaines.rsexacte msgid "Exacte" msgstr "" #: uchaines.rsexaminezdonc msgid "Examinez donc avec soin les espéces qui figurent dans l'onglet" msgstr "" #: uchaines.rsexemplesbaso msgctxt "uchaines.rsexemplesbaso" msgid " Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] " msgstr "" #: uchaines.rsexemplesbaso2 msgctxt "uchaines.rsexemplesbaso2" msgid " Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] " msgstr "" #: uchaines.rsexemplesthan msgctxt "uchaines.rsexemplesthan" msgid " Exemples: éthanoïque Acide pentanedioïque " msgstr "" #: uchaines.rsexp msgctxt "uchaines.rsexp" msgid "Exp." msgstr "" #: uchaines.rsexpexponenti msgid "exp() : exponentielle" msgstr "" #: uchaines.rsexporterlesr msgctxt "uchaines.rsexporterlesr" msgid "Exporter les résultats numériques pour une exploitation avec tableur ou Régressi" msgstr "" #: uchaines.rsexportgraphe msgctxt "uchaines.rsexportgraphe" msgid "Export graphe" msgstr "" #: uchaines.rsexportrsulta msgctxt "uchaines.rsexportrsulta" msgid "Export résultats bruts" msgstr "" #: uchaines.rsexportrsulta2 msgctxt "uchaines.rsexportrsulta2" msgid "Export résultats" msgstr "" #: uchaines.rsexporttableu msgctxt "uchaines.rsexporttableu" msgid "Export tableur texte" msgstr "" #: uchaines.rsexpression msgid "Expression" msgstr "" #: uchaines.rsexpriencefic msgctxt "uchaines.rsexpriencefic" msgid "Expérience (fichier format tableau texte ou Regressi)" msgstr "" #: uchaines.rsfaisceau msgctxt "uchaines.rsfaisceau" msgid "Faisceau" msgstr "" #: uchaines.rsfaisceaudeco msgctxt "uchaines.rsfaisceaudeco" msgid "Faisceau de courbes" msgstr "" #: uchaines.rsfermer msgctxt "uchaines.rsfermer" msgid "Fermer" msgstr "" #: uchaines.rsfermer2 msgctxt "uchaines.rsfermer2" msgid "&Fermer" msgstr "" #: uchaines.rsfichier msgctxt "uchaines.rsfichier" msgid "Fichier" msgstr "" #: uchaines.rsfichiercorro msgid "Fichier corrompu..." msgstr "" #: uchaines.rsfichierimpos msgid "Fichier impossible à ouvrir" msgstr "" #: uchaines.rsfilmsimulati msgid "Film simulation Dozzzaqueux|*.doz" msgstr "" #: uchaines.rsfonctions msgid "Fonctions:" msgstr "" #: uchaines.rsformatdevale msgctxt "uchaines.rsformatdevale" msgid "Format de valeur numérique invalide pour le nombre de moles!" msgstr "" #: uchaines.rsformatdevale2 msgid "Format de valeur numérique invalide pour la masse !" msgstr "" #: uchaines.rsformatdevale3 msgctxt "uchaines.rsformatdevale3" msgid "Format de valeur numérique invalide pour le nombre de moles!" msgstr "" #: uchaines.rsformatdevale4 msgid "Format de valeur numérique illégal." msgstr "" #: uchaines.rsformatvaleur msgid "Format valeur numérique incorrect à la ligne %s" msgstr "" #: uchaines.rsformule msgid "Formule" msgstr "" #: uchaines.rsformulebrute msgctxt "uchaines.rsformulebrute" msgid "Formule brute ?" msgstr "" #: uchaines.rsformulebrute2 msgid "Formule brute" msgstr "" #: uchaines.rsg msgctxt "uchaines.rsg" msgid "g" msgstr "" #: uchaines.rsgammaconduct msgid "gamma: conductivité de la solution en S/m" msgstr "" #: uchaines.rsgauche msgid "Gauche" msgstr "" #: uchaines.rsgl msgctxt "uchaines.rsgl" msgid "g/L" msgstr "" #: uchaines.rsgomtrique msgid "Géométrique" msgstr "" #: uchaines.rsgraduations msgctxt "uchaines.rsgraduations" msgid "Graduations" msgstr "" #: uchaines.rsgrandeurfair msgctxt "uchaines.rsgrandeurfair" msgid "Grandeur à faire varier" msgstr "" #: uchaines.rsgrandeurscal msgid "Grandeurs calculées:" msgstr "" #: uchaines.rsgrandeursprs msgctxt "uchaines.rsgrandeursprs" msgid "Grandeurs présentes dans le fichier:" msgstr "" #: uchaines.rsgrillechelle msgctxt "uchaines.rsgrillechelle" msgid "Grille échelle gauche" msgstr "" #: uchaines.rsgrillechelle2 msgctxt "uchaines.rsgrillechelle2" msgid "Grille échelle droite" msgstr "" #: uchaines.rshaut msgid "Haut" msgstr "" #: uchaines.rsheavheavisid msgid "heav() : Heaviside (1 si argument>0, 0 sinon)" msgstr "" #: uchaines.rshistoriquede msgctxt "uchaines.rshistoriquede" msgid "Historique des versions" msgstr "" #: uchaines.rshlas msgid "Hélas..." msgstr "" #: uchaines.rshlas2 msgid "Hélas" msgstr "" #: uchaines.rshorizontale msgctxt "uchaines.rshorizontale" msgid "Horizontale" msgstr "" #: uchaines.rshorizontalem msgctxt "uchaines.rshorizontalem" msgid "Horizontalement" msgstr "" #: uchaines.rshorizontalen msgid "Horizontal en fonction du volume (si V en abscisse)" msgstr "" #: uchaines.rsidentifiant msgid "Identifiant" msgstr "" #: uchaines.rsidentificati msgid "Identification" msgstr "" #: uchaines.rsimpossiblede msgid "Impossible de créér ce fichier !" msgstr "" #: uchaines.rsimpossiblede2 msgid "Impossible d'effectuer le tracé: vous n'avez pas défini de grandeur en ordonnée !" msgstr "" #: uchaines.rsimpossiblede3 msgid "Impossible d'effectuer le tracé: vous n'avez pas défini de grandeur en abscisse !" msgstr "" #: uchaines.rsimpossiblede4 msgid "Impossible d'enregistrer: vous devez être au niveau %sTracé des courbes%s" msgstr "" #: uchaines.rsimpossiblede5 msgid "Impossible de lire ce fichier !" msgstr "" #: uchaines.rsimprimer msgctxt "uchaines.rsimprimer" msgid "Imprimer" msgstr "" #: uchaines.rsimprimerlegr msgctxt "uchaines.rsimprimerlegr" msgid "Imprimer le graphe" msgstr "" #: uchaines.rsincrment msgctxt "uchaines.rsincrment" msgid "Incrément:" msgstr "" #: uchaines.rsindicateurcolore msgctxt "uchaines.rsindicateurcolore" msgid "Indicateur coloré" msgstr "" #: uchaines.rsindicedelali msgctxt "uchaines.rsindicedelali" msgid "Indice de la ligne de la grandeur qui sera l'abscisse:" msgstr "" #: uchaines.rsinf1si1erarg msgid "inf(,) : 1 si 1er arg. <2nd, 0 sinon" msgstr "" #: uchaines.rsinfe1si1erar msgid "infe(,) : 1 si 1er arg. <=2nd, 0 sinon" msgstr "" #: uchaines.rsinorganiques msgctxt "uchaines.rsinorganiques" msgid "Inorganiques" msgstr "" #: uchaines.rsions msgctxt "uchaines.rsions" msgid "Ions" msgstr "" #: uchaines.rsjoindrelespo msgctxt "uchaines.rsjoindrelespo" msgid "Joindre les points" msgstr "" #: uchaines.rsjoindrepoint msgid "Joindre points" msgstr "" #: uchaines.rsjouerunfilmd msgctxt "uchaines.rsjouerunfilmd" msgid "Jouer un film de simulation" msgstr "" #: uchaines.rsk msgctxt "uchaines.rsk" msgid "K" msgstr "" #: uchaines.rslabelaffiche msgctxt "uchaines.rslabelaffiche" msgid "Label à afficher sur l'axe des abscisses:" msgstr "" #: uchaines.rslabelaffiche2 msgctxt "uchaines.rslabelaffiche2" msgid "Label à afficher sur l'axe gauche des ordonnées:" msgstr "" #: uchaines.rslabelaffiche3 msgctxt "uchaines.rslabelaffiche3" msgid "Label à afficher sur l'axe droit des ordonnées:" msgstr "" #: uchaines.rslabscissemin msgctxt "uchaines.rslabscissemin" msgid "L'abscisse minimale est trop proche de l'abscisse maximale..." msgstr "" #: uchaines.rslabscissemin2 msgctxt "uchaines.rslabscissemin2" msgid "L'abscisse minimale est trop proche de l'abscisse maximale..." msgstr "" #: uchaines.rslachargelect msgctxt "uchaines.rslachargelect" msgid "La charge électrique totale est non nulle. Vous pouvez:" msgstr "" #: uchaines.rslaconcentrat msgid "la concentration dans le bêcher (respectivement la burette) sera de 0.1mol/L." msgstr "" #: uchaines.rslaconductivi msgctxt "uchaines.rslaconductivi" msgid "La conductivité de l'espèce" msgstr "" #: uchaines.rslaformuledee msgid "La formule de %s est: %s" msgstr "" #: uchaines.rslamasse msgctxt "uchaines.rslamasse" msgid "la masse:" msgstr "" #: uchaines.rslamassedoitt msgid "La masse doit être strictement positive !" msgstr "" #: uchaines.rslamasseparld msgctxt "uchaines.rslamasseparld" msgid "concentration massique:" msgstr "" #: uchaines.rslancienvolum msgid "L'ancien volume a un format numérique illégal !" msgstr "" #: uchaines.rslangue msgctxt "uchaines.rslangue" msgid "Langue" msgstr "" #: uchaines.rslaquantitdem msgctxt "uchaines.rslaquantitdem" msgid "la quantité de matière:" msgstr "" #: uchaines.rslaquantitdem2 msgctxt "uchaines.rslaquantitdem2" msgid "concentration (molaire):" msgstr "" #: uchaines.rslasyntaxedel msgid "La syntaxe de l'expression est illégale. Expression refusée" msgstr "" #: uchaines.rslasyntaxedev msgctxt "uchaines.rslasyntaxedev" msgid "La syntaxe de votre formule brute n'est pas correcte." msgstr "" #: uchaines.rslasyntaxedev2 msgctxt "uchaines.rslasyntaxedev2" msgid "La syntaxe de votre formule brute n'est pas correcte." msgstr "" #: uchaines.rslatemprature msgid "La température doit être strictement positive" msgstr "" #: uchaines.rslavaleurdela msgid "La valeur de la température n'a pas une syntaxe correcte" msgstr "" #: uchaines.rslavaleurdund msgid "La valeur d'un des log K n'a pas une syntaxe correcte" msgstr "" #: uchaines.rslavaleurduvo msgctxt "uchaines.rslavaleurduvo" msgid "La valeur du volume n'a pas une syntaxe correcte" msgstr "" #: uchaines.rslavaleurduvo2 msgctxt "uchaines.rslavaleurduvo2" msgid "La valeur du volume n'a pas une syntaxe correcte" msgstr "" #: uchaines.rslavariationm msgctxt "uchaines.rslavariationm" msgid "La variation maximale du logarithme d'une concentration" msgstr "" #: uchaines.rslecalculdela msgctxt "uchaines.rslecalculdela" msgid "Le calcul de la dérivée numérique en V0 se fait par: (f(V0+h)-f(V0-h))/(2h)" msgstr "" #: uchaines.rslenombredemo msgid "Le nombre de moles doit être strictement positif !" msgstr "" #: uchaines.rslepassageenm msgid "Le passage en mode superposition fait sortir du mode faisceau. Voulez-vous continuer ?" msgstr "" #: uchaines.rslepassageenm2 msgid "Le passage en mode faisceau désactive la superposition de simulation. Etes-vous sûr de vouloir continuer ?" msgstr "" #: uchaines.rslescouleurse msgctxt "uchaines.rslescouleurse" msgid "Les couleurs en dégradé des courbes tendront vers:" msgstr "" #: uchaines.rslesvaleursde msgctxt "uchaines.rslesvaleursde" msgid "Les valeurs des concentrations sont calculées pour des valeurs discrétes du volume." msgstr "" #: uchaines.rslevolumedoit msgid "Le volume doit être strictement positif" msgstr "" #: uchaines.rslgende msgctxt "uchaines.rslgende" msgid "Légende" msgstr "" #: uchaines.rslgendepart msgctxt "uchaines.rslgendepart" msgid "Légende à part" msgstr "" #: uchaines.rslgendequiapp msgid "Légende qui apparaîtra sur le graphe pour cette grandeur:" msgstr "" #: uchaines.rslicensegpl msgctxt "uchaines.rslicensegpl" msgid "License GPL" msgstr "" #: uchaines.rslignelaquell msgctxt "uchaines.rslignelaquell" msgid "Ligne à laquelle commencent les données:" msgstr "" #: uchaines.rslistedessimu msgctxt "uchaines.rslistedessimu" msgid "Liste des simulations superposables" msgstr "" #: uchaines.rslnlogarithme msgid "ln() : logarithme népérien" msgstr "" #: uchaines.rslog10logarit msgid "log10() ou log(): logarithme décimal" msgstr "" #: uchaines.rslogiciellibr msgctxt "uchaines.rslogiciellibr" msgid "Logiciel libre et gratuit de simulation de courbes de dosage" msgstr "" #: uchaines.rslogkpour msgid "logk pour %s" msgstr "" #: uchaines.rslordonnemini msgctxt "uchaines.rslordonnemini" msgid "L'ordonnée minimale droite est trop proche de l'ordonnée maximale droite..." msgstr "" #: uchaines.rslordonnemini2 msgctxt "uchaines.rslordonnemini2" msgid "L'ordonnée minimale gauche est trop proche de l'ordonnée maximale gauche..." msgstr "" #: uchaines.rslordonnemini3 msgctxt "uchaines.rslordonnemini3" msgid "L'ordonnée minimale droite est trop proche de l'ordonnée maximale droite..." msgstr "" #: uchaines.rslordonnemini4 msgctxt "uchaines.rslordonnemini4" msgid "L'ordonnée minimale gauche est trop proche de l'ordonnée maximale gauche..." msgstr "" #: uchaines.rslorsdelexcut msgid "Lors de l'exécution d'un %sfilm%s de simulation, l'affichage de chaque écran doit durer:" msgstr "" #: uchaines.rslvationlapui msgid "^ : élévation à la puissance" msgstr "" #: uchaines.rsmaiseuhhh msgid "Mais euhhh !" msgstr "" #: uchaines.rsmaiseuhhhh msgid "Mais euhhhh !" msgstr "" #: uchaines.rsmaislepasnep msgctxt "uchaines.rsmaislepasnep" msgid "Mais le pas ne peut devenir inférieur à:" msgstr "" #: uchaines.rsmaispasagso4 msgctxt "uchaines.rsmaispasagso4" msgid " mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)" msgstr "" #: uchaines.rsmaispasagso42 msgctxt "uchaines.rsmaispasagso42" msgid " mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)" msgstr "" #: uchaines.rsmanuelle msgid "Manuelle" msgstr "" #: uchaines.rsmaxmaximumde msgid "max(,) : maximum des 2 arguments" msgstr "" #: uchaines.rsmenfin msgctxt "uchaines.rsmenfin" msgid "M'enfin..." msgstr "" #: uchaines.rsmenfin2 msgctxt "uchaines.rsmenfin2" msgid "M'enfin..." msgstr "" #: uchaines.rsmenfin3 msgctxt "uchaines.rsmenfin3" msgid "M'enfin..." msgstr "" #: uchaines.rsmgmol msgid "M (g/mol)" msgstr "" #: uchaines.rsminminimumde msgid "min(,) : minimum des 2 arguments" msgstr "" #: uchaines.rsml msgid "(mL)" msgstr "" #: uchaines.rsml2 msgctxt "uchaines.rsml2" msgid "mL" msgstr "" #: uchaines.rsmmesatomesen msgid "Mêmes atomes, en nombres inférieurs ou égaux" msgstr "" #: uchaines.rsmmesatomesen2 msgid "Mêmes atomes, en nombre supérieurs ou égaux" msgstr "" #: uchaines.rsmmesatomesen3 msgid "Mêmes atomes, en nombre quelconques" msgstr "" #: uchaines.rsmodification msgctxt "uchaines.rsmodification" msgid "Modification concentration" msgstr "" #: uchaines.rsmodifiercoul msgctxt "uchaines.rsmodifiercoul" msgid "Modifier couleurs" msgstr "" #: uchaines.rsmol msgctxt "uchaines.rsmol" msgid "mol" msgstr "" #: uchaines.rsmoll msgctxt "uchaines.rsmoll" msgid "mol/L" msgstr "" #: uchaines.rsms msgctxt "uchaines.rsms" msgid "ms" msgstr "" #: uchaines.rsmultiplierle msgctxt "uchaines.rsmultiplierle" msgid "Multiplier les concentrations par 10" msgstr "" #: uchaines.rsmultiplierto msgid "Multiplier toutes les concentrations par le facteur:" msgstr "" #: uchaines.rsnaninfnansi1 msgid "naninf(,) : NAN si 1er arg. <2nd, 0 sinon" msgstr "" #: uchaines.rsnaninnansiab msgid "nanin(,) : NAN si abs(1er arg.) <abs(2nd), 0 sinon" msgstr "" #: uchaines.rsnanoutnansia msgid "nanout(,) : NAN si abs(1er arg.) >abs(2nd), 0 sinon" msgstr "" #: uchaines.rsnansupnansi1 msgid "nansup(,) : NAN si 1er arg. >2nd, 0 sinon" msgstr "" #: uchaines.rsnbedemoles msgid "Nbe de moles" msgstr "" #: uchaines.rsncessairemen msgid "nécessairement, en raison par exemple de blocages cinétiques (les" msgstr "" #: uchaines.rsnefigurepasd msgctxt "uchaines.rsnefigurepasd" msgid "ne figure pas dans ma base de données. Vous pouvez saisir la valeur ci-dessous:" msgstr "" #: uchaines.rsnepasreprsen msgctxt "uchaines.rsnepasreprsen" msgid "Ne pas représenter cette grandeur" msgstr "" #: uchaines.rsneplusaffich msgctxt "uchaines.rsneplusaffich" msgid "Ne plus afficher ce message au cours de cette session" msgstr "" #: uchaines.rsnetouchezrie msgctxt "uchaines.rsnetouchezrie" msgid "Ne touchez à rien, l'onglet suivant va bientôt être affiché." msgstr "" #: uchaines.rsneutraliserl msgid "neutraliser la charge automatiquement en ajoutant des K[+] " msgstr "" #: uchaines.rsneutraliserl2 msgid "neutraliser la charge automatiquement en ajoutant des Na[+] " msgstr "" #: uchaines.rsneutraliserl3 msgid "neutraliser la charge automatiquement en ajoutant des Cl[-] " msgstr "" #: uchaines.rsnom msgctxt "uchaines.rsnom" msgid "Nom:" msgstr "" #: uchaines.rsnombre msgctxt "uchaines.rsnombre" msgid "Nombre:" msgstr "" #: uchaines.rsnombredechif msgctxt "uchaines.rsnombredechif" msgid "Nombre de chiffres affichés et gardés pour les logarithmes de constantes de réaction:" msgstr "" #: uchaines.rsnombredechif2 msgctxt "uchaines.rsnombredechif2" msgid "Nombre de chiffres affichés pour les résultats:" msgstr "" #: uchaines.rsnombredecopi msgctxt "uchaines.rsnombredecopi" msgid "Nombre de copies" msgstr "" #: uchaines.rsnombrededonn msgctxt "uchaines.rsnombrededonn" msgid "Nombre de données par ligne:" msgstr "" #: uchaines.rsnombredemole msgid "Nombre de moles pour les précipités:" msgstr "" #: uchaines.rsnombredemole2 msgctxt "uchaines.rsnombredemole2" msgid "Nombre de moles ?" msgstr "" #: uchaines.rsnombredepoin msgctxt "uchaines.rsnombredepoin" msgid "Nombre de points de calcul" msgstr "" #: uchaines.rsnombredepoin2 msgctxt "uchaines.rsnombredepoin2" msgid "Nombre de points: N=" msgstr "" #: uchaines.rsnombredespce msgid "nombre d'espéces." msgstr "" #: uchaines.rsnon msgid "NON" msgstr "" #: uchaines.rsnon2 msgid "Non" msgstr "" #: uchaines.rsnoncalculabl msgid "non calculable." msgstr "" #: uchaines.rsnouvellesimu msgctxt "uchaines.rsnouvellesimu" msgid "Nouvelle simulation" msgstr "" #: uchaines.rsnquantitdema msgid "n%s: quantité de matière du solide %s (en mol)" msgstr "" #: uchaines.rsok msgctxt "uchaines.rsok" msgid "&OK" msgstr "" #: uchaines.rsok2 msgctxt "uchaines.rsok2" msgid "OK" msgstr "" #: uchaines.rsonappellepas msgid "On appelle %spas%s l'écart entre deux valeurs successives du volume." msgstr "" #: uchaines.rsoprateurs msgid "Opérateurs" msgstr "" #: uchaines.rsoprateursetf msgctxt "uchaines.rsoprateursetf" msgid "Opérateurs et fonctions utilisables:" msgstr "" #: uchaines.rsoptions msgctxt "uchaines.rsoptions" msgid "Options" msgstr "" #: uchaines.rsoptionspourl msgctxt "uchaines.rsoptionspourl" msgid "Options pour l'export au format tableur texte" msgstr "" #: uchaines.rsoptionspourl2 msgctxt "uchaines.rsoptionspourl2" msgid "Options pour l'indicateur coloré" msgstr "" #: uchaines.rsorganiques msgctxt "uchaines.rsorganiques" msgid "Organiques" msgstr "" #: uchaines.rsorientation msgctxt "uchaines.rsorientation" msgid "Orientation" msgstr "" #: uchaines.rsoubien msgctxt "uchaines.rsoubien" msgid "OU BIEN" msgstr "" #: uchaines.rsoui msgid "OUI" msgstr "" #: uchaines.rsoui2 msgid "Oui" msgstr "" #: uchaines.rspacologarith msgid "pa%s: cologarithme de l'activité de %s" msgstr "" #: uchaines.rsparfomulebru msgctxt "uchaines.rsparfomulebru" msgid "Par fomule brute" msgstr "" #: uchaines.rsparformulebr msgctxt "uchaines.rsparformulebr" msgid "Par formule brute" msgstr "" #: uchaines.rsparidentifia msgctxt "uchaines.rsparidentifia" msgid "Par identifiant ou synonyme" msgstr "" #: uchaines.rsparjeanmarie msgctxt "uchaines.rsparjeanmarie" msgid "Par Jean-Marie Biansan, 2005 à 2017" msgstr "" #: uchaines.rsparml msgid "%s par %smL " msgstr "" #: uchaines.rspas msgctxt "uchaines.rspas" msgid "Pas:" msgstr "" #: uchaines.rspasadaptatif msgid "Pas adaptatif" msgstr "" #: uchaines.rspasconstant msgid "Pas constant" msgstr "" #: uchaines.rspasdedonness msgid "Pas de données sur la ligne spécifiée" msgstr "" #: uchaines.rspasdegrandeu msgid "Pas de grandeur choisie..." msgstr "" #: uchaines.rspasdereactif msgid "pas de reactif ayant cette formule brute trouve" msgstr "" #: uchaines.rspasdevaleure msgid "Pas de valeur entrée! Utilisez %sAnnuler%s si vous renoncez !" msgstr "" #: uchaines.rspasseroutrea msgid "passer outre (attention: calculs non garantis !!) " msgstr "" #: uchaines.rspaysage msgid "Paysage" msgstr "" #: uchaines.rspccologarith msgid "pc%s: cologarithme du rapport concentration en %s /(1 mol/L)" msgstr "" #: uchaines.rsphlogactivit msgid "pH: -log(activité(H+))" msgstr "" #: uchaines.rspncologarith msgid "pn%s: cologarithme du rapport quantité de matière du solide %s /(1 mol)" msgstr "" #: uchaines.rspohlogactivi msgid "pOH: -log(activité(OH-))" msgstr "" #: uchaines.rspointparticu msgctxt "uchaines.rspointparticu" msgid "Point particulier" msgstr "" #: uchaines.rspointrecomma msgid "Point (recommandé pour Excel)" msgstr "" #: uchaines.rspointvirgule msgid "Point virgule" msgstr "" #: uchaines.rspolice msgctxt "uchaines.rspolice" msgid "Police" msgstr "" #: uchaines.rspopotentielr msgid "Po%s: potentiel redox du couple %s / %s" msgstr "" #: uchaines.rsporterlevolu msgid "Porter le volume total à la valeur:" msgstr "" #: uchaines.rsportrait msgid "Portrait" msgstr "" #: uchaines.rsposition msgctxt "uchaines.rsposition" msgid "Position" msgstr "" #: uchaines.rspourlaide msgid "Pour l'aide," msgstr "" #: uchaines.rspourlespceve msgctxt "uchaines.rspourlespceve" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve10 msgctxt "uchaines.rspourlespceve10" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve11 msgctxt "uchaines.rspourlespceve11" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve12 msgctxt "uchaines.rspourlespceve12" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve13 msgctxt "uchaines.rspourlespceve13" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve14 msgctxt "uchaines.rspourlespceve14" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve15 msgctxt "uchaines.rspourlespceve15" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve16 msgctxt "uchaines.rspourlespceve16" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve17 msgctxt "uchaines.rspourlespceve17" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve18 msgctxt "uchaines.rspourlespceve18" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve19 msgctxt "uchaines.rspourlespceve19" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve2 msgctxt "uchaines.rspourlespceve2" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve20 msgctxt "uchaines.rspourlespceve20" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve21 msgctxt "uchaines.rspourlespceve21" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve22 msgctxt "uchaines.rspourlespceve22" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve23 msgctxt "uchaines.rspourlespceve23" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve24 msgctxt "uchaines.rspourlespceve24" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve25 msgctxt "uchaines.rspourlespceve25" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve26 msgctxt "uchaines.rspourlespceve26" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve27 msgctxt "uchaines.rspourlespceve27" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve28 msgctxt "uchaines.rspourlespceve28" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve29 msgctxt "uchaines.rspourlespceve29" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve3 msgctxt "uchaines.rspourlespceve3" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve30 msgctxt "uchaines.rspourlespceve30" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve31 msgctxt "uchaines.rspourlespceve31" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve32 msgctxt "uchaines.rspourlespceve32" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve33 msgctxt "uchaines.rspourlespceve33" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve34 msgctxt "uchaines.rspourlespceve34" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve35 msgctxt "uchaines.rspourlespceve35" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve36 msgctxt "uchaines.rspourlespceve36" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve37 msgctxt "uchaines.rspourlespceve37" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve38 msgctxt "uchaines.rspourlespceve38" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve39 msgctxt "uchaines.rspourlespceve39" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve4 msgctxt "uchaines.rspourlespceve4" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve40 msgctxt "uchaines.rspourlespceve40" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve41 msgctxt "uchaines.rspourlespceve41" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve42 msgctxt "uchaines.rspourlespceve42" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve43 msgctxt "uchaines.rspourlespceve43" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve44 msgctxt "uchaines.rspourlespceve44" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve45 msgctxt "uchaines.rspourlespceve45" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve46 msgctxt "uchaines.rspourlespceve46" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve47 msgctxt "uchaines.rspourlespceve47" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve48 msgctxt "uchaines.rspourlespceve48" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve49 msgctxt "uchaines.rspourlespceve49" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve5 msgctxt "uchaines.rspourlespceve5" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve50 msgctxt "uchaines.rspourlespceve50" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve51 msgctxt "uchaines.rspourlespceve51" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve52 msgctxt "uchaines.rspourlespceve52" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve53 msgctxt "uchaines.rspourlespceve53" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve54 msgctxt "uchaines.rspourlespceve54" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve55 msgctxt "uchaines.rspourlespceve55" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve56 msgctxt "uchaines.rspourlespceve56" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve57 msgctxt "uchaines.rspourlespceve57" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve58 msgctxt "uchaines.rspourlespceve58" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve59 msgctxt "uchaines.rspourlespceve59" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve6 msgctxt "uchaines.rspourlespceve6" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve60 msgctxt "uchaines.rspourlespceve60" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve61 msgctxt "uchaines.rspourlespceve61" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve62 msgctxt "uchaines.rspourlespceve62" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve63 msgctxt "uchaines.rspourlespceve63" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve64 msgctxt "uchaines.rspourlespceve64" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve65 msgctxt "uchaines.rspourlespceve65" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve66 msgctxt "uchaines.rspourlespceve66" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve67 msgctxt "uchaines.rspourlespceve67" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve68 msgctxt "uchaines.rspourlespceve68" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve69 msgctxt "uchaines.rspourlespceve69" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve7 msgctxt "uchaines.rspourlespceve7" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve70 msgctxt "uchaines.rspourlespceve70" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve71 msgctxt "uchaines.rspourlespceve71" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve72 msgctxt "uchaines.rspourlespceve72" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve73 msgctxt "uchaines.rspourlespceve73" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve8 msgctxt "uchaines.rspourlespceve8" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve9 msgctxt "uchaines.rspourlespceve9" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourobtenirl msgctxt "uchaines.rspourobtenirl" msgid "Pour obtenir la formule brute d'une espéce, sélectionnez la puis cliquez sur le bouton ci-contre:" msgstr "" #: uchaines.rspourobtenirl2 msgctxt "uchaines.rspourobtenirl2" msgid " pour obtenir le faisceau:" msgstr "" #: uchaines.rspourslection msgctxt "uchaines.rspourslection" msgid "Pour sélectionner un réactif, faites un clic simple sur sa ligne." msgstr "" #: uchaines.rspourslection2 msgctxt "uchaines.rspourslection2" msgid "Pour sélectionner un réactif, faites un clic simple sur sa ligne." msgstr "" #: uchaines.rspourslection3 msgctxt "uchaines.rspourslection3" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: uchaines.rspourslection4 msgctxt "uchaines.rspourslection4" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: uchaines.rspourslection5 msgctxt "uchaines.rspourslection5" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: uchaines.rspourslection6 msgctxt "uchaines.rspourslection6" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: uchaines.rspower1erargu msgid "power(,) : 1er argument à la puissance second argument" msgstr "" #: uchaines.rsproduit msgid "* : produit" msgstr "" #: uchaines.rsprvisisionsf msgid "prévisisions fournies par le présent logiciel sont purement thermodynamiques)." msgstr "" #: uchaines.rsquantitmol msgid "%sQuantité (mol)" msgstr "" #: uchaines.rsquenenni msgid "Que nenni !" msgstr "" #: uchaines.rsquotient msgid "/ : quotient" msgstr "" #: uchaines.rsractifschois msgctxt "uchaines.rsractifschois" msgid "Réactifs choisis:" msgstr "" #: uchaines.rsractionsetco msgctxt "uchaines.rsractionsetco" msgid "Réactions et constantes" msgstr "" #: uchaines.rsrecalculerau msgctxt "uchaines.rsrecalculerau" msgid "Recalculer automatiquement les échelles verticales" msgstr "" #: uchaines.rsrecherchedan msgctxt "uchaines.rsrecherchedan" msgid "Recherche dans la base" msgstr "" #: uchaines.rsrechercherun msgctxt "uchaines.rsrechercherun" msgid "Rechercher une espéce" msgstr "" #: uchaines.rsremarquecett msgctxt "uchaines.rsremarquecett" msgid "Remarque: cette modification ne perdurera que durant cette session de Dozzzaqueux.." msgstr "" #: uchaines.rsreprsentepar msgctxt "uchaines.rsreprsentepar" msgid "Représentée par:" msgstr "" #: uchaines.rsrponsenontro msgid "Réponse non trouvée au terme des %s itérations." msgstr "" #: uchaines.rsrsultats msgctxt "uchaines.rsrsultats" msgid "Résultats" msgstr "" #: uchaines.rssaisieconduc msgctxt "uchaines.rssaisieconduc" msgid "Saisie conductivité" msgstr "" #: uchaines.rssaisiedelexp msgctxt "uchaines.rssaisiedelexp" msgid "Saisie de l'expression" msgstr "" #: uchaines.rssaisissezlex msgctxt "uchaines.rssaisissezlex" msgid "Saisissez l'expression de la grandeur . Les noms des variables (V,..., c1, c2,...,n1, n2...) et les noms de fonction ont les" msgstr "" #: uchaines.rssauvegarderl msgctxt "uchaines.rssauvegarderl" msgid "Sauvegarder les résultats numériques pour une exploitation avec tableur ou avec Régressi" msgstr "" #: uchaines.rsscript msgctxt "uchaines.rsscript" msgid "script" msgstr "" #: uchaines.rssignificatio msgctxt "uchaines.rssignificatio" msgid "significations indiquées ci-dessous:" msgstr "" #: uchaines.rssignsigne1si msgid "sign() : signe: 1 si argument >0, 0 pour 0, -1 sinon" msgstr "" #: uchaines.rssinhsinushyp msgid "sinh() : sinus hyperbolique" msgstr "" #: uchaines.rssinsinus msgid "sin() : sinus" msgstr "" #: uchaines.rssiteweb msgid "Site Web" msgstr "" #: uchaines.rssivouspensez msgctxt "uchaines.rssivouspensez" msgid "Si vous pensez que certaines ne seront pas présentes (blocage cinétique par exemple), il suffit de les décocher." msgstr "" #: uchaines.rssivoussaisis msgid "Si vous saisissez 0.2mol/L, la concentration sera de 0.2mol/L dans le bêcher (resp. la burette)" msgstr "" #: uchaines.rssivousvoulez msgctxt "uchaines.rssivousvoulez" msgid "Si vous voulez la rendre définitive, modifiez cette espèce dans la base avec Modifbase." msgstr "" #: uchaines.rssolides msgctxt "uchaines.rssolides" msgid "Solides" msgstr "" #: uchaines.rssomme msgid "+ : somme" msgstr "" #: uchaines.rssparateurdci msgctxt "uchaines.rssparateurdci" msgid "Séparateur décimal" msgstr "" #: uchaines.rssparateurdec msgctxt "uchaines.rssparateurdec" msgid "Séparateur de colonnes:" msgstr "" #: uchaines.rssparateurspc msgid "Séparateur spécifié introuvable à la ligne %s" msgstr "" #: uchaines.rssplashscreen msgctxt "uchaines.rssplashscreen" msgid "splashscreen" msgstr "" #: uchaines.rssqrcarr msgid "sqr() : carré" msgstr "" #: uchaines.rssqrtracineca msgid "sqrt() : racine carrée" msgstr "" #: uchaines.rsstyle msgctxt "uchaines.rsstyle" msgid "Style" msgstr "" #: uchaines.rsstyledespoin msgctxt "uchaines.rsstyledespoin" msgid "Style des points" msgstr "" #: uchaines.rsstylepoints msgid "Style points" msgstr "" #: uchaines.rssup1si1erarg msgid "sup(,) : 1 si 1er arg. >2nd, 0 sinon" msgstr "" #: uchaines.rssupe1si1erar msgid "supe(,) : 1 si 1er arg. >=2nd, 0 sinon" msgstr "" #: uchaines.rssuperp msgctxt "uchaines.rssuperp" msgid "Superp." msgstr "" #: uchaines.rssuperposer msgctxt "uchaines.rssuperposer" msgid "Superposer" msgstr "" #: uchaines.rssuperposerla msgid "Superposer à la courbe une courbe expérimentale ou calculée" msgstr "" #: uchaines.rssupprimer msgid "Supprimer" msgstr "" #: uchaines.rssupprimercet msgid "Supprimer cette grandeur" msgstr "" #: uchaines.rssynonyme msgid "Synonyme" msgstr "" #: uchaines.rssyntaxedeval msgid "Syntaxe de valeur numérique incorrecte..." msgstr "" #: uchaines.rssyntaxeillga msgid "Syntaxe illégale pour un des nombres de moles !" msgstr "" #: uchaines.rssyntaxeincor msgid "Syntaxe incorrecte pour xmin." msgstr "" #: uchaines.rssyntaxeincor2 msgid "Syntaxe incorrecte pour xmax." msgstr "" #: uchaines.rssyntaxeincor3 msgid "Syntaxe incorrecte pour ymindroit." msgstr "" #: uchaines.rssyntaxeincor4 msgid "Syntaxe incorrecte pour ymaxdroit." msgstr "" #: uchaines.rssyntaxeincor5 msgid "Syntaxe incorrecte pour ymingauche." msgstr "" #: uchaines.rssyntaxeincor6 msgid "Syntaxe incorrecte pour ymaxgauche." msgstr "" #: uchaines.rssyntaxeincor7 msgid "Syntaxe incorrecte pour le volume" msgstr "" #: uchaines.rssyntaxeincor8 msgid "Syntaxe incorrecte." msgstr "" #: uchaines.rssyntaxeincor9 msgid "Syntaxe incorrecte pour la conductivité" msgstr "" #: uchaines.rstableurtexte msgid "Tableur texte (*.txt;*.csv)|*.txt;*.csv|Régressi (*.rw3)|*.rw3" msgstr "" #: uchaines.rstableurtexte2 msgid "Tableur texte (*.csv;*.txt)|*.csv;*.txt|Régressi (*.rw3)|*.rw3" msgstr "" #: uchaines.rstailledespoi msgctxt "uchaines.rstailledespoi" msgid "Taille des points:" msgstr "" #: uchaines.rstailledespoi2 msgctxt "uchaines.rstailledespoi2" msgid "Taille des points" msgstr "" #: uchaines.rstailleendela msgctxt "uchaines.rstailleendela" msgid "Taille (en % de la page)" msgstr "" #: uchaines.rstaillepoints msgid "Taille points" msgstr "" #: uchaines.rstantangente msgid "tan() : tangente" msgstr "" #: uchaines.rstemporisatio msgctxt "uchaines.rstemporisatio" msgid "Temporisation film" msgstr "" #: uchaines.rstemporisatio2 msgctxt "uchaines.rstemporisatio2" msgid "Temporisation" msgstr "" #: uchaines.rstemprature msgctxt "uchaines.rstemprature" msgid "Température=" msgstr "" #: uchaines.rstitre msgctxt "uchaines.rstitre" msgid "Titre" msgstr "" #: uchaines.rstitredugraph msgctxt "uchaines.rstitredugraph" msgid "Titre du graphe" msgstr "" #: uchaines.rstitredugraph2 msgctxt "uchaines.rstitredugraph2" msgid "Titre du graphe:" msgstr "" #: uchaines.rstoutcocher msgctxt "uchaines.rstoutcocher" msgid "Tout cocher" msgstr "" #: uchaines.rstoutdcocher msgctxt "uchaines.rstoutdcocher" msgid "Tout décocher" msgstr "" #: uchaines.rstoutsupprime msgctxt "uchaines.rstoutsupprime" msgid "Tout supprimer" msgstr "" #: uchaines.rstracdescourb msgctxt "uchaines.rstracdescourb" msgid "Tracé des courbes" msgstr "" #: uchaines.rstraces msgid "Traces" msgstr "" #: uchaines.rstracesvaleur msgid ": traces (valeur non significative)" msgstr "" #: uchaines.rstracesvaleur2 msgid " traces (valeur non significative) " msgstr "" #: uchaines.rstracimpossib msgid "Tracé impossible car:" msgstr "" #: uchaines.rstruncpartiee msgid "trunc() : partie entière" msgstr "" #: uchaines.rstypedecompar msgctxt "uchaines.rstypedecompar" msgid "Type de comparaison" msgstr "" #: uchaines.rstypededonne msgctxt "uchaines.rstypededonne" msgid "Type de donnée" msgstr "" #: uchaines.rstypedeladonn msgid "Type de la donnée de la colonne %s" msgstr "" #: uchaines.rstypedeladonn2 msgid "Type de la donnée %s" msgstr "" #: uchaines.rstypedesuited msgctxt "uchaines.rstypedesuited" msgid "Type de suite de valeurs" msgstr "" #: uchaines.rsuneouplusieu msgctxt "uchaines.rsuneouplusieu" msgid "Une ou plusieurs des simulations faites depuis le dernier lancement de Dozzzaqueux" msgstr "" #: uchaines.rsuneseulesimu msgid "Une seule simulation effectuée, rien à superposer !" msgstr "" #: uchaines.rsunitafficher msgctxt "uchaines.rsunitafficher" msgid "Unité à afficher sur l'axe des abscisses:" msgstr "" #: uchaines.rsunitafficher2 msgctxt "uchaines.rsunitafficher2" msgid "Unité à afficher sur l'axe gauche des ordonnées:" msgstr "" #: uchaines.rsunitafficher3 msgctxt "uchaines.rsunitafficher3" msgid "Unité à afficher sur l'axe droit des ordonnées:" msgstr "" #: uchaines.rsunitsetlabel msgctxt "uchaines.rsunitsetlabel" msgid "Unités et labels des axes:" msgstr "" #: uchaines.rsunitslabels msgctxt "uchaines.rsunitslabels" msgid "Unités/labels" msgstr "" #: uchaines.rsunnombredemo msgctxt "uchaines.rsunnombredemo" msgid "Un nombre de moles ne peut être négatif! Pour éliminer cette espéce, cliquez sur %sSupprimer%s." msgstr "" #: uchaines.rsunnombredemo2 msgctxt "uchaines.rsunnombredemo2" msgid "Un nombre de moles ne peut être négatif! Pour éliminer cette espéce, cliquez sur %sSupprimer%s." msgstr "" #: uchaines.rsunouplusieur msgid "Un ou plusieurs espaces" msgstr "" #: uchaines.rsutiliserdeby msgctxt "uchaines.rsutiliserdeby" msgid "Utiliser Debye et Hückel" msgstr "" #: uchaines.rsv msgctxt "uchaines.rsv" msgid "V=" msgstr "" #: uchaines.rsv0volumedela msgid "V0: volume de la solution présente initialement dans le bécher (en mL)" msgstr "" #: uchaines.rsvaleurdeconc msgid "Valeur de concentration de syntaxe incorrecte" msgstr "" #: uchaines.rsvaleurdepas0 msgid "Valeur de pas <=0 ou =1 sans intérêt..." msgstr "" #: uchaines.rsvaleurdepasn msgid "Valeur de pas nulle sans intérêt..." msgstr "" #: uchaines.rsvaleursnumri msgctxt "uchaines.rsvaleursnumri" msgid "Valeurs numériques séparées par:" msgstr "" #: uchaines.rsvalidationde msgid "Validation des espéces présentes à l'équilibre..." msgstr "" #: uchaines.rsvalidationde2 msgid "Validation des constantes de réaction..." msgstr "" #: uchaines.rsvalider msgctxt "uchaines.rsvalider" msgid "Valider" msgstr "" #: uchaines.rsvalideretlan msgctxt "uchaines.rsvalideretlan" msgid "Valider et lancer les calculs>>>>>>" msgstr "" #: uchaines.rsvalideretpas msgctxt "uchaines.rsvalideretpas" msgid "Valider et passer à la burette >>>>>" msgstr "" #: uchaines.rsvalideretpas2 msgctxt "uchaines.rsvalideretpas2" msgid "Valider et passer au recensement >>>>>" msgstr "" #: uchaines.rsvalideretpas3 msgctxt "uchaines.rsvalideretpas3" msgid "Valider et passer aux constantes de réaction >>>>>" msgstr "" #: uchaines.rsvaliderettra msgctxt "uchaines.rsvaliderettra" msgid "Valider et tracer les courbes >>>>>" msgstr "" #: uchaines.rsvariablesuti msgctxt "uchaines.rsvariablesuti" msgid "Variables utilisables:" msgstr "" #: uchaines.rsversion30cod msgctxt "uchaines.rsversion30cod" msgid "Version 3.51 du 13/07/2017, codée en Lazarus" msgstr "" #: uchaines.rsversiondelab msgctxt "uchaines.rsversiondelab" msgid "Version de la base" msgstr "" #: uchaines.rsversiondu msgid "Version %s du %s" msgstr "" #: uchaines.rsverticale msgctxt "uchaines.rsverticale" msgid "Verticale" msgstr "" #: uchaines.rsverticalemen msgctxt "uchaines.rsverticalemen" msgid "Verticalement" msgstr "" #: uchaines.rsverticalenfo msgid "Vertical en fonction du pH (si pH en ordonnée)" msgstr "" #: uchaines.rsveuillezcomp msgctxt "uchaines.rsveuillezcomp" msgid "Veuillez compléter les informations suivantes:" msgstr "" #: uchaines.rsvider msgctxt "uchaines.rsvider" msgid "Vider" msgstr "" #: uchaines.rsvirgulerecom msgid "Virgule (recommandé pour OpenOffice/Staroffice)" msgstr "" #: uchaines.rsvoicilaliste msgctxt "uchaines.rsvoicilaliste" msgid "Voici la liste des espéces susceptibles d'être présentes à l'équilibre." msgstr "" #: uchaines.rsvoiciles4pre msgctxt "uchaines.rsvoiciles4pre" msgid "Voici les 4 premières lignes du fichier:" msgstr "" #: uchaines.rsvoiciunensem msgctxt "uchaines.rsvoiciunensem" msgid "Voici un ensemble d'équations de réactions linéairement indépendantes entre elles décrivant le système chimique." msgstr "" #: uchaines.rsvolumebcherm msgid "Volume bécher (mL)" msgstr "" #: uchaines.rsvolumeinitia msgctxt "uchaines.rsvolumeinitia" msgid "Volume initial=" msgstr "" #: uchaines.rsvolumemaxima msgid "Volume maximal burette (mL)" msgstr "" #: uchaines.rsvolumemaxima2 msgctxt "uchaines.rsvolumemaxima2" msgid "Volume maximal à verser=" msgstr "" #: uchaines.rsvolumetotalm msgid "Volume total: %smL" msgstr "" #: uchaines.rsvolumevers msgid "Volume versé" msgstr "" #: uchaines.rsvousavezdjen msgid "Vous avez déjà entré ce réactif !" msgstr "" #: uchaines.rsvouspouvezmo msgctxt "uchaines.rsvouspouvezmo" msgid "Vous pouvez modifier les logarithmes des constantes d'équilibre si vous pensez en avoir de meilleures estimations." msgstr "" #: uchaines.rsvtotalsommed msgid "Vtotal: somme des deux précédents (en mL)" msgstr "" #: uchaines.rsvvolumeverse msgid "V: volume versé (en mL)" msgstr "" #: uchaines.rsx10 msgctxt "uchaines.rsx10" msgid "x10" msgstr "" #: uchaines.rsxmax msgctxt "uchaines.rsxmax" msgid "Xmax=" msgstr "" #: uchaines.rsxmin msgctxt "uchaines.rsxmin" msgid "Xmin=" msgstr "" #: uchaines.rsy msgid "y" msgstr "" #: uchaines.rsymax msgctxt "uchaines.rsymax" msgid "Ymax=" msgstr "" #: uchaines.rsymin msgctxt "uchaines.rsymin" msgid "Ymin=" msgstr "" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.ca.po��������������������������������������������������������0000750�0001750�0001750�00000076172�11214023776�021522� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" "PO-Revision-Date: 2008-11-26 11:49+0100\n" "Last-Translator: Antoni Clavell <antoni@clavell.org>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "Navegador %s%s%s no executable." #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "Navegador %s%s%s no trobat." #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "Error en executar %s%s%s:%s%s" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "No puc trobar un navegador HTML" #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "No s'ha trobat navegador HTML .%sSisplau definiu-ne un en Ajuda -> Configura ajuda -> Visors" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "La base de dades de l'ajuda %s%s%s no ha pogut trobar el fitxer %s%s%s." #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "La macro %s en BrowserParams (paràmetres navegador) serà substituïda per la URL." #: lclstrconsts.ifsalt msgid "Alt" msgstr "Alt" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "Ctrl" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "Accepta" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "tecla d'aplicació" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "Espai enrere" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "Majúscula" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "Neteja" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "Control" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Converteix" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "Esborra" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "Avall" #: lclstrconsts.ifsvk_end msgid "End" msgstr "Fi" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "Escapa" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "Executa" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "Final" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "Hanja" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Ajuda" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "Inici" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "Insereix" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "Junja" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "Kana" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Botó esquerre del ratolí" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "Esquerra" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "tecla windows esquerra" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Butó del mig del ratolí" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "Menú" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "Canvi de mode" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "Pròxim" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "No convertible" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "Teclat numèric" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "Teclat numèric %d" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "Tecla de pausa" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "Imprimeix" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "Previ" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Botó dret del ratolí" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "Retorn" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "Dreta" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "tecla windows dreta" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "Explora" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "Selecciona" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "Majúsc." #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "Captura" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "Espaiador" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "Tab" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "Desconegut" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "Amunt" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Recurs %s no trobat" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Un control no pot cridar-se a ell mateix" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Tots els fitxers (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "Enrere" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "Mapes de bits" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "" #: lclstrconsts.rsblank msgid "Blank" msgstr "En blanc" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Calculadora" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "No es pot focalitzar" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "El marc no permet el dibuix" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "Sensible a majúsc-minúsc." #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Creant un error gdb capturable:" #: lclstrconsts.rscursor msgid "Cursor" msgstr "" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "" #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "permisos usuari grup mida dia hora" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "Esborra" #: lclstrconsts.rsdirection msgid "Direction" msgstr "Direcció" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "&Directori" #: lclstrconsts.rsdocking msgid "Docking" msgstr "Fixa" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "" #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Error en crear dispositiu de context per a %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "ERROR en LCL" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Error ocorregut en %s a l'%sAdreça %s%s Estructura %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Error en llegir %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "Error en desar el mapa de bits" #: lclstrconsts.rsexception msgid "Exception" msgstr "Excepció" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Cal que el directori existeixi" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "El directori \"%s\" no existeix." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "El fitxer \"%s\" ja existeix. El sobrescric ?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "El fitxer ha d'existir" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "El fitxer \"%s\" no existeix." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "El fitxer \"%s\" no és d'escriptura." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "No es pot escriure aquest fitxer" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Anomena i desa el fitxer" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Obre fitxer existent" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Sobrescric el fitxer?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "El camí ha d'existir" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "El camí \"%s\" no existeix." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Selecciona directori" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(fitxer no trobat: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Informació del fitxer" #: lclstrconsts.rsfind msgid "Find" msgstr "Busca" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "Busca més" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols (columnes fixades) no poden ser>= ColCount (recompte de columnes)" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows (files fixades) no poden ser >= RowCount (recompte de files)" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Formació del corrent \"%s\" amb error: %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "Endavant" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug flags Engega missatges específics de GDK de traça/depuració." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug flags Tanca els missatges específics GDK de traça/depuració." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings Els errors i advertències generats per Gtk+/GDK aturaran l'aplicació." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "No existeix fitxer de la graella" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "Índex de la graella fora de rang" #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex no pot ser menor que un ítem de menú GroupIndex anterior." #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Filtre:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "Historial:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class classname Seguint les convencions Xt, la classe d'un programa és el nom del programa amb el caràcter inicial en majúscula. Per exemple, el nom de classe (classname) per al gimp és \"Gimp\". Si --class s'especifica, la classe del programa serà posada com \"classname\"." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags Mostra missatges Gtk+ específics de traça/depuració." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Connecta al servidor X especificat, on \"h\" és el nom del host, \"s\" és el número del servidor (usualment 0), i \"d\" és el número a mostrar (típicament omès). Si --display no s'ha especificat,s'usarà l'entorn variable DISPLAY." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module module Carrega el mòdul especificat a l'engegar." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "--name programe Posa el nom del programa a \"progname\". Si no s'ha especificat, el nom serà posat a ParamStr(0)." #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug flags Tanca els missatges Gtk+ específics de traça/depuració." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient No posis ordre transient per a formes modals." #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Desactiva l'ús de l'extensió X de memòria compartida." #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Crida XSynchronize (display, True) un cop la connexió al Xserver ha estat establerta. Això facilita que la depuració d'errors del protocol X sigui més senzilla, perquè la demanda de memòria cau X serà desactivad i els errors X seran rebuts immediatament després que la demanda del protocol que ha generat l'error ha estat processat pel servidor X." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "Ja enregistrat" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "No trobo ajuda contextual" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "Base de dades de l'ajuda no trobada" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "Error d'ajuda" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "Context d'ajuda %s no trobat." #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "Context d'ajuda %s no trobat en la base de dades %s%s%s." #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "La base de dades de l'ajuda %s%s%s no ha trobat un visor per una pàgina d'ajuda del tipus %s" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "Base de dades de l'ajuda %s%s%s no trobada" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "Paraula clau d'ajuda %s%s%s no trobada" #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "Paraula clau d'ajuda %s%s%s no trobada en la base de dades %s%s%s." #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "El node d'ajuda %s%s%s no té base de dades d'ajuda" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "No s'ha trobat cap ajuda per a la línia %d, columna %d de %s." #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "No hi ha nodes d'ajuda disponibles" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "Ajuda no trobada" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "No enregistrat" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "Error del selector d'ajuda" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "No hi ha cap visor per al tipus d'ajuda %s%s%s" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "Error del visor d'ajuda" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "Visor d'ajuda no trobat" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "Icona" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s índex %d fora de límits 0-%d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Índex fora de rang Cel·lal[Col=%d Fila=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "Insereix" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Data no vàlida: %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "Data no vàlida: %s. Cal que estigui entre %s i %s" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "Corrent d'objecte de forma no vàlid" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Valor de la propietat no vàlid" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Corrent amb format invàlid" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s ja està associat amb %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "L'índex de la llista excedeix els límits (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "Cal que la llista sigui buida" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Cancel·la" #: lclstrconsts.rsmball msgid "&All" msgstr "&Tot" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Cancel·la" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "Tan&ca" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "&Ajuda" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Ignora" #: lclstrconsts.rsmbno msgid "&No" msgstr "&No" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "No a tot" #: lclstrconsts.rsmbok msgid "&OK" msgstr "D'&acord" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "&Torna-ho a provar" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Sí" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "Sí a &tot" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "Menú" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr " modificat " #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Confirmació" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Personalitza" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Error" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Informació" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Avís" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "Pròxim" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Fitxer de graella no vàlid" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "No hi és com a objecte o dispositiu. Sisplau, comproveu si la unitat \"interfaces\" (interfícies) fou afegida a la clàusula d'usos del programa." #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Selecciona una data" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "Mapa de píxels" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "PNG (Portable Network Graphic)" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #, fuzzy #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%s%sPolseu Ok per ignorar, tot arriscant de corrompre les dades.%sPolseu Cancel per interrompre el programa" #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "Previ" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "La propietat %s no existeix" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Substitueix" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Substitueix-ho tot" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Recurs %s no trobat" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Propietat de la barra de desplaçament fora de mida" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Tria color" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Selecciona tipus de lletra" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "" #: lclstrconsts.rssize msgid " size " msgstr " mida " #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "Text" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "No puc carregar la font per defecte" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "Error desconegut. Sisplau reporteu-lo" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Extensió d'imatge desconeguda" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Format de mapa de bits no suportat" #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Format del portaretalls no suportat: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " Avís: hi ha %d DCs no llançats, tot seguit es mostra informació detallada:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " Avís: Hi ha %d Objectes-GDI no llançats, tot seguit es mostra informació detallada:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " Avís: Hi ha %d missatges perduts a la cua!, els allibero" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " Avís: s'han perdut %d estructures TimerInfo, les allibero" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr "Avís: S'han deixat %s enllaços a missatge LM_PAINT/LM_GtkPAINT, sense eliminar" #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "Només mots sencers" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Error:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Avís:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "No puc accedir a una finestra invisible o tancada" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Menús duplicats" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Creació d'acció no vàlida" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Enumeració d'acció no vàlida" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Enregistrament d'acció no vàlid" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Acció de desenregistrar invàlida" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "El caràcter de la màscara \"%s\" no és vàlid!" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Mida de la imatge no vàlida" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Índex de llista d'imatges no vàlid" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Índex de menú fora de rang" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "L'opció no hi és al menú" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "El submenú no és al menú" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "No hi ha cap forma MDI present" #: lclstrconsts.snotimers msgid "No timers available" msgstr "No hi ha rellotges disponibles" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.de.po��������������������������������������������������������0000750�0001750�0001750�00000101057�11214023776�021516� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Project-Id-Version: \n" "POT-Creation-Date: \n" "PO-Revision-Date: 2009-04-30 20:23+0100\n" "Last-Translator: Joerg Braun <jb@toolbox-mag.de>\n" "Language-Team: Deutsch <lazarus@miraclec.com>\n" "MIME-Version: 1.0\n" "X-Poedit-Language: German\n" "X-Poedit-Country: GERMANY\n" "X-Poedit-SourceCharset: utf-8\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "Browser %s%s%s nicht ausführbar." #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "Browser %s%s%s nicht gefunden." #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "Fehler beim Ausführen von %s%s%s:%s%s" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "Kann den HTML-Browser nicht finden." #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "Kein HTML-Browser gefunden.%sBitte definieren Sie ihn in Hilfe -> Hilfe konfigurieren -> Betrachter" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "Die Hilfedatenbank %s%s%s konnte die Datei %s%s%s nicht finden." #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "Das Makro %s in BrowserParams wird durch den URL ersetzt." #: lclstrconsts.ifsalt msgid "Alt" msgstr "Alt" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "Strg" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "Übernehmen" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "Programmtaste" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "Rückschritt" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "Abbrechen" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "Großbuchstabe" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "Löschen" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "Steuerelement" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Konvertiert" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "Löschen" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "Hinunter" #: lclstrconsts.ifsvk_end msgid "End" msgstr "Ende" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "Escape" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "Ausführen" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "Schluß" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "Hanja" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Hilfe" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "Pos1" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "Einfügen" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "Junja" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "Kana" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Linke Maustaste" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "Links" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "Linke Windows-Taste" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Mittlere Maustaste" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "Menü" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "Modusänderung" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "Weiter" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "Nichtkonvertiert" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "NumLock" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "Zahlenblock %s" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "Pause-Taste" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "Druck" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "Zurück" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Rechte Maustaste" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "Eingabe" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "Rechts" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "Rechte Windows-Taste" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "Rollen" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "Auswählen" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "Umsch" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "Auszug" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "Leertaste" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "Tabulator" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "Unbekannt" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "Hoch" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Ressource %s nicht gefunden" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "Dunkl. 3D-Schatten" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "3D-Licht" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Ein Control kann nicht sein eigener Vorfahr sein" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "Aktiver Rand" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "Aktive Titelleiste" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Alle Dateien (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "Arbeitsbereich" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "Aquamarin" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "Desktop" #: lclstrconsts.rsbackward msgid "Backward" msgstr "Rückwärts" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "Bitmaps" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "Schwarz" #: lclstrconsts.rsblank msgid "Blank" msgstr "Leer" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "Blau" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "Schalterfläche" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "Schalter-Hervorheb." #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "Schalter-Schatten" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "Schalter-Text" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Rechner" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "Abbrechen" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Kann nicht fokussieren" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Canvas erlaubt kein Zeichnen" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "Titelleistentext" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "Schreibweisenabhängig" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "Cremefarbig" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Erzeuge GDB-fangbaren Fehler:" #: lclstrconsts.rscursor msgid "Cursor" msgstr "Zeiger" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "Eigene ..." #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "Voreingestellt" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "Genehmigung User GruppeGröße DatumZeit" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "Datensatz löschen?" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "Löschen" #: lclstrconsts.rsdirection msgid "Direction" msgstr "Richtung" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "&Verzeichnis" #: lclstrconsts.rsdocking msgid "Docking" msgstr "Andocken" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "Doppeltes Icon-Format" #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "Bearbeiten" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "Fehler" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Fehler beim Erzeugen des Gerätekontexts für %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "FEHLER in der LCL:" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Fehler aufgetreten in %s bei %sAdresse %s%s Frame %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Fehler beim Lesen %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "Fehler beim Speichern der Bitmap." #: lclstrconsts.rsexception msgid "Exception" msgstr "Exception" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Verzeichnis muß vorhanden sein" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "Das Verzeichnis \"%s\" ist nicht vorhanden." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "Die Datei \"%s\" ist bereits vorhanden. Überschreiben?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Datei muß vorhanden sein" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "Die Datei \"%s\" ist nicht vorhanden." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "Die Datei \"%s\" ist schreibgeschützt." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "Datei ist nicht beschreibbar" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Datei sichern als" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Vorhandene Datei öffnen" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Datei überschreiben?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "Pfad muß angelegt sein" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "Der Pfad \"%s\" ist nicht vorhanden." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Verzeichnis auswählen" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(Datei nicht gefunden: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Dateiinformation" #: lclstrconsts.rsfind msgid "Find" msgstr "Suchen" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "Weitersuchen" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "Erster" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols kann nicht größer/gleich ColCount sein" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows kann nicht größer/gleich RowCount sein" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "Form" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Form-Streaming \"%s\" Fehler: %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "Vorwärts" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "Purpur" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug flags Besondere GDK-Trace/Debug-Meldungen anschalten." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug flags Besondere GDK-Trace/Debug-Meldungen abschalten." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings Von Gtk+/GDK generierte Warnungen und Fehler halten das Programm an." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "Gradient der aktiven Titelleiste" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "Gradient der inaktiven Titelleiste" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "Grau" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "Ausgegrauter Text" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "Grün" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "Grid-Datei fehlt" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "Gitterindex außerhalb des Bereichs." #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex darf nicht kleiner als der GroupIndex eines vorherigen Menüeintrags sein" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Filter:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "Verlauf:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class classname Den Xt-Konventionen folgend, entspricht der Klassenname dem Programmnamen mit dem ersten Buchstaben in Großschreibung. Beispielsweise ist der Klassenname von gimp \"Gimp\". Wenn --class angegeben ist, wird die Klasse des Programme auf \"classname\" gesetzt." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags Anschalten spezifischer Trace-/Debug-Meldungen des Gtk+." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Anbinden an den angegebenen X-Server wobei \"h\" für den Hostnamen steht, \"s\" die Nummer des Server ist (normalerweise 0) und \"d\" die Nummer des Displays (typischerweise weggelassen). Ist --display nicht angegeben, gilt der Wert der Umgebungsvariable DISPLAY." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module module Das abgegebene Modul beim Starten laden." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "--name programe Setzen des Programmnamens auf \"progname\". Ist nichts angegeben, wird der Name auf ParamStrUTF8(0) gesetzt." #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug flags Besondere Gtk+-Trace-/Debug-Meldungen abschalten." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient Transiente Reihenfolge für modale Formulare nicht setzen." #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Abschalten der Verwendung der Shared-Memory-Erweiterung von X" #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Aufruf von XSynchronize (Display, True) nachdem die XServer-Verbindung zustandegekommen ist. Dies erleichtert das Debugging des X-Protokolls, weil die X-Anfragepufferung abgeschaltet ist und X-Fehler sofort ankommen, nachdem die Anfrage, die den Fehler erzeugt hat, beim X-Server angekommen ist." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "%s: Bereits registriert" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "Hilfekontext nicht gefunden" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "Hilfedatenbank nicht gefunden" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "Hilfefehler" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "Hilfekontext %s nicht gefunden." #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "Hilfekontext %s nicht in der Datenbank %s%s%s gefunden." #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "Die Hilfedatenbank %s%s%s fand keinen Betrachter für eine Hilfeseite des Typs %s" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "Hilfedatenbank %s%s%s nicht gefunden" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "Hilfeschlüsselwort %s%s%s nciht gefunden." #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "Hilfeschlüsselwort %s nicht in der Datenbank %s%s%s gefunden." #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "Hilfeknoten %s%s%s besitzt keine Hilfedatenbank" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "Keine Hilfe für Zeile %d, Spalte %d von %s gefunden." #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "Keine Hilfeknoten verfügbar" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "Hilfe nicht gefunden" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "%s: Nicht registriert" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "Hilfeauswahlfehler" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "Es gibt keinen Viewer für den Hilfetyp %s%s%s" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "Hilfebetrachterfehler" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "Hilfebetrachter nicht gefunden" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "Hervorhebung" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "Hervorgehob. Text" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "Kräftig hervorgehoben" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "OSX-Icon-Ressource" #: lclstrconsts.rsicon msgid "Icon" msgstr "Symbol" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "Icon-Bild darf nicht leer sein" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "Icon-Bild muß das gleiche Format haben" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "Kann Format des Icon-Bilds nicht ändern" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "Icon-Bild muß die gleiche Größe haben" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "Kann Größe des Icon-Bilds nicht ädnern" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "Icon besitzt kein gültiges Bild" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "Inaktiver Rand" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "Inaktive Titelleiste" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "Inaktive Titelleiste" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s Index %s außerhalb des Bereichs 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Index außerhalb des Bereichs Zelle[Spalte=%s Reihe=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "Info-Hintergrund" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "Infotext" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "Einfg" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Ungültiges Datum: %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "Ungültiges Datum: %s. Es muß zwischen %s und %s sein" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "ungültiger Formularobjekt-Stream" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Ungültiger Eigenschaftenwert" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Ungültiges Streamformat" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s ist bereits mit %s verbunden" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "Jpint Picture Expert Group" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "Letzter" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "Hellgrün" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "Listenindex überschreitet Grenzen (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "Zeile muß leer sein" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "Kastanienbraun" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Abbruch" #: lclstrconsts.rsmball msgid "&All" msgstr "&Alle" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Abbrechen" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "&Schließen" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "&Hilfe" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Übergehen" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Nein" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Immer Nein" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&Ok" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "&Wiederholen" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Ja" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "&Alles bestätigen" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "Mittelgrau" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "Menübalken" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "Menü" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "Menühervorhebung" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "Menütext" #: lclstrconsts.rsmodified msgid " modified " msgstr " geändert " #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "\"Geldgrün\"" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Bestätigung" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Spezial" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Fehler" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Information" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Warnung" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "Marineblau" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "Nächster" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "Keine" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Keine gültige Grid-Datei" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "Kein Widgetset-Objekt. Bitte überprüfen Sie, ob die Unit \"Interfaces\" in der Uses-Anweisung des Programms enthalten ist." #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "Oliv" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Datum auswählen" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "Pixmap" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "Portable Bitmap" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "Portable Graymap" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "PNG-Grafik" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "Portable Pixmap" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "Übertragen" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%sOk übergeht und riskiert Dateninkonsistenz.%sMit Abbrechen wird das Programm abgebrochen." #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "Vorher" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "Eigenschaft %s fehlt" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "Purpur" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "Endupdate wenn kein Update läuft" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "Kann Bild während des Updates nicht sichern" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "Kann nicht mit dem kompletten Aktualisieren beginnen wenn ein Canvas-Update durchgeführt wird" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "Rot" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "Auffrischen" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Ersetzen" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Alle ersetzen" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Ressource %s nicht gefunden" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "Scrollbalken" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Scrollbar-Eigenschaft außerhalb des Bereichs" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Farbe auswählen" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Schriftart auswählen" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "Silber" #: lclstrconsts.rssize msgid " size " msgstr " Größe " #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "Himmelblau" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "Türkiss" #: lclstrconsts.rstext msgid "Text" msgstr "Text" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Kann Default-Schriftart nicht laden" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "Unbekannter Fehler, bitte melden Sie diesen Bug." #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Unbekannte Bilddateiendung" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Nicht unterstütztes Bitmap-Format" #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Nicht unterstütztes Clipboard-Format: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr "WARNUNG: Es gibt %d nicht freigegebene DCs. Es folgt ein detaillierter Dump:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr "WARNUNG: Es gibt %d nicht freigegebene GDI-Objekte. Es folgt ein detaillierter Dump:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr "WARNUNG: Es sind %d Meldungen in der Queue übrig. Sie werden freigegeben" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr "WARNUNG: Es sind %d Timerinfo-Strukturen übrig, sie werden freigegeben" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr "WARNUNG: Es sind %s nicht entfernte LM_PAINT/LM_GtkPAINT-Meldungs-Links übrig." #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "Weiß" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "Nur ganze Worte" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Fehler:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Warnung:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "Fenster" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "Fensterrahmen" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "Fenstertext" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "Gelb" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Kann abgeschaltetes oder unsichtbares Fenster nicht fokussieren" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Doppelte Menüs" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Ungültige Action-Erzeugung" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Ungültige Action-Numerierung" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Ungültige Action-Registrierung" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Ungültige Action-Registierungsaufhebung" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "Der Zeichensatz in der Maske \"%s\" ist ungültig!" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Ungültige Bildgröße" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Ungültiger Bildlistenindex" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Menüindex außerhalb des Bereichs" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "Menüeintrag ist NIL" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Untermenü ist nicht im Menü" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "Kein MDI-Formular vorhanden" #: lclstrconsts.snotimers msgid "No timers available" msgstr "Keine Timer verfügbar" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "Falscher Token-Typ: %s erwartet" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "Ungültige Gleitkommazahl: %s" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "Ungültiger Integerzahl: %s" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr " (bei %d,%d, Stream-Offset %.8x)" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "Nicht abgeschlossener Byte-Wert" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "Nicht abgeschlossene Zeichenkette " #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "Falscher Token: %s erwartet, %s gefunden" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "Falscher Token-Typ: %s erwartet, %s gefunden" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.sk.po��������������������������������������������������������0000750�0001750�0001750�00000074173�11214023776�021553� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of lclstrconsts.po to Slovenský # Slavko <slavino@slavino.sk>, 2008. msgid "" msgstr "" "Project-Id-Version: lclstrconsts\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-02-02 16:22+0100\n" "PO-Revision-Date: 2008-11-16 19:50+0100\n" "Last-Translator: Slavko <slavino@slavino.sk>\n" "Language-Team: Slovenský <sk@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: KBabel 1.11.4\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "Prehliadač %s%s%s nie je spustiteľný." #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "Prehliadač %s%s%s nenájdený." #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "Chyba·pri·vykonávaní·%s%s%s:%s%s" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "nemožno nájsť prehliadač HTML." #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "Nebol nájdený prehliadač HTML.%sProsím definujte v Pomoc->Konfigurovať pomoc->Prehliadače" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "Databáza pomocníka %s%s%s nemohla nájsť súbor %s%s%s." #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "Makro %s v BrowserParams bude nahradené URL." #: lclstrconsts.ifsalt msgid "Alt" msgstr "Alt" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "Ctrl" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "Backspace" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "Zrušiť" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "Veľkým" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "Vyčistiť" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "Prvok" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Konvertovať" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "Zmazať" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "Dole" #: lclstrconsts.ifsvk_end msgid "End" msgstr "End" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "Escape" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "Spustiť" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "Hanja" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Pomoc" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "Home" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "Insert" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "Junja" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "Kana" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Ľavé tlačítko myši" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "ľavý Win kláves" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Stredné tlačítko·myši" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "Menu" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "Ďalej" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "Numlock" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "Numerická klávesnica %d" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "Kláves Pause" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "Tlačiť" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "Pred" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Pravé tlačítko·myši" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "pravý Win kláves" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "Vybrať" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "Shift" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "Snímka" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "Medzerník" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "Tab" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "Neznámy" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Zdroj %s nenájdený" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Prvok nemôže mať sám seba za rodiča" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Všetky súbory (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "Spätný" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "Bitmapy" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "" #: lclstrconsts.rsblank msgid "Blank" msgstr "Prázdne" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Kalkulačka" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "Zrušiť" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Nemožno zamerať" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Plátno nedovoľuje kreslenie" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "Citlivé na veľkosť" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "" #: lclstrconsts.rscursor msgid "Cursor" msgstr "Kurzor" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "Vlastné ..." #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "povolenia používateľ skupina veľkosť dátum čas" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "Zmazať záznam?" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "Delete" #: lclstrconsts.rsdirection msgid "Direction" msgstr "Smer" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "A&dresár" #: lclstrconsts.rsdocking msgid "Docking" msgstr "Dokovanie" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "Zdvojený formát ikony." #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "Upraviť" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "Chyba" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Chyba vytvárania kontextu zariadenie pre %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "Chyba v LCL:" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Nastala chyba v %s na %sAdresa %s%s Rámec %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Chyba čítania %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "Chyba pri ukladaní bitmapy." #: lclstrconsts.rsexception msgid "Exception" msgstr "Výnimka" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Adresár musí existovať" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "Adresár \"%s\" neexistuje." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "Súbor \"%s\" už existuje. Prepísať?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Súbor musí existovať" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "Súbor \"%s\" neexistuje." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "Súbor \"%s\" nie·je·zapisovateľný." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "Súbor nie je zapisovateľný" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Uložiť súbor ako" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Otvoriť existujúci súbor" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Prepísať súbor?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "Cesta musí existovať" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "Cesta \"%s\" neexistuje." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Výber adresára" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(súbor nenájdený: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Súborové informácie" #: lclstrconsts.rsfind msgid "Find" msgstr "Hľadať" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "Hľadať ďalej" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "Prvý" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols nemôže byť >= ColCount" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows nemôže byť >= RowCount" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Chyba streamovania formulára \"%s\": %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "" #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "" #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "" #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "Súbor mriežky neexistuje" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "Index mriežky mimo rozsahu." #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex nemmôže byť menší ako GroupIndex predchádzajúcej položky menu" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Filter:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "História:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "" #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "" #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "" #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "" #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "" #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "" #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "" #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "" #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "%s: Už je registrovaný" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "Kontextová pomoc nenájdená" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "Databáza·pomoci nenájdená" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "Chyba pomoci" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "Kontextová pomoc %s nenájdená." #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "Kontextová pomoc %s nenájdená v databáze %s%s%s." #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "Databáza pomoci %s%s%s nenašla zobrazovač pre stránku pomocníka typu %s" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "Databáza pomoci %s%s%s nenájdená" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "Kľúčové slovo pomoci %s%s%s nenájdené." #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "Kľúčové·slovo·pomoci·%s%s%s nenájdené v databáze %s%s%s." #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "Uzol pomocníka %s%s%s nemá databázu pomocníka" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "Nenájdený pomocník pre riadok %d, stĺpec %d %s." #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "Nie sú dostupné žiadne uzly pomoci" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "Pomoc nenájdená" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "%s: Neregistrovaný" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "Chyba selektora pomoci" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "Nie je zobrazovač pre pomoc typu %s%s%s" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "Chyba zobrazovača pomoci" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "Zobrazovač pomoci nenájdený" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "Ikona" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "Obrázok ikony nemôže byť prázdny" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "Obrázok ikony musí mať rovnaký formát" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "Nemožno zmeniť formát obrázka ikony" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "Obrázok ikony musí mať rovnakú veľkosť" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "Nemožno zmeniť veľkosť obrázka ikony" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "Ikona nemá aktuálny obrázok" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s Index %d presahuje hranicu 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Index mimo rozsahu Bunka[Col=%d Row=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "Insert" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Neplatný dátum: %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "Neplatný dátum: %s. Musí byť medzi %s a %s" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "neplatný prúd objektu Form" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Neplatná hodnota vlastnosti" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Neplatný formát streamu" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s už je priradený k %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "Posledný" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "Index zoznamu prekračuje hranice (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "Zoznam musí byť prázdny" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Prerušiť" #: lclstrconsts.rsmball msgid "&All" msgstr "&Všetko" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Zrušiť" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "&Zatvoriť" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "&Pomoc" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Ignorovať" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Nie" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Nie pre všetky" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&OK" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "&Opakovať" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "Án&o" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "Án&o pre všetky" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "Menu" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr ".. zmenené" #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Potvrdenie" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Vlastné" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Chyba" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Informácia" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Upozornenie" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "Ďalší" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Neplatný súbor mriežky" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "Neexistuje objekt widgetsetu. Prosím skontrolujte, či je jednotka \"interfaces\" pridaná do klauzuly uses programu." #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Výber dátumu" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "Pixmap" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "Portable BitMap" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "Portable GrayMap" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "Portable Network Graphic" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "Portable PixMap" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "za" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #, fuzzy #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%sStlačte OK pre ignorovanie a risk porušenia dát.%sStlačte Zrušiť pre zabitie programu." #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "Pred" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "Vlastnosť %s neexistuje" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "Koniec aktualizácie, ale aktualizácia nie je vykonávaná" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "Nemožno uložiť obrázok počas aktualizácie" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "Nemožno začať aktualizáciu všetkého, počas aktualizácie len plátna" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "Obnoviť" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Nahradiť" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Nahradiť všetko" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Zdroj %s nenájdený" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Vlastnosť ScrollBar mimo rozsahu" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Výber farby" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Výber fontu" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "" #: lclstrconsts.rssize msgid " size " msgstr "..veľkosť " #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "Text" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Nemožno načítať predvolený font" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "Neznáma chyba, prosím ohláste túto chybu" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Neznáma prípona obrázku" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Nepodporovaný formát bitmapy" #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Nepodporovaný formát schránky: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " UPOZORNENIE: Existuje %d neuvoľnených DCs, detailný výpis nasleduje:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " UPOZORNENIE: Existuje %d neuvoľnených GDIObjects, detailný výpis nasleduje:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " UPOZORNENIE: Vo fronte ostáva %d správ! Uvoľním ich" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " UPOZORNENIE: Ostáva %d štruktúr TimerInfo, uvoľním ich" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr " UPOZORNENIE: Ostáva %s neodstránených správ LM_PAINT/LM_GtkPAINT." #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "Len celé slová" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Chyba:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Upozornenie:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Nemôžem zamerať vypnuté alebo neviditeľné okno" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Duplikované menu" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Neplatné akcia vytvorenia" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Neplatné·akcia vymenovania" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Neplatné·akcia registrácie" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Neplatné·akcia odregistrovania" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "Množina znakov v maske \"%s\" nei je platná!" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Neplatná veľkosť obrázku" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Neplatný index ImageList" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Index menu mimo rozsahu" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "MenuItem je nil" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Podmenu nie je v menu" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "Nie je MIDI formulár" #: lclstrconsts.snotimers msgid "No timers available" msgstr "Nie sú dostupné žiadne časovače" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "Zlý typ tokenu: očakávaný %s" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "Neplatné číslo s pohyblivou rádovou čiarkou: %s" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "Neplatné celé číslo: %s" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "Neukončená bytová hodnota" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "Neukončený reťazec" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "Zlý symbol tokenu: očakávaný bol %s, ale nájdený bol %s" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "Zlý typ tokenu: očakávaný bol %s , ale nájdený bol %s" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.id.po��������������������������������������������������������0000750�0001750�0001750�00000074713�11233377565�021543� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Project-Id-Version: Lazarus LCL v1.x\n" "POT-Creation-Date: \n" "PO-Revision-Date: 2007-01-30 02:21+0700\n" "Last-Translator: Zaenal Mutaqin <ade999@gmail.com>\n" "Language-Team: Zaenal Mutaqin <ade999@gmail.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Country: INDONESIA\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "Browser %s%s%s bukan eksekutabel." #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "Browser %s%s%s tidak ditemukan." #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "Kesalahan saat mengeksekusi %s%s%s:%s%s" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "Tidak bisa menemukan HTML browser" #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "HTML Browser tidak ditemukan.%sSilahkan definisikan dalam Bantuan -> Konfigurasi Bantuan -> Peninjau" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "Database bantuan %s%s%s tidak bisa menemukan file %s%s%s." #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "Makro %s dalam BrowserParams akan diganti dengan URL." #: lclstrconsts.ifsalt msgid "Alt" msgstr "Alt" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "Ctrl" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "Terima" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "tombol aplikasi" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "Backspace" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "Kapital" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "Clear" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "Kontrol" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Konversi" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "Turun" #: lclstrconsts.ifsvk_end msgid "End" msgstr "End" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "Escape" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "Jalankan" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "Final" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "Hanja" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Panduan" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "Home" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "Junja" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "Kana" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Tombol Mouse Kiri" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "Left" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "tombol kiri windows" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Tombol Mouse Tengah" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "Menu" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "Ubah Mode" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "Nonkonversi" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "Numlock" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "Numpad %d" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "Tombol pause" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "Cetak" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Tombol Mouse Kanan" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "Return" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "Right" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "tombol kanan windows" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "Scroll" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "Pilih" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "Shift" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "Snapshot" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "Tombol Spasi" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "Tab" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "Tidak dikenal" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "Up" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Sumber %s tidak ditemukan" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Kontrol tidak bisa menjadikan dirinya sebagai induk" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Semua file (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "Mundur" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "Bitmaps" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "" #: lclstrconsts.rsblank msgid "Blank" msgstr "Kosong" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Kalkulator" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Tidak bisa memfokuskan" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Kanvas tidak membolehkan penggambaran" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "Sensitif huruf" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Pembuatan cachable salah: " #: lclstrconsts.rscursor msgid "Cursor" msgstr "" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "" #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "ukuran waktu tanggal perijinan grup pemakai " #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "Delete" #: lclstrconsts.rsdirection msgid "Direction" msgstr "Arah" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "&Direktori" #: lclstrconsts.rsdocking msgid "Docking" msgstr "Docking" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "" #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Kesalahan pembuatan konteks device untuk %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "KESALAHAN dalam LCL: " #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Kesalahan terjadi dalam %s at %sAlamat %s%s Frame %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Kesalahan pembacaan %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "Kesalahan ketika menyimpan bitmap" #: lclstrconsts.rsexception msgid "Exception" msgstr "Kekecualian" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Direktori harus ada" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "Directori \"%s\" tidak ada." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "File \"%s\" sudah ada. Timpa saja ?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "File harus ada" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "File \"%s\" tidak ada." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "File \"%s\" tidak bisa ditulisi." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "File tidak bisa ditulisi" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Simpan file sebagai" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Buka file yang ada" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Timpa file ?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "Path harus ada" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "Path \"%s\" tidak ada." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Pilih Direktori" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(file tidak ditemukan: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Informasi file" #: lclstrconsts.rsfind msgid "Find" msgstr "Cari" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "Cari lagi" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols tidak bisa >= ColCount" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows tidak bisa >= RowCount" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Pengaliran form \"%s\" salah: %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "Maju" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug flags Hidupkan pesan khusus GDK trace/debug." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug flags Matikan pesan khusus GDK trace/debug." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings Peringatan dan kesalahan dihasilkan oleh Gtk+/GDK akan menghentikan aplikasi." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "File grid tidak ada" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "Indeks grid di luar jangkauan" #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex tidak bisa kurang dari item GroupIndex menu sebelumnya" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Filter:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "Histori:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class classname Mengikuti konvensi Xt, class dari sebuah program dalam nama program dengan inisial karakter dibesarkan. Sebagai contoh, classname untuk gimp adalah \"Gimp\". Jika --class ditetapkan, class dari program akan di set ke \"classname\"." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags Hidupkan pesan khusus Gtk+ trace/debug." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Sambungkan ke X server tertentu, dimana \"h\" adalah nama host, \"s\" adalah nomor server (biasanya 0), dan \"d\" adalah nomor layar (biasanya diabaikan). Jika --display tidak ditetapkan, variabel lingkungan DISPLAY yang digunakan." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module module Ambil modul yang ditetapkan saat startup." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "" #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug flags Matikan pesan khusus Gtk+ trace/debug." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient Jangan set urutan sementara untuk form modal" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Matikan penggunaan X Shared Memory Extension." #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Panggil XSynchronize (layar, Benar) setelah sambungan Xserver terlaksana. Ini membuat debugging kesalahan protokol X lebih mudah, karena permintaan penyanggaan X akan dimatikan dan kesalahan X akan diterima segera setelah permintaan protokol yang kesalahannya telah dibuat sudah diproses oleh X server." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "%s: Sudah teregistrasi" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "Konteks Bantuan tidak ditemukan" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "Database Bantuan tidak ditemukan" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "Bantuan Salah" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "Konteks Bantuan %s tidak ditemukan." #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "Konteks Bantuan %s tidak ditemukan dalam Database %s%s%s." #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "Database Bantuan %s%s%s tidak ditemukan peninjau untuk halaman bantuan dari tipe %s" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "Database Bantuan %s%s%s tidak ditemukan" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "Kata kunci Bantuan %s%s%s tidak ditemukan." #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "Kata kunci Bantuan %s%s%s tidak ditemukan dalam Database %s%s%s." #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "Node Bantuan %s%s%s tidak mempunyai Database Bantuan" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "Tidak ada bantuan ditemukan untuk baris %d, column %d of %s." #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "Node bantuan tidak tersedia" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "Bantuan tidak ditemukan" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "%s: Tidak teregistrasi" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "Selektor Bantuan Salah" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "Tidak ada peninjau untuk tipe bantuan %s%s%s" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "Peninjau Bantuan Salah" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "Peninjau Bantuian tidak ditemukan" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "Ikon" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s Indeks %d di luar jangkauan 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Indeks Diluar jangkauan Cell[Kolom=%d Baris=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "Insert" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Tanggal tidak benar : %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "Tanggal tidak benar: %s. Harus ada diantara %s dan %s" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "Aliran Objek Form tidak benar" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Nilai properti tidak benar" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Format stream tidak benar" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s sudah dikaitkan dengan %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "Indeks List melebihi jangkauan (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "List harus kosong" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Batal" #: lclstrconsts.rsmball msgid "&All" msgstr "&Semua" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Batal" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "&Tutup" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "&Panduan" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Abaikan" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Tidak" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Tidak untuk semua" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&OK" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "&Coba lagi" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Ya" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "Ya untuk &Semua" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "Menu" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr " diubah " #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Konfirmasi" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Kustom" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Salah" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Informasi" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Peringatan" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "Berikutnya" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Bukan file grid yang benar" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "Objek widgetset todal ada. Tolong periksa apakah unit \"interfaces\" sudah ditambahkan ke klausul uses program." #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Pilih tanggal" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "Pixmap" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "Portable Network Graphic" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #, fuzzy #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%sTekan Ok untuk mengabaikan dan resiko kerusakan data.%sTekan Batal untuk mematikan program" #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "Sebelumnya" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "Properti %s tidak ada" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Ganti" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Ganti semua" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Sumber %s tidak ditemukan" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Properti ScrollBar diluar jangkauan" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Pilih warna" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Pilih font" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "" #: lclstrconsts.rssize msgid " size " msgstr " ukuran " #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "Teks" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Tidak bisa mengambil font default" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "Kesalahan Tidak Dikenal, silahkan laporkan bug ini" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Ekstensi gambar tidak dikenal" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Format bitmap tidak didukung." #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Format clipboard tidak didukung: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " PERINGATAN: Ada %d DCs tidak dilepas, dump detil sebagai berikut:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " PERINGATAN: Ada %d GDIObjects tidak dilepas, detil dump sebagai berikut:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " PERINGATAN: Ada %d pesan tersisa dalam antrian! Saya akan membebaskannya" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " PERINGATAN: Ada %d struktur TimerInfo tersisa, Saya akan membebaskannya" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr " PERINGATAN: ada %s tersisa link pesan LM_PAINT/LM_GtkPAINT tidak dihapus." #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "Hanya seluruh kata" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Kesalahan:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Peringatan:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Tidak bisa memberikan fokus ke jendela yang dimatikan atau tidak nampak" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Duplikasi menu" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Pembuatan action tidak benar" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Enumerasi action tidak benar" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Registrasi action tidak benar" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Pembatalan registrasi action tidak benar" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "set karakter dalam mask \"%s\" tidak benar!" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Ukuran gambar tidak benar" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Indeks ImageList tidak benar" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Indeks Menu diluar jangkauan" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "MenuItem kosong" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Sub-menu tidak dalam menu" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "Tidak ada form MDI" #: lclstrconsts.snotimers msgid "No timers available" msgstr "Tidak tersedia timer" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" �����������������������������������������������������dozzaqueux-3.51/languages/dozzzaqueux.en.po���������������������������������������������������������0000750�0001750�0001750�00000346767�13147327621�021432� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" #: tconfigimpression.bitbtn1.caption msgctxt "tconfigimpression.bitbtn1.caption" msgid "&OK" msgstr "" #: tconfigimpression.bitbtn2.caption msgctxt "tconfigimpression.bitbtn2.caption" msgid "Annuler" msgstr "Cancel" #: tconfigimpression.caption msgctxt "tconfigimpression.caption" msgid "Configuration de la page pour l'impression" msgstr "Page's configuration for printing" #: tconfigimpression.groupbox1.caption msgctxt "tconfigimpression.groupbox1.caption" msgid "Position" msgstr "" #: tconfigimpression.groupbox2.caption msgctxt "tconfigimpression.groupbox2.caption" msgid "Nombre de copies" msgstr "" #: tconfigimpression.groupbox3.caption msgctxt "tconfigimpression.groupbox3.caption" msgid "Taille (en % de la page)" msgstr "" #: tconfigimpression.label1.caption msgctxt "tconfigimpression.label1.caption" msgid "Nombre:" msgstr "" #: tconfigimpression.label2.caption msgctxt "tconfigimpression.label2.caption" msgid "Horizontalement" msgstr "" #: tconfigimpression.label3.caption msgctxt "tconfigimpression.label3.caption" msgid "Verticalement" msgstr "" #: tconfigimpression.radiogroupehorizontal.caption msgctxt "tconfigimpression.radiogroupehorizontal.caption" msgid "Horizontale" msgstr "" #: tconfigimpression.radiogroupevertical.caption msgctxt "tconfigimpression.radiogroupevertical.caption" msgid "Verticale" msgstr "" #: tconfigimpression.radiogrouporientation.caption msgctxt "tconfigimpression.radiogrouporientation.caption" msgid "Orientation" msgstr "" #: tform1.aide1.caption msgctxt "tform1.aide1.caption" msgid "Aide" msgstr "Help" #: tform1.aidedozzzaqueux1.caption msgctxt "tform1.aidedozzzaqueux1.caption" msgid "Aide Dozzzaqueux" msgstr "Help for Dozzzaqueux" #: tform1.apropos1.caption msgctxt "tform1.apropos1.caption" msgid "A propos..." msgstr "About..." #: tform1.autoriserractionsredox1.caption msgctxt "tform1.autoriserractionsredox1.caption" msgid "Autoriser réactions redox" msgstr "Authorize redox reactions" #: tform1.bitbtn1.caption msgctxt "tform1.bitbtn1.caption" msgid "Valider et passer à la burette >>>>>" msgstr "Validate and go to burette" #: tform1.bitbtn1_.caption msgctxt "tform1.bitbtn1_.caption" msgid "Valider et passer au recensement >>>>>" msgstr "Validate and go to species enumeration" #: tform1.bitbtn2.caption msgctxt "tform1.bitbtn2.caption" msgid "Valider et passer aux constantes de réaction >>>>>" msgstr "Validate and go to equilibrium constants" #: tform1.bitbtn3.caption msgctxt "tform1.bitbtn3.caption" msgid "Valider et lancer les calculs>>>>>>" msgstr "Validate and start calculations" #: tform1.bitbtn4.caption msgctxt "tform1.bitbtn4.caption" msgid "Rechercher une espéce" msgstr "Search for species" #: tform1.bitbtn4_.caption msgctxt "tform1.bitbtn4_.caption" msgid "Rechercher une espéce" msgstr "Search for species" #: tform1.bitbtn5.caption msgctxt "tform1.bitbtn5.caption" msgid "Export résultats bruts" msgstr "Export results of calculations" #: tform1.bitbtn5.hint msgctxt "tform1.bitbtn5.hint" msgid "Sauvegarder les résultats numériques pour une exploitation avec tableur ou avec Régressi" msgstr "Save numeric results for exploitation with spreadsheet or regressi" #: tform1.bitbtn6.caption msgctxt "tform1.bitbtn6.caption" msgid "Choisir les courbes à tracer >>>>>>>" msgstr "Choose curves to draw" #: tform1.bitbtn7.caption msgctxt "tform1.bitbtn7.caption" msgid "Valider et tracer les courbes >>>>>" msgstr "Validate and draw curves" #: tform1.bitbtn8.caption #, fuzzy #| msgid "Définir la grandeur portée en abscisse" msgctxt "tform1.bitbtn8.caption" msgid "BitBtn8" msgstr "Define abscissa's quantity" #: tform1.bitbtn9.caption #, fuzzy #| msgid "Ajouter une grandeur en ordonnée" msgctxt "tform1.bitbtn9.caption" msgid "bitbtn9" msgstr "Add a grandeur on ordinate" #: tform1.calculdesdrives1.caption msgctxt "tform1.calculdesdrives1.caption" msgid "Calcul des dérivées" msgstr "Derivatives calculation" #: tform1.caption msgctxt "tform1.caption" msgid "Dozzzaqueux" msgstr "Dozzzaqueux" #: tform1.checkboxaxes.caption msgctxt "tform1.checkboxaxes.caption" msgid "Axes" msgstr "Axes" #: tform1.checkboxexp.caption msgctxt "tform1.checkboxexp.caption" msgid "Exp." msgstr "" #: tform1.checkboxexp.hint msgctxt "tform1.checkboxexp.hint" msgid "Activer/désactiver l'affichage du fichier expérimental" msgstr "Activate/deactivate experimental file's view" #: tform1.checkboxgraduations.caption msgctxt "tform1.checkboxgraduations.caption" msgid "Graduations" msgstr "" #: tform1.checkboxgrilledroite.caption msgctxt "tform1.checkboxgrilledroite.caption" msgid "Grille échelle droite" msgstr "" #: tform1.checkboxgrillegauche.caption msgctxt "tform1.checkboxgrillegauche.caption" msgid "Grille échelle gauche" msgstr "" #: tform1.checkboxlegende.caption msgctxt "tform1.checkboxlegende.caption" msgid "Légende" msgstr "" #: tform1.checkboxlegendeapart.caption msgctxt "tform1.checkboxlegendeapart.caption" msgid "Légende à part" msgstr "" #: tform1.checkboxsuperposition.caption msgctxt "tform1.checkboxsuperposition.caption" msgid "Superp." msgstr "" #: tform1.checkboxsuperposition.hint msgctxt "tform1.checkboxsuperposition.hint" msgid "Activer/désactiver la superposition" msgstr "Activate/deactivate superposition" #: tform1.chiffressignificatifs1.caption msgctxt "tform1.chiffressignificatifs1.caption" msgid "Chiffres significatifs" msgstr "Significant figures" #: tform1.combobox1.text msgid "ComboBox1" msgstr "" #: tform1.edittemperature.text msgid "298" msgstr "" #: tform1.editvolume.hint msgctxt "tform1.editvolume.hint" msgid "Changer cette valeur ne modifie pas les concentrations ! Utilisez le bouton \"dilution\" si vous voulez les modifier par dilution" msgstr "Changing this value doesn't change concentrations ! Use \"dilution\" button if you want to change them." #: tform1.editvolume.text msgctxt "tform1.editvolume.text" msgid "20" msgstr "" #: tform1.editvolume_burette.hint msgctxt "tform1.editvolume_burette.hint" msgid "Changer cette valeur ne modifie pas les concentrations ! Utilisez le bouton \"dilution\" si vous voulez les modifier par dilution" msgstr "Changing this value doesn't change concentrations ! Use \"dilution\" button if you want to change them." #: tform1.editvolume_burette.text msgctxt "tform1.editvolume_burette.text" msgid "20" msgstr "" #: tform1.enregistrerlefilmdelasimulation1.caption msgctxt "tform1.enregistrerlefilmdelasimulation1.caption" msgid "Enregistrer le film de la simulation" msgstr "Save simulation's movie" #: tform1.exporttableurtexte1.caption msgctxt "tform1.exporttableurtexte1.caption" msgid "Export tableur texte" msgstr "" #: tform1.expriencefichierformattableautexte1.caption msgctxt "tform1.expriencefichierformattableautexte1.caption" msgid "Expérience (fichier format tableau texte ou Regressi)" msgstr "" #: tform1.fichier1.caption msgctxt "tform1.fichier1.caption" msgid "Fichier" msgstr "File" #: tform1.jouerunfilmdesimulation1.caption msgctxt "tform1.jouerunfilmdesimulation1.caption" msgid "Jouer un film de simulation" msgstr "Play simulation'movie" #: tform1.label1.caption msgctxt "tform1.label1.caption" msgid "Réactifs choisis:" msgstr "" #: tform1.label10.caption msgctxt "tform1.label10.caption" msgid "Vous pouvez modifier les logarithmes des constantes d'équilibre si vous pensez en avoir de meilleures estimations." msgstr "You can change log of equilibrum constants if you think you have better values." #: tform1.label11.caption msgctxt "tform1.label11.caption" msgid "Base de réactifs:" msgstr "Reactants database" #: tform1.label11_.caption msgctxt "tform1.label11_.caption" msgid "Base de réactifs:" msgstr "Reactants database" #: tform1.label12.caption msgctxt "tform1.label12.caption" msgid "Xmin=" msgstr "" #: tform1.label13.caption msgctxt "tform1.label13.caption" msgid "Xmax=" msgstr "" #: tform1.label14.caption msgctxt "tform1.label14.caption" msgid "Bécher" msgstr "Beaker" #: tform1.label14_.caption msgctxt "tform1.label14_.caption" msgid "Burette" msgstr "Burette" #: tform1.label15.caption msgctxt "tform1.label15.caption" msgid "mL" msgstr "" #: tform1.label16.caption msgctxt "tform1.label16.caption" msgid "Volume maximal à verser=" msgstr "" #: tform1.label17.caption msgctxt "tform1.label17.caption" msgid "Ymin=" msgstr "" #: tform1.label18.caption msgctxt "tform1.label18.caption" msgid "Ymax=" msgstr "" #: tform1.label19.caption msgctxt "tform1.label19.caption" msgid "Ymin=" msgstr "" #: tform1.label1_.caption msgctxt "tform1.label1_.caption" msgid "Réactifs choisis:" msgstr "" #: tform1.label2.caption msgctxt "tform1.label2.caption" msgid "Voici la liste des espéces susceptibles d'être présentes à l'équilibre." msgstr "" #: tform1.label20.caption msgctxt "tform1.label20.caption" msgid "Ymax=" msgstr "" #: tform1.label21.caption msgctxt "tform1.label21.caption" msgid "V=" msgstr "" #: tform1.label22.caption msgctxt "tform1.label22.caption" msgid "mL" msgstr "" #: tform1.label3.caption msgctxt "tform1.label3.caption" msgid "Si vous pensez que certaines ne seront pas présentes (blocage cinétique par exemple), il suffit de les décocher." msgstr "" #: tform1.label4.caption msgctxt "tform1.label4.caption" msgid "Pour obtenir la formule brute d'une espéce, sélectionnez la puis cliquez sur le bouton ci-contre:" msgstr "" #: tform1.label5.caption msgctxt "tform1.label5.caption" msgid "Volume initial=" msgstr "" #: tform1.label6.caption msgctxt "tform1.label6.caption" msgid "mL" msgstr "" #: tform1.label7.caption msgctxt "tform1.label7.caption" msgid "Température=" msgstr "Temperature=" #: tform1.label8.caption msgctxt "tform1.label8.caption" msgid "K" msgstr "" #: tform1.label9.caption msgctxt "tform1.label9.caption" msgid "Voici un ensemble d'équations de réactions linéairement indépendantes entre elles décrivant le système chimique." msgstr "" #: tform1.licensegpl1.caption msgctxt "tform1.licensegpl1.caption" msgid "License GPL" msgstr "" #: tform1.menuitem11.caption msgctxt "tform1.menuitem11.caption" msgid "Indicateur coloré" msgstr "" #: tform1.menuitem12.caption msgid "Site web" msgstr "" #: tform1.menuitem14.caption msgctxt "tform1.menuitem14.caption" msgid "Historique des versions" msgstr "" #: tform1.menuitem15.caption msgid "Tout copier dans presse-papier" msgstr "" #: tform1.menuitem16.caption msgid "Copier texte sélectionné dans le presse-papier" msgstr "" #: tform1.menuitem9.caption msgctxt "tform1.menuitem9.caption" msgid "Langue" msgstr "Language" #: tform1.menuitemraffinecsv.caption msgctxt "tform1.menuitemraffinecsv.caption" msgid "Format tableur texte (.csv, .txt)" msgstr "" #: tform1.menuitemraffinerw3.caption msgid "Format Regressi (.rw3)" msgstr "" #: tform1.menuitem_charger_exemples.caption msgctxt "tform1.menuitem_charger_exemples.caption" msgid "du répertoire \"exemples\"" msgstr "from directorie \"exemples\"" #: tform1.menuitem_charger_personnel.caption msgctxt "tform1.menuitem_charger_personnel.caption" msgid "de mon répertoire personnel" msgstr "" #: tform1.menuitem_jpg.caption msgid "JPEG" msgstr "" #: tform1.menuitem_png.caption msgid "PNG" msgstr "" #: tform1.menuitem_sauve_brut_csv.caption msgctxt "tform1.menuitem_sauve_brut_csv.caption" msgid "Format tableur texte (.csv, .txt)" msgstr "" #: tform1.menuitem_save_brut_rw3.caption msgid "Format Régressi (.rw3)" msgstr "" #: tform1.nombredepointsdecalcul1.caption msgctxt "tform1.nombredepointsdecalcul1.caption" msgid "Nombre de points de calcul" msgstr "" #: tform1.nouvellesimulation1.caption msgctxt "tform1.nouvellesimulation1.caption" msgid "Nouvelle simulation" msgstr "" #: tform1.options1.caption msgctxt "tform1.options1.caption" msgid "Options" msgstr "" #: tform1.pagecontrol1.hint msgctxt "tform1.pagecontrol1.hint" msgid "Pour sélectionner un réactif, faites un clic simple sur sa ligne." msgstr "" #: tform1.pagecontrol1_.hint msgctxt "tform1.pagecontrol1_.hint" msgid "Pour sélectionner un réactif, faites un clic simple sur sa ligne." msgstr "" #: tform1.parfomulebrute1.caption msgctxt "tform1.parfomulebrute1.caption" msgid "Par fomule brute" msgstr "" #: tform1.parformulebrute1.caption msgctxt "tform1.parformulebrute1.caption" msgid "Par formule brute" msgstr "" #: tform1.paridentifiantousynonyme1.caption msgctxt "tform1.paridentifiantousynonyme1.caption" msgid "Par identifiant ou synonyme" msgstr "" #: tform1.paridentifiantousynonyme2.caption msgctxt "tform1.paridentifiantousynonyme2.caption" msgid "Par identifiant ou synonyme" msgstr "" #: tform1.radioechellehorizontale.caption msgctxt "tform1.radioechellehorizontale.caption" msgid "Echelle horizontale" msgstr "" #: tform1.radioechelleverticaledroite.caption msgctxt "tform1.radioechelleverticaledroite.caption" msgid "Echelle verticale droite" msgstr "" #: tform1.radioechelleverticalegauche.caption msgctxt "tform1.radioechelleverticalegauche.caption" msgid "Echelle verticale gauche" msgstr "" #: tform1.savedialog1.title msgctxt "tform1.savedialog1.title" msgid "Enregistrer" msgstr "" #: tform1.savedialog2.title msgctxt "tform1.savedialog2.title" msgid "Enregistrer" msgstr "" #: tform1.savedialog3.title msgctxt "tform1.savedialog3.title" msgid "Enregistrer" msgstr "" #: tform1.speedbutton10.caption msgctxt "tform1.speedbutton10.caption" msgid "SpeedButton10" msgstr "" #: tform1.speedbutton12.caption msgctxt "tform1.speedbutton12.caption" msgid "SpeedButton12" msgstr "" #: tform1.speedbutton13.caption msgctxt "tform1.speedbutton13.caption" msgid "SpeedButton13" msgstr "" #: tform1.speedbutton14.caption #, fuzzy #| msgid "Copier" msgctxt "tform1.speedbutton14.caption" msgid "SpeedButton14" msgstr "Copy" #: tform1.speedbutton15.caption msgctxt "tform1.speedbutton15.caption" msgid "SpeedButton15" msgstr "" #: tform1.speedbutton16.caption msgctxt "tform1.speedbutton16.caption" msgid "SpeedButton16" msgstr "" #: tform1.speedbutton17.caption msgctxt "tform1.speedbutton17.caption" msgid "SpeedButton17" msgstr "" #: tform1.speedbutton4.caption msgctxt "tform1.speedbutton4.caption" msgid "Formule brute ?" msgstr "" #: tform1.speedbutton5.caption #, fuzzy #| msgid "Titre" msgctxt "tform1.speedbutton5.caption" msgid "SpeedButton5" msgstr "Title" #: tform1.speedbutton9.hint msgctxt "tform1.speedbutton9.hint" msgid "Modifier couleurs" msgstr "" #: tform1.speedbuttoncalculer.caption #, fuzzy #| msgid "Calculer" msgctxt "tform1.speedbuttoncalculer.caption" msgid "SpeedButtoncalculer" msgstr "Calculate" #: tform1.speedbuttonfermer.caption msgctxt "tform1.speedbuttonfermer.caption" msgid "SpeedButtonfermer" msgstr "" #: tform1.speedbuttontoutcocher.caption #, fuzzy #| msgid "Tout cocher" msgctxt "tform1.speedbuttontoutcocher.caption" msgid "SpeedButtontoutcocher" msgstr "Check all" #: tform1.speedbuttontoutdecocher.caption #, fuzzy #| msgid "Tout décocher" msgctxt "tform1.speedbuttontoutdecocher.caption" msgid "SpeedButtontoutdecocher" msgstr "Uncheck all" #: tform1.speedbuttontoutsupprimer.caption #, fuzzy #| msgid "Tout supprimer" msgctxt "tform1.speedbuttontoutsupprimer.caption" msgid "SpeedButtontoutsupprimer" msgstr "Delete all" #: tform1.speedbuttonunites.caption msgctxt "tform1.speedbuttonunites.caption" msgid "SpeedButtonunites" msgstr "" #: tform1.speedbuttonviderbecher.caption msgctxt "tform1.speedbuttonviderbecher.caption" msgid "Vider" msgstr "" #: tform1.speedbuttonviderburette.caption msgctxt "tform1.speedbuttonviderburette.caption" msgid "Vider" msgstr "" #: tform1.speedbuttonx10.caption msgctxt "tform1.speedbuttonx10.caption" msgid "x10" msgstr "" #: tform1.speedbuttonx10.hint msgctxt "tform1.speedbuttonx10.hint" msgid "Multiplier les concentrations par 10" msgstr "Multiply concentrations by 10" #: tform1.speedbuttonx10_.caption msgctxt "tform1.speedbuttonx10_.caption" msgid "x10" msgstr "" #: tform1.speedbuttonx10_.hint msgctxt "tform1.speedbuttonx10_.hint" msgid "Multiplier les concentrations par 10" msgstr "Multiply concentrations by 10" #: tform1.speedbutton_10.caption msgctxt "tform1.speedbutton_10.caption" msgid "/10" msgstr "/10" #: tform1.speedbutton_10.hint msgctxt "tform1.speedbutton_10.hint" msgid "Diviser les concentrations par 10" msgstr "Divide concentrations by 10" #: tform1.speedbutton_10_.caption msgctxt "tform1.speedbutton_10_.caption" msgid "/10" msgstr "/10" #: tform1.speedbutton_10_.hint msgctxt "tform1.speedbutton_10_.hint" msgid "Diviser les concentrations par 10" msgstr "Divide concentrations by 10" #: tform1.speedbutton_deplace_legende.caption msgctxt "tform1.speedbutton_deplace_legende.caption" msgid "Déplacer lég." msgstr "" #: tform1.speedbutton_dilution.caption msgctxt "tform1.speedbutton_dilution.caption" msgid "Dilution" msgstr "Dilution" #: tform1.speedbutton_dilution_.caption msgctxt "tform1.speedbutton_dilution_.caption" msgid "Dilution" msgstr "Dilution" #: tform1.tabsheet10.caption msgctxt "tform1.tabsheet10.caption" msgid "Cations simples" msgstr "Simple cations" #: tform1.tabsheet10_.caption msgctxt "tform1.tabsheet10_.caption" msgid "Cations simples" msgstr "Simple cations" #: tform1.tabsheet11.caption msgctxt "tform1.tabsheet11.caption" msgid "Anions simples" msgstr "Simple anions" #: tform1.tabsheet11_.caption msgctxt "tform1.tabsheet11_.caption" msgid "Anions simples" msgstr "Simple anions" #: tform1.tabsheet12.caption msgctxt "tform1.tabsheet12.caption" msgid "Acides et bases" msgstr "Acids and bases" #: tform1.tabsheet12_.caption msgctxt "tform1.tabsheet12_.caption" msgid "Acides et bases" msgstr "Acids and bases" #: tform1.tabsheet13.caption msgctxt "tform1.tabsheet13.caption" msgid "Complexes et divers" msgstr "Complexs and others" #: tform1.tabsheet13_.caption msgctxt "tform1.tabsheet13_.caption" msgid "Complexes et divers" msgstr "Complexs and others" #: tform1.tabsheet14.caption msgctxt "tform1.tabsheet14.caption" msgid "Ions" msgstr "" #: tform1.tabsheet14_.caption msgctxt "tform1.tabsheet14_.caption" msgid "Ions" msgstr "" #: tform1.tabsheet15.caption msgctxt "tform1.tabsheet15.caption" msgid "Atomes et molécules" msgstr "Atoms and molecules" #: tform1.tabsheet15_.caption msgctxt "tform1.tabsheet15_.caption" msgid "Atomes et molécules" msgstr "Atoms and molecules" #: tform1.tabsheet2.caption msgctxt "tform1.tabsheet2.caption" msgid "Acides et bases organiques" msgstr "Organic acids and bases" #: tform1.tabsheet2_.caption msgctxt "tform1.tabsheet2_.caption" msgid "Acides et bases organiques" msgstr "Organic acids and bases" #: tform1.tabsheet3.caption msgctxt "tform1.tabsheet3.caption" msgid "Complexes à ligands organiques, et divers" msgstr "Complexs with organic ligands, and others" #: tform1.tabsheet3_.caption msgctxt "tform1.tabsheet3_.caption" msgid "Complexes à ligands organiques, et divers" msgstr "Complexs with organic ligands, and others" #: tform1.tabsheet4.caption msgctxt "tform1.tabsheet4.caption" msgid "Benzéne et dérivés" msgstr "Benzene and derivatives\"(mole number for 1L" #: tform1.tabsheet4_.caption msgctxt "tform1.tabsheet4_.caption" msgid "Benzéne et dérivés" msgstr "Benzene and derivatives\"(mole number for 1L" #: tform1.tabsheet5.caption msgctxt "tform1.tabsheet5.caption" msgid "Amines et amides" msgstr "Amines and amides" #: tform1.tabsheet5_.caption msgctxt "tform1.tabsheet5_.caption" msgid "Amines et amides" msgstr "Amines and amides" #: tform1.tabsheet6.caption msgctxt "tform1.tabsheet6.caption" msgid "Alcools" msgstr "Alcohols" #: tform1.tabsheet6_.caption msgctxt "tform1.tabsheet6_.caption" msgid "Alcools" msgstr "Alcohols" #: tform1.tabsheet7.caption msgctxt "tform1.tabsheet7.caption" msgid "Alcanes, alcénes, alcynes" msgstr "Alkane, alkene, alkyne" #: tform1.tabsheet7_.caption msgctxt "tform1.tabsheet7_.caption" msgid "Alcanes, alcénes, alcynes" msgstr "Alkane, alkene, alkyne" #: tform1.tabsheet8.caption msgctxt "tform1.tabsheet8.caption" msgid "Amminoacides" msgstr "Amino acids" #: tform1.tabsheet8_.caption msgctxt "tform1.tabsheet8_.caption" msgid "Amminoacides" msgstr "Amino acids" #: tform1.tabsheet9.caption msgctxt "tform1.tabsheet9.caption" msgid "Aldéhydes et cétones" msgstr "Aldehydes, ketones" #: tform1.tabsheet9_.caption msgctxt "tform1.tabsheet9_.caption" msgid "Aldéhydes et cétones" msgstr "Aldehydes, ketones" #: tform1.tabsheetaqueux.caption msgctxt "tform1.tabsheetaqueux.caption" msgid "Inorganiques" msgstr "" #: tform1.tabsheetaqueux_.caption msgctxt "tform1.tabsheetaqueux_.caption" msgid "Inorganiques" msgstr "" #: tform1.tabsheetchoisir.caption msgctxt "tform1.tabsheetchoisir.caption" msgid "Choix des réactifs:bécher" msgstr "Choice of beaker's reactants..." #: tform1.tabsheetchoisir_.caption msgctxt "tform1.tabsheetchoisir_.caption" msgid "Choix des réactifs:burette" msgstr "Choice of burette's reactants" #: tform1.tabsheetchoixcourbes.caption msgctxt "tform1.tabsheetchoixcourbes.caption" msgid "Choix des courbes" msgstr "Curve's choice" #: tform1.tabsheeteliminer.caption msgctxt "tform1.tabsheeteliminer.caption" msgid "Espéces présentes" msgstr "" #: tform1.tabsheetorga.caption msgctxt "tform1.tabsheetorga.caption" msgid "Organiques" msgstr "" #: tform1.tabsheetorga_.caption msgctxt "tform1.tabsheetorga_.caption" msgid "Organiques" msgstr "" #: tform1.tabsheetresultats.caption msgctxt "tform1.tabsheetresultats.caption" msgid "Résultats" msgstr "" #: tform1.tabsheetsolides.caption msgctxt "tform1.tabsheetsolides.caption" msgid "Solides" msgstr "" #: tform1.tabsheetsolides_.caption msgctxt "tform1.tabsheetsolides_.caption" msgid "Solides" msgstr "" #: tform1.tabsheettracecourbes.caption msgctxt "tform1.tabsheettracecourbes.caption" msgid "Tracé des courbes" msgstr "" #: tform1.tabsheetverifier.caption msgctxt "tform1.tabsheetverifier.caption" msgid "Réactions et constantes" msgstr "" #: tform1.temporisationfilm1.caption msgctxt "tform1.temporisationfilm1.caption" msgid "Temporisation film" msgstr "" #: tform1.toolbar1.caption msgid "ToolBar1" msgstr "" #: tform1.toolbar2.caption msgid "ToolBar2" msgstr "" #: tform1.toolbutton1.caption msgid "ToolButton1" msgstr "" #: tform1.toolbutton2.caption msgid "ToolButton2" msgstr "" #: tform1.toolbutton3.caption msgid "ToolButton3" msgstr "" #: tform1.toolbutton4.caption msgid "ToolButton4" msgstr "" #: tform1.toolbutton5.caption msgid "ToolButton5" msgstr "" #: tform1.toolbutton6.caption msgid "ToolButton6" msgstr "" #: tform1.uneouplusieursdessimulationsfaitesdepuisledernierlancementdedoz.caption msgctxt "tform1.uneouplusieursdessimulationsfaitesdepuisledernierlancementdedoz.caption" msgid "Une ou plusieurs des simulations faites depuis le dernier lancement de Dozzzaqueux" msgstr "" #: tform1.utiliserdebyeethckel1.caption msgctxt "tform1.utiliserdebyeethckel1.caption" msgid "Utiliser Debye et Hückel" msgstr "" #: tform1.versiondelabase1.caption msgctxt "tform1.versiondelabase1.caption" msgid "Version de la base" msgstr "Database' version" #: tform26.bitbtn1.caption msgctxt "tform26.bitbtn1.caption" msgid "Chercher" msgstr "" #: tform26.bitbtn2.caption msgctxt "tform26.bitbtn2.caption" msgid "Annuler" msgstr "Cancel" #: tform26.caption msgctxt "tform26.caption" msgid "Recherche dans la base" msgstr "" #: tform26.label1.caption msgctxt "tform26.label1.caption" msgid "Entrez tout ou partie de l'indentifiant ou du synonyme" msgstr "" #: tform26.label2.caption msgctxt "tform26.label2.caption" msgid "Puis cliquez sur l'espéce choisie:" msgstr "" #: tform26.label3.caption msgctxt "tform26.label3.caption" msgid " Exemples: éthanoïque Acide pentanedioïque " msgstr "" #: tform26.sgreactifs.hint msgctxt "tform26.sgreactifs.hint" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: tform26b.bitbtn1.caption msgctxt "tform26b.bitbtn1.caption" msgid "Chercher" msgstr "" #: tform26b.bitbtn2.caption msgctxt "tform26b.bitbtn2.caption" msgid "Annuler" msgstr "Cancel" #: tform26b.caption msgctxt "tform26b.caption" msgid "Recherche dans la base" msgstr "" #: tform26b.label1.caption msgctxt "tform26b.label1.caption" msgid "Entrez tout ou partie de l'indentifiant ou du synonyme" msgstr "" #: tform26b.label2.caption msgctxt "tform26b.label2.caption" msgid "Puis cliquez sur l'espéce choisie:" msgstr "" #: tform26b.label3.caption msgctxt "tform26b.label3.caption" msgid " Exemples: éthanoïque Acide pentanedioïque " msgstr "" #: tform26b.sgreactifs.hint msgctxt "tform26b.sgreactifs.hint" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: tform27.bitbtn1.caption msgctxt "tform27.bitbtn1.caption" msgid "&OK" msgstr "" #: tform27.caption msgctxt "tform27.caption" msgid "Liste des simulations superposables" msgstr "" #: tform27.speedbutton1.caption msgctxt "tform27.speedbutton1.caption" msgid "Tout cocher" msgstr "Check all" #: tform27.speedbutton2.caption msgctxt "tform27.speedbutton2.caption" msgid "Tout décocher" msgstr "Uncheck all" #: tform4.bitbtn1.caption msgctxt "tform4.bitbtn1.caption" msgid "OK" msgstr "" #: tform4.bitbtn2.caption msgctxt "tform4.bitbtn2.caption" msgid "&Fermer" msgstr "" #: tform4.caption msgctxt "tform4.caption" msgid "Recherche dans la base" msgstr "" #: tform4.label1.caption msgctxt "tform4.label1.caption" msgid "Entrez la formule brute. Puis cliquez sur \"OK\". Puis sélectionnez le réactif dans la liste ci-dessous." msgstr "" #: tform4.label2.caption msgctxt "tform4.label2.caption" msgid " mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)" msgstr "" #: tform4.label3.caption msgctxt "tform4.label3.caption" msgid " Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] " msgstr "" #: tform4.radiogroup1.caption msgctxt "tform4.radiogroup1.caption" msgid "Type de comparaison" msgstr "" #: tform4.sgreactifs.hint msgctxt "tform4.sgreactifs.hint" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: tform4.speedbutton1moins.caption msgctxt "tform4.speedbutton1moins.caption" msgid "[-]" msgstr "" #: tform4.speedbutton1plus.caption msgctxt "tform4.speedbutton1plus.caption" msgid "[+]" msgstr "" #: tform4.speedbutton2.caption msgctxt "tform4.speedbutton2.caption" msgid "2" msgstr "" #: tform4.speedbutton2moins.caption msgctxt "tform4.speedbutton2moins.caption" msgid "[2-]" msgstr "" #: tform4.speedbutton2plus.caption msgctxt "tform4.speedbutton2plus.caption" msgid "[2+]" msgstr "" #: tform4.speedbutton3.caption msgctxt "tform4.speedbutton3.caption" msgid "3" msgstr "" #: tform4.speedbutton3moins.caption msgctxt "tform4.speedbutton3moins.caption" msgid "[3-]" msgstr "" #: tform4.speedbutton3plus.caption msgctxt "tform4.speedbutton3plus.caption" msgid "[3+]" msgstr "" #: tform4.speedbuttonc.caption msgctxt "tform4.speedbuttonc.caption" msgid "C" msgstr "" #: tform4.speedbuttonh.caption msgctxt "tform4.speedbuttonh.caption" msgid "H" msgstr "" #: tform4.speedbuttonn.caption msgctxt "tform4.speedbuttonn.caption" msgid "N" msgstr "" #: tform4.speedbuttono.caption msgctxt "tform4.speedbuttono.caption" msgid "O" msgstr "" #: tform4.speedbuttonp.caption msgctxt "tform4.speedbuttonp.caption" msgid "P" msgstr "" #: tform4.speedbuttons.caption msgctxt "tform4.speedbuttons.caption" msgid "S" msgstr "" #: tform4b.bitbtn1.caption msgctxt "tform4b.bitbtn1.caption" msgid "OK" msgstr "" #: tform4b.bitbtn2.caption msgctxt "tform4b.bitbtn2.caption" msgid "&Fermer" msgstr "" #: tform4b.caption msgctxt "tform4b.caption" msgid "Recherche dans la base" msgstr "" #: tform4b.label1.caption msgctxt "tform4b.label1.caption" msgid "Entrez la formule brute. Puis cliquez sur \"OK\". Puis sélectionnez le réactif dans la liste ci-dessous." msgstr "" #: tform4b.label2.caption msgctxt "tform4b.label2.caption" msgid " mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)" msgstr "" #: tform4b.label3.caption msgctxt "tform4b.label3.caption" msgid " Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] " msgstr "" #: tform4b.radiogroup1.caption msgctxt "tform4b.radiogroup1.caption" msgid "Type de comparaison" msgstr "" #: tform4b.sgreactifs.hint msgctxt "tform4b.sgreactifs.hint" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: tform4b.speedbutton1moins.caption msgctxt "tform4b.speedbutton1moins.caption" msgid "[-]" msgstr "" #: tform4b.speedbutton1plus.caption msgctxt "tform4b.speedbutton1plus.caption" msgid "[+]" msgstr "" #: tform4b.speedbutton2.caption msgctxt "tform4b.speedbutton2.caption" msgid "2" msgstr "" #: tform4b.speedbutton2moins.caption msgctxt "tform4b.speedbutton2moins.caption" msgid "[2-]" msgstr "" #: tform4b.speedbutton2plus.caption msgctxt "tform4b.speedbutton2plus.caption" msgid "[2+]" msgstr "" #: tform4b.speedbutton3.caption msgctxt "tform4b.speedbutton3.caption" msgid "3" msgstr "" #: tform4b.speedbutton3moins.caption msgctxt "tform4b.speedbutton3moins.caption" msgid "[3-]" msgstr "" #: tform4b.speedbutton3plus.caption msgctxt "tform4b.speedbutton3plus.caption" msgid "[3+]" msgstr "" #: tform4b.speedbuttonc.caption msgctxt "tform4b.speedbuttonc.caption" msgid "C" msgstr "" #: tform4b.speedbuttonh.caption msgctxt "tform4b.speedbuttonh.caption" msgid "H" msgstr "" #: tform4b.speedbuttonn.caption msgctxt "tform4b.speedbuttonn.caption" msgid "N" msgstr "" #: tform4b.speedbuttono.caption msgctxt "tform4b.speedbuttono.caption" msgid "O" msgstr "" #: tform4b.speedbuttonp.caption msgctxt "tform4b.speedbuttonp.caption" msgid "P" msgstr "" #: tform4b.speedbuttons.caption msgctxt "tform4b.speedbuttons.caption" msgid "S" msgstr "" #: tform5.bitbtn1.caption msgctxt "tform5.bitbtn1.caption" msgid "&OK" msgstr "" #: tform5.caption msgctxt "tform5.caption" msgid "Nombre de points de calcul" msgstr "" #: tform5.label1.caption msgctxt "tform5.label1.caption" msgid "Les valeurs des concentrations sont calculées pour des valeurs discrétes du volume." msgstr "" #: tform5.label2.caption msgctxt "tform5.label2.caption" msgid "La variation maximale du logarithme d'une concentration" msgstr "" #: tform5.label3.caption msgid "On appelle \"pas\" l'écart entre deux valeurs successives du volume." msgstr "" #: tform5.label4.caption msgctxt "tform5.label4.caption" msgid "Nombre de points: N=" msgstr "" #: tform5.label5.caption msgctxt "tform5.label5.caption" msgid "entre deux volumes successifs ne doit pas excéder:" msgstr "" #: tform5.label6.caption msgctxt "tform5.label6.caption" msgid "Mais le pas ne peut devenir inférieur à:" msgstr "" #: tform5.label7.caption msgctxt "tform5.label7.caption" msgid "mL" msgstr "" #: tform5.radiogroup1.caption msgctxt "tform5.radiogroup1.caption" msgid "Choix du pas" msgstr "Step's choice" #: tformapropos.bitbtn1.caption msgctxt "tformapropos.bitbtn1.caption" msgid "&OK" msgstr "" #: tformapropos.caption msgctxt "tformapropos.caption" msgid "A propos de...Dozzzaqueux" msgstr "About...Dozzzaqueux" #: tformavertissement.bitbtn1.caption msgctxt "tformavertissement.bitbtn1.caption" msgid "&OK" msgstr "" #: tformavertissement.caption msgctxt "tformavertissement.caption" msgid "!!! Attention !!!" msgstr "!!! Warning !!!" #: tformavertissement.checkbox1.caption msgctxt "tformavertissement.checkbox1.caption" msgid "Ne plus afficher ce message au cours de cette session" msgstr "" #: tformoptionscsv.bitbtn1.caption msgctxt "tformoptionscsv.bitbtn1.caption" msgid "&OK" msgstr "" #: tformoptionscsv.caption msgctxt "tformoptionscsv.caption" msgid "Options pour l'export au format tableur texte" msgstr "" #: tformoptionscsv.radiogroupseparateurdecimal.caption msgctxt "tformoptionscsv.radiogroupseparateurdecimal.caption" msgid "Séparateur décimal" msgstr "" #: tformoptionscsv.radiogroupseparateur_csv.caption msgctxt "tformoptionscsv.radiogroupseparateur_csv.caption" msgid "Séparateur de colonnes:" msgstr "" #: tform_dilution.caption msgid "Form_dilution" msgstr "" #: tform_dilution.label1.caption msgid "Vous pouvez au choix:" msgstr "" #: tform_dilution.label2.caption msgctxt "tform_dilution.label2.caption" msgid "Label2" msgstr "" #: tmodifnombremole.bitbtn1.caption msgctxt "tmodifnombremole.bitbtn1.caption" msgid "&OK" msgstr "" #: tmodifnombremole.caption msgctxt "tmodifnombremole.caption" msgid "Modification concentration" msgstr "" #: tmodifnombremole.label1.caption msgctxt "tmodifnombremole.label1.caption" msgid "Concentration molaire:" msgstr "Molar concentration" #: tmodifnombremole.label2.caption msgctxt "tmodifnombremole.label2.caption" msgid "mol/L" msgstr "" #: toptions_indicateur.bitbtn1.caption msgctxt "toptions_indicateur.bitbtn1.caption" msgid "&OK" msgstr "" #: toptions_indicateur.caption msgctxt "toptions_indicateur.caption" msgid "Options pour l'indicateur coloré" msgstr "" #: toptions_indicateur.radiogroup1.caption msgctxt "toptions_indicateur.radiogroup1.caption" msgid "Dégradé de couleurs de l'indicateur" msgstr "Acid-base indicator' color" #: tsaisiechiffressignificatifs.bitbtn1.caption msgctxt "tsaisiechiffressignificatifs.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisiechiffressignificatifs.caption msgctxt "tsaisiechiffressignificatifs.caption" msgid "Chiffres significatifs" msgstr "Significant figures" #: tsaisiechiffressignificatifs.label1.caption msgctxt "tsaisiechiffressignificatifs.label1.caption" msgid "Nombre de chiffres affichés et gardés pour les logarithmes de constantes de réaction:" msgstr "" #: tsaisiechiffressignificatifs.label2.caption msgctxt "tsaisiechiffressignificatifs.label2.caption" msgid "Nombre de chiffres affichés pour les résultats:" msgstr "" #: tsaisiecouleurs.bitbtn1.caption msgctxt "tsaisiecouleurs.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisiecouleurs.caption msgctxt "tsaisiecouleurs.caption" msgid "Couleurs" msgstr "Colors" #: tsaisiecouleurs.label1.caption msgctxt "tsaisiecouleurs.label1.caption" msgid "Couleur grille échelle gauche:" msgstr "Left grid's color:" #: tsaisiecouleurs.label2.caption msgctxt "tsaisiecouleurs.label2.caption" msgid "Couleur grille échelle droite:" msgstr "Right grid's color:" #: tsaisiecouleurs.label3.caption msgctxt "tsaisiecouleurs.label3.caption" msgid "Couleur graduations:" msgstr "Graduation's color:" #: tsaisiecouleurs.label4.caption msgctxt "tsaisiecouleurs.label4.caption" msgid "Couleur du fond:" msgstr "Background color" #: tsaisiecouleurs.label5.caption msgctxt "tsaisiecouleurs.label5.caption" msgid "Couleur des axes:" msgstr "Axe's colors:" #: tsaisieepaisseur.bitbtn1.caption msgctxt "tsaisieepaisseur.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisieepaisseur.caption msgctxt "tsaisieepaisseur.caption" msgid "Epaisseur trait" msgstr "" #: tsaisieepaisseur.label1.caption msgctxt "tsaisieepaisseur.label1.caption" msgid "Epaisseur du trait devant joindre les points:" msgstr "" #: tsaisieexpression.bitbtn1.caption msgctxt "tsaisieexpression.bitbtn1.caption" msgid "Valider" msgstr "" #: tsaisieexpression.bitbtn2.caption msgctxt "tsaisieexpression.bitbtn2.caption" msgid "Annuler" msgstr "Cancel" #: tsaisieexpression.caption msgctxt "tsaisieexpression.caption" msgid "Saisie de l'expression" msgstr "" #: tsaisieexpression.label1.caption msgctxt "tsaisieexpression.label1.caption" msgid "Saisissez l'expression de la grandeur . Les noms des variables (V,..., c1, c2,...,n1, n2...) et les noms de fonction ont les" msgstr "" #: tsaisieexpression.label2.caption msgctxt "tsaisieexpression.label2.caption" msgid "significations indiquées ci-dessous:" msgstr "" #: tsaisieexpression.label3.caption msgctxt "tsaisieexpression.label3.caption" msgid "Variables utilisables:" msgstr "" #: tsaisieexpression.label4.caption msgctxt "tsaisieexpression.label4.caption" msgid "Opérateurs et fonctions utilisables:" msgstr "" #: tsaisiefaisceau.bitbtn1.caption msgctxt "tsaisiefaisceau.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisiefaisceau.bitbtn2.caption msgctxt "tsaisiefaisceau.bitbtn2.caption" msgid "Annuler" msgstr "Cancel" #: tsaisiefaisceau.caption msgctxt "tsaisiefaisceau.caption" msgid "Faisceau de courbes" msgstr "" #: tsaisiefaisceau.label1.caption msgctxt "tsaisiefaisceau.label1.caption" msgid "Grandeur à faire varier" msgstr "" #: tsaisiefaisceau.label2.caption msgctxt "tsaisiefaisceau.label2.caption" msgid " pour obtenir le faisceau:" msgstr "" #: tsaisiefaisceau.label4.caption msgctxt "tsaisiefaisceau.label4.caption" msgid "1ère valeur:" msgstr "first value:" #: tsaisiefaisceau.label5.caption msgctxt "tsaisiefaisceau.label5.caption" msgid "Incrément:" msgstr "" #: tsaisiefaisceau.label6.caption msgctxt "tsaisiefaisceau.label6.caption" msgid "1ère valeur:" msgstr "first value:" #: tsaisiefaisceau.label7.caption msgctxt "tsaisiefaisceau.label7.caption" msgid "Pas:" msgstr "" #: tsaisiefaisceau.label8.caption msgctxt "tsaisiefaisceau.label8.caption" msgid "Les couleurs en dégradé des courbes tendront vers:" msgstr "" #: tsaisiefaisceau.radiogrouptypefaisceau.caption msgctxt "tsaisiefaisceau.radiogrouptypefaisceau.caption" msgid "Type de suite de valeurs" msgstr "" #: tsaisiefichiertableur.bitbtn1.caption msgctxt "tsaisiefichiertableur.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisiefichiertableur.caption msgctxt "tsaisiefichiertableur.caption" msgid "Chargement fichier expérience" msgstr "Load file of experimental datas" #: tsaisiefichiertableur.checkboxrecalculechelles.caption msgctxt "tsaisiefichiertableur.checkboxrecalculechelles.caption" msgid "Recalculer automatiquement les échelles verticales" msgstr "" #: tsaisiefichiertableur.label1.caption msgctxt "tsaisiefichiertableur.label1.caption" msgid "Voici les 4 premières lignes du fichier:" msgstr "" #: tsaisiefichiertableur.label2.caption msgctxt "tsaisiefichiertableur.label2.caption" msgid "Veuillez compléter les informations suivantes:" msgstr "" #: tsaisiefichiertableur.label3.caption msgctxt "tsaisiefichiertableur.label3.caption" msgid "Ligne à laquelle commencent les données:" msgstr "" #: tsaisiefichiertableur.label4.caption msgctxt "tsaisiefichiertableur.label4.caption" msgid "Nombre de données par ligne:" msgstr "" #: tsaisiefichiertableur.label5.caption msgctxt "tsaisiefichiertableur.label5.caption" msgid "Colonne dont la grandeur sera considérée comme abscisse:" msgstr "Column's number of quantity which be abscissa:" #: tsaisiefichiertableur.radiogroupseparateur.caption msgctxt "tsaisiefichiertableur.radiogroupseparateur.caption" msgid "Valeurs numériques séparées par:" msgstr "" #: tsaisienombremole.bitbtn1.caption msgctxt "tsaisienombremole.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisienombremole.bitbtn2.caption msgctxt "tsaisienombremole.bitbtn2.caption" msgid "Annuler" msgstr "Cancel" #: tsaisienombremole.caption msgctxt "tsaisienombremole.caption" msgid "Nombre de moles ?" msgstr "" #: tsaisienombremole.label1.caption msgctxt "tsaisienombremole.label1.caption" msgid "Label1" msgstr "" #: tsaisienombremole.label_unite.caption msgid "toto" msgstr "" #: tsaisienombremole.radiogroup1.caption msgctxt "tsaisienombremole.radiogroup1.caption" msgid "au choix:" msgstr "choice:" #: tsaisieregressi.bitbtn1.caption msgctxt "tsaisieregressi.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisieregressi.caption msgctxt "tsaisieregressi.caption" msgid "Chargement fichier expérience" msgstr "Load file of experimental datas" #: tsaisieregressi.checkboxrecalculechelles.caption msgctxt "tsaisieregressi.checkboxrecalculechelles.caption" msgid "Recalculer automatiquement les échelles verticales" msgstr "" #: tsaisieregressi.label1.caption msgctxt "tsaisieregressi.label1.caption" msgid "Grandeurs présentes dans le fichier:" msgstr "" #: tsaisieregressi.label2.caption msgctxt "tsaisieregressi.label2.caption" msgid "Indice de la ligne de la grandeur qui sera l'abscisse:" msgstr "" #: tsaisietailleimage.bitbtn1.caption msgctxt "tsaisietailleimage.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisietailleimage.caption msgid "Taille de l'image" msgstr "" #: tsaisietailleimage.label1.caption msgid "Largeur:" msgstr "" #: tsaisietailleimage.label2.caption msgid "Hauteur:" msgstr "" #: tsaisietailleimage.label3.caption msgctxt "tsaisietailleimage.label3.caption" msgid "pixels" msgstr "" #: tsaisietailleimage.label4.caption msgctxt "tsaisietailleimage.label4.caption" msgid "pixels" msgstr "" #: tsaisietaillepoints.bitbtn1.caption msgctxt "tsaisietaillepoints.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisietaillepoints.caption msgctxt "tsaisietaillepoints.caption" msgid "Taille des points" msgstr "" #: tsaisietaillepoints.label1.caption msgctxt "tsaisietaillepoints.label1.caption" msgid "Taille des points:" msgstr "" #: tsaisietemporisation.bitbtn1.caption msgctxt "tsaisietemporisation.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisietemporisation.caption msgctxt "tsaisietemporisation.caption" msgid "Temporisation" msgstr "" #: tsaisietemporisation.label1.caption msgid "Lors de l'exécution d'un \"film\" de simulation, l'affichage de chaque écran doit durer:" msgstr "" #: tsaisietemporisation.label2.caption msgctxt "tsaisietemporisation.label2.caption" msgid "ms" msgstr "" #: tsaisietitre.bitbtn1.caption msgctxt "tsaisietitre.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisietitre.caption msgctxt "tsaisietitre.caption" msgid "Titre du graphe" msgstr "Graph's title" #: tsaisietitre.label1.caption msgctxt "tsaisietitre.label1.caption" msgid "Titre du graphe:" msgstr "Graph's title" #: tsaisietitre.speedbutton1.caption msgctxt "tsaisietitre.speedbutton1.caption" msgid "Police" msgstr "" #: tsaisietypedonnee.bitbtn1.caption msgctxt "tsaisietypedonnee.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisietypedonnee.caption msgctxt "tsaisietypedonnee.caption" msgid "Type de donnée" msgstr "" #: tsaisietypedonnee.checkboxrepresente.caption msgctxt "tsaisietypedonnee.checkboxrepresente.caption" msgid "Ne pas représenter cette grandeur" msgstr "" #: tsaisietypedonnee.label15.caption msgctxt "tsaisietypedonnee.label15.caption" msgid "Taille des points:" msgstr "" #: tsaisietypedonnee.label2.caption msgctxt "tsaisietypedonnee.label2.caption" msgid "Epaisseur trait:" msgstr "" #: tsaisietypedonnee.label3.caption msgctxt "tsaisietypedonnee.label3.caption" msgid "Couleur:" msgstr "Color:" #: tsaisietypedonnee.label4.caption msgctxt "tsaisietypedonnee.label4.caption" msgid "Nom:" msgstr "" #: tsaisietypedonnee.radiogroupechelle_e.caption msgctxt "tsaisietypedonnee.radiogroupechelle_e.caption" msgid "Echelle:" msgstr "" #: tsaisietypedonnee.radiogroupjoindre_e.caption msgctxt "tsaisietypedonnee.radiogroupjoindre_e.caption" msgid "Joindre les points" msgstr "" #: tsaisietypedonnee.radiogrouptype_e.caption msgctxt "tsaisietypedonnee.radiogrouptype_e.caption" msgid "Représentée par:" msgstr "" #: tsaisieunites.bitbtn1.caption msgctxt "tsaisieunites.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisieunites.caption msgctxt "tsaisieunites.caption" msgid "Unités et labels des axes:" msgstr "" #: tsaisieunites.label1.caption msgctxt "tsaisieunites.label1.caption" msgid "Unité à afficher sur l'axe des abscisses:" msgstr "" #: tsaisieunites.label2.caption msgctxt "tsaisieunites.label2.caption" msgid "Label à afficher sur l'axe des abscisses:" msgstr "" #: tsaisieunites.label3.caption msgctxt "tsaisieunites.label3.caption" msgid "Unité à afficher sur l'axe gauche des ordonnées:" msgstr "" #: tsaisieunites.label4.caption msgctxt "tsaisieunites.label4.caption" msgid "Label à afficher sur l'axe gauche des ordonnées:" msgstr "" #: tsaisieunites.label5.caption msgctxt "tsaisieunites.label5.caption" msgid "Unité à afficher sur l'axe droit des ordonnées:" msgstr "" #: tsaisieunites.label6.caption msgctxt "tsaisieunites.label6.caption" msgid "Label à afficher sur l'axe droit des ordonnées:" msgstr "" #: tsaisie_conductivite.bitbtn1.caption msgctxt "tsaisie_conductivite.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisie_conductivite.caption msgctxt "tsaisie_conductivite.caption" msgid "Saisie conductivité" msgstr "" #: tsaisie_conductivite.edit1.text msgid "40" msgstr "" #: tsaisie_conductivite.label1.caption msgctxt "tsaisie_conductivite.label1.caption" msgid "La conductivité de l'espèce" msgstr "" #: tsaisie_conductivite.label2.caption msgctxt "tsaisie_conductivite.label2.caption" msgid "Label2" msgstr "" #: tsaisie_conductivite.label3.caption msgctxt "tsaisie_conductivite.label3.caption" msgid "ne figure pas dans ma base de données. Vous pouvez saisir la valeur ci-dessous:" msgstr "" #: tsaisie_conductivite.label4.caption msgctxt "tsaisie_conductivite.label4.caption" msgid "0,1 mS.m²/mol" msgstr "0,1 mS.m²/mol" #: tsaisie_conductivite.label5.caption msgctxt "tsaisie_conductivite.label5.caption" msgid "Remarque: cette modification ne perdurera que durant cette session de Dozzzaqueux.." msgstr "" #: tsaisie_conductivite.label6.caption msgctxt "tsaisie_conductivite.label6.caption" msgid "Si vous voulez la rendre définitive, modifiez cette espèce dans la base avec Modifbase." msgstr "" #: tsaisie_derivees.bitbtn1.caption msgctxt "tsaisie_derivees.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisie_derivees.caption msgctxt "tsaisie_derivees.caption" msgid "Calcul des dérivées" msgstr "Derivatives calculation" #: tsaisie_derivees.checkboxderivees.caption msgctxt "tsaisie_derivees.checkboxderivees.caption" msgid "Activer le calcul des dérivées par rapport au volume" msgstr "Activate derivative (/volume) 's calculation" #: tsaisie_derivees.label1.caption msgctxt "tsaisie_derivees.label1.caption" msgid "Le calcul de la dérivée numérique en V0 se fait par: (f(V0+h)-f(V0-h))/(2h)" msgstr "" #: tsaisie_derivees.label2.caption msgctxt "tsaisie_derivees.label2.caption" msgid "Choix de h: volume burette/" msgstr "Choice of h: burette's volume/" #: tsaisie_electroneutralite.bitbtn1.caption msgctxt "tsaisie_electroneutralite.bitbtn1.caption" msgid "&OK" msgstr "" #: tsaisie_electroneutralite.caption msgctxt "tsaisie_electroneutralite.caption" msgid "Electroneutralité" msgstr "" #: tsaisie_electroneutralite.label1.caption msgctxt "tsaisie_electroneutralite.label1.caption" msgid "La charge électrique totale est non nulle. Vous pouvez:" msgstr "" #: tsaisie_electroneutralite.radiogroup1.caption msgctxt "tsaisie_electroneutralite.radiogroup1.caption" msgid "au choix:" msgstr "choice:" #: tsasiestyleordonnees.bitbtn1.caption msgctxt "tsasiestyleordonnees.bitbtn1.caption" msgid "&OK" msgstr "" #: tsasiestyleordonnees.caption msgctxt "tsasiestyleordonnees.caption" msgid "Style des points" msgstr "" #: tsasiestyleordonnees.radiogroupstyle.caption msgctxt "tsasiestyleordonnees.radiogroupstyle.caption" msgid "Style" msgstr "" #: tscript.caption msgctxt "tscript.caption" msgid "script" msgstr "" #: tscript.label1.caption msgctxt "tscript.label1.caption" msgid "Label1" msgstr "" #: tscript.label2.caption msgctxt "tscript.label2.caption" msgid "Ne touchez à rien, l'onglet suivant va bientôt être affiché." msgstr "" #: tscript.label3.caption msgctxt "tscript.label3.caption" msgid "Après l'affichage des courbes, vous pourrez revisiter tous les onglets." msgstr "After curves viewing, you'll be able to revisit all tabsheets" #: tsplashscreen.caption msgctxt "tsplashscreen.caption" msgid "splashscreen" msgstr "" #: tsplashscreen.label1.caption msgctxt "tsplashscreen.label1.caption" msgid "Dozzzaqueux" msgstr "Dozzzaqueux" #: tsplashscreen.label2.caption msgctxt "tsplashscreen.label2.caption" msgid "Logiciel libre et gratuit de simulation de courbes de dosage" msgstr "Free software for simulate titration" #: tsplashscreen.label3.caption msgid "Version 3.04 du 10/08/2009, codée en Lazarus" msgstr "" #: tsplashscreen.label4.caption msgid "Par Jean-Marie Biansan, 2005 à 2009" msgstr "" #: uchaines.rs msgid "***************************************" msgstr "***************************************" #: uchaines.rs0001duvolume msgid "+- 0,001% du volume maximum versable" msgstr "+- 0,001% of maximum volume" #: uchaines.rs001duvolumem msgctxt "uchaines.rs001duvolumem" msgid "+- 0,01% du volume maximum versable" msgstr "+- 0,01% of maximum volume" #: uchaines.rs01duvolumema msgctxt "uchaines.rs01duvolumema" msgid "+- 0,1% du volume maximum versable" msgstr "+- 0,1% of maximum volume" #: uchaines.rs01msmmol msgctxt "uchaines.rs01msmmol" msgid "0,1 mS.m²/mol" msgstr "0,1 mS.m²/mol" #: uchaines.rs10 msgctxt "uchaines.rs10" msgid "/10" msgstr "/10" #: uchaines.rs1duvolumemax msgctxt "uchaines.rs1duvolumemax" msgid "+-1% du volume maximum versable" msgstr "+- 1% of maximum volume" #: uchaines.rs1revaleur msgctxt "uchaines.rs1revaleur" msgid "1ère valeur:" msgstr "first value:" #: uchaines.rs2 msgid "************************************" msgstr "************************************" #: uchaines.rs3 msgid "*****************************************************" msgstr "*****************************************************" #: uchaines.rs4 msgid "********************" msgstr "********************" #: uchaines.rs5 msgid " " msgstr " " #: uchaines.rsaactivitde msgid "a%s: activité de %s" msgstr "a%s: activity of %s" #: uchaines.rsabscisseordo msgid "%s Abscisse: %s Ordonnées: " msgstr "%s Abscissa: %s Ordinates: " #: uchaines.rsabsent msgid "ABSENT" msgstr "ABSENT" #: uchaines.rsabsvaleurabs msgid "abs() : valeur absolue" msgstr "abs() : absolute value" #: uchaines.rsacidesetbase msgctxt "uchaines.rsacidesetbase" msgid "Acides et bases" msgstr "Acids and bases" #: uchaines.rsacidesetbase2 msgctxt "uchaines.rsacidesetbase2" msgid "Acides et bases organiques" msgstr "Organic acids and bases" #: uchaines.rsactiverdsact msgctxt "uchaines.rsactiverdsact" msgid "Activer/désactiver l'affichage du fichier expérimental" msgstr "Activate/deactivate experimental file's view" #: uchaines.rsactiverdsact2 msgctxt "uchaines.rsactiverdsact2" msgid "Activer/désactiver la superposition" msgstr "Activate/deactivate superposition" #: uchaines.rsactiverlecal msgctxt "uchaines.rsactiverlecal" msgid "Activer le calcul des dérivées par rapport au volume" msgstr "Activate derivative (/volume) 's calculation" #: uchaines.rsactivit msgid "Activité" msgstr "Activity" #: uchaines.rsactivit2 msgid "%sActivité" msgstr "%sActivity" #: uchaines.rsactivitsdese msgid "Activités des espéces en solution:" msgstr "Activities of aqueous species" #: uchaines.rsaffichagedes msgid "Affichage des résultats bruts..." msgstr "View raw results" #: uchaines.rsaffichebase msgctxt "uchaines.rsaffichebase" msgid "affiche base" msgstr "view base" #: uchaines.rsaide msgctxt "uchaines.rsaide" msgid "Aide" msgstr "Help" #: uchaines.rsaidedozzzaqu msgctxt "uchaines.rsaidedozzzaqu" msgid "Aide Dozzzaqueux" msgstr "Help for Dozzzaqueux" #: uchaines.rsainsisilevol msgid "Ainsi, si le volume initial du bêcher (ou volume maximal à verser pour la burette) est de 100mL et que vous mettez 0.01 mol," msgstr "" #: uchaines.rsajouterlevol msgid "Ajouter le volume d'eau suivant:" msgstr "" #: uchaines.rsajoutermodif msgctxt "uchaines.rsajoutermodif" msgid "Ajouter/modifier titre" msgstr "Add/modify title" #: uchaines.rsajoutermodif2 msgctxt "uchaines.rsajoutermodif2" msgid "Ajouter/modifier unité et labels des axes" msgstr "Add/modify units and axes labels" #: uchaines.rsajouterouenl #, fuzzy #| msgid "ajouter ou enlever des espèces" msgid "ajouter ou enlever des espèces " msgstr "add or remove species" #: uchaines.rsajouterunegr msgctxt "uchaines.rsajouterunegr" msgid "Ajouter une grandeur en ordonnée" msgstr "Add a grandeur on ordinate" #: uchaines.rsalcanesalcne msgctxt "uchaines.rsalcanesalcne" msgid "Alcanes, alcénes, alcynes" msgstr "Alkane, alkene, alkyne" #: uchaines.rsalcools msgctxt "uchaines.rsalcools" msgid "Alcools" msgstr "Alcohols" #: uchaines.rsaldhydesetct msgctxt "uchaines.rsaldhydesetct" msgid "Aldéhydes et cétones" msgstr "Aldehydes, ketones" #: uchaines.rsaminesetamid msgctxt "uchaines.rsaminesetamid" msgid "Amines et amides" msgstr "Amines and amides" #: uchaines.rsamminoacides msgctxt "uchaines.rsamminoacides" msgid "Amminoacides" msgstr "Amino acids" #: uchaines.rsanionssimple msgctxt "uchaines.rsanionssimple" msgid "Anions simples" msgstr "Simple anions" #: uchaines.rsannuler msgctxt "uchaines.rsannuler" msgid "Annuler" msgstr "Cancel" #: uchaines.rsapropos msgctxt "uchaines.rsapropos" msgid "A propos..." msgstr "About..." #: uchaines.rsaproposdedoz msgctxt "uchaines.rsaproposdedoz" msgid "A propos de...Dozzzaqueux" msgstr "About...Dozzzaqueux" #: uchaines.rsaprslafficha msgctxt "uchaines.rsaprslafficha" msgid "Après l'affichage des courbes, vous pourrez revisiter tous les onglets." msgstr "After curves viewing, you'll be able to revisit all tabsheets" #: uchaines.rsarctanarctan msgid "arctan() : arctangente" msgstr "arctan() : arctangente" #: uchaines.rsarithmtique msgid "Arithmétique" msgstr "Arithmetic" #: uchaines.rsarrterlescal msgid "Arrêter les calculs ?" msgstr "Stop calculation ?" #: uchaines.rsatomesetmolc msgctxt "uchaines.rsatomesetmolc" msgid "Atomes et molécules" msgstr "Atoms and molecules" #: uchaines.rsattention msgid "Attention" msgstr "Warning" #: uchaines.rsattention2 msgid "Attention !" msgstr "Warning !" #: uchaines.rsattention3 msgctxt "uchaines.rsattention3" msgid "!!! Attention !!!" msgstr "!!! Warning !!!" #: uchaines.rsattentionaut msgid "Attention: autoriser les réactions rédox peut conduire à l'apparition d'un grand" msgstr "Warning: authorize redox reactions may lead to emergence of a big" #: uchaines.rsattentionlev msgid "Attention: le volume de référence est ici celui du bêcher (ou de la burette si vous êtes en train de remplir la burette)" msgstr "Warning: reference volume is beaker's volume (or burette if you're filling burette)" #: uchaines.rsauchoix msgctxt "uchaines.rsauchoix" msgid "au choix:" msgstr "choice:" #: uchaines.rsaucuneespcea msgctxt "uchaines.rsaucuneespcea" msgid "Aucune espéce ayant cette formule n'a été trouvée dans la base." msgstr "No specie having this formula was found in database" #: uchaines.rsaucuneespcea2 msgctxt "uchaines.rsaucuneespcea2" msgid "Aucune espéce ayant cette formule n'a été trouvée dans la base." msgstr "No specie having this formula was found in database" #: uchaines.rsaucuneespcea3 msgctxt "uchaines.rsaucuneespcea3" msgid "Aucune espéce ayant cette formule n'a été trouvée dans la base." msgstr "No specie having this formula was found in database" #: uchaines.rsaucuneespcea4 msgctxt "uchaines.rsaucuneespcea4" msgid "Aucune espéce ayant cette formule n'a été trouvée dans la base." msgstr "No specie having this formula was found in database" #: uchaines.rsautomatique msgid "Automatique" msgstr "Automatic" #: uchaines.rsautoriserrac msgctxt "uchaines.rsautoriserrac" msgid "Autoriser réactions redox" msgstr "Authorize redox reactions" #: uchaines.rsaxes msgctxt "uchaines.rsaxes" msgid "Axes" msgstr "Axes" #: uchaines.rsbas msgid "Bas" msgstr "Bottom" #: uchaines.rsbasederactif #, fuzzy #| msgid "Base de réactifs:" msgctxt "uchaines.rsbasederactif" msgid "Base de réactifs (clic en tête de colonne pour modifier l'ordre de tri):" msgstr "Reactants database (clic column head to change sort order)" #: uchaines.rsbcher msgctxt "uchaines.rsbcher" msgid "Bécher" msgstr "Beaker" #: uchaines.rsbchernombred msgid "[Bécher] %s (nombre de moles pour 1L)" msgstr "[Beaker] %s " #: uchaines.rsbenzneetdriv msgctxt "uchaines.rsbenzneetdriv" msgid "Benzéne et dérivés" msgstr "Benzene and derivatives\"(mole number for 1L" #: uchaines.rsburette msgctxt "uchaines.rsburette" msgid "Burette" msgstr "Burette" #: uchaines.rsburettenombr msgid "[Burette] %s (nombre de moles pour 1L)" msgstr "[Burette] %s (mole number for 1L)" #: uchaines.rscalculdesdri msgctxt "uchaines.rscalculdesdri" msgid "Calcul des dérivées" msgstr "Derivatives calculation" #: uchaines.rscalculer msgctxt "uchaines.rscalculer" msgid "Calculer" msgstr "Calculate" #: uchaines.rscalculerlesv msgid "Calculer les valeurs pour un point particulier" msgstr "" #: uchaines.rscationssimpl msgctxt "uchaines.rscationssimpl" msgid "Cations simples" msgstr "Simple cations" #: uchaines.rscconcentrati msgid "c%s: concentration en %s (en mol/L)" msgstr "c%s: molar concentration for %s (mol/L)" #: uchaines.rscecipeutdonn msgid "Ceci peut donner des calculs très longs." msgstr "This can lead to very long calculations." #: uchaines.rscelaconduira msgid "Cela conduirait à une concentration ou un volume négatif..." msgstr "This can lead to negative concentration or volume" #: uchaines.rscenomdefichi msgid "Ce nom de fichier existe déjà" msgstr "This file name already exists" #: uchaines.rscentr msgid "Centré" msgstr "Center" #: uchaines.rscercle msgid "Cercle" msgstr "Circle" #: uchaines.rscettequantit msgid "Cette quantité doit être strictement positive !" msgstr "This amount must be strictly positive" #: uchaines.rschangercette msgctxt "uchaines.rschangercette" msgid "Changer cette valeur ne modifie pas les concentrations ! Utilisez le bouton \"dilution\" si vous voulez les modifier par dilution" msgstr "Changing this value doesn't change concentrations ! Use \"dilution\" button if you want to change them." #: uchaines.rschargementfi msgctxt "uchaines.rschargementfi" msgid "Chargement fichier expérience" msgstr "Load file of experimental datas" #: uchaines.rschiffressign msgctxt "uchaines.rschiffressign" msgid "Chiffres significatifs" msgstr "Significant figures" #: uchaines.rschoisirlesco msgctxt "uchaines.rschoisirlesco" msgid "Choisir les courbes à tracer >>>>>>>" msgstr "Choose curves to draw" #: uchaines.rschoixdehvolu msgctxt "uchaines.rschoixdehvolu" msgid "Choix de h: volume burette/" msgstr "Choice of h: burette's volume/" #: uchaines.rschoixdescour msgctxt "uchaines.rschoixdescour" msgid "Choix des courbes" msgstr "Curve's choice" #: uchaines.rschoixdesgran msgid "Choix des grandeurs à tracer..." msgstr "Choice of quantities to draw..." #: uchaines.rschoixdesract msgid "Choix des réactifs du bécher..." msgstr "Choice of beaker's reactants..." #: uchaines.rschoixdesract2 msgid "Choix des réactifs de la burette..." msgstr "Choice of burette's reactants" #: uchaines.rschoixdesract3 msgctxt "uchaines.rschoixdesract3" msgid "Choix des réactifs:bécher" msgstr "Choice of beaker's reactants..." #: uchaines.rschoixdesract4 msgctxt "uchaines.rschoixdesract4" msgid "Choix des réactifs:burette" msgstr "Choice of burette's reactants" #: uchaines.rschoixdupas msgctxt "uchaines.rschoixdupas" msgid "Choix du pas" msgstr "Step's choice" #: uchaines.rscolonnedontl msgctxt "uchaines.rscolonnedontl" msgid "Colonne dont la grandeur sera considérée comme abscisse:" msgstr "Column's number of quantity which be abscissa:" #: uchaines.rscomplexesetd msgctxt "uchaines.rscomplexesetd" msgid "Complexes et divers" msgstr "Complexs and others" #: uchaines.rscomplexeslig msgctxt "uchaines.rscomplexeslig" msgid "Complexes à ligands organiques, et divers" msgstr "Complexs with organic ligands, and others" #: uchaines.rsconcentratio msgid "Concentrations des espéces en solution:" msgstr "Molar concentrations of aqueous species:" #: uchaines.rsconcentratio2 msgid "Concentration (mol/L)" msgstr "Molar concentration (mol/L)" #: uchaines.rsconcentratio3 msgctxt "uchaines.rsconcentratio3" msgid "Concentration molaire:" msgstr "Molar concentration" #: uchaines.rsconcentratio4 msgid "Concentration négative impossible..." msgstr "Molar concentration negative's is impossible" #: uchaines.rsconcmoll msgid "Conc.(mol/L)" msgstr "Conc.(mol/L)" #: uchaines.rsconcmoll2 msgid "%sConc.(mol/L)" msgstr "%sConc.(mol/L)" #: uchaines.rsconductivit0 msgid "Conductivité (0,1 mS.m²/mol)" msgstr "Conductivity (0,1 mS.m²/mol)" #: uchaines.rsconfiguratio msgctxt "uchaines.rsconfiguratio" msgid "Configuration de la page pour l'impression" msgstr "Page's configuration for printing" #: uchaines.rsconsultezlef msgid "Consultez le fichier dozzzaqueux.html dans le répertoire Aide" msgstr "Look at dozzzaqueux.html in Aide directory " #: uchaines.rscopier msgctxt "uchaines.rscopier" msgid "Copier" msgstr "Copy" #: uchaines.rscopierdansle msgctxt "uchaines.rscopierdansle" msgid "Copier dans le presse papier" msgstr "Copy to the clipboard" #: uchaines.rscoscosinus msgid "cos() : cosinus" msgstr "cos() : cosine" #: uchaines.rscoshcosinush msgid "cosh() : cosinus hyperbolique" msgstr "cosh() : hyperbolic cosine" #: uchaines.rscotancotange msgid "cotan() : cotangente" msgstr "cotan() : cotangente" #: uchaines.rscouleur msgid "Couleur" msgstr "Color" #: uchaines.rscouleur2 msgctxt "uchaines.rscouleur2" msgid "Couleur:" msgstr "Color:" #: uchaines.rscouleurdesax msgctxt "uchaines.rscouleurdesax" msgid "Couleur des axes:" msgstr "Axe's colors:" #: uchaines.rscouleurdufon msgctxt "uchaines.rscouleurdufon" msgid "Couleur du fond:" msgstr "Background color" #: uchaines.rscouleurgradu msgctxt "uchaines.rscouleurgradu" msgid "Couleur graduations:" msgstr "Graduation's color:" #: uchaines.rscouleurgrill msgctxt "uchaines.rscouleurgrill" msgid "Couleur grille échelle gauche:" msgstr "Left grid's color:" #: uchaines.rscouleurgrill2 msgctxt "uchaines.rscouleurgrill2" msgid "Couleur grille échelle droite:" msgstr "Right grid's color:" #: uchaines.rscouleurs msgctxt "uchaines.rscouleurs" msgid "Couleurs" msgstr "Colors" #: uchaines.rscroix msgid "Croix (+)" msgstr "Cross (+)" #: uchaines.rscroixx msgid "Croix (x)" msgstr "Cross (x)" #: uchaines.rscsv msgid ".csv" msgstr ".csv" #: uchaines.rsdadv1l msgid "da/dV (1/L)" msgstr "da/dV (1/L)" #: uchaines.rsda_dv1l msgid "%sda_dV (1/L)" msgstr "%sda_dV (1/L)" #: uchaines.rsda_dvdrivepa msgid "da%s_dV: dérivée par rapport au volume versé de l'activité de %s (en 1/L)" msgstr "da%s_dV: derivative (/volume) of activity of %s (1/L)" #: uchaines.rsdcdvmoll msgid "dC/dV (mol/L²)" msgstr "dC/dV (mol/L²)" #: uchaines.rsdc_dvdrivepa msgid "dc%s_dV: dérivée par rapport au volume versé de la concentration en %s (en mol/L²)" msgstr "dc%s_dV: derivative (/volume)of molar concentration of %s (mol/L²)" #: uchaines.rsdc_dvmoll msgid "%sdC_dV(mol/L²)" msgstr "%sdC_dV(mol/L²)" #: uchaines.rsde msgid "%s de " msgstr "%s of" #: uchaines.rsdeaupure msgctxt "uchaines.rsdeaupure" msgid "%s d'eau pure" msgstr "%s of pure water" #: uchaines.rsdeaupure2 msgctxt "uchaines.rsdeaupure2" msgid "%s d'eau pure" msgstr "%s of pure water" #: uchaines.rsdemandedarrt msgid "Demande d'arrêt" msgstr "Stopping required" #: uchaines.rsdemonrpertoi #, fuzzy #| msgid "du répertoire \"exemples\"" msgctxt "uchaines.rsdemonrpertoi" msgid "de mon répertoire personnel" msgstr "from directory \"exemples\"" #: uchaines.rsdeplusetsurt msgid "De plus et surtout, expérimentalement, ces espéces n'apparaissent pas " msgstr "Furthermore, experimentally, these species do not appear " #: uchaines.rsdfinirlagran msgctxt "uchaines.rsdfinirlagran" msgid "Définir la grandeur portée en abscisse" msgstr "Define abscissa's quantity" #: uchaines.rsdgraddecoule msgctxt "uchaines.rsdgraddecoule" msgid "Dégradé de couleurs de l'indicateur" msgstr "Acid-base indicator' color" #: uchaines.rsdiffrence msgid "- : différence" msgstr "- : difference" #: uchaines.rsdilution msgctxt "uchaines.rsdilution" msgid "Dilution" msgstr "Dilution" #: uchaines.rsdilutionpour msgid "Dilution pour le bêcher" msgstr "Dilution for beaker" #: uchaines.rsdilutionpour2 msgid "Dilution pour la burette" msgstr "Dilution for burette" #: uchaines.rsdisque msgid "Disque" msgstr "Disc" #: uchaines.rsdiviserlesco msgctxt "uchaines.rsdiviserlesco" msgid "Diviser les concentrations par 10" msgstr "Divide concentrations by 10" #: uchaines.rsdndvmoll msgid "dN/dV (mol/L)" msgstr "dN/dV (mol/L)" #: uchaines.rsdn_dvdrivepa msgid "dn%s_dV: dérivée par rapport au volume versé du nombre de moles du solide %s (en 1/L)" msgstr "dn%s_dV: derivative (/volume) of solid mole number %s (1/L)" #: uchaines.rsdn_dvmoll msgid "%sdN_dV (mol/L)" msgstr "%sdN_dV (mol/L)" #: uchaines.rsdosagedeml msgid "Dosage de %smL" msgstr "Titration of %smL" #: uchaines.rsdozzzaqueux msgctxt "uchaines.rsdozzzaqueux" msgid "Dozzzaqueux" msgstr "Dozzzaqueux" #: uchaines.rsdpa_dvdrivep msgid "dpa%s_dV: dérivée par rapport au volume versé du cologarithme de l'activité de %s (en 1/L)" msgstr "dpa%s_dV: derivative (/volume) of cologarithm of activity of %s (1/L)" #: uchaines.rsdpc_dvdrivep msgid "dpc%s_dV: dérivée par rapport au volume versé du pc de %s (en 1/L)" msgstr "dpc%s_dV: derivative (/volume) of pc of %s (1/L)" #: uchaines.rsdph_dvdrived msgid "dpH_dV: dérivée du pH par rapport au volume versé " msgstr "dpH_dV: derivative of pH /volume" #: uchaines.rsdplacerlgend msgctxt "uchaines.rsdplacerlgend" msgid "Déplacer lég." msgstr "" #: uchaines.rsdpn_dvdrivep msgid "dpn%s_dV: dérivée par rapport au volume versé du pn de %s (en 1/L)" msgstr "dpn%s_dV: derivative / volume of pn of %s (en 1/L)" #: uchaines.rsdpoh_dvdrive msgid "dpOH_dV: dérivée du pOH par rapport au volume versé" msgstr "dpOH_dV: derivative of pOH / volume" #: uchaines.rsdrivesvdesac msgid "Dérivées /V des activités des espéces en solution:" msgstr "Derivative of activities / volume" #: uchaines.rsdrivesvdesco msgid "Dérivées /V des concentrations des espéces en solution:" msgstr "Derivative of concentrations / volume" #: uchaines.rsdrivesvdesno msgid "Dérivées /V des nombres de moles pour les précipités:" msgstr "Derivative of solid mole number / volume" #: uchaines.rsdroite msgid "Droite" msgstr "Right" #: uchaines.rsdurpertoiree #, fuzzy #| msgid "de mon répertoire personnel" msgctxt "uchaines.rsdurpertoiree" msgid "du répertoire \"exemples\"" msgstr "from my personal directory" #: uchaines.rsechelle msgid "Echelle" msgstr "" #: uchaines.rsechelle2 msgctxt "uchaines.rsechelle2" msgid "Echelle:" msgstr "" #: uchaines.rsechellehoriz msgctxt "uchaines.rsechellehoriz" msgid "Echelle horizontale" msgstr "" #: uchaines.rsechelleverti msgctxt "uchaines.rsechelleverti" msgid "Echelle verticale droite" msgstr "" #: uchaines.rsechelleverti2 msgctxt "uchaines.rsechelleverti2" msgid "Echelle verticale gauche" msgstr "" #: uchaines.rsecraserlefic msgid "Ecraser le fichier existant ?" msgstr "" #: uchaines.rsecspotentiel msgid "ECS: potentiel électrode de référence au calomel saturé=0,246V" msgstr "" #: uchaines.rselectroneutr msgctxt "uchaines.rselectroneutr" msgid "Electroneutralité" msgstr "" #: uchaines.rsenregistrer msgctxt "uchaines.rsenregistrer" msgid "Enregistrer" msgstr "" #: uchaines.rsenregistrerl msgctxt "uchaines.rsenregistrerl" msgid "Enregistrer le graphe sur le disque comme image" msgstr "" #: uchaines.rsenregistrerl2 msgctxt "uchaines.rsenregistrerl2" msgid "Enregistrer le film de la simulation" msgstr "Save simulation's movie" #: uchaines.rsentredeuxvol msgctxt "uchaines.rsentredeuxvol" msgid "entre deux volumes successifs ne doit pas excéder:" msgstr "" #: uchaines.rsentrersortir msgctxt "uchaines.rsentrersortir" msgid "Entrer/sortir du mode faisceau, qui permet de faire varier un des paramètres et d'obtenir le faisceau de courbes correspondant" msgstr "" #: uchaines.rsentrezlaform msgctxt "uchaines.rsentrezlaform" msgid "Entrez la formule brute. Puis cliquez sur %sOK%s. Puis sélectionnez le réactif dans la liste ci-dessous." msgstr "" #: uchaines.rsentrezlaform2 msgctxt "uchaines.rsentrezlaform2" msgid "Entrez la formule brute. Puis cliquez sur %sOK%s. Puis sélectionnez le réactif dans la liste ci-dessous." msgstr "" #: uchaines.rsentreztoutou msgctxt "uchaines.rsentreztoutou" msgid "Entrez tout ou partie de l'indentifiant ou du synonyme" msgstr "" #: uchaines.rsentreztoutou2 msgctxt "uchaines.rsentreztoutou2" msgid "Entrez tout ou partie de l'indentifiant ou du synonyme" msgstr "" #: uchaines.rsepaisseurdut msgctxt "uchaines.rsepaisseurdut" msgid "Epaisseur du trait devant joindre les points:" msgstr "" #: uchaines.rsepaisseurtra msgctxt "uchaines.rsepaisseurtra" msgid "Epaisseur trait" msgstr "" #: uchaines.rsepaisseurtra2 msgctxt "uchaines.rsepaisseurtra2" msgid "Epaisseur trait:" msgstr "" #: uchaines.rsequationdera msgid "Equation de réaction" msgstr "" #: uchaines.rsesmpotentiel msgid "ESM: potentiel électrode de référence au sulfate mercureux=0,6513V" msgstr "" #: uchaines.rsespace msgid "Espace" msgstr "" #: uchaines.rsespcesprsent msgctxt "uchaines.rsespcesprsent" msgid "Espéces présentes" msgstr "" #: uchaines.rsespcesprsent2 msgid "%sEspéces présentes%s, et décochez en éventuellement." msgstr "" #: uchaines.rsespcesprsent3 msgid "<Espéces présentes>, et décochez en éventuellement." msgstr "" #: uchaines.rsexacte msgid "Exacte" msgstr "" #: uchaines.rsexaminezdonc msgid "Examinez donc avec soin les espéces qui figurent dans l'onglet" msgstr "" #: uchaines.rsexemplesbaso msgctxt "uchaines.rsexemplesbaso" msgid " Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] " msgstr "" #: uchaines.rsexemplesbaso2 msgctxt "uchaines.rsexemplesbaso2" msgid " Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] " msgstr "" #: uchaines.rsexemplesthan msgctxt "uchaines.rsexemplesthan" msgid " Exemples: éthanoïque Acide pentanedioïque " msgstr "" #: uchaines.rsexp msgctxt "uchaines.rsexp" msgid "Exp." msgstr "" #: uchaines.rsexpexponenti msgid "exp() : exponentielle" msgstr "" #: uchaines.rsexporterlesr msgctxt "uchaines.rsexporterlesr" msgid "Exporter les résultats numériques pour une exploitation avec tableur ou Régressi" msgstr "" #: uchaines.rsexportgraphe msgctxt "uchaines.rsexportgraphe" msgid "Export graphe" msgstr "" #: uchaines.rsexportrsulta msgctxt "uchaines.rsexportrsulta" msgid "Export résultats bruts" msgstr "Export results of calculations" #: uchaines.rsexportrsulta2 msgctxt "uchaines.rsexportrsulta2" msgid "Export résultats" msgstr "" #: uchaines.rsexporttableu msgctxt "uchaines.rsexporttableu" msgid "Export tableur texte" msgstr "" #: uchaines.rsexpression msgid "Expression" msgstr "" #: uchaines.rsexpriencefic msgctxt "uchaines.rsexpriencefic" msgid "Expérience (fichier format tableau texte ou Regressi)" msgstr "" #: uchaines.rsfaisceau msgctxt "uchaines.rsfaisceau" msgid "Faisceau" msgstr "" #: uchaines.rsfaisceaudeco msgctxt "uchaines.rsfaisceaudeco" msgid "Faisceau de courbes" msgstr "" #: uchaines.rsfermer msgctxt "uchaines.rsfermer" msgid "Fermer" msgstr "" #: uchaines.rsfermer2 msgctxt "uchaines.rsfermer2" msgid "&Fermer" msgstr "" #: uchaines.rsfichier msgctxt "uchaines.rsfichier" msgid "Fichier" msgstr "File" #: uchaines.rsfichiercorro msgid "Fichier corrompu..." msgstr "" #: uchaines.rsfichierimpos msgid "Fichier impossible à ouvrir" msgstr "" #: uchaines.rsfilmsimulati msgid "Film simulation Dozzzaqueux|*.doz" msgstr "" #: uchaines.rsfonctions msgid "Fonctions:" msgstr "" #: uchaines.rsformatdevale msgctxt "uchaines.rsformatdevale" msgid "Format de valeur numérique invalide pour le nombre de moles!" msgstr "" #: uchaines.rsformatdevale2 msgid "Format de valeur numérique invalide pour la masse !" msgstr "" #: uchaines.rsformatdevale3 msgctxt "uchaines.rsformatdevale3" msgid "Format de valeur numérique invalide pour le nombre de moles!" msgstr "" #: uchaines.rsformatdevale4 msgid "Format de valeur numérique illégal." msgstr "" #: uchaines.rsformatvaleur msgid "Format valeur numérique incorrect à la ligne %s" msgstr "" #: uchaines.rsformule msgid "Formule" msgstr "" #: uchaines.rsformulebrute msgctxt "uchaines.rsformulebrute" msgid "Formule brute ?" msgstr "" #: uchaines.rsformulebrute2 msgid "Formule brute" msgstr "" #: uchaines.rsg msgctxt "uchaines.rsg" msgid "g" msgstr "" #: uchaines.rsgammaconduct msgid "gamma: conductivité de la solution en S/m" msgstr "" #: uchaines.rsgauche msgid "Gauche" msgstr "" #: uchaines.rsgl msgctxt "uchaines.rsgl" msgid "g/L" msgstr "" #: uchaines.rsgomtrique msgid "Géométrique" msgstr "" #: uchaines.rsgraduations msgctxt "uchaines.rsgraduations" msgid "Graduations" msgstr "" #: uchaines.rsgrandeurfair msgctxt "uchaines.rsgrandeurfair" msgid "Grandeur à faire varier" msgstr "" #: uchaines.rsgrandeurscal msgid "Grandeurs calculées:" msgstr "" #: uchaines.rsgrandeursprs msgctxt "uchaines.rsgrandeursprs" msgid "Grandeurs présentes dans le fichier:" msgstr "" #: uchaines.rsgrillechelle msgctxt "uchaines.rsgrillechelle" msgid "Grille échelle gauche" msgstr "" #: uchaines.rsgrillechelle2 msgctxt "uchaines.rsgrillechelle2" msgid "Grille échelle droite" msgstr "" #: uchaines.rshaut msgid "Haut" msgstr "" #: uchaines.rsheavheavisid msgid "heav() : Heaviside (1 si argument>0, 0 sinon)" msgstr "" #: uchaines.rshistoriquede msgctxt "uchaines.rshistoriquede" msgid "Historique des versions" msgstr "" #: uchaines.rshlas msgid "Hélas..." msgstr "" #: uchaines.rshlas2 msgid "Hélas" msgstr "" #: uchaines.rshorizontale msgctxt "uchaines.rshorizontale" msgid "Horizontale" msgstr "" #: uchaines.rshorizontalem msgctxt "uchaines.rshorizontalem" msgid "Horizontalement" msgstr "" #: uchaines.rshorizontalen msgid "Horizontal en fonction du volume (si V en abscisse)" msgstr "" #: uchaines.rsidentifiant msgid "Identifiant" msgstr "" #: uchaines.rsidentificati msgid "Identification" msgstr "" #: uchaines.rsimpossiblede msgid "Impossible de créér ce fichier !" msgstr "" #: uchaines.rsimpossiblede2 msgid "Impossible d'effectuer le tracé: vous n'avez pas défini de grandeur en ordonnée !" msgstr "" #: uchaines.rsimpossiblede3 msgid "Impossible d'effectuer le tracé: vous n'avez pas défini de grandeur en abscisse !" msgstr "" #: uchaines.rsimpossiblede4 msgid "Impossible d'enregistrer: vous devez être au niveau %sTracé des courbes%s" msgstr "" #: uchaines.rsimpossiblede5 msgid "Impossible de lire ce fichier !" msgstr "" #: uchaines.rsimprimer msgctxt "uchaines.rsimprimer" msgid "Imprimer" msgstr "" #: uchaines.rsimprimerlegr msgctxt "uchaines.rsimprimerlegr" msgid "Imprimer le graphe" msgstr "" #: uchaines.rsincrment msgctxt "uchaines.rsincrment" msgid "Incrément:" msgstr "" #: uchaines.rsindicateurcolore msgctxt "uchaines.rsindicateurcolore" msgid "Indicateur coloré" msgstr "" #: uchaines.rsindicedelali msgctxt "uchaines.rsindicedelali" msgid "Indice de la ligne de la grandeur qui sera l'abscisse:" msgstr "" #: uchaines.rsinf1si1erarg msgid "inf(,) : 1 si 1er arg. <2nd, 0 sinon" msgstr "" #: uchaines.rsinfe1si1erar msgid "infe(,) : 1 si 1er arg. <=2nd, 0 sinon" msgstr "" #: uchaines.rsinorganiques msgctxt "uchaines.rsinorganiques" msgid "Inorganiques" msgstr "" #: uchaines.rsions msgctxt "uchaines.rsions" msgid "Ions" msgstr "" #: uchaines.rsjoindrelespo msgctxt "uchaines.rsjoindrelespo" msgid "Joindre les points" msgstr "" #: uchaines.rsjoindrepoint msgid "Joindre points" msgstr "" #: uchaines.rsjouerunfilmd msgctxt "uchaines.rsjouerunfilmd" msgid "Jouer un film de simulation" msgstr "Play simulation'movie" #: uchaines.rsk msgctxt "uchaines.rsk" msgid "K" msgstr "" #: uchaines.rslabelaffiche msgctxt "uchaines.rslabelaffiche" msgid "Label à afficher sur l'axe des abscisses:" msgstr "" #: uchaines.rslabelaffiche2 msgctxt "uchaines.rslabelaffiche2" msgid "Label à afficher sur l'axe gauche des ordonnées:" msgstr "" #: uchaines.rslabelaffiche3 msgctxt "uchaines.rslabelaffiche3" msgid "Label à afficher sur l'axe droit des ordonnées:" msgstr "" #: uchaines.rslabscissemin msgctxt "uchaines.rslabscissemin" msgid "L'abscisse minimale est trop proche de l'abscisse maximale..." msgstr "" #: uchaines.rslabscissemin2 msgctxt "uchaines.rslabscissemin2" msgid "L'abscisse minimale est trop proche de l'abscisse maximale..." msgstr "" #: uchaines.rslachargelect msgctxt "uchaines.rslachargelect" msgid "La charge électrique totale est non nulle. Vous pouvez:" msgstr "" #: uchaines.rslaconcentrat msgid "la concentration dans le bêcher (respectivement la burette) sera de 0.1mol/L." msgstr "" #: uchaines.rslaconductivi msgctxt "uchaines.rslaconductivi" msgid "La conductivité de l'espèce" msgstr "" #: uchaines.rslaformuledee msgid "La formule de %s est: %s" msgstr "" #: uchaines.rslamasse msgctxt "uchaines.rslamasse" msgid "la masse:" msgstr "" #: uchaines.rslamassedoitt msgid "La masse doit être strictement positive !" msgstr "" #: uchaines.rslamasseparld msgctxt "uchaines.rslamasseparld" msgid "concentration massique:" msgstr "" #: uchaines.rslancienvolum msgid "L'ancien volume a un format numérique illégal !" msgstr "" #: uchaines.rslangue msgctxt "uchaines.rslangue" msgid "Langue" msgstr "Language" #: uchaines.rslaquantitdem msgctxt "uchaines.rslaquantitdem" msgid "la quantité de matière:" msgstr "" #: uchaines.rslaquantitdem2 msgctxt "uchaines.rslaquantitdem2" msgid "concentration (molaire):" msgstr "" #: uchaines.rslasyntaxedel msgid "La syntaxe de l'expression est illégale. Expression refusée" msgstr "" #: uchaines.rslasyntaxedev msgctxt "uchaines.rslasyntaxedev" msgid "La syntaxe de votre formule brute n'est pas correcte." msgstr "" #: uchaines.rslasyntaxedev2 msgctxt "uchaines.rslasyntaxedev2" msgid "La syntaxe de votre formule brute n'est pas correcte." msgstr "" #: uchaines.rslatemprature msgid "La température doit être strictement positive" msgstr "" #: uchaines.rslavaleurdela msgid "La valeur de la température n'a pas une syntaxe correcte" msgstr "" #: uchaines.rslavaleurdund msgid "La valeur d'un des log K n'a pas une syntaxe correcte" msgstr "" #: uchaines.rslavaleurduvo msgctxt "uchaines.rslavaleurduvo" msgid "La valeur du volume n'a pas une syntaxe correcte" msgstr "" #: uchaines.rslavaleurduvo2 msgctxt "uchaines.rslavaleurduvo2" msgid "La valeur du volume n'a pas une syntaxe correcte" msgstr "" #: uchaines.rslavariationm msgctxt "uchaines.rslavariationm" msgid "La variation maximale du logarithme d'une concentration" msgstr "" #: uchaines.rslecalculdela msgctxt "uchaines.rslecalculdela" msgid "Le calcul de la dérivée numérique en V0 se fait par: (f(V0+h)-f(V0-h))/(2h)" msgstr "" #: uchaines.rslenombredemo msgid "Le nombre de moles doit être strictement positif !" msgstr "" #: uchaines.rslepassageenm msgid "Le passage en mode superposition fait sortir du mode faisceau. Voulez-vous continuer ?" msgstr "" #: uchaines.rslepassageenm2 msgid "Le passage en mode faisceau désactive la superposition de simulation. Etes-vous sûr de vouloir continuer ?" msgstr "" #: uchaines.rslescouleurse msgctxt "uchaines.rslescouleurse" msgid "Les couleurs en dégradé des courbes tendront vers:" msgstr "" #: uchaines.rslesvaleursde msgctxt "uchaines.rslesvaleursde" msgid "Les valeurs des concentrations sont calculées pour des valeurs discrétes du volume." msgstr "" #: uchaines.rslevolumedoit msgid "Le volume doit être strictement positif" msgstr "" #: uchaines.rslgende msgctxt "uchaines.rslgende" msgid "Légende" msgstr "" #: uchaines.rslgendepart msgctxt "uchaines.rslgendepart" msgid "Légende à part" msgstr "" #: uchaines.rslgendequiapp msgid "Légende qui apparaîtra sur le graphe pour cette grandeur:" msgstr "" #: uchaines.rslicensegpl msgctxt "uchaines.rslicensegpl" msgid "License GPL" msgstr "" #: uchaines.rslignelaquell msgctxt "uchaines.rslignelaquell" msgid "Ligne à laquelle commencent les données:" msgstr "" #: uchaines.rslistedessimu msgctxt "uchaines.rslistedessimu" msgid "Liste des simulations superposables" msgstr "" #: uchaines.rslnlogarithme msgid "ln() : logarithme népérien" msgstr "" #: uchaines.rslog10logarit msgid "log10() ou log(): logarithme décimal" msgstr "" #: uchaines.rslogiciellibr msgctxt "uchaines.rslogiciellibr" msgid "Logiciel libre et gratuit de simulation de courbes de dosage" msgstr "Free software for simulate titration" #: uchaines.rslogkpour msgid "logk pour %s" msgstr "" #: uchaines.rslordonnemini msgctxt "uchaines.rslordonnemini" msgid "L'ordonnée minimale droite est trop proche de l'ordonnée maximale droite..." msgstr "" #: uchaines.rslordonnemini2 msgctxt "uchaines.rslordonnemini2" msgid "L'ordonnée minimale gauche est trop proche de l'ordonnée maximale gauche..." msgstr "" #: uchaines.rslordonnemini3 msgctxt "uchaines.rslordonnemini3" msgid "L'ordonnée minimale droite est trop proche de l'ordonnée maximale droite..." msgstr "" #: uchaines.rslordonnemini4 msgctxt "uchaines.rslordonnemini4" msgid "L'ordonnée minimale gauche est trop proche de l'ordonnée maximale gauche..." msgstr "" #: uchaines.rslorsdelexcut msgid "Lors de l'exécution d'un %sfilm%s de simulation, l'affichage de chaque écran doit durer:" msgstr "" #: uchaines.rslvationlapui msgid "^ : élévation à la puissance" msgstr "" #: uchaines.rsmaiseuhhh msgid "Mais euhhh !" msgstr "" #: uchaines.rsmaiseuhhhh msgid "Mais euhhhh !" msgstr "" #: uchaines.rsmaislepasnep msgctxt "uchaines.rsmaislepasnep" msgid "Mais le pas ne peut devenir inférieur à:" msgstr "" #: uchaines.rsmaispasagso4 msgctxt "uchaines.rsmaispasagso4" msgid " mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)" msgstr "" #: uchaines.rsmaispasagso42 msgctxt "uchaines.rsmaispasagso42" msgid " mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)" msgstr "" #: uchaines.rsmanuelle msgid "Manuelle" msgstr "" #: uchaines.rsmaxmaximumde msgid "max(,) : maximum des 2 arguments" msgstr "" #: uchaines.rsmenfin msgctxt "uchaines.rsmenfin" msgid "M'enfin..." msgstr "" #: uchaines.rsmenfin2 msgctxt "uchaines.rsmenfin2" msgid "M'enfin..." msgstr "" #: uchaines.rsmenfin3 msgctxt "uchaines.rsmenfin3" msgid "M'enfin..." msgstr "" #: uchaines.rsmgmol msgid "M (g/mol)" msgstr "" #: uchaines.rsminminimumde msgid "min(,) : minimum des 2 arguments" msgstr "" #: uchaines.rsml msgid "(mL)" msgstr "" #: uchaines.rsml2 msgctxt "uchaines.rsml2" msgid "mL" msgstr "" #: uchaines.rsmmesatomesen msgid "Mêmes atomes, en nombres inférieurs ou égaux" msgstr "" #: uchaines.rsmmesatomesen2 msgid "Mêmes atomes, en nombre supérieurs ou égaux" msgstr "" #: uchaines.rsmmesatomesen3 msgid "Mêmes atomes, en nombre quelconques" msgstr "" #: uchaines.rsmodification msgctxt "uchaines.rsmodification" msgid "Modification concentration" msgstr "" #: uchaines.rsmodifiercoul msgctxt "uchaines.rsmodifiercoul" msgid "Modifier couleurs" msgstr "" #: uchaines.rsmol msgctxt "uchaines.rsmol" msgid "mol" msgstr "" #: uchaines.rsmoll msgctxt "uchaines.rsmoll" msgid "mol/L" msgstr "" #: uchaines.rsms msgctxt "uchaines.rsms" msgid "ms" msgstr "" #: uchaines.rsmultiplierle msgctxt "uchaines.rsmultiplierle" msgid "Multiplier les concentrations par 10" msgstr "Multiply concentrations by 10" #: uchaines.rsmultiplierto msgid "Multiplier toutes les concentrations par le facteur:" msgstr "" #: uchaines.rsnaninfnansi1 msgid "naninf(,) : NAN si 1er arg. <2nd, 0 sinon" msgstr "" #: uchaines.rsnaninnansiab msgid "nanin(,) : NAN si abs(1er arg.) <abs(2nd), 0 sinon" msgstr "" #: uchaines.rsnanoutnansia msgid "nanout(,) : NAN si abs(1er arg.) >abs(2nd), 0 sinon" msgstr "" #: uchaines.rsnansupnansi1 msgid "nansup(,) : NAN si 1er arg. >2nd, 0 sinon" msgstr "" #: uchaines.rsnbedemoles msgid "Nbe de moles" msgstr "" #: uchaines.rsncessairemen msgid "nécessairement, en raison par exemple de blocages cinétiques (les" msgstr "" #: uchaines.rsnefigurepasd msgctxt "uchaines.rsnefigurepasd" msgid "ne figure pas dans ma base de données. Vous pouvez saisir la valeur ci-dessous:" msgstr "" #: uchaines.rsnepasreprsen msgctxt "uchaines.rsnepasreprsen" msgid "Ne pas représenter cette grandeur" msgstr "" #: uchaines.rsneplusaffich msgctxt "uchaines.rsneplusaffich" msgid "Ne plus afficher ce message au cours de cette session" msgstr "" #: uchaines.rsnetouchezrie msgctxt "uchaines.rsnetouchezrie" msgid "Ne touchez à rien, l'onglet suivant va bientôt être affiché." msgstr "" #: uchaines.rsneutraliserl msgid "neutraliser la charge automatiquement en ajoutant des K[+] " msgstr "" #: uchaines.rsneutraliserl2 msgid "neutraliser la charge automatiquement en ajoutant des Na[+] " msgstr "" #: uchaines.rsneutraliserl3 msgid "neutraliser la charge automatiquement en ajoutant des Cl[-] " msgstr "" #: uchaines.rsnom msgctxt "uchaines.rsnom" msgid "Nom:" msgstr "" #: uchaines.rsnombre msgctxt "uchaines.rsnombre" msgid "Nombre:" msgstr "" #: uchaines.rsnombredechif msgctxt "uchaines.rsnombredechif" msgid "Nombre de chiffres affichés et gardés pour les logarithmes de constantes de réaction:" msgstr "" #: uchaines.rsnombredechif2 msgctxt "uchaines.rsnombredechif2" msgid "Nombre de chiffres affichés pour les résultats:" msgstr "" #: uchaines.rsnombredecopi msgctxt "uchaines.rsnombredecopi" msgid "Nombre de copies" msgstr "" #: uchaines.rsnombrededonn msgctxt "uchaines.rsnombrededonn" msgid "Nombre de données par ligne:" msgstr "" #: uchaines.rsnombredemole msgid "Nombre de moles pour les précipités:" msgstr "" #: uchaines.rsnombredemole2 msgctxt "uchaines.rsnombredemole2" msgid "Nombre de moles ?" msgstr "" #: uchaines.rsnombredepoin msgctxt "uchaines.rsnombredepoin" msgid "Nombre de points de calcul" msgstr "" #: uchaines.rsnombredepoin2 msgctxt "uchaines.rsnombredepoin2" msgid "Nombre de points: N=" msgstr "" #: uchaines.rsnombredespce msgid "nombre d'espéces." msgstr "" #: uchaines.rsnon msgid "NON" msgstr "" #: uchaines.rsnon2 msgid "Non" msgstr "" #: uchaines.rsnoncalculabl msgid "non calculable." msgstr "" #: uchaines.rsnouvellesimu msgctxt "uchaines.rsnouvellesimu" msgid "Nouvelle simulation" msgstr "" #: uchaines.rsnquantitdema msgid "n%s: quantité de matière du solide %s (en mol)" msgstr "" #: uchaines.rsok msgctxt "uchaines.rsok" msgid "&OK" msgstr "" #: uchaines.rsok2 msgctxt "uchaines.rsok2" msgid "OK" msgstr "" #: uchaines.rsonappellepas msgid "On appelle %spas%s l'écart entre deux valeurs successives du volume." msgstr "" #: uchaines.rsoprateurs msgid "Opérateurs" msgstr "" #: uchaines.rsoprateursetf msgctxt "uchaines.rsoprateursetf" msgid "Opérateurs et fonctions utilisables:" msgstr "" #: uchaines.rsoptions msgctxt "uchaines.rsoptions" msgid "Options" msgstr "" #: uchaines.rsoptionspourl msgctxt "uchaines.rsoptionspourl" msgid "Options pour l'export au format tableur texte" msgstr "" #: uchaines.rsoptionspourl2 msgctxt "uchaines.rsoptionspourl2" msgid "Options pour l'indicateur coloré" msgstr "" #: uchaines.rsorganiques msgctxt "uchaines.rsorganiques" msgid "Organiques" msgstr "" #: uchaines.rsorientation msgctxt "uchaines.rsorientation" msgid "Orientation" msgstr "" #: uchaines.rsoubien msgctxt "uchaines.rsoubien" msgid "OU BIEN" msgstr "" #: uchaines.rsoui msgid "OUI" msgstr "" #: uchaines.rsoui2 msgid "Oui" msgstr "" #: uchaines.rspacologarith msgid "pa%s: cologarithme de l'activité de %s" msgstr "" #: uchaines.rsparfomulebru msgctxt "uchaines.rsparfomulebru" msgid "Par fomule brute" msgstr "" #: uchaines.rsparformulebr msgctxt "uchaines.rsparformulebr" msgid "Par formule brute" msgstr "" #: uchaines.rsparidentifia msgctxt "uchaines.rsparidentifia" msgid "Par identifiant ou synonyme" msgstr "" #: uchaines.rsparjeanmarie #, fuzzy #| msgid "Par Jean-Marie Biansan, 2005 à 2016" msgctxt "uchaines.rsparjeanmarie" msgid "Par Jean-Marie Biansan, 2005 à 2017" msgstr "Author Jean-Marie Biansan, 2005 to 2015" #: uchaines.rsparml msgid "%s par %smL " msgstr "" #: uchaines.rspas msgctxt "uchaines.rspas" msgid "Pas:" msgstr "" #: uchaines.rspasadaptatif msgid "Pas adaptatif" msgstr "" #: uchaines.rspasconstant msgid "Pas constant" msgstr "" #: uchaines.rspasdedonness msgid "Pas de données sur la ligne spécifiée" msgstr "" #: uchaines.rspasdegrandeu msgid "Pas de grandeur choisie..." msgstr "" #: uchaines.rspasdereactif msgid "pas de reactif ayant cette formule brute trouve" msgstr "" #: uchaines.rspasdevaleure msgid "Pas de valeur entrée! Utilisez %sAnnuler%s si vous renoncez !" msgstr "" #: uchaines.rspasseroutrea msgid "passer outre (attention: calculs non garantis !!) " msgstr "" #: uchaines.rspaysage msgid "Paysage" msgstr "" #: uchaines.rspccologarith msgid "pc%s: cologarithme du rapport concentration en %s /(1 mol/L)" msgstr "" #: uchaines.rsphlogactivit msgid "pH: -log(activité(H+))" msgstr "" #: uchaines.rspncologarith msgid "pn%s: cologarithme du rapport quantité de matière du solide %s /(1 mol)" msgstr "" #: uchaines.rspohlogactivi msgid "pOH: -log(activité(OH-))" msgstr "" #: uchaines.rspointparticu msgctxt "uchaines.rspointparticu" msgid "Point particulier" msgstr "" #: uchaines.rspointrecomma msgid "Point (recommandé pour Excel)" msgstr "" #: uchaines.rspointvirgule msgid "Point virgule" msgstr "" #: uchaines.rspolice msgctxt "uchaines.rspolice" msgid "Police" msgstr "" #: uchaines.rspopotentielr msgid "Po%s: potentiel redox du couple %s / %s" msgstr "" #: uchaines.rsporterlevolu msgid "Porter le volume total à la valeur:" msgstr "" #: uchaines.rsportrait msgid "Portrait" msgstr "" #: uchaines.rsposition msgctxt "uchaines.rsposition" msgid "Position" msgstr "" #: uchaines.rspourlaide msgid "Pour l'aide," msgstr "" #: uchaines.rspourlespceve msgctxt "uchaines.rspourlespceve" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve10 msgctxt "uchaines.rspourlespceve10" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve11 msgctxt "uchaines.rspourlespceve11" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve12 msgctxt "uchaines.rspourlespceve12" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve13 msgctxt "uchaines.rspourlespceve13" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve14 msgctxt "uchaines.rspourlespceve14" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve15 msgctxt "uchaines.rspourlespceve15" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve16 msgctxt "uchaines.rspourlespceve16" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve17 msgctxt "uchaines.rspourlespceve17" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve18 msgctxt "uchaines.rspourlespceve18" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve19 msgctxt "uchaines.rspourlespceve19" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve2 msgctxt "uchaines.rspourlespceve2" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve20 msgctxt "uchaines.rspourlespceve20" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve21 msgctxt "uchaines.rspourlespceve21" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve22 msgctxt "uchaines.rspourlespceve22" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve23 msgctxt "uchaines.rspourlespceve23" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve24 msgctxt "uchaines.rspourlespceve24" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve25 msgctxt "uchaines.rspourlespceve25" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve26 msgctxt "uchaines.rspourlespceve26" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve27 msgctxt "uchaines.rspourlespceve27" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve28 msgctxt "uchaines.rspourlespceve28" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve29 msgctxt "uchaines.rspourlespceve29" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve3 msgctxt "uchaines.rspourlespceve3" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve30 msgctxt "uchaines.rspourlespceve30" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve31 msgctxt "uchaines.rspourlespceve31" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve32 msgctxt "uchaines.rspourlespceve32" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve33 msgctxt "uchaines.rspourlespceve33" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve34 msgctxt "uchaines.rspourlespceve34" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve35 msgctxt "uchaines.rspourlespceve35" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve36 msgctxt "uchaines.rspourlespceve36" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve37 msgctxt "uchaines.rspourlespceve37" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve38 msgctxt "uchaines.rspourlespceve38" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve39 msgctxt "uchaines.rspourlespceve39" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve4 msgctxt "uchaines.rspourlespceve4" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve40 msgctxt "uchaines.rspourlespceve40" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve41 msgctxt "uchaines.rspourlespceve41" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve42 msgctxt "uchaines.rspourlespceve42" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve43 msgctxt "uchaines.rspourlespceve43" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve44 msgctxt "uchaines.rspourlespceve44" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve45 msgctxt "uchaines.rspourlespceve45" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve46 msgctxt "uchaines.rspourlespceve46" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve47 msgctxt "uchaines.rspourlespceve47" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve48 msgctxt "uchaines.rspourlespceve48" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve49 msgctxt "uchaines.rspourlespceve49" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve5 msgctxt "uchaines.rspourlespceve5" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve50 msgctxt "uchaines.rspourlespceve50" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve51 msgctxt "uchaines.rspourlespceve51" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve52 msgctxt "uchaines.rspourlespceve52" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve53 msgctxt "uchaines.rspourlespceve53" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve54 msgctxt "uchaines.rspourlespceve54" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve55 msgctxt "uchaines.rspourlespceve55" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve56 msgctxt "uchaines.rspourlespceve56" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve57 msgctxt "uchaines.rspourlespceve57" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve58 msgctxt "uchaines.rspourlespceve58" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve59 msgctxt "uchaines.rspourlespceve59" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve6 msgctxt "uchaines.rspourlespceve6" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve60 msgctxt "uchaines.rspourlespceve60" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve61 msgctxt "uchaines.rspourlespceve61" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve62 msgctxt "uchaines.rspourlespceve62" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve63 msgctxt "uchaines.rspourlespceve63" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve64 msgctxt "uchaines.rspourlespceve64" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve65 msgctxt "uchaines.rspourlespceve65" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve66 msgctxt "uchaines.rspourlespceve66" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve67 msgctxt "uchaines.rspourlespceve67" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve68 msgctxt "uchaines.rspourlespceve68" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve69 msgctxt "uchaines.rspourlespceve69" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve7 msgctxt "uchaines.rspourlespceve7" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve70 msgctxt "uchaines.rspourlespceve70" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve71 msgctxt "uchaines.rspourlespceve71" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve72 msgctxt "uchaines.rspourlespceve72" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve73 msgctxt "uchaines.rspourlespceve73" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve8 msgctxt "uchaines.rspourlespceve8" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve9 msgctxt "uchaines.rspourlespceve9" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourobtenirl msgctxt "uchaines.rspourobtenirl" msgid "Pour obtenir la formule brute d'une espéce, sélectionnez la puis cliquez sur le bouton ci-contre:" msgstr "" #: uchaines.rspourobtenirl2 msgctxt "uchaines.rspourobtenirl2" msgid " pour obtenir le faisceau:" msgstr "" #: uchaines.rspourslection msgctxt "uchaines.rspourslection" msgid "Pour sélectionner un réactif, faites un clic simple sur sa ligne." msgstr "" #: uchaines.rspourslection2 msgctxt "uchaines.rspourslection2" msgid "Pour sélectionner un réactif, faites un clic simple sur sa ligne." msgstr "" #: uchaines.rspourslection3 msgctxt "uchaines.rspourslection3" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: uchaines.rspourslection4 msgctxt "uchaines.rspourslection4" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: uchaines.rspourslection5 msgctxt "uchaines.rspourslection5" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: uchaines.rspourslection6 msgctxt "uchaines.rspourslection6" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: uchaines.rspower1erargu msgid "power(,) : 1er argument à la puissance second argument" msgstr "" #: uchaines.rsproduit msgid "* : produit" msgstr "" #: uchaines.rsprvisisionsf msgid "prévisisions fournies par le présent logiciel sont purement thermodynamiques)." msgstr "" #: uchaines.rsquantitmol msgid "%sQuantité (mol)" msgstr "" #: uchaines.rsquenenni msgid "Que nenni !" msgstr "" #: uchaines.rsquotient msgid "/ : quotient" msgstr "" #: uchaines.rsractifschois msgctxt "uchaines.rsractifschois" msgid "Réactifs choisis:" msgstr "" #: uchaines.rsractionsetco msgctxt "uchaines.rsractionsetco" msgid "Réactions et constantes" msgstr "" #: uchaines.rsrecalculerau msgctxt "uchaines.rsrecalculerau" msgid "Recalculer automatiquement les échelles verticales" msgstr "" #: uchaines.rsrecherchedan msgctxt "uchaines.rsrecherchedan" msgid "Recherche dans la base" msgstr "" #: uchaines.rsrechercherun msgctxt "uchaines.rsrechercherun" msgid "Rechercher une espéce" msgstr "Search for species" #: uchaines.rsremarquecett msgctxt "uchaines.rsremarquecett" msgid "Remarque: cette modification ne perdurera que durant cette session de Dozzzaqueux.." msgstr "" #: uchaines.rsreprsentepar msgctxt "uchaines.rsreprsentepar" msgid "Représentée par:" msgstr "" #: uchaines.rsrponsenontro msgid "Réponse non trouvée au terme des %s itérations." msgstr "" #: uchaines.rsrsultats msgctxt "uchaines.rsrsultats" msgid "Résultats" msgstr "" #: uchaines.rssaisieconduc msgctxt "uchaines.rssaisieconduc" msgid "Saisie conductivité" msgstr "" #: uchaines.rssaisiedelexp msgctxt "uchaines.rssaisiedelexp" msgid "Saisie de l'expression" msgstr "" #: uchaines.rssaisissezlex msgctxt "uchaines.rssaisissezlex" msgid "Saisissez l'expression de la grandeur . Les noms des variables (V,..., c1, c2,...,n1, n2...) et les noms de fonction ont les" msgstr "" #: uchaines.rssauvegarderl msgctxt "uchaines.rssauvegarderl" msgid "Sauvegarder les résultats numériques pour une exploitation avec tableur ou avec Régressi" msgstr "Save numeric results for exploitation with spreadsheet or regressi" #: uchaines.rsscript msgctxt "uchaines.rsscript" msgid "script" msgstr "" #: uchaines.rssignificatio msgctxt "uchaines.rssignificatio" msgid "significations indiquées ci-dessous:" msgstr "" #: uchaines.rssignsigne1si msgid "sign() : signe: 1 si argument >0, 0 pour 0, -1 sinon" msgstr "" #: uchaines.rssinhsinushyp msgid "sinh() : sinus hyperbolique" msgstr "" #: uchaines.rssinsinus msgid "sin() : sinus" msgstr "" #: uchaines.rssiteweb msgid "Site Web" msgstr "" #: uchaines.rssivouspensez msgctxt "uchaines.rssivouspensez" msgid "Si vous pensez que certaines ne seront pas présentes (blocage cinétique par exemple), il suffit de les décocher." msgstr "" #: uchaines.rssivoussaisis msgid "Si vous saisissez 0.2mol/L, la concentration sera de 0.2mol/L dans le bêcher (resp. la burette)" msgstr "" #: uchaines.rssivousvoulez msgctxt "uchaines.rssivousvoulez" msgid "Si vous voulez la rendre définitive, modifiez cette espèce dans la base avec Modifbase." msgstr "" #: uchaines.rssolides msgctxt "uchaines.rssolides" msgid "Solides" msgstr "" #: uchaines.rssomme msgid "+ : somme" msgstr "" #: uchaines.rssparateurdci msgctxt "uchaines.rssparateurdci" msgid "Séparateur décimal" msgstr "" #: uchaines.rssparateurdec msgctxt "uchaines.rssparateurdec" msgid "Séparateur de colonnes:" msgstr "" #: uchaines.rssparateurspc msgid "Séparateur spécifié introuvable à la ligne %s" msgstr "" #: uchaines.rssplashscreen msgctxt "uchaines.rssplashscreen" msgid "splashscreen" msgstr "" #: uchaines.rssqrcarr msgid "sqr() : carré" msgstr "" #: uchaines.rssqrtracineca msgid "sqrt() : racine carrée" msgstr "" #: uchaines.rsstyle msgctxt "uchaines.rsstyle" msgid "Style" msgstr "" #: uchaines.rsstyledespoin msgctxt "uchaines.rsstyledespoin" msgid "Style des points" msgstr "" #: uchaines.rsstylepoints msgid "Style points" msgstr "" #: uchaines.rssup1si1erarg msgid "sup(,) : 1 si 1er arg. >2nd, 0 sinon" msgstr "" #: uchaines.rssupe1si1erar msgid "supe(,) : 1 si 1er arg. >=2nd, 0 sinon" msgstr "" #: uchaines.rssuperp msgctxt "uchaines.rssuperp" msgid "Superp." msgstr "" #: uchaines.rssuperposer msgctxt "uchaines.rssuperposer" msgid "Superposer" msgstr "" #: uchaines.rssuperposerla msgid "Superposer à la courbe une courbe expérimentale ou calculée" msgstr "" #: uchaines.rssupprimer msgid "Supprimer" msgstr "" #: uchaines.rssupprimercet msgid "Supprimer cette grandeur" msgstr "" #: uchaines.rssynonyme msgid "Synonyme" msgstr "" #: uchaines.rssyntaxedeval msgid "Syntaxe de valeur numérique incorrecte..." msgstr "" #: uchaines.rssyntaxeillga msgid "Syntaxe illégale pour un des nombres de moles !" msgstr "" #: uchaines.rssyntaxeincor msgid "Syntaxe incorrecte pour xmin." msgstr "" #: uchaines.rssyntaxeincor2 msgid "Syntaxe incorrecte pour xmax." msgstr "" #: uchaines.rssyntaxeincor3 msgid "Syntaxe incorrecte pour ymindroit." msgstr "" #: uchaines.rssyntaxeincor4 msgid "Syntaxe incorrecte pour ymaxdroit." msgstr "" #: uchaines.rssyntaxeincor5 msgid "Syntaxe incorrecte pour ymingauche." msgstr "" #: uchaines.rssyntaxeincor6 msgid "Syntaxe incorrecte pour ymaxgauche." msgstr "" #: uchaines.rssyntaxeincor7 msgid "Syntaxe incorrecte pour le volume" msgstr "" #: uchaines.rssyntaxeincor8 msgid "Syntaxe incorrecte." msgstr "" #: uchaines.rssyntaxeincor9 msgid "Syntaxe incorrecte pour la conductivité" msgstr "" #: uchaines.rstableurtexte msgid "Tableur texte (*.txt;*.csv)|*.txt;*.csv|Régressi (*.rw3)|*.rw3" msgstr "" #: uchaines.rstableurtexte2 msgid "Tableur texte (*.csv;*.txt)|*.csv;*.txt|Régressi (*.rw3)|*.rw3" msgstr "" #: uchaines.rstailledespoi msgctxt "uchaines.rstailledespoi" msgid "Taille des points:" msgstr "" #: uchaines.rstailledespoi2 msgctxt "uchaines.rstailledespoi2" msgid "Taille des points" msgstr "" #: uchaines.rstailleendela msgctxt "uchaines.rstailleendela" msgid "Taille (en % de la page)" msgstr "" #: uchaines.rstaillepoints msgid "Taille points" msgstr "" #: uchaines.rstantangente msgid "tan() : tangente" msgstr "" #: uchaines.rstemporisatio msgctxt "uchaines.rstemporisatio" msgid "Temporisation film" msgstr "" #: uchaines.rstemporisatio2 msgctxt "uchaines.rstemporisatio2" msgid "Temporisation" msgstr "" #: uchaines.rstemprature msgctxt "uchaines.rstemprature" msgid "Température=" msgstr "Temperature=" #: uchaines.rstitre msgctxt "uchaines.rstitre" msgid "Titre" msgstr "Title" #: uchaines.rstitredugraph msgctxt "uchaines.rstitredugraph" msgid "Titre du graphe" msgstr "Graph's title" #: uchaines.rstitredugraph2 msgctxt "uchaines.rstitredugraph2" msgid "Titre du graphe:" msgstr "Graph's title" #: uchaines.rstoutcocher msgctxt "uchaines.rstoutcocher" msgid "Tout cocher" msgstr "Check all" #: uchaines.rstoutdcocher msgctxt "uchaines.rstoutdcocher" msgid "Tout décocher" msgstr "Uncheck all" #: uchaines.rstoutsupprime msgctxt "uchaines.rstoutsupprime" msgid "Tout supprimer" msgstr "Delete all" #: uchaines.rstracdescourb msgctxt "uchaines.rstracdescourb" msgid "Tracé des courbes" msgstr "" #: uchaines.rstraces msgid "Traces" msgstr "" #: uchaines.rstracesvaleur msgid ": traces (valeur non significative)" msgstr "" #: uchaines.rstracesvaleur2 msgid " traces (valeur non significative) " msgstr "" #: uchaines.rstracimpossib msgid "Tracé impossible car:" msgstr "" #: uchaines.rstruncpartiee msgid "trunc() : partie entière" msgstr "" #: uchaines.rstypedecompar msgctxt "uchaines.rstypedecompar" msgid "Type de comparaison" msgstr "" #: uchaines.rstypededonne msgctxt "uchaines.rstypededonne" msgid "Type de donnée" msgstr "" #: uchaines.rstypedeladonn msgid "Type de la donnée de la colonne %s" msgstr "" #: uchaines.rstypedeladonn2 msgid "Type de la donnée %s" msgstr "" #: uchaines.rstypedesuited msgctxt "uchaines.rstypedesuited" msgid "Type de suite de valeurs" msgstr "" #: uchaines.rsuneouplusieu msgctxt "uchaines.rsuneouplusieu" msgid "Une ou plusieurs des simulations faites depuis le dernier lancement de Dozzzaqueux" msgstr "" #: uchaines.rsuneseulesimu msgid "Une seule simulation effectuée, rien à superposer !" msgstr "" #: uchaines.rsunitafficher msgctxt "uchaines.rsunitafficher" msgid "Unité à afficher sur l'axe des abscisses:" msgstr "" #: uchaines.rsunitafficher2 msgctxt "uchaines.rsunitafficher2" msgid "Unité à afficher sur l'axe gauche des ordonnées:" msgstr "" #: uchaines.rsunitafficher3 msgctxt "uchaines.rsunitafficher3" msgid "Unité à afficher sur l'axe droit des ordonnées:" msgstr "" #: uchaines.rsunitsetlabel msgctxt "uchaines.rsunitsetlabel" msgid "Unités et labels des axes:" msgstr "" #: uchaines.rsunitslabels msgctxt "uchaines.rsunitslabels" msgid "Unités/labels" msgstr "" #: uchaines.rsunnombredemo msgctxt "uchaines.rsunnombredemo" msgid "Un nombre de moles ne peut être négatif! Pour éliminer cette espéce, cliquez sur %sSupprimer%s." msgstr "" #: uchaines.rsunnombredemo2 msgctxt "uchaines.rsunnombredemo2" msgid "Un nombre de moles ne peut être négatif! Pour éliminer cette espéce, cliquez sur %sSupprimer%s." msgstr "" #: uchaines.rsunouplusieur msgid "Un ou plusieurs espaces" msgstr "" #: uchaines.rsutiliserdeby msgctxt "uchaines.rsutiliserdeby" msgid "Utiliser Debye et Hückel" msgstr "" #: uchaines.rsv msgctxt "uchaines.rsv" msgid "V=" msgstr "" #: uchaines.rsv0volumedela msgid "V0: volume de la solution présente initialement dans le bécher (en mL)" msgstr "" #: uchaines.rsvaleurdeconc msgid "Valeur de concentration de syntaxe incorrecte" msgstr "" #: uchaines.rsvaleurdepas0 msgid "Valeur de pas <=0 ou =1 sans intérêt..." msgstr "" #: uchaines.rsvaleurdepasn msgid "Valeur de pas nulle sans intérêt..." msgstr "" #: uchaines.rsvaleursnumri msgctxt "uchaines.rsvaleursnumri" msgid "Valeurs numériques séparées par:" msgstr "" #: uchaines.rsvalidationde msgid "Validation des espéces présentes à l'équilibre..." msgstr "" #: uchaines.rsvalidationde2 msgid "Validation des constantes de réaction..." msgstr "" #: uchaines.rsvalider msgctxt "uchaines.rsvalider" msgid "Valider" msgstr "" #: uchaines.rsvalideretlan msgctxt "uchaines.rsvalideretlan" msgid "Valider et lancer les calculs>>>>>>" msgstr "Validate and start calculations" #: uchaines.rsvalideretpas msgctxt "uchaines.rsvalideretpas" msgid "Valider et passer à la burette >>>>>" msgstr "Validate and go to burette" #: uchaines.rsvalideretpas2 msgctxt "uchaines.rsvalideretpas2" msgid "Valider et passer au recensement >>>>>" msgstr "Validate and go to species enumeration" #: uchaines.rsvalideretpas3 msgctxt "uchaines.rsvalideretpas3" msgid "Valider et passer aux constantes de réaction >>>>>" msgstr "Validate and go to equilibrium constants" #: uchaines.rsvaliderettra msgctxt "uchaines.rsvaliderettra" msgid "Valider et tracer les courbes >>>>>" msgstr "Validate and draw curves" #: uchaines.rsvariablesuti msgctxt "uchaines.rsvariablesuti" msgid "Variables utilisables:" msgstr "" #: uchaines.rsversion30cod #, fuzzy #| msgid "Version 3.50 du 30/06/2016, codée en Lazarus" msgctxt "uchaines.rsversion30cod" msgid "Version 3.51 du 13/07/2017, codée en Lazarus" msgstr "Version 3.51, 13/07/2017, written in Lazarus" #: uchaines.rsversiondelab msgctxt "uchaines.rsversiondelab" msgid "Version de la base" msgstr "Database' version" #: uchaines.rsversiondu msgid "Version %s du %s" msgstr "Version %s from %s" #: uchaines.rsverticale msgctxt "uchaines.rsverticale" msgid "Verticale" msgstr "" #: uchaines.rsverticalemen msgctxt "uchaines.rsverticalemen" msgid "Verticalement" msgstr "" #: uchaines.rsverticalenfo msgid "Vertical en fonction du pH (si pH en ordonnée)" msgstr "" #: uchaines.rsveuillezcomp msgctxt "uchaines.rsveuillezcomp" msgid "Veuillez compléter les informations suivantes:" msgstr "" #: uchaines.rsvider msgctxt "uchaines.rsvider" msgid "Vider" msgstr "" #: uchaines.rsvirgulerecom msgid "Virgule (recommandé pour OpenOffice/Staroffice)" msgstr "" #: uchaines.rsvoicilaliste msgctxt "uchaines.rsvoicilaliste" msgid "Voici la liste des espéces susceptibles d'être présentes à l'équilibre." msgstr "" #: uchaines.rsvoiciles4pre msgctxt "uchaines.rsvoiciles4pre" msgid "Voici les 4 premières lignes du fichier:" msgstr "" #: uchaines.rsvoiciunensem msgctxt "uchaines.rsvoiciunensem" msgid "Voici un ensemble d'équations de réactions linéairement indépendantes entre elles décrivant le système chimique." msgstr "" #: uchaines.rsvolumebcherm msgid "Volume bécher (mL)" msgstr "" #: uchaines.rsvolumeinitia msgctxt "uchaines.rsvolumeinitia" msgid "Volume initial=" msgstr "" #: uchaines.rsvolumemaxima msgid "Volume maximal burette (mL)" msgstr "" #: uchaines.rsvolumemaxima2 msgctxt "uchaines.rsvolumemaxima2" msgid "Volume maximal à verser=" msgstr "" #: uchaines.rsvolumetotalm msgid "Volume total: %smL" msgstr "" #: uchaines.rsvolumevers msgid "Volume versé" msgstr "" #: uchaines.rsvousavezdjen msgid "Vous avez déjà entré ce réactif !" msgstr "Specie already used" #: uchaines.rsvouspouvezmo msgctxt "uchaines.rsvouspouvezmo" msgid "Vous pouvez modifier les logarithmes des constantes d'équilibre si vous pensez en avoir de meilleures estimations." msgstr "You can change log of equilibrum constants if you think you have better values." #: uchaines.rsvtotalsommed msgid "Vtotal: somme des deux précédents (en mL)" msgstr "Vtotal: sum of two precedants (in mL)" #: uchaines.rsvvolumeverse msgid "V: volume versé (en mL)" msgstr "" #: uchaines.rsx10 msgctxt "uchaines.rsx10" msgid "x10" msgstr "" #: uchaines.rsxmax msgctxt "uchaines.rsxmax" msgid "Xmax=" msgstr "" #: uchaines.rsxmin msgctxt "uchaines.rsxmin" msgid "Xmin=" msgstr "" #: uchaines.rsy msgid "y" msgstr "" #: uchaines.rsymax msgctxt "uchaines.rsymax" msgid "Ymax=" msgstr "" #: uchaines.rsymin msgctxt "uchaines.rsymin" msgid "Ymin=" msgstr "" ���������dozzaqueux-3.51/languages/lclstrconsts.en.po��������������������������������������������������������0000750�0001750�0001750�00000055470�11130511651�021526� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "" #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "" #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "" #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "" #: lclstrconsts.ifsalt msgid "Alt" msgstr "" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "" #: lclstrconsts.ifsvk_end msgid "End" msgstr "" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "" #: lclstrconsts.rsblank msgid "Blank" msgstr "" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "" #: lclstrconsts.rscursor msgid "Cursor" msgstr "" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "" #: lclstrconsts.rsdirection msgid "Direction" msgstr "" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "" #: lclstrconsts.rsdocking msgid "Docking" msgstr "" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "" #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "" #: lclstrconsts.rsexception msgid "Exception" msgstr "" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "" #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "" #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "" #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "" #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "" #: lclstrconsts.rsfind msgid "Find" msgstr "" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "" #: lclstrconsts.rsforward msgid "Forward" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "" #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "" #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "" #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "" #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "" #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "" #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "" #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "" #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "" #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "" #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "" #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "" #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "" #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "" #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "" #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "" #: lclstrconsts.rsmball msgid "&All" msgstr "" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "" #: lclstrconsts.rsmbno msgid "&No" msgstr "" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "" #: lclstrconsts.rsmbok msgid "&OK" msgstr "" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "" #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "" #: lclstrconsts.rsreplace msgid "Replace" msgstr "" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "" #: lclstrconsts.rssize msgid " size " msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "" #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr "" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr "" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr "" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr "" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr "" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "" #: lclstrconsts.rswin32error msgid "Error:" msgstr "" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "" #: lclstrconsts.snotimers msgid "No timers available" msgstr "" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.plwin.po�����������������������������������������������������0000750�0001750�0001750�00000065021�11130520671�022250� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Last-Translator: Dominik Zablotny <dominz@wp.pl>\n" "PO-Revision-Date: 2004-02-06 03:21+0100\n" "Project-Id-Version: lcl\n" "Language-Team: polski <pl@li.org>\n" "Content-Type: text/plain; charset=CP1250\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.3\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "" #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "" #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "" #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "" #: lclstrconsts.ifsalt msgid "Alt" msgstr "" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "" #: lclstrconsts.ifsvk_end msgid "End" msgstr "" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Nie znaleziono zasobu: %s" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Kontrolka nie moe by sama swoim rodzicem" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "" #: lclstrconsts.rsblank msgid "Blank" msgstr "Pusty" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Kalkulator" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Nie mona ustawi ogniska." #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Canvas nie pozwala na rysowanie" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Bd przy tworzeniu \"gdb catchable\":" #: lclstrconsts.rscursor msgid "Cursor" msgstr "" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "uprawnienia uytkownik grupa rozmiar data czas" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "" #: lclstrconsts.rsdirection msgid "Direction" msgstr "" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "" #: lclstrconsts.rsdocking msgid "Docking" msgstr "" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "" #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Bd przy tworzeniu \"device context\" dla %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "BD w LCL: " #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Bd w %s przy %sAdres %s%s Ramka %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Bd odczytu %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "" #: lclstrconsts.rsexception msgid "Exception" msgstr "Wyjtek" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Katalog musi istnie" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "Katalog \"%s\" nie istnieje." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Plik musi istnie" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "Plik \"%s\" nie istnieje." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "Plik \"%s\" nie jest zapisywalny." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "Plik nie jest zapisywalny" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Zapisz plik jako" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Otwrz istniejcy plik" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Chcesz nadpisa plik?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "cieka musi istnie" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "cieka \"%s\" nie istnieje." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Wybierz katalog" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(nie znaleziono pliku: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Informacja o pliku" #: lclstrconsts.rsfind msgid "Find" msgstr "" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols nie moe by >= ColCount" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows nie moe by >= RowCount" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Bd przy zapisie formularza do strumienia \"%s\": %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug flags Wcz specificzne dla GDK komunikaty ledzenia/odpluskwiania." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug flags Wycz specificzne dla GDK komunikaty ledzenia/odpluskwiania." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings Ostrzerzenia i bdy Gtk+/GDK zatrzymaj aplikacj." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "Plik siatki nie istnieje" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "" #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex nie moe by mniejszy ni poprzedniego elementu menu" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class classname Zgodnie z konwencj Xt klas programu tworzy jego nazwa z pierwsz wielk liter. Np. nazw klasy dla programu gimp jest \"Gimp\". Jeli --class jest podane, klasa programu bdzie ustawiona na \"classname\"." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags Wcz specyficzne dla Gtk+ komunikaty ledzenia/odpluskwiania." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Pocz z podany mserwerem X; \"h\" jest nazw hosta, \"s\" jest numerem serwera (zwykle 0), a \"d\" jest numerem ekranu (zwyle pomijanym). Jeli --display nie jet podane, uyj zmienna rodowiaka DISPLAY." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module module aduje podany modu przy starcie." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "" #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug flags Wycz specyficzne dla Gtk+ komunikaty ledzenia/odpluskwiania." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient Nie ustawiaj nietrwaej kolejnoci dla modalnych formularzy" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Wycz uywanie X Shared Memory Extension." #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Wywoaj XSynchronize (display, True) Po poczeniu z serwerem X. To uatwia odpluskwianie protokou X, poniewa buforowanie da X bdzie wyczonei bdy X bd odbierane natychmiast po przetworzeniu przez serwer X dania, ktre spowodowao bd." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "" #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "" #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "" #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s Indeks %d przekracza zakres 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Indeks poza zakresem Cell[Col=%d Row=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "bdny strumie obiektu formularza" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Bdna warto waciwoci" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Bdny format strumienia" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s jest ju skojarzony z %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "Indeks listy poza zakresem (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "Lista musi by pusta" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Porzu" #: lclstrconsts.rsmball msgid "&All" msgstr "&Wszystkie" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Anuluj" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "Z&amknij" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "P&omoc" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Zignoruj" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Nie" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Nie na wszystkie" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&OK" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "&Ponw prb" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Tak" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Potwierdzenie" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Inny" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Bd" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Informacja" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Ostrzeenie" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Nieprawidowy plik siatki" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Wybierz dat" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "" #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "Waciwo %s nie istnieje" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "" #: lclstrconsts.rsreplace msgid "Replace" msgstr "" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Nie znaleziono zasobu: %s" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Waciwo ScrollBar'u poza zakresem" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Wybierz kolor" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Wybierz czcionk" #: lclstrconsts.rssize msgid " size " msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Nie mona zaadowa domylnej czcionki" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Nieznane rozszerzenie pliku obrazka" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Nieobsugiwany format bitmapy." #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Nieobsugiwany format schowka: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " UWAGA: Pozostay %d niezwolnione DC, szczegowy zrzut poniej:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " UWAGA: Pozostao %d niezwolnionych GDIObject, szczegowy zrzut poniej:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " UWAGA: Pozostao %d komunikatw w kolejce! Zostan usunite." #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " UWAGA: Pozostao %d struktur TimerInfo zostan usunite" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr " UWAGA: Pozostay %s nieusunite dowizania do LM_PAINT/LM_GtkPAINT." #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Bd:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Ostrzeenie:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Nie mona ustawi ogniska na wyczone lub niewidzialne okno" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Zdublowane menu" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Bdne tworzenie akcji" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Bdna enumeracja akcji" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Bdna rejestracja akcji" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Bdne wyrejestrowanie akcji" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Bdny rozmiar obrazka" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Bdny indeks ImageList" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Indeks menu poza zakresem" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "Element menu ma warto nil" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Podmenu nie jest w menu" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "" #: lclstrconsts.snotimers msgid "No timers available" msgstr "Brak dostpnych timerw" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.es.po��������������������������������������������������������0000750�0001750�0001750�00000077024�11247774545�021560� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Last-Translator: javivf <javivf@gmail.com>\n" "PO-Revision-Date: 2009-09-03 15:57+0100\n" "Language-Team: \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Project-Id-Version: lcl\n" "POT-Creation-Date: \n" "MIME-Version: 1.0\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "Navegador %s%s%s no ejecutable." #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "Navegador %s%s%s no encontrado." #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "Error al ejecutar %s%s%s:%s%s" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "No puedo encontrar un visor HTML" #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "No se ha encontrado un navegador HTML.%Por favor, defina uno en Ayuda -> Configurar Ayuda -> Visores" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "La base de datos de ayuda %s%s%s no pudo encontrar el archivo %s%s%s." #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "La macro %s en BrowserParams será reemplazada por la URL." #: lclstrconsts.ifsalt msgid "Alt" msgstr "Alt" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "Ctrl" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "Aceptar" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "clave de la aplicación" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "Retroceso" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "Cancelar" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "Mayúscula" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "Limpiar" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "Control" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Convertir" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "Borrar" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "Abajo" #: lclstrconsts.ifsvk_end msgid "End" msgstr "Fin" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "Escape" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "Ejecutar" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "Final" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "Hanja" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Ayuda" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "Inicio" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "Insertar" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "Junja" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "Kana" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Botón Izquierdo del Ratón" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "Izquierdo" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "Tecla izquierda de las ventanas" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Botón del Medio del Ratón" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "Menú" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "Modo Cambio" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "Siguiente" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "Sin convertir" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "BloqNum" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "TeclaNum %d" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "Tecla Pausa" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "Imprimir" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "Anterior" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Botón Derecho del Ratón" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "Enter" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "Derecha" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "tecla derecha de las ventanas" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "Desplazar" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "Seleccionar" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "Shift" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "Capturar pantalla" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "Tecla espaciadora" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "Tabulador" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "Desconocido" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "Arriba" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Recurso %s no encontrado" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Un control no puede tenerse a si mismo como pariente" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Todos los archivos (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "Retrasado" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "Bitmaps" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "Negro" #: lclstrconsts.rsblank msgid "Blank" msgstr "Vacío" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "Azul" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Calculadora" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "Cancelar" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "No se puede establecer el foco" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "El lienzo no permite dibujar" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "Sensible a MAY/min" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Creando un error capturable por gdb" #: lclstrconsts.rscursor msgid "Cursor" msgstr "" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "Personalizado ..." #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "Predeterminado" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "permisos usuario grupo tamaño fecha hora" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "¿Borrar registro?" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "Suprimir" #: lclstrconsts.rsdirection msgid "Direction" msgstr "Dirección" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "&Directorio" #: lclstrconsts.rsdocking msgid "Docking" msgstr "Anclado" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "" #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "Editar" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "Buscar en todo el archivo" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Error creando contexto de dispositivo para %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "ERROR en LCL" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Ocurrió un error en %s en %s Dirección %s%s Marco %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Error leyendo %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "Error al salvar el bitmap." #: lclstrconsts.rsexception msgid "Exception" msgstr "Excepción" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Directorio debe de existir" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "El directorio \"%s\" no existe." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "El archivo \"%s\" ya existe. Sobreescribirlo ?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "El archivo debe existir" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "No existe el archivo \"%s\"" #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "No se puede escribir en el archivo \"%s\"" #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "El archivo no se puede escribir" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Guardar archivo como" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Abrir un archivo existente" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "¿Sobreescribir archivo?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "La ruta debe existir" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "No existe la ruta \"%s\"" #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Escoja Directorio" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(archivo no encontrado: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Información de archivo" #: lclstrconsts.rsfind msgid "Find" msgstr "Buscar" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "Buscar más" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "Primero" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols no puede ser >= ColCount" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows no puede ser >= RowCount" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "Formulario" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Flujo de Formulario \"%s\" error: %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "Adelante" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug-flags Activa los mensajes de traza/depurado específicos de GDK" #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug-flags Desactiva los mensajes de traza/depurado específicos de GDK" #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings Alertas y errores generados por Gtk+/GDK con interrupción de la aplicación" #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "Gris" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "Texto Gris" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "Verde" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "No existe el archivo de rejilla" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "Índice de rejilla fuera de rango." #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex no puede ser menor que un elemento de menú de GroupIndex" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Filtro:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "Historial:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class nombre de clase Siguiendo las convenciones Xt, la clase de un programa es el nombre del programa con el caracter inicial en mayúsculas. Por ejemplo, el nombre de clase para gimp es \"Gimp\". Si se especifica --class, la clase del programá se establecerá a \"nombre de clase\"." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug-flags Activa los mensajes de traza/depurado específicos de Gtk+" #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Conecta al servidor X especificado, donde \"h\" es el nombre del host, \"s\" el número de servidor (normalmente 0), y \"d\" el número de display (normalmente omitido). Si no se especifica --display, se usará el variable de entorno DISPLAY" #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module modulo Carga el módulo especificado en al inicio." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "" #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug-flags Desactiva los mensajes de traza/depurado específicos de Gtk+" #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient No establecer el orden transitorio para los formularios modal." #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Desactivar el uso de Extensión de Memoria Extendida de X" #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Llama a XSynchronize (display, True) después que se haya establecido la conexión el servidor X. Esto hace más fácil depurar los errores de protocolo de X, porque se desactivará la solicitud de buffer y los errores de X serán recibidos inmediatamente después que el protocolo solicite ese error generado que ha sido procesado por el servidor X" #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "%s: Ya está registrado" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "Contexto de ayuda no encontrado" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "Base de datos de ayuda no encontrada" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "Error de la ayuda" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "Contexto de ayuda %s no encontrado." #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "Contexto de ayuda %s no encontrado en la base de datos %s%s%s." #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "La base de datos de ayuda %s%s%s no encontró un visor para el tipo de página de ayuda %s" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "Base de datos de ayuda %s%s%s no encotrada" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "Clave de ayuda %s%s%s no encontrada" #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "Clave de ayuda %s%s%s no encontrada en la base de datos %s%s%s." #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "El nodo de ayuda %s%s%s no tiene base de datos de ayuda" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "No se ha encontrado ayuda para la línea %d, columna %d de %s." #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "No hay nodos de ayuda disponibles" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "Ayuda no encontrada" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "%s: No registrado" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "Error del selector de ayuda" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "No hay visor de ayuda para el tipo de ayuda %s%s%s" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "Error en el visor de ayuda" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "Visor de ayuda no encontrado" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "Icono" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "No se puede cambiar el formato del icono" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "No se puede cambiar el tamaño del icono" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s Índice %d fuera de límites 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Índice fuera de rango Celda[Col=%s Línea=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "Insertar" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Fecha Inválida : %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "Fecha Inválida: %s. Debe estar entre %s y %s" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "Flujo de objeto formulario inválido" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Valor de propiedad inválido" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Formato de flujo inválido" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s ya está asociado con %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "Joint Picture Expert Group" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "Ultimo" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "Lima" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "El índice de lista excede los límites (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "La lista debe estar vacía" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "Marron" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Abortar" #: lclstrconsts.rsmball msgid "&All" msgstr "Todo" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Cancelar" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "&Cerrar" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "Ayuda" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Ignorar" #: lclstrconsts.rsmbno msgid "&No" msgstr "&No" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "No a todo" #: lclstrconsts.rsmbok msgid "&OK" msgstr "Aceptar" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "Abrir" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "&Reintentar" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "Guardar" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "Desbloquear" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Si" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "Sí &a todo" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "Menú" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr " modificado " #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "Autenticación" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Confirmación" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Personalizado" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Error" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Información" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Advertencia" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "Siguiente" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "Ninguno" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "No es un archivo de rejilla válido" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "No existe un objeto widgetset. Por favor, compruebe que la unidad \"interfaces\" ha sido añadida a la cláusula uses del programa" #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "Oliva" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Escoja una fecha" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "Pixmap" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "Portable BitMap" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "Portable GrayMap" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "Portable Network Graphic" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "Portable PixMap" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #, fuzzy #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%sPulse Aceptar para ignorar y correr el riesgo de corromper datos.%sPulse cancelar para terminar el programa." #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "Prioridad" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "La propiedad %s no existe" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "Purpura" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "No se puede guardar la imagen mientras la actualizacion esta en progreso" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "Rojo" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "Refrescar" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Reemplazar" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Reemplazar todo" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Recurso %s no encontrado" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Propiedad ScrollBar fuera de rango" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Escoja color" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Escoja una fuente" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "Plateado" #: lclstrconsts.rssize msgid " size " msgstr " tamaño " #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "Texto" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "No se ha podido cargar la fuente predeterminada" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "Error desconocido. Por favor, informe de este fallo" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Extensión de imagen inválida" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Formato de mapa de bits no soportado" #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Formato de portapapeles no soportado: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " ADVERTENCIA: Hay %d DCs sin liberar, sigue un volcado detallado:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " ADVERTENCIA: Hay %d GDIObjects sin liberar, sigue un volcado detallado:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " ADVERTENCIA: ¡Quedan %d mensajes! Se liberarán" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " ADVERTENCIA: Quedan %d estructuras TimerInfo, se liberarán." #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr " ADVERTENCIA: Hay %s mensajes de enlaces LM_PAINT/LM_GtkPAINT sin eliminar" #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "Blanco" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "Sólo palabras completas" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Error:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Advertencia:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "Ventana" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "Amarillo" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "No se puede establecer el foco en una ventana desactivada o invisible" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Duplicar menús" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Creación de acción inválida" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Enumeración de acción inválida" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Registro de acción inválida" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Desregistro de información inválida" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "¡La máscara \"%s\" no es válida!" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Tamaño de imagen inválido" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Índice de ImageList Inválido" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Índice de menú fuera de rango" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "MenuItem es nulo" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Sub-menu no está en el menú" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "No hay formulario MDI presente" #: lclstrconsts.snotimers msgid "No timers available" msgstr "No hay temporizadores disponibles" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "Número de coma flotante no válido : %s" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "Número entero no válido: %s" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.pliso.po�����������������������������������������������������0000750�0001750�0001750�00000065025�11130520671�022251� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Last-Translator: Dominik Zablotny <dominz@wp.pl>\n" "PO-Revision-Date: 2004-02-06 03:21+0100\n" "Project-Id-Version: lcl\n" "Language-Team: polski <pl@li.org>\n" "Content-Type: text/plain; charset=ISO_8859-2\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.3\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "" #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "" #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "" #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "" #: lclstrconsts.ifsalt msgid "Alt" msgstr "" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "" #: lclstrconsts.ifsvk_end msgid "End" msgstr "" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Nie znaleziono zasobu: %s" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Kontrolka nie moe by sama swoim rodzicem" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "" #: lclstrconsts.rsblank msgid "Blank" msgstr "Pusty" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Kalkulator" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Nie mona ustawi ogniska." #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Canvas nie pozwala na rysowanie" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Bd przy tworzeniu \"gdb catchable\":" #: lclstrconsts.rscursor msgid "Cursor" msgstr "" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "uprawnienia uytkownik grupa rozmiar data czas" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "" #: lclstrconsts.rsdirection msgid "Direction" msgstr "" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "" #: lclstrconsts.rsdocking msgid "Docking" msgstr "" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "" #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Bd przy tworzeniu \"device context\" dla %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "BD w LCL: " #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Bd w %s przy %sAdres %s%s Ramka %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Bd odczytu %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "" #: lclstrconsts.rsexception msgid "Exception" msgstr "Wyjtek" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Katalog musi istnie" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "Katalog \"%s\" nie istnieje." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Plik musi istnie" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "Plik \"%s\" nie istnieje." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "Plik \"%s\" nie jest zapisywalny." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "Plik nie jest zapisywalny" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Zapisz plik jako" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Otwrz istniejcy plik" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Chcesz nadpisa plik?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "cieka musi istnie" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "cieka \"%s\" nie istnieje." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Wybierz katalog" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(nie znaleziono pliku: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Informacja o pliku" #: lclstrconsts.rsfind msgid "Find" msgstr "" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols nie moe by >= ColCount" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows nie moe by >= RowCount" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Bd przy zapisie formularza do strumienia \"%s\": %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug flags Wcz specificzne dla GDK komunikaty ledzenia/odpluskwiania." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug flags Wycz specificzne dla GDK komunikaty ledzenia/odpluskwiania." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings Ostrzerzenia i bdy Gtk+/GDK zatrzymaj aplikacj." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "Plik siatki nie istnieje" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "" #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex nie moe by mniejszy ni poprzedniego elementu menu" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class classname Zgodnie z konwencj Xt klas programu tworzy jego nazwa z pierwsz wielk liter. Np. nazw klasy dla programu gimp jest \"Gimp\". Jeli --class jest podane, klasa programu bdzie ustawiona na \"classname\"." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags Wcz specyficzne dla Gtk+ komunikaty ledzenia/odpluskwiania." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Pocz z podany mserwerem X; \"h\" jest nazw hosta, \"s\" jest numerem serwera (zwykle 0), a \"d\" jest numerem ekranu (zwyle pomijanym). Jeli --display nie jet podane, uyj zmienna rodowiaka DISPLAY." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module module aduje podany modu przy starcie." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "" #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug flags Wycz specyficzne dla Gtk+ komunikaty ledzenia/odpluskwiania." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient Nie ustawiaj nietrwaej kolejnoci dla modalnych formularzy" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Wycz uywanie X Shared Memory Extension." #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Wywoaj XSynchronize (display, True) Po poczeniu z serwerem X. To uatwia odpluskwianie protokou X, poniewa buforowanie da X bdzie wyczonei bdy X bd odbierane natychmiast po przetworzeniu przez serwer X dania, ktre spowodowao bd." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "" #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "" #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "" #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s Indeks %d przekracza zakres 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Indeks poza zakresem Cell[Col=%d Row=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "bdny strumie obiektu formularza" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Bdna warto waciwoci" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Bdny format strumienia" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s jest ju skojarzony z %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "Indeks listy poza zakresem (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "Lista musi by pusta" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Porzu" #: lclstrconsts.rsmball msgid "&All" msgstr "&Wszystkie" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Anuluj" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "Z&amknij" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "P&omoc" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Zignoruj" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Nie" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Nie na wszystkie" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&OK" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "&Ponw prb" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Tak" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Potwierdzenie" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Inny" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Bd" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Informacja" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Ostrzeenie" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Nieprawidowy plik siatki" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Wybierz dat" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "" #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "Waciwo %s nie istnieje" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "" #: lclstrconsts.rsreplace msgid "Replace" msgstr "" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Nie znaleziono zasobu: %s" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Waciwo ScrollBar'u poza zakresem" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Wybierz kolor" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Wybierz czcionk" #: lclstrconsts.rssize msgid " size " msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Nie mona zaadowa domylnej czcionki" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Nieznane rozszerzenie pliku obrazka" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Nieobsugiwany format bitmapy." #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Nieobsugiwany format schowka: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " UWAGA: Pozostay %d niezwolnione DC, szczegowy zrzut poniej:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " UWAGA: Pozostao %d niezwolnionych GDIObject, szczegowy zrzut poniej:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " UWAGA: Pozostao %d komunikatw w kolejce! Zostan usunite." #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " UWAGA: Pozostao %d struktur TimerInfo zostan usunite" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr " UWAGA: Pozostay %s nieusunite dowizania do LM_PAINT/LM_GtkPAINT." #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Bd:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Ostrzeenie:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Nie mona ustawi ogniska na wyczone lub niewidzialne okno" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Zdublowane menu" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Bdne tworzenie akcji" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Bdna enumeracja akcji" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Bdna rejestracja akcji" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Bdne wyrejestrowanie akcji" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Bdny rozmiar obrazka" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Bdny indeks ImageList" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Indeks menu poza zakresem" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "Element menu ma warto nil" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Podmenu nie jest w menu" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "" #: lclstrconsts.snotimers msgid "No timers available" msgstr "Brak dostpnych timerw" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.lt.po��������������������������������������������������������0000750�0001750�0001750�00000101645�11261322323�021540� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of lclstrconsts.po to # Valdas Jankūnas <zmuogs@gmail.com>, 2008, 2009. msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2009-08-23 15:10+0300\n" "Project-Id-Version: lclstrconsts\n" "Language-Team: Lithuanian <kde-i18n-lt@kde.org>\n" "X-Generator: Lokalize 1.0\n" "MIME-Version: 1.0\n" "Last-Translator: Valdas Jankūnas <zmuogs@gmail.com>\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "Naršyklė %s%s%s nėra vykdomasis failas." #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "Naršyklė %s%s%s nerasta." #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "Įvyko klaida startuojant %s%s%s:%s%s" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "Nepavyko rasti HTML naršyklės." #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "Nerasta HTML naršyklė.%sNurodykite kokią nors meniu „Žinynas -> Derinti žinyną -> Žiūryklės“." #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "Žinyno duomenų bazė %s%s%s neranda failo %s%s%s." #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "Makrokomanda %s naršyklės parametruose bus pakeista URL reikšme." #: lclstrconsts.ifsalt msgid "Alt" msgstr "Alt" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "Ctrl" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "Accept" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "Programos klavišas" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "Backspace" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "Cancel" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "Caps Lock" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "Clear" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "Ctrl" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Convert" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "Delete" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "Down" #: lclstrconsts.ifsvk_end msgid "End" msgstr "End" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "Esc" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "Execute" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "Final" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "Hanja" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Help" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "Home" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "Insert" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "Junja" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "Kana" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Kairys peles klavišas" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "Left" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "Kairysis windows klavišas" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Vidurinis pelės klavišas" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "Menu" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "Mode Change" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "Next" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "Nonconvert" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "Numlock" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "Numpad %d" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "Pause" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "Print" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "Prior" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Dešinys pelės klavišas" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "Return" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "Right" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "Dešinysis windows klavišas" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "Scroll" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "Select" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "Shift" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "Snapshot" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "Space" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "Tab" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "Nežinomas" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "Up" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Resursas %s nerastas" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "3D tamsumos šešėlis" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "3D šviesuma" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Valdiklio tėvas negali būti pats valdiklis" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "Aktyvus rėmelis" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "Veikiamoji antraštė" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Visi failai (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "Programos darbo laukas" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "Žydra" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "Darbalaukis" #: lclstrconsts.rsbackward msgid "Backward" msgstr "Atgal" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "Bitmap" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "Juoda" #: lclstrconsts.rsblank msgid "Blank" msgstr "Tuščias" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "Mėlyna" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "Mygtuko paviršius" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "Mygtuko paryškinimas" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "Mygtuko šešėlis" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "Mygtuko tekstas" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Skaičiuotuvas" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "Atsisakyti" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Suaktyvinti negalima" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Į „Canvas“ negalima piešti" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "Antraštės tekstas" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "Paisyti raidžių lygio" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "Kreminė" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Kuriama GDB aptinkama klaida:" #: lclstrconsts.rscursor msgid "Cursor" msgstr "Žymeklis" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "Naudotojo…" #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "Numatytasis" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "leidimai naudotojas grupė dydis data laikas" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "Ištrinti įrašą?" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "Delete" #: lclstrconsts.rsdirection msgid "Direction" msgstr "Kryptis" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "&Aplankas" #: lclstrconsts.rsdocking msgid "Docking" msgstr "Pritvirtinimas" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "Piktogramos formatai dubliuojasi." #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "Keisti" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "Ieškoti visame faile" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "Klaida" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Įvyko klaida kuriant įrenginio turinį, skirtą %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "LCL klaida:" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "%s įvyko klaida:%sadresas %s%s, kadras %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Įvyko klaida skaitant %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "Įrašant rastrinį paveikslą įvyko klaida." #: lclstrconsts.rsexception msgid "Exception" msgstr "Išimtinė situacija" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Aplankas turi egzistuoti" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "Aplankas „%s“ neegzistuoja." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "Toks failas „%s“ jau yra. Rašyti ant viršaus?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Failas turi egzistuoti" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "Failas „%s“ neegzistuoja." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "Failas „%s“ nėra skirtas rašymui." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "Failas ne rašymui" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Įrašyti failą kaip" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Atverti egzistuojanti failą" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Perrašyti failą?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "Kelias turi egzistuoti" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "Kelias „%s“ neegzistuoja." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Nurodykit aplanką" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(failas nerastas: „%s“)" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Informacija apie failą" #: lclstrconsts.rsfind msgid "Find" msgstr "Ieškoti" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "Ieškoti toliau" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "Pirmasis" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "„FixedCols“ reikšmė negali būti lygi ar didesnė nei „ColCount“" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "„FixedRows“ reikšmė negali būti lygi ar didesnė nei „RowCount“" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "Nuo" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Formą siunčiant srautu „%s“ įvyko klaida: %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "Pirmyn" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "Purpurinė" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug žymės Įjungiami nurodyti GDK sekimo/derinimo pranešimai." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug žymės Išjungiami nurodyti GDK sekimo/derinimo pranešimai." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings GTK+ ar GDK sugeneravus perspėjimą arba klaidą, programa bus sustabdyta." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "Veikiamosios antraštės gradientas" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "Įprastos antraštės gradientas" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "Pilka" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "Neveiksnus tekstas" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "Žalia" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "Tinklelio failas neegzistuoja" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "Tinklelio indeksas peržengia ribas" #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "„GroupIndex“ negali būti mažesnis už ankstesnių menių punktų „GroupIndex“" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Filtras:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "Istorija:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class klasės_pavadinimas Pagal Xt susitarimą, programos klasė yra programos pavadinimas, kuriame pirmoji raidė yra didžioji. Pavyzdžiui: GIMP programos klasė yra „Gimp“. Jei --class nurodytas, tai klasės pavadinimas bus priskirtas „classname“." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug žymės Įjungiami nurodyti GTK+ sekimo/derinimo pranešimai." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Prisijungti prie nurodyto X serverio, čia „h“ yra hostname, „s“ - serverio numeris (paprastai 0), ir „d“ - ekrano numeris (dažniausia praleidžiamas). Jei --display nenurodytas, tada naudojamas DISPLAY aplinkos kintamasis." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module modulis Starto metu įkelti nurodytą modulį." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "--name programa Programos pavadinimą nustatyti į „programa“. Jei nenurodyta, tai programos pavadinimas bus nustatytas į ParamStrUTF8(0)." #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug žymės Išjungiami nurodyti GTK+ sekimo/derinimo pranešimai." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient Modalinių formų eilę nedaryti trumpalaikę." #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Nenaudoti „X Shared Memory“ plėtinio." #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Kai XServer ryšys sukurtas, vykdyti „XSynchronize (display, True)“. Tai padarys lengvesnį X protokolo klaidų derinimą, nes bus išjungtas X kreipinių buferis ir X serveriui protokolo kreipinio apdorojimo metu įvykusi klaida bus gauta iškart." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "%s: jau yra registruotas" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "Žinyno turinys nerastas" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "Žinyno duomenų bazė nerasta" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "Žinyno klaida" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "Žinyno turinys %s nerastas." #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "Žinyno turinys %s duomenų bazėje %s%s%s nerastas." #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "Žinyno duomenų bazė %s%s%s nerado žiūryklės %s tipo žinyno lapui." #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "Žinyno duomenų bazė %s%s%s nerasta." #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "Žinyno raktažodis %s%s%s nerastas." #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "Žinyno raktažodis %s%s%s duomenų bazėje %s%s%s nerastas." #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "Žinyno mazgas %s%s%s neturi žinyno duomenų bazės." #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "Žinyne nėra duomenų eilutei %d, stulpeliui %d šio %s." #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "Žinyno nėra" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "Žinynas nerastas" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "%s: neregistruotas" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "Žinyno išrinkėjo klaida" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "Nerasta žiūryklė %s%s%s žinyno tipui." #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "Žinyno žiūryklės klaida" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "Žinyno žiūryklė nerasta" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "Paryškinimas" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "Paryškintas tekstas" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "Indikatorius" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "OSX piktogramos resursas" #: lclstrconsts.rsicon msgid "Icon" msgstr "Piktograma" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "Piktogramos paveikslėlis neturi būti tuščias" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "Piktogramos ir naujasis paveikslėliai turi būti to paties formato" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "Neina pakeisti piktogramos paveikslo formato" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "Piktogramos ir naujasis paveikslėliai turi būti to paties dydžio" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "Neina pakeisti piktogramos paveikslo dydžio" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "Veikiamoji piktograma neturi paveikslėlio" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "Neaktyvus rėmelis" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "Neaktyvi antraštė" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "Neaktyvi antraštė" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s indeksas %d peržengia ribas 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Langelio [stulpelis = %d, eilutė = %d] indeksas peržengia ribas" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "Fonas informacijai" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "Informacijos tekstas" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "Insert" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Klaidinga data: %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "Klaidinga data: %s. Ji turi būti tarp %s ir %s" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "klaidingas formos objekto srautas" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Klaidinga savybės reikšmė" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Klaidingas srauto formatas" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s jau yra asocijuotas su %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "Joint Picture Expert Group" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "Paskutinysis" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "Citrininė" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "Sąrašo indeksas peržengė ribas (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "Sąrašas turi būti tuščias" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "Kaštoninė" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Nutraukti" #: lclstrconsts.rsmball msgid "&All" msgstr "&Visi" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Atsisakyti" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "&Užverti" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "Žin&ynas" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Ignoruoti" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Ne" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Visada ne" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&Tinka" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "At&verti" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "Ka&rtoti" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "Į&rašyti" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "&Atsklęsti" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Taip" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "Vis&ada taip" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "Vidutiniškai pilka" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "Meniu juosta" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "Menu" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "Paryškintas meniu" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "Menu tekstas" #: lclstrconsts.rsmodified msgid " modified " msgstr " pakeista " #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "Žalsva" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "Tapatumo nustatymas" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Patvirtinimas" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Naudotojo" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Klaida" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Informacija" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Perspėjimas" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "Tamsiai mėlyna" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "Kitas" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "Jokia" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Klaidingas tinklelio failas" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "Ne valdiklio objektas. Patikrinkite ar modulis „interfaces“ yra paminėtas programos naudojamų modulių sąraše." #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "Alyvuogių" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Nurodykite datą" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "Pixmap" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "Portatyvus BitMap" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "Portatyvus GreyMap" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "Portable Network Graphic" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "Portatyvus PixMap" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "Tolesnis" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%sPaspaudę „Tinka“ ignoruosite, tačiau rizikuosite duomenimis.%sPaspaudę „Atsisakyti“ sustabdysite programą." #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "Ankstesnis" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "Savybė %s neegzistuoja" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "Purpurinė" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "„Endupdate“, tačiau niekas neatnaujinama" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "Neina įrašyti paveikslo, nes jis atnaujinamas" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "Visko atnaujinti negalima kai atnaujinamas tik „Canvas“" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "Raudona" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "Atnaujinti" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Pakeisti" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Pakeisti visus" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Resursas %s nerastas" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "Slinkties juosta" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Savybės „ScrollBar“ vertė peržengia ribas" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Nurodykit spalvą" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Nurodykit šriftą" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "Sidabrinė" #: lclstrconsts.rssize msgid " size " msgstr " dydis " #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "Dangaus žydrumo" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "Tamsiai žydra" #: lclstrconsts.rstext msgid "Text" msgstr "Tekstas" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Nepavyko įkelti numatytą šriftą" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "Nežinoma klaida, prašau praneškite kūrėjams apie šią klaidą." #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Nežinomas paveikslo plėtinys" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Nepalaikomas rastrinio paveikslo formatas." #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Nepalaikomas iškarpinės formatas: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " Perspėjimas: liko %d neatlaisvinti „DC“, išsamiau:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " Perspėjimas: liko %d neatlaisvinti „GDIObject“, išsamiau:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " Perspėjimas: eilėje dar yra %d pranešimų, jie bus pašalinti." #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " Perspėjimas: dar liko %d „TimerInfo“ struktūrų, jos bus sunaikintos." #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr " Perspėjimas: liko %s nepašalintos nuorodos į LM_PAINT/LM_GtkPAINT pranešimus." #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "Balta" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "Tik visų žodžių" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Klaida:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Perspėjimas:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "Langas" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "Lango rėmelis" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "Lango tekstas" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "Geltona" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Neįgalintą arba nematomą langą suaktyvinti negalima" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Meniu dubliuojasi" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Klaidingas veiksmo kūrimas" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Klaidinga veiksmo enumeracija" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Klaidingas veiksmo registravimas" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Klaidingas veiksmo išregistravimas" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "Klaidinga kaukės „%s“ koduotė!" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Klaidingas paveikslo dydis" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Klaidingas„ImageList“ indeksas" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Meniu indeksas peržengia ribas" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "„MenuItem“ reikšmė yra nil" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Pomeniu nėra įdėtas į menių" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "MDI formos nėra." #: lclstrconsts.snotimers msgid "No timers available" msgstr "Nėra laikmačių" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "Klaidingas leksemos tipas: tikėtasi %s" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "Klaidingas slankaus kablelio skaičius: %s" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "Klaidingas sveikasis skaičius: %s" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr " (ties %d,%d, srauto poslinkis %.8x)" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "Neužbaigta bitų vertė" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "Neužbaigta eilutė" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "Klaidingas leksemos simbolis: tikėtasi %s, tačiau rasta %s" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "Klaidingas leksemos tipas: tikėtasi %s, tačiau rasta %s" �������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/dozzzaqueux.po������������������������������������������������������������0000750�0001750�0001750�00000330201�13147327621�021001� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" #: tconfigimpression.bitbtn1.caption msgctxt "TCONFIGIMPRESSION.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tconfigimpression.bitbtn2.caption msgctxt "TCONFIGIMPRESSION.BITBTN2.CAPTION" msgid "Annuler" msgstr "" #: tconfigimpression.caption msgctxt "TCONFIGIMPRESSION.CAPTION" msgid "Configuration de la page pour l'impression" msgstr "" #: tconfigimpression.groupbox1.caption msgctxt "TCONFIGIMPRESSION.GROUPBOX1.CAPTION" msgid "Position" msgstr "" #: tconfigimpression.groupbox2.caption msgctxt "TCONFIGIMPRESSION.GROUPBOX2.CAPTION" msgid "Nombre de copies" msgstr "" #: tconfigimpression.groupbox3.caption msgctxt "TCONFIGIMPRESSION.GROUPBOX3.CAPTION" msgid "Taille (en % de la page)" msgstr "" #: tconfigimpression.label1.caption msgctxt "TCONFIGIMPRESSION.LABEL1.CAPTION" msgid "Nombre:" msgstr "" #: tconfigimpression.label2.caption msgctxt "TCONFIGIMPRESSION.LABEL2.CAPTION" msgid "Horizontalement" msgstr "" #: tconfigimpression.label3.caption msgctxt "TCONFIGIMPRESSION.LABEL3.CAPTION" msgid "Verticalement" msgstr "" #: tconfigimpression.radiogroupehorizontal.caption msgctxt "TCONFIGIMPRESSION.RADIOGROUPEHORIZONTAL.CAPTION" msgid "Horizontale" msgstr "" #: tconfigimpression.radiogroupevertical.caption msgctxt "TCONFIGIMPRESSION.RADIOGROUPEVERTICAL.CAPTION" msgid "Verticale" msgstr "" #: tconfigimpression.radiogrouporientation.caption msgctxt "TCONFIGIMPRESSION.RADIOGROUPORIENTATION.CAPTION" msgid "Orientation" msgstr "" #: tform1.aide1.caption msgctxt "TFORM1.AIDE1.CAPTION" msgid "Aide" msgstr "" #: tform1.aidedozzzaqueux1.caption msgctxt "TFORM1.AIDEDOZZZAQUEUX1.CAPTION" msgid "Aide Dozzzaqueux" msgstr "" #: tform1.apropos1.caption msgctxt "TFORM1.APROPOS1.CAPTION" msgid "A propos..." msgstr "" #: tform1.autoriserractionsredox1.caption msgctxt "TFORM1.AUTORISERRACTIONSREDOX1.CAPTION" msgid "Autoriser réactions redox" msgstr "" #: tform1.bitbtn1.caption msgctxt "TFORM1.BITBTN1.CAPTION" msgid "Valider et passer à la burette >>>>>" msgstr "" #: tform1.bitbtn1_.caption msgctxt "TFORM1.BITBTN1_.CAPTION" msgid "Valider et passer au recensement >>>>>" msgstr "" #: tform1.bitbtn2.caption msgctxt "TFORM1.BITBTN2.CAPTION" msgid "Valider et passer aux constantes de réaction >>>>>" msgstr "" #: tform1.bitbtn3.caption msgctxt "TFORM1.BITBTN3.CAPTION" msgid "Valider et lancer les calculs>>>>>>" msgstr "" #: tform1.bitbtn4.caption msgctxt "TFORM1.BITBTN4.CAPTION" msgid "Rechercher une espéce" msgstr "" #: tform1.bitbtn4_.caption msgctxt "TFORM1.BITBTN4_.CAPTION" msgid "Rechercher une espéce" msgstr "" #: tform1.bitbtn5.caption msgctxt "TFORM1.BITBTN5.CAPTION" msgid "Export résultats bruts" msgstr "" #: tform1.bitbtn5.hint msgctxt "TFORM1.BITBTN5.HINT" msgid "Sauvegarder les résultats numériques pour une exploitation avec tableur ou avec Régressi" msgstr "" #: tform1.bitbtn6.caption msgctxt "TFORM1.BITBTN6.CAPTION" msgid "Choisir les courbes à tracer >>>>>>>" msgstr "" #: tform1.bitbtn7.caption msgctxt "TFORM1.BITBTN7.CAPTION" msgid "Valider et tracer les courbes >>>>>" msgstr "" #: tform1.bitbtn8.caption msgctxt "TFORM1.BITBTN8.CAPTION" msgid "BitBtn8" msgstr "" #: tform1.bitbtn9.caption msgctxt "TFORM1.BITBTN9.CAPTION" msgid "bitbtn9" msgstr "" #: tform1.calculdesdrives1.caption msgctxt "TFORM1.CALCULDESDRIVES1.CAPTION" msgid "Calcul des dérivées" msgstr "" #: tform1.caption msgctxt "TFORM1.CAPTION" msgid "Dozzzaqueux" msgstr "" #: tform1.checkboxaxes.caption msgctxt "TFORM1.CHECKBOXAXES.CAPTION" msgid "Axes" msgstr "" #: tform1.checkboxexp.caption msgctxt "TFORM1.CHECKBOXEXP.CAPTION" msgid "Exp." msgstr "" #: tform1.checkboxexp.hint msgctxt "TFORM1.CHECKBOXEXP.HINT" msgid "Activer/désactiver l'affichage du fichier expérimental" msgstr "" #: tform1.checkboxgraduations.caption msgctxt "TFORM1.CHECKBOXGRADUATIONS.CAPTION" msgid "Graduations" msgstr "" #: tform1.checkboxgrilledroite.caption msgctxt "TFORM1.CHECKBOXGRILLEDROITE.CAPTION" msgid "Grille échelle droite" msgstr "" #: tform1.checkboxgrillegauche.caption msgctxt "TFORM1.CHECKBOXGRILLEGAUCHE.CAPTION" msgid "Grille échelle gauche" msgstr "" #: tform1.checkboxlegende.caption msgctxt "TFORM1.CHECKBOXLEGENDE.CAPTION" msgid "Légende" msgstr "" #: tform1.checkboxlegendeapart.caption msgctxt "tform1.checkboxlegendeapart.caption" msgid "Légende à part" msgstr "" #: tform1.checkboxsuperposition.caption msgctxt "TFORM1.CHECKBOXSUPERPOSITION.CAPTION" msgid "Superp." msgstr "" #: tform1.checkboxsuperposition.hint msgctxt "TFORM1.CHECKBOXSUPERPOSITION.HINT" msgid "Activer/désactiver la superposition" msgstr "" #: tform1.chiffressignificatifs1.caption msgctxt "TFORM1.CHIFFRESSIGNIFICATIFS1.CAPTION" msgid "Chiffres significatifs" msgstr "" #: tform1.combobox1.text msgid "ComboBox1" msgstr "" #: tform1.edittemperature.text msgid "298" msgstr "" #: tform1.editvolume.hint msgctxt "TFORM1.EDITVOLUME.HINT" msgid "Changer cette valeur ne modifie pas les concentrations ! Utilisez le bouton \"dilution\" si vous voulez les modifier par dilution" msgstr "" #: tform1.editvolume.text msgctxt "tform1.editvolume.text" msgid "20" msgstr "" #: tform1.editvolume_burette.hint msgctxt "TFORM1.EDITVOLUME_BURETTE.HINT" msgid "Changer cette valeur ne modifie pas les concentrations ! Utilisez le bouton \"dilution\" si vous voulez les modifier par dilution" msgstr "" #: tform1.editvolume_burette.text msgctxt "TFORM1.EDITVOLUME_BURETTE.TEXT" msgid "20" msgstr "" #: tform1.enregistrerlefilmdelasimulation1.caption msgctxt "TFORM1.ENREGISTRERLEFILMDELASIMULATION1.CAPTION" msgid "Enregistrer le film de la simulation" msgstr "" #: tform1.exporttableurtexte1.caption msgctxt "TFORM1.EXPORTTABLEURTEXTE1.CAPTION" msgid "Export tableur texte" msgstr "" #: tform1.expriencefichierformattableautexte1.caption msgctxt "TFORM1.EXPRIENCEFICHIERFORMATTABLEAUTEXTE1.CAPTION" msgid "Expérience (fichier format tableau texte ou Regressi)" msgstr "" #: tform1.fichier1.caption msgctxt "TFORM1.FICHIER1.CAPTION" msgid "Fichier" msgstr "" #: tform1.jouerunfilmdesimulation1.caption msgctxt "TFORM1.JOUERUNFILMDESIMULATION1.CAPTION" msgid "Jouer un film de simulation" msgstr "" #: tform1.label1.caption msgctxt "TFORM1.LABEL1.CAPTION" msgid "Réactifs choisis:" msgstr "" #: tform1.label10.caption msgctxt "TFORM1.LABEL10.CAPTION" msgid "Vous pouvez modifier les logarithmes des constantes d'équilibre si vous pensez en avoir de meilleures estimations." msgstr "" #: tform1.label11.caption msgctxt "TFORM1.LABEL11.CAPTION" msgid "Base de réactifs:" msgstr "" #: tform1.label11_.caption msgctxt "TFORM1.LABEL11_.CAPTION" msgid "Base de réactifs:" msgstr "" #: tform1.label12.caption msgctxt "TFORM1.LABEL12.CAPTION" msgid "Xmin=" msgstr "" #: tform1.label13.caption msgctxt "TFORM1.LABEL13.CAPTION" msgid "Xmax=" msgstr "" #: tform1.label14.caption msgctxt "TFORM1.LABEL14.CAPTION" msgid "Bécher" msgstr "" #: tform1.label14_.caption msgctxt "TFORM1.LABEL14_.CAPTION" msgid "Burette" msgstr "" #: tform1.label15.caption msgctxt "TFORM1.LABEL15.CAPTION" msgid "mL" msgstr "" #: tform1.label16.caption msgctxt "TFORM1.LABEL16.CAPTION" msgid "Volume maximal à verser=" msgstr "" #: tform1.label17.caption msgctxt "TFORM1.LABEL17.CAPTION" msgid "Ymin=" msgstr "" #: tform1.label18.caption msgctxt "TFORM1.LABEL18.CAPTION" msgid "Ymax=" msgstr "" #: tform1.label19.caption msgctxt "TFORM1.LABEL19.CAPTION" msgid "Ymin=" msgstr "" #: tform1.label1_.caption msgctxt "TFORM1.LABEL1_.CAPTION" msgid "Réactifs choisis:" msgstr "" #: tform1.label2.caption msgctxt "TFORM1.LABEL2.CAPTION" msgid "Voici la liste des espéces susceptibles d'être présentes à l'équilibre." msgstr "" #: tform1.label20.caption msgctxt "TFORM1.LABEL20.CAPTION" msgid "Ymax=" msgstr "" #: tform1.label21.caption msgctxt "TFORM1.LABEL21.CAPTION" msgid "V=" msgstr "" #: tform1.label22.caption msgctxt "TFORM1.LABEL22.CAPTION" msgid "mL" msgstr "" #: tform1.label3.caption msgctxt "TFORM1.LABEL3.CAPTION" msgid "Si vous pensez que certaines ne seront pas présentes (blocage cinétique par exemple), il suffit de les décocher." msgstr "" #: tform1.label4.caption msgctxt "TFORM1.LABEL4.CAPTION" msgid "Pour obtenir la formule brute d'une espéce, sélectionnez la puis cliquez sur le bouton ci-contre:" msgstr "" #: tform1.label5.caption msgctxt "TFORM1.LABEL5.CAPTION" msgid "Volume initial=" msgstr "" #: tform1.label6.caption msgctxt "TFORM1.LABEL6.CAPTION" msgid "mL" msgstr "" #: tform1.label7.caption msgctxt "TFORM1.LABEL7.CAPTION" msgid "Température=" msgstr "" #: tform1.label8.caption msgctxt "TFORM1.LABEL8.CAPTION" msgid "K" msgstr "" #: tform1.label9.caption msgctxt "TFORM1.LABEL9.CAPTION" msgid "Voici un ensemble d'équations de réactions linéairement indépendantes entre elles décrivant le système chimique." msgstr "" #: tform1.licensegpl1.caption msgctxt "TFORM1.LICENSEGPL1.CAPTION" msgid "License GPL" msgstr "" #: tform1.menuitem11.caption msgctxt "TFORM1.MENUITEM11.CAPTION" msgid "Indicateur coloré" msgstr "" #: tform1.menuitem12.caption msgid "Site web" msgstr "" #: tform1.menuitem14.caption msgctxt "TFORM1.MENUITEM14.CAPTION" msgid "Historique des versions" msgstr "" #: tform1.menuitem15.caption msgid "Tout copier dans presse-papier" msgstr "" #: tform1.menuitem16.caption msgid "Copier texte sélectionné dans le presse-papier" msgstr "" #: tform1.menuitem9.caption msgctxt "TFORM1.MENUITEM9.CAPTION" msgid "Langue" msgstr "" #: tform1.menuitemraffinecsv.caption msgctxt "TFORM1.MENUITEMRAFFINECSV.CAPTION" msgid "Format tableur texte (.csv, .txt)" msgstr "" #: tform1.menuitemraffinerw3.caption msgid "Format Regressi (.rw3)" msgstr "" #: tform1.menuitem_charger_exemples.caption msgctxt "tform1.menuitem_charger_exemples.caption" msgid "du répertoire \"exemples\"" msgstr "" #: tform1.menuitem_charger_personnel.caption msgctxt "tform1.menuitem_charger_personnel.caption" msgid "de mon répertoire personnel" msgstr "" #: tform1.menuitem_jpg.caption msgid "JPEG" msgstr "" #: tform1.menuitem_png.caption msgid "PNG" msgstr "" #: tform1.menuitem_sauve_brut_csv.caption msgctxt "tform1.menuitem_sauve_brut_csv.caption" msgid "Format tableur texte (.csv, .txt)" msgstr "" #: tform1.menuitem_save_brut_rw3.caption msgid "Format Régressi (.rw3)" msgstr "" #: tform1.nombredepointsdecalcul1.caption msgctxt "TFORM1.NOMBREDEPOINTSDECALCUL1.CAPTION" msgid "Nombre de points de calcul" msgstr "" #: tform1.nouvellesimulation1.caption msgctxt "TFORM1.NOUVELLESIMULATION1.CAPTION" msgid "Nouvelle simulation" msgstr "" #: tform1.options1.caption msgctxt "TFORM1.OPTIONS1.CAPTION" msgid "Options" msgstr "" #: tform1.pagecontrol1.hint msgctxt "TFORM1.PAGECONTROL1.HINT" msgid "Pour sélectionner un réactif, faites un clic simple sur sa ligne." msgstr "" #: tform1.pagecontrol1_.hint msgctxt "TFORM1.PAGECONTROL1_.HINT" msgid "Pour sélectionner un réactif, faites un clic simple sur sa ligne." msgstr "" #: tform1.parfomulebrute1.caption msgctxt "TFORM1.PARFOMULEBRUTE1.CAPTION" msgid "Par fomule brute" msgstr "" #: tform1.parformulebrute1.caption msgctxt "TFORM1.PARFORMULEBRUTE1.CAPTION" msgid "Par formule brute" msgstr "" #: tform1.paridentifiantousynonyme1.caption msgctxt "TFORM1.PARIDENTIFIANTOUSYNONYME1.CAPTION" msgid "Par identifiant ou synonyme" msgstr "" #: tform1.paridentifiantousynonyme2.caption msgctxt "TFORM1.PARIDENTIFIANTOUSYNONYME2.CAPTION" msgid "Par identifiant ou synonyme" msgstr "" #: tform1.radioechellehorizontale.caption msgctxt "TFORM1.RADIOECHELLEHORIZONTALE.CAPTION" msgid "Echelle horizontale" msgstr "" #: tform1.radioechelleverticaledroite.caption msgctxt "TFORM1.RADIOECHELLEVERTICALEDROITE.CAPTION" msgid "Echelle verticale droite" msgstr "" #: tform1.radioechelleverticalegauche.caption msgctxt "TFORM1.RADIOECHELLEVERTICALEGAUCHE.CAPTION" msgid "Echelle verticale gauche" msgstr "" #: tform1.savedialog1.title msgctxt "TFORM1.SAVEDIALOG1.TITLE" msgid "Enregistrer" msgstr "" #: tform1.savedialog2.title msgctxt "TFORM1.SAVEDIALOG2.TITLE" msgid "Enregistrer" msgstr "" #: tform1.savedialog3.title msgctxt "TFORM1.SAVEDIALOG3.TITLE" msgid "Enregistrer" msgstr "" #: tform1.speedbutton10.caption msgctxt "TFORM1.SPEEDBUTTON10.CAPTION" msgid "SpeedButton10" msgstr "" #: tform1.speedbutton12.caption msgctxt "TFORM1.SPEEDBUTTON12.CAPTION" msgid "SpeedButton12" msgstr "" #: tform1.speedbutton13.caption msgctxt "TFORM1.SPEEDBUTTON13.CAPTION" msgid "SpeedButton13" msgstr "" #: tform1.speedbutton14.caption msgctxt "TFORM1.SPEEDBUTTON14.CAPTION" msgid "SpeedButton14" msgstr "" #: tform1.speedbutton15.caption msgctxt "TFORM1.SPEEDBUTTON15.CAPTION" msgid "SpeedButton15" msgstr "" #: tform1.speedbutton16.caption msgctxt "TFORM1.SPEEDBUTTON16.CAPTION" msgid "SpeedButton16" msgstr "" #: tform1.speedbutton17.caption msgctxt "TFORM1.SPEEDBUTTON17.CAPTION" msgid "SpeedButton17" msgstr "" #: tform1.speedbutton4.caption msgctxt "TFORM1.SPEEDBUTTON4.CAPTION" msgid "Formule brute ?" msgstr "" #: tform1.speedbutton5.caption msgctxt "TFORM1.SPEEDBUTTON5.CAPTION" msgid "SpeedButton5" msgstr "" #: tform1.speedbutton9.hint msgctxt "TFORM1.SPEEDBUTTON9.HINT" msgid "Modifier couleurs" msgstr "" #: tform1.speedbuttoncalculer.caption msgctxt "TFORM1.SPEEDBUTTONCALCULER.CAPTION" msgid "SpeedButtoncalculer" msgstr "" #: tform1.speedbuttonfermer.caption msgctxt "TFORM1.SPEEDBUTTONFERMER.CAPTION" msgid "SpeedButtonfermer" msgstr "" #: tform1.speedbuttontoutcocher.caption msgctxt "TFORM1.SPEEDBUTTONTOUTCOCHER.CAPTION" msgid "SpeedButtontoutcocher" msgstr "" #: tform1.speedbuttontoutdecocher.caption msgctxt "TFORM1.SPEEDBUTTONTOUTDECOCHER.CAPTION" msgid "SpeedButtontoutdecocher" msgstr "" #: tform1.speedbuttontoutsupprimer.caption msgctxt "TFORM1.SPEEDBUTTONTOUTSUPPRIMER.CAPTION" msgid "SpeedButtontoutsupprimer" msgstr "" #: tform1.speedbuttonunites.caption msgctxt "TFORM1.SPEEDBUTTONUNITES.CAPTION" msgid "SpeedButtonunites" msgstr "" #: tform1.speedbuttonviderbecher.caption msgctxt "TFORM1.SPEEDBUTTONVIDERBECHER.CAPTION" msgid "Vider" msgstr "" #: tform1.speedbuttonviderburette.caption msgctxt "TFORM1.SPEEDBUTTONVIDERBURETTE.CAPTION" msgid "Vider" msgstr "" #: tform1.speedbuttonx10.caption msgctxt "TFORM1.SPEEDBUTTONX10.CAPTION" msgid "x10" msgstr "" #: tform1.speedbuttonx10.hint msgctxt "TFORM1.SPEEDBUTTONX10.HINT" msgid "Multiplier les concentrations par 10" msgstr "" #: tform1.speedbuttonx10_.caption msgctxt "TFORM1.SPEEDBUTTONX10_.CAPTION" msgid "x10" msgstr "" #: tform1.speedbuttonx10_.hint msgctxt "TFORM1.SPEEDBUTTONX10_.HINT" msgid "Multiplier les concentrations par 10" msgstr "" #: tform1.speedbutton_10.caption msgctxt "TFORM1.SPEEDBUTTON_10.CAPTION" msgid "/10" msgstr "" #: tform1.speedbutton_10.hint msgctxt "TFORM1.SPEEDBUTTON_10.HINT" msgid "Diviser les concentrations par 10" msgstr "" #: tform1.speedbutton_10_.caption msgctxt "TFORM1.SPEEDBUTTON_10_.CAPTION" msgid "/10" msgstr "" #: tform1.speedbutton_10_.hint msgctxt "TFORM1.SPEEDBUTTON_10_.HINT" msgid "Diviser les concentrations par 10" msgstr "" #: tform1.speedbutton_deplace_legende.caption msgctxt "TFORM1.SPEEDBUTTON_DEPLACE_LEGENDE.CAPTION" msgid "Déplacer lég." msgstr "" #: tform1.speedbutton_dilution.caption msgctxt "TFORM1.SPEEDBUTTON_DILUTION.CAPTION" msgid "Dilution" msgstr "" #: tform1.speedbutton_dilution_.caption msgctxt "TFORM1.SPEEDBUTTON_DILUTION_.CAPTION" msgid "Dilution" msgstr "" #: tform1.tabsheet10.caption msgctxt "TFORM1.TABSHEET10.CAPTION" msgid "Cations simples" msgstr "" #: tform1.tabsheet10_.caption msgctxt "TFORM1.TABSHEET10_.CAPTION" msgid "Cations simples" msgstr "" #: tform1.tabsheet11.caption msgctxt "TFORM1.TABSHEET11.CAPTION" msgid "Anions simples" msgstr "" #: tform1.tabsheet11_.caption msgctxt "TFORM1.TABSHEET11_.CAPTION" msgid "Anions simples" msgstr "" #: tform1.tabsheet12.caption msgctxt "TFORM1.TABSHEET12.CAPTION" msgid "Acides et bases" msgstr "" #: tform1.tabsheet12_.caption msgctxt "TFORM1.TABSHEET12_.CAPTION" msgid "Acides et bases" msgstr "" #: tform1.tabsheet13.caption msgctxt "TFORM1.TABSHEET13.CAPTION" msgid "Complexes et divers" msgstr "" #: tform1.tabsheet13_.caption msgctxt "TFORM1.TABSHEET13_.CAPTION" msgid "Complexes et divers" msgstr "" #: tform1.tabsheet14.caption msgctxt "TFORM1.TABSHEET14.CAPTION" msgid "Ions" msgstr "" #: tform1.tabsheet14_.caption msgctxt "TFORM1.TABSHEET14_.CAPTION" msgid "Ions" msgstr "" #: tform1.tabsheet15.caption msgctxt "TFORM1.TABSHEET15.CAPTION" msgid "Atomes et molécules" msgstr "" #: tform1.tabsheet15_.caption msgctxt "TFORM1.TABSHEET15_.CAPTION" msgid "Atomes et molécules" msgstr "" #: tform1.tabsheet2.caption msgctxt "TFORM1.TABSHEET2.CAPTION" msgid "Acides et bases organiques" msgstr "" #: tform1.tabsheet2_.caption msgctxt "TFORM1.TABSHEET2_.CAPTION" msgid "Acides et bases organiques" msgstr "" #: tform1.tabsheet3.caption msgctxt "TFORM1.TABSHEET3.CAPTION" msgid "Complexes à ligands organiques, et divers" msgstr "" #: tform1.tabsheet3_.caption msgctxt "TFORM1.TABSHEET3_.CAPTION" msgid "Complexes à ligands organiques, et divers" msgstr "" #: tform1.tabsheet4.caption msgctxt "TFORM1.TABSHEET4.CAPTION" msgid "Benzéne et dérivés" msgstr "" #: tform1.tabsheet4_.caption msgctxt "TFORM1.TABSHEET4_.CAPTION" msgid "Benzéne et dérivés" msgstr "" #: tform1.tabsheet5.caption msgctxt "TFORM1.TABSHEET5.CAPTION" msgid "Amines et amides" msgstr "" #: tform1.tabsheet5_.caption msgctxt "TFORM1.TABSHEET5_.CAPTION" msgid "Amines et amides" msgstr "" #: tform1.tabsheet6.caption msgctxt "TFORM1.TABSHEET6.CAPTION" msgid "Alcools" msgstr "" #: tform1.tabsheet6_.caption msgctxt "TFORM1.TABSHEET6_.CAPTION" msgid "Alcools" msgstr "" #: tform1.tabsheet7.caption msgctxt "TFORM1.TABSHEET7.CAPTION" msgid "Alcanes, alcénes, alcynes" msgstr "" #: tform1.tabsheet7_.caption msgctxt "TFORM1.TABSHEET7_.CAPTION" msgid "Alcanes, alcénes, alcynes" msgstr "" #: tform1.tabsheet8.caption msgctxt "TFORM1.TABSHEET8.CAPTION" msgid "Amminoacides" msgstr "" #: tform1.tabsheet8_.caption msgctxt "TFORM1.TABSHEET8_.CAPTION" msgid "Amminoacides" msgstr "" #: tform1.tabsheet9.caption msgctxt "TFORM1.TABSHEET9.CAPTION" msgid "Aldéhydes et cétones" msgstr "" #: tform1.tabsheet9_.caption msgctxt "TFORM1.TABSHEET9_.CAPTION" msgid "Aldéhydes et cétones" msgstr "" #: tform1.tabsheetaqueux.caption msgctxt "TFORM1.TABSHEETAQUEUX.CAPTION" msgid "Inorganiques" msgstr "" #: tform1.tabsheetaqueux_.caption msgctxt "TFORM1.TABSHEETAQUEUX_.CAPTION" msgid "Inorganiques" msgstr "" #: tform1.tabsheetchoisir.caption msgctxt "TFORM1.TABSHEETCHOISIR.CAPTION" msgid "Choix des réactifs:bécher" msgstr "" #: tform1.tabsheetchoisir_.caption msgctxt "TFORM1.TABSHEETCHOISIR_.CAPTION" msgid "Choix des réactifs:burette" msgstr "" #: tform1.tabsheetchoixcourbes.caption msgctxt "TFORM1.TABSHEETCHOIXCOURBES.CAPTION" msgid "Choix des courbes" msgstr "" #: tform1.tabsheeteliminer.caption msgctxt "TFORM1.TABSHEETELIMINER.CAPTION" msgid "Espéces présentes" msgstr "" #: tform1.tabsheetorga.caption msgctxt "TFORM1.TABSHEETORGA.CAPTION" msgid "Organiques" msgstr "" #: tform1.tabsheetorga_.caption msgctxt "TFORM1.TABSHEETORGA_.CAPTION" msgid "Organiques" msgstr "" #: tform1.tabsheetresultats.caption msgctxt "TFORM1.TABSHEETRESULTATS.CAPTION" msgid "Résultats" msgstr "" #: tform1.tabsheetsolides.caption msgctxt "TFORM1.TABSHEETSOLIDES.CAPTION" msgid "Solides" msgstr "" #: tform1.tabsheetsolides_.caption msgctxt "TFORM1.TABSHEETSOLIDES_.CAPTION" msgid "Solides" msgstr "" #: tform1.tabsheettracecourbes.caption msgctxt "TFORM1.TABSHEETTRACECOURBES.CAPTION" msgid "Tracé des courbes" msgstr "" #: tform1.tabsheetverifier.caption msgctxt "TFORM1.TABSHEETVERIFIER.CAPTION" msgid "Réactions et constantes" msgstr "" #: tform1.temporisationfilm1.caption msgctxt "TFORM1.TEMPORISATIONFILM1.CAPTION" msgid "Temporisation film" msgstr "" #: tform1.toolbar1.caption msgid "ToolBar1" msgstr "" #: tform1.toolbar2.caption msgid "ToolBar2" msgstr "" #: tform1.toolbutton1.caption msgid "ToolButton1" msgstr "" #: tform1.toolbutton2.caption msgid "ToolButton2" msgstr "" #: tform1.toolbutton3.caption msgid "ToolButton3" msgstr "" #: tform1.toolbutton4.caption msgid "ToolButton4" msgstr "" #: tform1.toolbutton5.caption msgid "ToolButton5" msgstr "" #: tform1.toolbutton6.caption msgid "ToolButton6" msgstr "" #: tform1.uneouplusieursdessimulationsfaitesdepuisledernierlancementdedoz.caption msgctxt "TFORM1.UNEOUPLUSIEURSDESSIMULATIONSFAITESDEPUISLEDERNIERLANCEMENTDEDOZ.CAPTION" msgid "Une ou plusieurs des simulations faites depuis le dernier lancement de Dozzzaqueux" msgstr "" #: tform1.utiliserdebyeethckel1.caption msgctxt "TFORM1.UTILISERDEBYEETHCKEL1.CAPTION" msgid "Utiliser Debye et Hückel" msgstr "" #: tform1.versiondelabase1.caption msgctxt "TFORM1.VERSIONDELABASE1.CAPTION" msgid "Version de la base" msgstr "" #: tform26.bitbtn1.caption msgctxt "tform26.bitbtn1.caption" msgid "Chercher" msgstr "" #: tform26.bitbtn2.caption msgctxt "TFORM26.BITBTN2.CAPTION" msgid "Annuler" msgstr "" #: tform26.caption msgctxt "TFORM26.CAPTION" msgid "Recherche dans la base" msgstr "" #: tform26.label1.caption msgctxt "TFORM26.LABEL1.CAPTION" msgid "Entrez tout ou partie de l'indentifiant ou du synonyme" msgstr "" #: tform26.label2.caption msgctxt "tform26.label2.caption" msgid "Puis cliquez sur l'espéce choisie:" msgstr "" #: tform26.label3.caption msgctxt "TFORM26.LABEL3.CAPTION" msgid " Exemples: éthanoïque Acide pentanedioïque " msgstr "" #: tform26.sgreactifs.hint msgctxt "TFORM26.SGREACTIFS.HINT" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: tform26b.bitbtn1.caption msgctxt "TFORM26B.BITBTN1.CAPTION" msgid "Chercher" msgstr "" #: tform26b.bitbtn2.caption msgctxt "TFORM26B.BITBTN2.CAPTION" msgid "Annuler" msgstr "" #: tform26b.caption msgctxt "TFORM26B.CAPTION" msgid "Recherche dans la base" msgstr "" #: tform26b.label1.caption msgctxt "TFORM26B.LABEL1.CAPTION" msgid "Entrez tout ou partie de l'indentifiant ou du synonyme" msgstr "" #: tform26b.label2.caption msgctxt "TFORM26B.LABEL2.CAPTION" msgid "Puis cliquez sur l'espéce choisie:" msgstr "" #: tform26b.label3.caption msgctxt "TFORM26B.LABEL3.CAPTION" msgid " Exemples: éthanoïque Acide pentanedioïque " msgstr "" #: tform26b.sgreactifs.hint msgctxt "TFORM26B.SGREACTIFS.HINT" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: tform27.bitbtn1.caption msgctxt "TFORM27.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tform27.caption msgctxt "TFORM27.CAPTION" msgid "Liste des simulations superposables" msgstr "" #: tform27.speedbutton1.caption msgctxt "TFORM27.SPEEDBUTTON1.CAPTION" msgid "Tout cocher" msgstr "" #: tform27.speedbutton2.caption msgctxt "TFORM27.SPEEDBUTTON2.CAPTION" msgid "Tout décocher" msgstr "" #: tform4.bitbtn1.caption msgctxt "TFORM4.BITBTN1.CAPTION" msgid "OK" msgstr "" #: tform4.bitbtn2.caption msgctxt "TFORM4.BITBTN2.CAPTION" msgid "&Fermer" msgstr "" #: tform4.caption msgctxt "TFORM4.CAPTION" msgid "Recherche dans la base" msgstr "" #: tform4.label1.caption msgctxt "tform4.label1.caption" msgid "Entrez la formule brute. Puis cliquez sur \"OK\". Puis sélectionnez le réactif dans la liste ci-dessous." msgstr "" #: tform4.label2.caption msgctxt "TFORM4.LABEL2.CAPTION" msgid " mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)" msgstr "" #: tform4.label3.caption msgctxt "TFORM4.LABEL3.CAPTION" msgid " Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] " msgstr "" #: tform4.radiogroup1.caption msgctxt "TFORM4.RADIOGROUP1.CAPTION" msgid "Type de comparaison" msgstr "" #: tform4.sgreactifs.hint msgctxt "TFORM4.SGREACTIFS.HINT" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: tform4.speedbutton1moins.caption msgctxt "tform4.speedbutton1moins.caption" msgid "[-]" msgstr "" #: tform4.speedbutton1plus.caption msgctxt "tform4.speedbutton1plus.caption" msgid "[+]" msgstr "" #: tform4.speedbutton2.caption msgctxt "tform4.speedbutton2.caption" msgid "2" msgstr "" #: tform4.speedbutton2moins.caption msgctxt "tform4.speedbutton2moins.caption" msgid "[2-]" msgstr "" #: tform4.speedbutton2plus.caption msgctxt "tform4.speedbutton2plus.caption" msgid "[2+]" msgstr "" #: tform4.speedbutton3.caption msgctxt "tform4.speedbutton3.caption" msgid "3" msgstr "" #: tform4.speedbutton3moins.caption msgctxt "tform4.speedbutton3moins.caption" msgid "[3-]" msgstr "" #: tform4.speedbutton3plus.caption msgctxt "tform4.speedbutton3plus.caption" msgid "[3+]" msgstr "" #: tform4.speedbuttonc.caption msgctxt "tform4.speedbuttonc.caption" msgid "C" msgstr "" #: tform4.speedbuttonh.caption msgctxt "tform4.speedbuttonh.caption" msgid "H" msgstr "" #: tform4.speedbuttonn.caption msgctxt "tform4.speedbuttonn.caption" msgid "N" msgstr "" #: tform4.speedbuttono.caption msgctxt "tform4.speedbuttono.caption" msgid "O" msgstr "" #: tform4.speedbuttonp.caption msgctxt "tform4.speedbuttonp.caption" msgid "P" msgstr "" #: tform4.speedbuttons.caption msgctxt "tform4.speedbuttons.caption" msgid "S" msgstr "" #: tform4b.bitbtn1.caption msgctxt "TFORM4B.BITBTN1.CAPTION" msgid "OK" msgstr "" #: tform4b.bitbtn2.caption msgctxt "TFORM4B.BITBTN2.CAPTION" msgid "&Fermer" msgstr "" #: tform4b.caption msgctxt "TFORM4B.CAPTION" msgid "Recherche dans la base" msgstr "" #: tform4b.label1.caption msgctxt "TFORM4B.LABEL1.CAPTION" msgid "Entrez la formule brute. Puis cliquez sur \"OK\". Puis sélectionnez le réactif dans la liste ci-dessous." msgstr "" #: tform4b.label2.caption msgctxt "TFORM4B.LABEL2.CAPTION" msgid " mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)" msgstr "" #: tform4b.label3.caption msgctxt "TFORM4B.LABEL3.CAPTION" msgid " Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] " msgstr "" #: tform4b.radiogroup1.caption msgctxt "TFORM4B.RADIOGROUP1.CAPTION" msgid "Type de comparaison" msgstr "" #: tform4b.sgreactifs.hint msgctxt "TFORM4B.SGREACTIFS.HINT" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: tform4b.speedbutton1moins.caption msgctxt "TFORM4B.SPEEDBUTTON1MOINS.CAPTION" msgid "[-]" msgstr "" #: tform4b.speedbutton1plus.caption msgctxt "TFORM4B.SPEEDBUTTON1PLUS.CAPTION" msgid "[+]" msgstr "" #: tform4b.speedbutton2.caption msgctxt "TFORM4B.SPEEDBUTTON2.CAPTION" msgid "2" msgstr "" #: tform4b.speedbutton2moins.caption msgctxt "TFORM4B.SPEEDBUTTON2MOINS.CAPTION" msgid "[2-]" msgstr "" #: tform4b.speedbutton2plus.caption msgctxt "TFORM4B.SPEEDBUTTON2PLUS.CAPTION" msgid "[2+]" msgstr "" #: tform4b.speedbutton3.caption msgctxt "TFORM4B.SPEEDBUTTON3.CAPTION" msgid "3" msgstr "" #: tform4b.speedbutton3moins.caption msgctxt "TFORM4B.SPEEDBUTTON3MOINS.CAPTION" msgid "[3-]" msgstr "" #: tform4b.speedbutton3plus.caption msgctxt "TFORM4B.SPEEDBUTTON3PLUS.CAPTION" msgid "[3+]" msgstr "" #: tform4b.speedbuttonc.caption msgctxt "TFORM4B.SPEEDBUTTONC.CAPTION" msgid "C" msgstr "" #: tform4b.speedbuttonh.caption msgctxt "TFORM4B.SPEEDBUTTONH.CAPTION" msgid "H" msgstr "" #: tform4b.speedbuttonn.caption msgctxt "TFORM4B.SPEEDBUTTONN.CAPTION" msgid "N" msgstr "" #: tform4b.speedbuttono.caption msgctxt "TFORM4B.SPEEDBUTTONO.CAPTION" msgid "O" msgstr "" #: tform4b.speedbuttonp.caption msgctxt "TFORM4B.SPEEDBUTTONP.CAPTION" msgid "P" msgstr "" #: tform4b.speedbuttons.caption msgctxt "TFORM4B.SPEEDBUTTONS.CAPTION" msgid "S" msgstr "" #: tform5.bitbtn1.caption msgctxt "TFORM5.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tform5.caption msgctxt "TFORM5.CAPTION" msgid "Nombre de points de calcul" msgstr "" #: tform5.label1.caption msgctxt "TFORM5.LABEL1.CAPTION" msgid "Les valeurs des concentrations sont calculées pour des valeurs discrétes du volume." msgstr "" #: tform5.label2.caption msgctxt "TFORM5.LABEL2.CAPTION" msgid "La variation maximale du logarithme d'une concentration" msgstr "" #: tform5.label3.caption msgid "On appelle \"pas\" l'écart entre deux valeurs successives du volume." msgstr "" #: tform5.label4.caption msgctxt "TFORM5.LABEL4.CAPTION" msgid "Nombre de points: N=" msgstr "" #: tform5.label5.caption msgctxt "TFORM5.LABEL5.CAPTION" msgid "entre deux volumes successifs ne doit pas excéder:" msgstr "" #: tform5.label6.caption msgctxt "TFORM5.LABEL6.CAPTION" msgid "Mais le pas ne peut devenir inférieur à:" msgstr "" #: tform5.label7.caption msgctxt "TFORM5.LABEL7.CAPTION" msgid "mL" msgstr "" #: tform5.radiogroup1.caption msgctxt "TFORM5.RADIOGROUP1.CAPTION" msgid "Choix du pas" msgstr "" #: tformapropos.bitbtn1.caption msgctxt "TFORMAPROPOS.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tformapropos.caption msgctxt "TFORMAPROPOS.CAPTION" msgid "A propos de...Dozzzaqueux" msgstr "" #: tformavertissement.bitbtn1.caption msgctxt "TFORMAVERTISSEMENT.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tformavertissement.caption msgctxt "TFORMAVERTISSEMENT.CAPTION" msgid "!!! Attention !!!" msgstr "" #: tformavertissement.checkbox1.caption msgctxt "TFORMAVERTISSEMENT.CHECKBOX1.CAPTION" msgid "Ne plus afficher ce message au cours de cette session" msgstr "" #: tformoptionscsv.bitbtn1.caption msgctxt "TFORMOPTIONSCSV.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tformoptionscsv.caption msgctxt "TFORMOPTIONSCSV.CAPTION" msgid "Options pour l'export au format tableur texte" msgstr "" #: tformoptionscsv.radiogroupseparateurdecimal.caption msgctxt "TFORMOPTIONSCSV.RADIOGROUPSEPARATEURDECIMAL.CAPTION" msgid "Séparateur décimal" msgstr "" #: tformoptionscsv.radiogroupseparateur_csv.caption msgctxt "TFORMOPTIONSCSV.RADIOGROUPSEPARATEUR_CSV.CAPTION" msgid "Séparateur de colonnes:" msgstr "" #: tform_dilution.caption msgid "Form_dilution" msgstr "" #: tform_dilution.label1.caption msgid "Vous pouvez au choix:" msgstr "" #: tform_dilution.label2.caption msgctxt "tform_dilution.label2.caption" msgid "Label2" msgstr "" #: tmodifnombremole.bitbtn1.caption msgctxt "TMODIFNOMBREMOLE.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tmodifnombremole.caption msgctxt "TMODIFNOMBREMOLE.CAPTION" msgid "Modification concentration" msgstr "" #: tmodifnombremole.label1.caption msgctxt "TMODIFNOMBREMOLE.LABEL1.CAPTION" msgid "Concentration molaire:" msgstr "" #: tmodifnombremole.label2.caption msgctxt "TMODIFNOMBREMOLE.LABEL2.CAPTION" msgid "mol/L" msgstr "" #: toptions_indicateur.bitbtn1.caption msgctxt "TOPTIONS_INDICATEUR.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: toptions_indicateur.caption msgctxt "TOPTIONS_INDICATEUR.CAPTION" msgid "Options pour l'indicateur coloré" msgstr "" #: toptions_indicateur.radiogroup1.caption msgctxt "TOPTIONS_INDICATEUR.RADIOGROUP1.CAPTION" msgid "Dégradé de couleurs de l'indicateur" msgstr "" #: tsaisiechiffressignificatifs.bitbtn1.caption msgctxt "TSAISIECHIFFRESSIGNIFICATIFS.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisiechiffressignificatifs.caption msgctxt "TSAISIECHIFFRESSIGNIFICATIFS.CAPTION" msgid "Chiffres significatifs" msgstr "" #: tsaisiechiffressignificatifs.label1.caption msgctxt "TSAISIECHIFFRESSIGNIFICATIFS.LABEL1.CAPTION" msgid "Nombre de chiffres affichés et gardés pour les logarithmes de constantes de réaction:" msgstr "" #: tsaisiechiffressignificatifs.label2.caption msgctxt "TSAISIECHIFFRESSIGNIFICATIFS.LABEL2.CAPTION" msgid "Nombre de chiffres affichés pour les résultats:" msgstr "" #: tsaisiecouleurs.bitbtn1.caption msgctxt "TSAISIECOULEURS.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisiecouleurs.caption msgctxt "TSAISIECOULEURS.CAPTION" msgid "Couleurs" msgstr "" #: tsaisiecouleurs.label1.caption msgctxt "TSAISIECOULEURS.LABEL1.CAPTION" msgid "Couleur grille échelle gauche:" msgstr "" #: tsaisiecouleurs.label2.caption msgctxt "TSAISIECOULEURS.LABEL2.CAPTION" msgid "Couleur grille échelle droite:" msgstr "" #: tsaisiecouleurs.label3.caption msgctxt "TSAISIECOULEURS.LABEL3.CAPTION" msgid "Couleur graduations:" msgstr "" #: tsaisiecouleurs.label4.caption msgctxt "TSAISIECOULEURS.LABEL4.CAPTION" msgid "Couleur du fond:" msgstr "" #: tsaisiecouleurs.label5.caption msgctxt "TSAISIECOULEURS.LABEL5.CAPTION" msgid "Couleur des axes:" msgstr "" #: tsaisieepaisseur.bitbtn1.caption msgctxt "TSAISIEEPAISSEUR.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisieepaisseur.caption msgctxt "TSAISIEEPAISSEUR.CAPTION" msgid "Epaisseur trait" msgstr "" #: tsaisieepaisseur.label1.caption msgctxt "TSAISIEEPAISSEUR.LABEL1.CAPTION" msgid "Epaisseur du trait devant joindre les points:" msgstr "" #: tsaisieexpression.bitbtn1.caption msgctxt "TSAISIEEXPRESSION.BITBTN1.CAPTION" msgid "Valider" msgstr "" #: tsaisieexpression.bitbtn2.caption msgctxt "TSAISIEEXPRESSION.BITBTN2.CAPTION" msgid "Annuler" msgstr "" #: tsaisieexpression.caption msgctxt "TSAISIEEXPRESSION.CAPTION" msgid "Saisie de l'expression" msgstr "" #: tsaisieexpression.label1.caption msgctxt "TSAISIEEXPRESSION.LABEL1.CAPTION" msgid "Saisissez l'expression de la grandeur . Les noms des variables (V,..., c1, c2,...,n1, n2...) et les noms de fonction ont les" msgstr "" #: tsaisieexpression.label2.caption msgctxt "TSAISIEEXPRESSION.LABEL2.CAPTION" msgid "significations indiquées ci-dessous:" msgstr "" #: tsaisieexpression.label3.caption msgctxt "TSAISIEEXPRESSION.LABEL3.CAPTION" msgid "Variables utilisables:" msgstr "" #: tsaisieexpression.label4.caption msgctxt "TSAISIEEXPRESSION.LABEL4.CAPTION" msgid "Opérateurs et fonctions utilisables:" msgstr "" #: tsaisiefaisceau.bitbtn1.caption msgctxt "TSAISIEFAISCEAU.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisiefaisceau.bitbtn2.caption msgctxt "TSAISIEFAISCEAU.BITBTN2.CAPTION" msgid "Annuler" msgstr "" #: tsaisiefaisceau.caption msgctxt "TSAISIEFAISCEAU.CAPTION" msgid "Faisceau de courbes" msgstr "" #: tsaisiefaisceau.label1.caption msgctxt "TSAISIEFAISCEAU.LABEL1.CAPTION" msgid "Grandeur à faire varier" msgstr "" #: tsaisiefaisceau.label2.caption msgctxt "TSAISIEFAISCEAU.LABEL2.CAPTION" msgid " pour obtenir le faisceau:" msgstr "" #: tsaisiefaisceau.label4.caption msgctxt "TSAISIEFAISCEAU.LABEL4.CAPTION" msgid "1ère valeur:" msgstr "" #: tsaisiefaisceau.label5.caption msgctxt "TSAISIEFAISCEAU.LABEL5.CAPTION" msgid "Incrément:" msgstr "" #: tsaisiefaisceau.label6.caption msgctxt "TSAISIEFAISCEAU.LABEL6.CAPTION" msgid "1ère valeur:" msgstr "" #: tsaisiefaisceau.label7.caption msgctxt "TSAISIEFAISCEAU.LABEL7.CAPTION" msgid "Pas:" msgstr "" #: tsaisiefaisceau.label8.caption msgctxt "TSAISIEFAISCEAU.LABEL8.CAPTION" msgid "Les couleurs en dégradé des courbes tendront vers:" msgstr "" #: tsaisiefaisceau.radiogrouptypefaisceau.caption msgctxt "TSAISIEFAISCEAU.RADIOGROUPTYPEFAISCEAU.CAPTION" msgid "Type de suite de valeurs" msgstr "" #: tsaisiefichiertableur.bitbtn1.caption msgctxt "TSAISIEFICHIERTABLEUR.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisiefichiertableur.caption msgctxt "TSAISIEFICHIERTABLEUR.CAPTION" msgid "Chargement fichier expérience" msgstr "" #: tsaisiefichiertableur.checkboxrecalculechelles.caption msgctxt "TSAISIEFICHIERTABLEUR.CHECKBOXRECALCULECHELLES.CAPTION" msgid "Recalculer automatiquement les échelles verticales" msgstr "" #: tsaisiefichiertableur.label1.caption msgctxt "TSAISIEFICHIERTABLEUR.LABEL1.CAPTION" msgid "Voici les 4 premières lignes du fichier:" msgstr "" #: tsaisiefichiertableur.label2.caption msgctxt "TSAISIEFICHIERTABLEUR.LABEL2.CAPTION" msgid "Veuillez compléter les informations suivantes:" msgstr "" #: tsaisiefichiertableur.label3.caption msgctxt "TSAISIEFICHIERTABLEUR.LABEL3.CAPTION" msgid "Ligne à laquelle commencent les données:" msgstr "" #: tsaisiefichiertableur.label4.caption msgctxt "TSAISIEFICHIERTABLEUR.LABEL4.CAPTION" msgid "Nombre de données par ligne:" msgstr "" #: tsaisiefichiertableur.label5.caption msgctxt "TSAISIEFICHIERTABLEUR.LABEL5.CAPTION" msgid "Colonne dont la grandeur sera considérée comme abscisse:" msgstr "" #: tsaisiefichiertableur.radiogroupseparateur.caption msgctxt "TSAISIEFICHIERTABLEUR.RADIOGROUPSEPARATEUR.CAPTION" msgid "Valeurs numériques séparées par:" msgstr "" #: tsaisienombremole.bitbtn1.caption msgctxt "TSAISIENOMBREMOLE.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisienombremole.bitbtn2.caption msgctxt "TSAISIENOMBREMOLE.BITBTN2.CAPTION" msgid "Annuler" msgstr "" #: tsaisienombremole.caption msgctxt "TSAISIENOMBREMOLE.CAPTION" msgid "Nombre de moles ?" msgstr "" #: tsaisienombremole.label1.caption msgctxt "tsaisienombremole.label1.caption" msgid "Label1" msgstr "" #: tsaisienombremole.label_unite.caption msgid "toto" msgstr "" #: tsaisienombremole.radiogroup1.caption msgctxt "TSAISIENOMBREMOLE.RADIOGROUP1.CAPTION" msgid "au choix:" msgstr "" #: tsaisieregressi.bitbtn1.caption msgctxt "TSAISIEREGRESSI.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisieregressi.caption msgctxt "TSAISIEREGRESSI.CAPTION" msgid "Chargement fichier expérience" msgstr "" #: tsaisieregressi.checkboxrecalculechelles.caption msgctxt "TSAISIEREGRESSI.CHECKBOXRECALCULECHELLES.CAPTION" msgid "Recalculer automatiquement les échelles verticales" msgstr "" #: tsaisieregressi.label1.caption msgctxt "TSAISIEREGRESSI.LABEL1.CAPTION" msgid "Grandeurs présentes dans le fichier:" msgstr "" #: tsaisieregressi.label2.caption msgctxt "TSAISIEREGRESSI.LABEL2.CAPTION" msgid "Indice de la ligne de la grandeur qui sera l'abscisse:" msgstr "" #: tsaisietailleimage.bitbtn1.caption msgctxt "TSAISIETAILLEIMAGE.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisietailleimage.caption msgid "Taille de l'image" msgstr "" #: tsaisietailleimage.label1.caption msgid "Largeur:" msgstr "" #: tsaisietailleimage.label2.caption msgid "Hauteur:" msgstr "" #: tsaisietailleimage.label3.caption msgctxt "tsaisietailleimage.label3.caption" msgid "pixels" msgstr "" #: tsaisietailleimage.label4.caption msgctxt "TSAISIETAILLEIMAGE.LABEL4.CAPTION" msgid "pixels" msgstr "" #: tsaisietaillepoints.bitbtn1.caption msgctxt "TSAISIETAILLEPOINTS.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisietaillepoints.caption msgctxt "TSAISIETAILLEPOINTS.CAPTION" msgid "Taille des points" msgstr "" #: tsaisietaillepoints.label1.caption msgctxt "TSAISIETAILLEPOINTS.LABEL1.CAPTION" msgid "Taille des points:" msgstr "" #: tsaisietemporisation.bitbtn1.caption msgctxt "TSAISIETEMPORISATION.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisietemporisation.caption msgctxt "TSAISIETEMPORISATION.CAPTION" msgid "Temporisation" msgstr "" #: tsaisietemporisation.label1.caption msgid "Lors de l'exécution d'un \"film\" de simulation, l'affichage de chaque écran doit durer:" msgstr "" #: tsaisietemporisation.label2.caption msgctxt "TSAISIETEMPORISATION.LABEL2.CAPTION" msgid "ms" msgstr "" #: tsaisietitre.bitbtn1.caption msgctxt "TSAISIETITRE.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisietitre.caption msgctxt "TSAISIETITRE.CAPTION" msgid "Titre du graphe" msgstr "" #: tsaisietitre.label1.caption msgctxt "TSAISIETITRE.LABEL1.CAPTION" msgid "Titre du graphe:" msgstr "" #: tsaisietitre.speedbutton1.caption msgctxt "TSAISIETITRE.SPEEDBUTTON1.CAPTION" msgid "Police" msgstr "" #: tsaisietypedonnee.bitbtn1.caption msgctxt "TSAISIETYPEDONNEE.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisietypedonnee.caption msgctxt "TSAISIETYPEDONNEE.CAPTION" msgid "Type de donnée" msgstr "" #: tsaisietypedonnee.checkboxrepresente.caption msgctxt "TSAISIETYPEDONNEE.CHECKBOXREPRESENTE.CAPTION" msgid "Ne pas représenter cette grandeur" msgstr "" #: tsaisietypedonnee.label15.caption msgctxt "TSAISIETYPEDONNEE.LABEL15.CAPTION" msgid "Taille des points:" msgstr "" #: tsaisietypedonnee.label2.caption msgctxt "TSAISIETYPEDONNEE.LABEL2.CAPTION" msgid "Epaisseur trait:" msgstr "" #: tsaisietypedonnee.label3.caption msgctxt "TSAISIETYPEDONNEE.LABEL3.CAPTION" msgid "Couleur:" msgstr "" #: tsaisietypedonnee.label4.caption msgctxt "TSAISIETYPEDONNEE.LABEL4.CAPTION" msgid "Nom:" msgstr "" #: tsaisietypedonnee.radiogroupechelle_e.caption msgctxt "TSAISIETYPEDONNEE.RADIOGROUPECHELLE_E.CAPTION" msgid "Echelle:" msgstr "" #: tsaisietypedonnee.radiogroupjoindre_e.caption msgctxt "TSAISIETYPEDONNEE.RADIOGROUPJOINDRE_E.CAPTION" msgid "Joindre les points" msgstr "" #: tsaisietypedonnee.radiogrouptype_e.caption msgctxt "TSAISIETYPEDONNEE.RADIOGROUPTYPE_E.CAPTION" msgid "Représentée par:" msgstr "" #: tsaisieunites.bitbtn1.caption msgctxt "TSAISIEUNITES.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisieunites.caption msgctxt "TSAISIEUNITES.CAPTION" msgid "Unités et labels des axes:" msgstr "" #: tsaisieunites.label1.caption msgctxt "TSAISIEUNITES.LABEL1.CAPTION" msgid "Unité à afficher sur l'axe des abscisses:" msgstr "" #: tsaisieunites.label2.caption msgctxt "TSAISIEUNITES.LABEL2.CAPTION" msgid "Label à afficher sur l'axe des abscisses:" msgstr "" #: tsaisieunites.label3.caption msgctxt "TSAISIEUNITES.LABEL3.CAPTION" msgid "Unité à afficher sur l'axe gauche des ordonnées:" msgstr "" #: tsaisieunites.label4.caption msgctxt "TSAISIEUNITES.LABEL4.CAPTION" msgid "Label à afficher sur l'axe gauche des ordonnées:" msgstr "" #: tsaisieunites.label5.caption msgctxt "TSAISIEUNITES.LABEL5.CAPTION" msgid "Unité à afficher sur l'axe droit des ordonnées:" msgstr "" #: tsaisieunites.label6.caption msgctxt "TSAISIEUNITES.LABEL6.CAPTION" msgid "Label à afficher sur l'axe droit des ordonnées:" msgstr "" #: tsaisie_conductivite.bitbtn1.caption msgctxt "TSAISIE_CONDUCTIVITE.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisie_conductivite.caption msgctxt "TSAISIE_CONDUCTIVITE.CAPTION" msgid "Saisie conductivité" msgstr "" #: tsaisie_conductivite.edit1.text msgid "40" msgstr "" #: tsaisie_conductivite.label1.caption msgctxt "TSAISIE_CONDUCTIVITE.LABEL1.CAPTION" msgid "La conductivité de l'espèce" msgstr "" #: tsaisie_conductivite.label2.caption msgctxt "TSAISIE_CONDUCTIVITE.LABEL2.CAPTION" msgid "Label2" msgstr "" #: tsaisie_conductivite.label3.caption msgctxt "TSAISIE_CONDUCTIVITE.LABEL3.CAPTION" msgid "ne figure pas dans ma base de données. Vous pouvez saisir la valeur ci-dessous:" msgstr "" #: tsaisie_conductivite.label4.caption msgctxt "TSAISIE_CONDUCTIVITE.LABEL4.CAPTION" msgid "0,1 mS.m²/mol" msgstr "" #: tsaisie_conductivite.label5.caption msgctxt "TSAISIE_CONDUCTIVITE.LABEL5.CAPTION" msgid "Remarque: cette modification ne perdurera que durant cette session de Dozzzaqueux.." msgstr "" #: tsaisie_conductivite.label6.caption msgctxt "TSAISIE_CONDUCTIVITE.LABEL6.CAPTION" msgid "Si vous voulez la rendre définitive, modifiez cette espèce dans la base avec Modifbase." msgstr "" #: tsaisie_derivees.bitbtn1.caption msgctxt "TSAISIE_DERIVEES.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisie_derivees.caption msgctxt "TSAISIE_DERIVEES.CAPTION" msgid "Calcul des dérivées" msgstr "" #: tsaisie_derivees.checkboxderivees.caption msgctxt "TSAISIE_DERIVEES.CHECKBOXDERIVEES.CAPTION" msgid "Activer le calcul des dérivées par rapport au volume" msgstr "" #: tsaisie_derivees.label1.caption msgctxt "TSAISIE_DERIVEES.LABEL1.CAPTION" msgid "Le calcul de la dérivée numérique en V0 se fait par: (f(V0+h)-f(V0-h))/(2h)" msgstr "" #: tsaisie_derivees.label2.caption msgctxt "TSAISIE_DERIVEES.LABEL2.CAPTION" msgid "Choix de h: volume burette/" msgstr "" #: tsaisie_electroneutralite.bitbtn1.caption msgctxt "TSAISIE_ELECTRONEUTRALITE.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsaisie_electroneutralite.caption msgctxt "TSAISIE_ELECTRONEUTRALITE.CAPTION" msgid "Electroneutralité" msgstr "" #: tsaisie_electroneutralite.label1.caption msgctxt "TSAISIE_ELECTRONEUTRALITE.LABEL1.CAPTION" msgid "La charge électrique totale est non nulle. Vous pouvez:" msgstr "" #: tsaisie_electroneutralite.radiogroup1.caption msgctxt "TSAISIE_ELECTRONEUTRALITE.RADIOGROUP1.CAPTION" msgid "au choix:" msgstr "" #: tsasiestyleordonnees.bitbtn1.caption msgctxt "TSASIESTYLEORDONNEES.BITBTN1.CAPTION" msgid "&OK" msgstr "" #: tsasiestyleordonnees.caption msgctxt "TSASIESTYLEORDONNEES.CAPTION" msgid "Style des points" msgstr "" #: tsasiestyleordonnees.radiogroupstyle.caption msgctxt "TSASIESTYLEORDONNEES.RADIOGROUPSTYLE.CAPTION" msgid "Style" msgstr "" #: tscript.caption msgctxt "TSCRIPT.CAPTION" msgid "script" msgstr "" #: tscript.label1.caption msgctxt "TSCRIPT.LABEL1.CAPTION" msgid "Label1" msgstr "" #: tscript.label2.caption msgctxt "TSCRIPT.LABEL2.CAPTION" msgid "Ne touchez à rien, l'onglet suivant va bientôt être affiché." msgstr "" #: tscript.label3.caption msgctxt "TSCRIPT.LABEL3.CAPTION" msgid "Après l'affichage des courbes, vous pourrez revisiter tous les onglets." msgstr "" #: tsplashscreen.caption msgctxt "TSPLASHSCREEN.CAPTION" msgid "splashscreen" msgstr "" #: tsplashscreen.label1.caption msgctxt "TSPLASHSCREEN.LABEL1.CAPTION" msgid "Dozzzaqueux" msgstr "" #: tsplashscreen.label2.caption msgctxt "TSPLASHSCREEN.LABEL2.CAPTION" msgid "Logiciel libre et gratuit de simulation de courbes de dosage" msgstr "" #: tsplashscreen.label3.caption msgid "Version 3.04 du 10/08/2009, codée en Lazarus" msgstr "" #: tsplashscreen.label4.caption msgid "Par Jean-Marie Biansan, 2005 à 2009" msgstr "" #: uchaines.rs msgid "***************************************" msgstr "" #: uchaines.rs0001duvolume msgid "+- 0,001% du volume maximum versable" msgstr "" #: uchaines.rs001duvolumem msgctxt "uchaines.rs001duvolumem" msgid "+- 0,01% du volume maximum versable" msgstr "" #: uchaines.rs01duvolumema msgctxt "uchaines.rs01duvolumema" msgid "+- 0,1% du volume maximum versable" msgstr "" #: uchaines.rs01msmmol msgctxt "uchaines.rs01msmmol" msgid "0,1 mS.m²/mol" msgstr "" #: uchaines.rs10 msgctxt "uchaines.rs10" msgid "/10" msgstr "" #: uchaines.rs1duvolumemax msgctxt "uchaines.rs1duvolumemax" msgid "+-1% du volume maximum versable" msgstr "" #: uchaines.rs1revaleur msgctxt "uchaines.rs1revaleur" msgid "1ère valeur:" msgstr "" #: uchaines.rs2 msgid "************************************" msgstr "" #: uchaines.rs3 msgid "*****************************************************" msgstr "" #: uchaines.rs4 msgid "********************" msgstr "" #: uchaines.rs5 msgid " " msgstr "" #: uchaines.rsaactivitde msgid "a%s: activité de %s" msgstr "" #: uchaines.rsabscisseordo msgid "%s Abscisse: %s Ordonnées: " msgstr "" #: uchaines.rsabsent msgid "ABSENT" msgstr "" #: uchaines.rsabsvaleurabs msgid "abs() : valeur absolue" msgstr "" #: uchaines.rsacidesetbase msgctxt "uchaines.rsacidesetbase" msgid "Acides et bases" msgstr "" #: uchaines.rsacidesetbase2 msgctxt "uchaines.rsacidesetbase2" msgid "Acides et bases organiques" msgstr "" #: uchaines.rsactiverdsact msgctxt "uchaines.rsactiverdsact" msgid "Activer/désactiver l'affichage du fichier expérimental" msgstr "" #: uchaines.rsactiverdsact2 msgctxt "uchaines.rsactiverdsact2" msgid "Activer/désactiver la superposition" msgstr "" #: uchaines.rsactiverlecal msgctxt "uchaines.rsactiverlecal" msgid "Activer le calcul des dérivées par rapport au volume" msgstr "" #: uchaines.rsactivit msgid "Activité" msgstr "" #: uchaines.rsactivit2 msgid "%sActivité" msgstr "" #: uchaines.rsactivitsdese msgid "Activités des espéces en solution:" msgstr "" #: uchaines.rsaffichagedes msgid "Affichage des résultats bruts..." msgstr "" #: uchaines.rsaffichebase msgctxt "uchaines.rsaffichebase" msgid "affiche base" msgstr "" #: uchaines.rsaide msgctxt "uchaines.rsaide" msgid "Aide" msgstr "" #: uchaines.rsaidedozzzaqu msgctxt "uchaines.rsaidedozzzaqu" msgid "Aide Dozzzaqueux" msgstr "" #: uchaines.rsainsisilevol msgid "Ainsi, si le volume initial du bêcher (ou volume maximal à verser pour la burette) est de 100mL et que vous mettez 0.01 mol," msgstr "" #: uchaines.rsajouterlevol msgid "Ajouter le volume d'eau suivant:" msgstr "" #: uchaines.rsajoutermodif msgctxt "uchaines.rsajoutermodif" msgid "Ajouter/modifier titre" msgstr "" #: uchaines.rsajoutermodif2 msgctxt "uchaines.rsajoutermodif2" msgid "Ajouter/modifier unité et labels des axes" msgstr "" #: uchaines.rsajouterouenl msgid "ajouter ou enlever des espèces " msgstr "" #: uchaines.rsajouterunegr msgctxt "uchaines.rsajouterunegr" msgid "Ajouter une grandeur en ordonnée" msgstr "" #: uchaines.rsalcanesalcne msgctxt "uchaines.rsalcanesalcne" msgid "Alcanes, alcénes, alcynes" msgstr "" #: uchaines.rsalcools msgctxt "uchaines.rsalcools" msgid "Alcools" msgstr "" #: uchaines.rsaldhydesetct msgctxt "uchaines.rsaldhydesetct" msgid "Aldéhydes et cétones" msgstr "" #: uchaines.rsaminesetamid msgctxt "uchaines.rsaminesetamid" msgid "Amines et amides" msgstr "" #: uchaines.rsamminoacides msgctxt "uchaines.rsamminoacides" msgid "Amminoacides" msgstr "" #: uchaines.rsanionssimple msgctxt "uchaines.rsanionssimple" msgid "Anions simples" msgstr "" #: uchaines.rsannuler msgctxt "uchaines.rsannuler" msgid "Annuler" msgstr "" #: uchaines.rsapropos msgctxt "uchaines.rsapropos" msgid "A propos..." msgstr "" #: uchaines.rsaproposdedoz msgctxt "uchaines.rsaproposdedoz" msgid "A propos de...Dozzzaqueux" msgstr "" #: uchaines.rsaprslafficha msgctxt "uchaines.rsaprslafficha" msgid "Après l'affichage des courbes, vous pourrez revisiter tous les onglets." msgstr "" #: uchaines.rsarctanarctan msgid "arctan() : arctangente" msgstr "" #: uchaines.rsarithmtique msgid "Arithmétique" msgstr "" #: uchaines.rsarrterlescal msgid "Arrêter les calculs ?" msgstr "" #: uchaines.rsatomesetmolc msgctxt "uchaines.rsatomesetmolc" msgid "Atomes et molécules" msgstr "" #: uchaines.rsattention msgid "Attention" msgstr "" #: uchaines.rsattention2 msgid "Attention !" msgstr "" #: uchaines.rsattention3 msgctxt "uchaines.rsattention3" msgid "!!! Attention !!!" msgstr "" #: uchaines.rsattentionaut msgid "Attention: autoriser les réactions rédox peut conduire à l'apparition d'un grand" msgstr "" #: uchaines.rsattentionlev msgid "Attention: le volume de référence est ici celui du bêcher (ou de la burette si vous êtes en train de remplir la burette)" msgstr "" #: uchaines.rsauchoix msgctxt "uchaines.rsauchoix" msgid "au choix:" msgstr "" #: uchaines.rsaucuneespcea msgctxt "uchaines.rsaucuneespcea" msgid "Aucune espéce ayant cette formule n'a été trouvée dans la base." msgstr "" #: uchaines.rsaucuneespcea2 msgctxt "uchaines.rsaucuneespcea2" msgid "Aucune espéce ayant cette formule n'a été trouvée dans la base." msgstr "" #: uchaines.rsaucuneespcea3 msgctxt "uchaines.rsaucuneespcea3" msgid "Aucune espéce ayant cette formule n'a été trouvée dans la base." msgstr "" #: uchaines.rsaucuneespcea4 msgctxt "uchaines.rsaucuneespcea4" msgid "Aucune espéce ayant cette formule n'a été trouvée dans la base." msgstr "" #: uchaines.rsautomatique msgid "Automatique" msgstr "" #: uchaines.rsautoriserrac msgctxt "uchaines.rsautoriserrac" msgid "Autoriser réactions redox" msgstr "" #: uchaines.rsaxes msgctxt "uchaines.rsaxes" msgid "Axes" msgstr "" #: uchaines.rsbas msgid "Bas" msgstr "" #: uchaines.rsbasederactif msgctxt "uchaines.rsbasederactif" msgid "Base de réactifs (clic en tête de colonne pour modifier l'ordre de tri):" msgstr "" #: uchaines.rsbcher msgctxt "uchaines.rsbcher" msgid "Bécher" msgstr "" #: uchaines.rsbchernombred msgid "[Bécher] %s (nombre de moles pour 1L)" msgstr "" #: uchaines.rsbenzneetdriv msgctxt "uchaines.rsbenzneetdriv" msgid "Benzéne et dérivés" msgstr "" #: uchaines.rsburette msgctxt "uchaines.rsburette" msgid "Burette" msgstr "" #: uchaines.rsburettenombr msgid "[Burette] %s (nombre de moles pour 1L)" msgstr "" #: uchaines.rscalculdesdri msgctxt "uchaines.rscalculdesdri" msgid "Calcul des dérivées" msgstr "" #: uchaines.rscalculer msgctxt "uchaines.rscalculer" msgid "Calculer" msgstr "" #: uchaines.rscalculerlesv msgid "Calculer les valeurs pour un point particulier" msgstr "" #: uchaines.rscationssimpl msgctxt "uchaines.rscationssimpl" msgid "Cations simples" msgstr "" #: uchaines.rscconcentrati msgid "c%s: concentration en %s (en mol/L)" msgstr "" #: uchaines.rscecipeutdonn msgid "Ceci peut donner des calculs très longs." msgstr "" #: uchaines.rscelaconduira msgid "Cela conduirait à une concentration ou un volume négatif..." msgstr "" #: uchaines.rscenomdefichi msgid "Ce nom de fichier existe déjà" msgstr "" #: uchaines.rscentr msgid "Centré" msgstr "" #: uchaines.rscercle msgid "Cercle" msgstr "" #: uchaines.rscettequantit msgid "Cette quantité doit être strictement positive !" msgstr "" #: uchaines.rschangercette msgctxt "uchaines.rschangercette" msgid "Changer cette valeur ne modifie pas les concentrations ! Utilisez le bouton \"dilution\" si vous voulez les modifier par dilution" msgstr "" #: uchaines.rschargementfi msgctxt "uchaines.rschargementfi" msgid "Chargement fichier expérience" msgstr "" #: uchaines.rschiffressign msgctxt "uchaines.rschiffressign" msgid "Chiffres significatifs" msgstr "" #: uchaines.rschoisirlesco msgctxt "uchaines.rschoisirlesco" msgid "Choisir les courbes à tracer >>>>>>>" msgstr "" #: uchaines.rschoixdehvolu msgctxt "uchaines.rschoixdehvolu" msgid "Choix de h: volume burette/" msgstr "" #: uchaines.rschoixdescour msgctxt "uchaines.rschoixdescour" msgid "Choix des courbes" msgstr "" #: uchaines.rschoixdesgran msgid "Choix des grandeurs à tracer..." msgstr "" #: uchaines.rschoixdesract msgid "Choix des réactifs du bécher..." msgstr "" #: uchaines.rschoixdesract2 msgid "Choix des réactifs de la burette..." msgstr "" #: uchaines.rschoixdesract3 msgctxt "uchaines.rschoixdesract3" msgid "Choix des réactifs:bécher" msgstr "" #: uchaines.rschoixdesract4 msgctxt "uchaines.rschoixdesract4" msgid "Choix des réactifs:burette" msgstr "" #: uchaines.rschoixdupas msgctxt "uchaines.rschoixdupas" msgid "Choix du pas" msgstr "" #: uchaines.rscolonnedontl msgctxt "uchaines.rscolonnedontl" msgid "Colonne dont la grandeur sera considérée comme abscisse:" msgstr "" #: uchaines.rscomplexesetd msgctxt "uchaines.rscomplexesetd" msgid "Complexes et divers" msgstr "" #: uchaines.rscomplexeslig msgctxt "uchaines.rscomplexeslig" msgid "Complexes à ligands organiques, et divers" msgstr "" #: uchaines.rsconcentratio msgid "Concentrations des espéces en solution:" msgstr "" #: uchaines.rsconcentratio2 msgid "Concentration (mol/L)" msgstr "" #: uchaines.rsconcentratio3 msgctxt "uchaines.rsconcentratio3" msgid "Concentration molaire:" msgstr "" #: uchaines.rsconcentratio4 msgid "Concentration négative impossible..." msgstr "" #: uchaines.rsconcmoll msgid "Conc.(mol/L)" msgstr "" #: uchaines.rsconcmoll2 msgid "%sConc.(mol/L)" msgstr "" #: uchaines.rsconductivit0 msgid "Conductivité (0,1 mS.m²/mol)" msgstr "" #: uchaines.rsconfiguratio msgctxt "uchaines.rsconfiguratio" msgid "Configuration de la page pour l'impression" msgstr "" #: uchaines.rsconsultezlef msgid "Consultez le fichier dozzzaqueux.html dans le répertoire Aide" msgstr "" #: uchaines.rscopier msgctxt "uchaines.rscopier" msgid "Copier" msgstr "" #: uchaines.rscopierdansle msgctxt "uchaines.rscopierdansle" msgid "Copier dans le presse papier" msgstr "" #: uchaines.rscoscosinus msgid "cos() : cosinus" msgstr "" #: uchaines.rscoshcosinush msgid "cosh() : cosinus hyperbolique" msgstr "" #: uchaines.rscotancotange msgid "cotan() : cotangente" msgstr "" #: uchaines.rscouleur msgid "Couleur" msgstr "" #: uchaines.rscouleur2 msgctxt "uchaines.rscouleur2" msgid "Couleur:" msgstr "" #: uchaines.rscouleurdesax msgctxt "uchaines.rscouleurdesax" msgid "Couleur des axes:" msgstr "" #: uchaines.rscouleurdufon msgctxt "uchaines.rscouleurdufon" msgid "Couleur du fond:" msgstr "" #: uchaines.rscouleurgradu msgctxt "uchaines.rscouleurgradu" msgid "Couleur graduations:" msgstr "" #: uchaines.rscouleurgrill msgctxt "uchaines.rscouleurgrill" msgid "Couleur grille échelle gauche:" msgstr "" #: uchaines.rscouleurgrill2 msgctxt "uchaines.rscouleurgrill2" msgid "Couleur grille échelle droite:" msgstr "" #: uchaines.rscouleurs msgctxt "uchaines.rscouleurs" msgid "Couleurs" msgstr "" #: uchaines.rscroix msgid "Croix (+)" msgstr "" #: uchaines.rscroixx msgid "Croix (x)" msgstr "" #: uchaines.rscsv msgid ".csv" msgstr "" #: uchaines.rsdadv1l msgid "da/dV (1/L)" msgstr "" #: uchaines.rsda_dv1l msgid "%sda_dV (1/L)" msgstr "" #: uchaines.rsda_dvdrivepa msgid "da%s_dV: dérivée par rapport au volume versé de l'activité de %s (en 1/L)" msgstr "" #: uchaines.rsdcdvmoll msgid "dC/dV (mol/L²)" msgstr "" #: uchaines.rsdc_dvdrivepa msgid "dc%s_dV: dérivée par rapport au volume versé de la concentration en %s (en mol/L²)" msgstr "" #: uchaines.rsdc_dvmoll msgid "%sdC_dV(mol/L²)" msgstr "" #: uchaines.rsde msgid "%s de " msgstr "" #: uchaines.rsdeaupure msgctxt "uchaines.rsdeaupure" msgid "%s d'eau pure" msgstr "" #: uchaines.rsdeaupure2 msgctxt "uchaines.rsdeaupure2" msgid "%s d'eau pure" msgstr "" #: uchaines.rsdemandedarrt msgid "Demande d'arrêt" msgstr "" #: uchaines.rsdemonrpertoi msgctxt "uchaines.rsdemonrpertoi" msgid "de mon répertoire personnel" msgstr "" #: uchaines.rsdeplusetsurt msgid "De plus et surtout, expérimentalement, ces espéces n'apparaissent pas " msgstr "" #: uchaines.rsdfinirlagran msgctxt "uchaines.rsdfinirlagran" msgid "Définir la grandeur portée en abscisse" msgstr "" #: uchaines.rsdgraddecoule msgctxt "uchaines.rsdgraddecoule" msgid "Dégradé de couleurs de l'indicateur" msgstr "" #: uchaines.rsdiffrence msgid "- : différence" msgstr "" #: uchaines.rsdilution msgctxt "uchaines.rsdilution" msgid "Dilution" msgstr "" #: uchaines.rsdilutionpour msgid "Dilution pour le bêcher" msgstr "" #: uchaines.rsdilutionpour2 msgid "Dilution pour la burette" msgstr "" #: uchaines.rsdisque msgid "Disque" msgstr "" #: uchaines.rsdiviserlesco msgctxt "uchaines.rsdiviserlesco" msgid "Diviser les concentrations par 10" msgstr "" #: uchaines.rsdndvmoll msgid "dN/dV (mol/L)" msgstr "" #: uchaines.rsdn_dvdrivepa msgid "dn%s_dV: dérivée par rapport au volume versé du nombre de moles du solide %s (en 1/L)" msgstr "" #: uchaines.rsdn_dvmoll msgid "%sdN_dV (mol/L)" msgstr "" #: uchaines.rsdosagedeml msgid "Dosage de %smL" msgstr "" #: uchaines.rsdozzzaqueux msgctxt "uchaines.rsdozzzaqueux" msgid "Dozzzaqueux" msgstr "" #: uchaines.rsdpa_dvdrivep msgid "dpa%s_dV: dérivée par rapport au volume versé du cologarithme de l'activité de %s (en 1/L)" msgstr "" #: uchaines.rsdpc_dvdrivep msgid "dpc%s_dV: dérivée par rapport au volume versé du pc de %s (en 1/L)" msgstr "" #: uchaines.rsdph_dvdrived msgid "dpH_dV: dérivée du pH par rapport au volume versé " msgstr "" #: uchaines.rsdplacerlgend msgctxt "uchaines.rsdplacerlgend" msgid "Déplacer lég." msgstr "" #: uchaines.rsdpn_dvdrivep msgid "dpn%s_dV: dérivée par rapport au volume versé du pn de %s (en 1/L)" msgstr "" #: uchaines.rsdpoh_dvdrive msgid "dpOH_dV: dérivée du pOH par rapport au volume versé" msgstr "" #: uchaines.rsdrivesvdesac msgid "Dérivées /V des activités des espéces en solution:" msgstr "" #: uchaines.rsdrivesvdesco msgid "Dérivées /V des concentrations des espéces en solution:" msgstr "" #: uchaines.rsdrivesvdesno msgid "Dérivées /V des nombres de moles pour les précipités:" msgstr "" #: uchaines.rsdroite msgid "Droite" msgstr "" #: uchaines.rsdurpertoiree msgctxt "uchaines.rsdurpertoiree" msgid "du répertoire \"exemples\"" msgstr "" #: uchaines.rsechelle msgid "Echelle" msgstr "" #: uchaines.rsechelle2 msgctxt "uchaines.rsechelle2" msgid "Echelle:" msgstr "" #: uchaines.rsechellehoriz msgctxt "uchaines.rsechellehoriz" msgid "Echelle horizontale" msgstr "" #: uchaines.rsechelleverti msgctxt "uchaines.rsechelleverti" msgid "Echelle verticale droite" msgstr "" #: uchaines.rsechelleverti2 msgctxt "uchaines.rsechelleverti2" msgid "Echelle verticale gauche" msgstr "" #: uchaines.rsecraserlefic msgid "Ecraser le fichier existant ?" msgstr "" #: uchaines.rsecspotentiel msgid "ECS: potentiel électrode de référence au calomel saturé=0,246V" msgstr "" #: uchaines.rselectroneutr msgctxt "uchaines.rselectroneutr" msgid "Electroneutralité" msgstr "" #: uchaines.rsenregistrer msgctxt "uchaines.rsenregistrer" msgid "Enregistrer" msgstr "" #: uchaines.rsenregistrerl msgctxt "uchaines.rsenregistrerl" msgid "Enregistrer le graphe sur le disque comme image" msgstr "" #: uchaines.rsenregistrerl2 msgctxt "uchaines.rsenregistrerl2" msgid "Enregistrer le film de la simulation" msgstr "" #: uchaines.rsentredeuxvol msgctxt "uchaines.rsentredeuxvol" msgid "entre deux volumes successifs ne doit pas excéder:" msgstr "" #: uchaines.rsentrersortir msgctxt "uchaines.rsentrersortir" msgid "Entrer/sortir du mode faisceau, qui permet de faire varier un des paramètres et d'obtenir le faisceau de courbes correspondant" msgstr "" #: uchaines.rsentrezlaform msgctxt "uchaines.rsentrezlaform" msgid "Entrez la formule brute. Puis cliquez sur %sOK%s. Puis sélectionnez le réactif dans la liste ci-dessous." msgstr "" #: uchaines.rsentrezlaform2 msgctxt "uchaines.rsentrezlaform2" msgid "Entrez la formule brute. Puis cliquez sur %sOK%s. Puis sélectionnez le réactif dans la liste ci-dessous." msgstr "" #: uchaines.rsentreztoutou msgctxt "uchaines.rsentreztoutou" msgid "Entrez tout ou partie de l'indentifiant ou du synonyme" msgstr "" #: uchaines.rsentreztoutou2 msgctxt "uchaines.rsentreztoutou2" msgid "Entrez tout ou partie de l'indentifiant ou du synonyme" msgstr "" #: uchaines.rsepaisseurdut msgctxt "uchaines.rsepaisseurdut" msgid "Epaisseur du trait devant joindre les points:" msgstr "" #: uchaines.rsepaisseurtra msgctxt "uchaines.rsepaisseurtra" msgid "Epaisseur trait" msgstr "" #: uchaines.rsepaisseurtra2 msgctxt "uchaines.rsepaisseurtra2" msgid "Epaisseur trait:" msgstr "" #: uchaines.rsequationdera msgid "Equation de réaction" msgstr "" #: uchaines.rsesmpotentiel msgid "ESM: potentiel électrode de référence au sulfate mercureux=0,6513V" msgstr "" #: uchaines.rsespace msgid "Espace" msgstr "" #: uchaines.rsespcesprsent msgctxt "uchaines.rsespcesprsent" msgid "Espéces présentes" msgstr "" #: uchaines.rsespcesprsent2 msgid "%sEspéces présentes%s, et décochez en éventuellement." msgstr "" #: uchaines.rsespcesprsent3 msgid "<Espéces présentes>, et décochez en éventuellement." msgstr "" #: uchaines.rsexacte msgid "Exacte" msgstr "" #: uchaines.rsexaminezdonc msgid "Examinez donc avec soin les espéces qui figurent dans l'onglet" msgstr "" #: uchaines.rsexemplesbaso msgctxt "uchaines.rsexemplesbaso" msgid " Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] " msgstr "" #: uchaines.rsexemplesbaso2 msgctxt "uchaines.rsexemplesbaso2" msgid " Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] " msgstr "" #: uchaines.rsexemplesthan msgctxt "uchaines.rsexemplesthan" msgid " Exemples: éthanoïque Acide pentanedioïque " msgstr "" #: uchaines.rsexp msgctxt "uchaines.rsexp" msgid "Exp." msgstr "" #: uchaines.rsexpexponenti msgid "exp() : exponentielle" msgstr "" #: uchaines.rsexporterlesr msgctxt "uchaines.rsexporterlesr" msgid "Exporter les résultats numériques pour une exploitation avec tableur ou Régressi" msgstr "" #: uchaines.rsexportgraphe msgctxt "uchaines.rsexportgraphe" msgid "Export graphe" msgstr "" #: uchaines.rsexportrsulta msgctxt "uchaines.rsexportrsulta" msgid "Export résultats bruts" msgstr "" #: uchaines.rsexportrsulta2 msgctxt "uchaines.rsexportrsulta2" msgid "Export résultats" msgstr "" #: uchaines.rsexporttableu msgctxt "uchaines.rsexporttableu" msgid "Export tableur texte" msgstr "" #: uchaines.rsexpression msgid "Expression" msgstr "" #: uchaines.rsexpriencefic msgctxt "uchaines.rsexpriencefic" msgid "Expérience (fichier format tableau texte ou Regressi)" msgstr "" #: uchaines.rsfaisceau msgctxt "uchaines.rsfaisceau" msgid "Faisceau" msgstr "" #: uchaines.rsfaisceaudeco msgctxt "uchaines.rsfaisceaudeco" msgid "Faisceau de courbes" msgstr "" #: uchaines.rsfermer msgctxt "uchaines.rsfermer" msgid "Fermer" msgstr "" #: uchaines.rsfermer2 msgctxt "uchaines.rsfermer2" msgid "&Fermer" msgstr "" #: uchaines.rsfichier msgctxt "uchaines.rsfichier" msgid "Fichier" msgstr "" #: uchaines.rsfichiercorro msgid "Fichier corrompu..." msgstr "" #: uchaines.rsfichierimpos msgid "Fichier impossible à ouvrir" msgstr "" #: uchaines.rsfilmsimulati msgid "Film simulation Dozzzaqueux|*.doz" msgstr "" #: uchaines.rsfonctions msgid "Fonctions:" msgstr "" #: uchaines.rsformatdevale msgctxt "uchaines.rsformatdevale" msgid "Format de valeur numérique invalide pour le nombre de moles!" msgstr "" #: uchaines.rsformatdevale2 msgid "Format de valeur numérique invalide pour la masse !" msgstr "" #: uchaines.rsformatdevale3 msgctxt "uchaines.rsformatdevale3" msgid "Format de valeur numérique invalide pour le nombre de moles!" msgstr "" #: uchaines.rsformatdevale4 msgid "Format de valeur numérique illégal." msgstr "" #: uchaines.rsformatvaleur msgid "Format valeur numérique incorrect à la ligne %s" msgstr "" #: uchaines.rsformule msgid "Formule" msgstr "" #: uchaines.rsformulebrute msgctxt "uchaines.rsformulebrute" msgid "Formule brute ?" msgstr "" #: uchaines.rsformulebrute2 msgid "Formule brute" msgstr "" #: uchaines.rsg msgctxt "uchaines.rsg" msgid "g" msgstr "" #: uchaines.rsgammaconduct msgid "gamma: conductivité de la solution en S/m" msgstr "" #: uchaines.rsgauche msgid "Gauche" msgstr "" #: uchaines.rsgl msgctxt "uchaines.rsgl" msgid "g/L" msgstr "" #: uchaines.rsgomtrique msgid "Géométrique" msgstr "" #: uchaines.rsgraduations msgctxt "uchaines.rsgraduations" msgid "Graduations" msgstr "" #: uchaines.rsgrandeurfair msgctxt "uchaines.rsgrandeurfair" msgid "Grandeur à faire varier" msgstr "" #: uchaines.rsgrandeurscal msgid "Grandeurs calculées:" msgstr "" #: uchaines.rsgrandeursprs msgctxt "uchaines.rsgrandeursprs" msgid "Grandeurs présentes dans le fichier:" msgstr "" #: uchaines.rsgrillechelle msgctxt "uchaines.rsgrillechelle" msgid "Grille échelle gauche" msgstr "" #: uchaines.rsgrillechelle2 msgctxt "uchaines.rsgrillechelle2" msgid "Grille échelle droite" msgstr "" #: uchaines.rshaut msgid "Haut" msgstr "" #: uchaines.rsheavheavisid msgid "heav() : Heaviside (1 si argument>0, 0 sinon)" msgstr "" #: uchaines.rshistoriquede msgctxt "uchaines.rshistoriquede" msgid "Historique des versions" msgstr "" #: uchaines.rshlas msgid "Hélas..." msgstr "" #: uchaines.rshlas2 msgid "Hélas" msgstr "" #: uchaines.rshorizontale msgctxt "uchaines.rshorizontale" msgid "Horizontale" msgstr "" #: uchaines.rshorizontalem msgctxt "uchaines.rshorizontalem" msgid "Horizontalement" msgstr "" #: uchaines.rshorizontalen msgid "Horizontal en fonction du volume (si V en abscisse)" msgstr "" #: uchaines.rsidentifiant msgid "Identifiant" msgstr "" #: uchaines.rsidentificati msgid "Identification" msgstr "" #: uchaines.rsimpossiblede msgid "Impossible de créér ce fichier !" msgstr "" #: uchaines.rsimpossiblede2 msgid "Impossible d'effectuer le tracé: vous n'avez pas défini de grandeur en ordonnée !" msgstr "" #: uchaines.rsimpossiblede3 msgid "Impossible d'effectuer le tracé: vous n'avez pas défini de grandeur en abscisse !" msgstr "" #: uchaines.rsimpossiblede4 msgid "Impossible d'enregistrer: vous devez être au niveau %sTracé des courbes%s" msgstr "" #: uchaines.rsimpossiblede5 msgid "Impossible de lire ce fichier !" msgstr "" #: uchaines.rsimprimer msgctxt "uchaines.rsimprimer" msgid "Imprimer" msgstr "" #: uchaines.rsimprimerlegr msgctxt "uchaines.rsimprimerlegr" msgid "Imprimer le graphe" msgstr "" #: uchaines.rsincrment msgctxt "uchaines.rsincrment" msgid "Incrément:" msgstr "" #: uchaines.rsindicateurcolore msgctxt "uchaines.rsindicateurcolore" msgid "Indicateur coloré" msgstr "" #: uchaines.rsindicedelali msgctxt "uchaines.rsindicedelali" msgid "Indice de la ligne de la grandeur qui sera l'abscisse:" msgstr "" #: uchaines.rsinf1si1erarg msgid "inf(,) : 1 si 1er arg. <2nd, 0 sinon" msgstr "" #: uchaines.rsinfe1si1erar msgid "infe(,) : 1 si 1er arg. <=2nd, 0 sinon" msgstr "" #: uchaines.rsinorganiques msgctxt "uchaines.rsinorganiques" msgid "Inorganiques" msgstr "" #: uchaines.rsions msgctxt "uchaines.rsions" msgid "Ions" msgstr "" #: uchaines.rsjoindrelespo msgctxt "uchaines.rsjoindrelespo" msgid "Joindre les points" msgstr "" #: uchaines.rsjoindrepoint msgid "Joindre points" msgstr "" #: uchaines.rsjouerunfilmd msgctxt "uchaines.rsjouerunfilmd" msgid "Jouer un film de simulation" msgstr "" #: uchaines.rsk msgctxt "uchaines.rsk" msgid "K" msgstr "" #: uchaines.rslabelaffiche msgctxt "uchaines.rslabelaffiche" msgid "Label à afficher sur l'axe des abscisses:" msgstr "" #: uchaines.rslabelaffiche2 msgctxt "uchaines.rslabelaffiche2" msgid "Label à afficher sur l'axe gauche des ordonnées:" msgstr "" #: uchaines.rslabelaffiche3 msgctxt "uchaines.rslabelaffiche3" msgid "Label à afficher sur l'axe droit des ordonnées:" msgstr "" #: uchaines.rslabscissemin msgctxt "uchaines.rslabscissemin" msgid "L'abscisse minimale est trop proche de l'abscisse maximale..." msgstr "" #: uchaines.rslabscissemin2 msgctxt "uchaines.rslabscissemin2" msgid "L'abscisse minimale est trop proche de l'abscisse maximale..." msgstr "" #: uchaines.rslachargelect msgctxt "uchaines.rslachargelect" msgid "La charge électrique totale est non nulle. Vous pouvez:" msgstr "" #: uchaines.rslaconcentrat msgid "la concentration dans le bêcher (respectivement la burette) sera de 0.1mol/L." msgstr "" #: uchaines.rslaconductivi msgctxt "uchaines.rslaconductivi" msgid "La conductivité de l'espèce" msgstr "" #: uchaines.rslaformuledee msgid "La formule de %s est: %s" msgstr "" #: uchaines.rslamasse msgctxt "uchaines.rslamasse" msgid "la masse:" msgstr "" #: uchaines.rslamassedoitt msgid "La masse doit être strictement positive !" msgstr "" #: uchaines.rslamasseparld msgctxt "uchaines.rslamasseparld" msgid "concentration massique:" msgstr "" #: uchaines.rslancienvolum msgid "L'ancien volume a un format numérique illégal !" msgstr "" #: uchaines.rslangue msgctxt "uchaines.rslangue" msgid "Langue" msgstr "" #: uchaines.rslaquantitdem msgctxt "uchaines.rslaquantitdem" msgid "la quantité de matière:" msgstr "" #: uchaines.rslaquantitdem2 msgctxt "uchaines.rslaquantitdem2" msgid "concentration (molaire):" msgstr "" #: uchaines.rslasyntaxedel msgid "La syntaxe de l'expression est illégale. Expression refusée" msgstr "" #: uchaines.rslasyntaxedev msgctxt "uchaines.rslasyntaxedev" msgid "La syntaxe de votre formule brute n'est pas correcte." msgstr "" #: uchaines.rslasyntaxedev2 msgctxt "uchaines.rslasyntaxedev2" msgid "La syntaxe de votre formule brute n'est pas correcte." msgstr "" #: uchaines.rslatemprature msgid "La température doit être strictement positive" msgstr "" #: uchaines.rslavaleurdela msgid "La valeur de la température n'a pas une syntaxe correcte" msgstr "" #: uchaines.rslavaleurdund msgid "La valeur d'un des log K n'a pas une syntaxe correcte" msgstr "" #: uchaines.rslavaleurduvo msgctxt "uchaines.rslavaleurduvo" msgid "La valeur du volume n'a pas une syntaxe correcte" msgstr "" #: uchaines.rslavaleurduvo2 msgctxt "uchaines.rslavaleurduvo2" msgid "La valeur du volume n'a pas une syntaxe correcte" msgstr "" #: uchaines.rslavariationm msgctxt "uchaines.rslavariationm" msgid "La variation maximale du logarithme d'une concentration" msgstr "" #: uchaines.rslecalculdela msgctxt "uchaines.rslecalculdela" msgid "Le calcul de la dérivée numérique en V0 se fait par: (f(V0+h)-f(V0-h))/(2h)" msgstr "" #: uchaines.rslenombredemo msgid "Le nombre de moles doit être strictement positif !" msgstr "" #: uchaines.rslepassageenm msgid "Le passage en mode superposition fait sortir du mode faisceau. Voulez-vous continuer ?" msgstr "" #: uchaines.rslepassageenm2 msgid "Le passage en mode faisceau désactive la superposition de simulation. Etes-vous sûr de vouloir continuer ?" msgstr "" #: uchaines.rslescouleurse msgctxt "uchaines.rslescouleurse" msgid "Les couleurs en dégradé des courbes tendront vers:" msgstr "" #: uchaines.rslesvaleursde msgctxt "uchaines.rslesvaleursde" msgid "Les valeurs des concentrations sont calculées pour des valeurs discrétes du volume." msgstr "" #: uchaines.rslevolumedoit msgid "Le volume doit être strictement positif" msgstr "" #: uchaines.rslgende msgctxt "uchaines.rslgende" msgid "Légende" msgstr "" #: uchaines.rslgendepart msgctxt "uchaines.rslgendepart" msgid "Légende à part" msgstr "" #: uchaines.rslgendequiapp msgid "Légende qui apparaîtra sur le graphe pour cette grandeur:" msgstr "" #: uchaines.rslicensegpl msgctxt "uchaines.rslicensegpl" msgid "License GPL" msgstr "" #: uchaines.rslignelaquell msgctxt "uchaines.rslignelaquell" msgid "Ligne à laquelle commencent les données:" msgstr "" #: uchaines.rslistedessimu msgctxt "uchaines.rslistedessimu" msgid "Liste des simulations superposables" msgstr "" #: uchaines.rslnlogarithme msgid "ln() : logarithme népérien" msgstr "" #: uchaines.rslog10logarit msgid "log10() ou log(): logarithme décimal" msgstr "" #: uchaines.rslogiciellibr msgctxt "uchaines.rslogiciellibr" msgid "Logiciel libre et gratuit de simulation de courbes de dosage" msgstr "" #: uchaines.rslogkpour msgid "logk pour %s" msgstr "" #: uchaines.rslordonnemini msgctxt "uchaines.rslordonnemini" msgid "L'ordonnée minimale droite est trop proche de l'ordonnée maximale droite..." msgstr "" #: uchaines.rslordonnemini2 msgctxt "uchaines.rslordonnemini2" msgid "L'ordonnée minimale gauche est trop proche de l'ordonnée maximale gauche..." msgstr "" #: uchaines.rslordonnemini3 msgctxt "uchaines.rslordonnemini3" msgid "L'ordonnée minimale droite est trop proche de l'ordonnée maximale droite..." msgstr "" #: uchaines.rslordonnemini4 msgctxt "uchaines.rslordonnemini4" msgid "L'ordonnée minimale gauche est trop proche de l'ordonnée maximale gauche..." msgstr "" #: uchaines.rslorsdelexcut msgid "Lors de l'exécution d'un %sfilm%s de simulation, l'affichage de chaque écran doit durer:" msgstr "" #: uchaines.rslvationlapui msgid "^ : élévation à la puissance" msgstr "" #: uchaines.rsmaiseuhhh msgid "Mais euhhh !" msgstr "" #: uchaines.rsmaiseuhhhh msgid "Mais euhhhh !" msgstr "" #: uchaines.rsmaislepasnep msgctxt "uchaines.rsmaislepasnep" msgid "Mais le pas ne peut devenir inférieur à:" msgstr "" #: uchaines.rsmaispasagso4 msgctxt "uchaines.rsmaispasagso4" msgid " mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)" msgstr "" #: uchaines.rsmaispasagso42 msgctxt "uchaines.rsmaispasagso42" msgid " mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)" msgstr "" #: uchaines.rsmanuelle msgid "Manuelle" msgstr "" #: uchaines.rsmaxmaximumde msgid "max(,) : maximum des 2 arguments" msgstr "" #: uchaines.rsmenfin msgctxt "uchaines.rsmenfin" msgid "M'enfin..." msgstr "" #: uchaines.rsmenfin2 msgctxt "uchaines.rsmenfin2" msgid "M'enfin..." msgstr "" #: uchaines.rsmenfin3 msgctxt "uchaines.rsmenfin3" msgid "M'enfin..." msgstr "" #: uchaines.rsmgmol msgid "M (g/mol)" msgstr "" #: uchaines.rsminminimumde msgid "min(,) : minimum des 2 arguments" msgstr "" #: uchaines.rsml msgid "(mL)" msgstr "" #: uchaines.rsml2 msgctxt "uchaines.rsml2" msgid "mL" msgstr "" #: uchaines.rsmmesatomesen msgid "Mêmes atomes, en nombres inférieurs ou égaux" msgstr "" #: uchaines.rsmmesatomesen2 msgid "Mêmes atomes, en nombre supérieurs ou égaux" msgstr "" #: uchaines.rsmmesatomesen3 msgid "Mêmes atomes, en nombre quelconques" msgstr "" #: uchaines.rsmodification msgctxt "uchaines.rsmodification" msgid "Modification concentration" msgstr "" #: uchaines.rsmodifiercoul msgctxt "uchaines.rsmodifiercoul" msgid "Modifier couleurs" msgstr "" #: uchaines.rsmol msgctxt "uchaines.rsmol" msgid "mol" msgstr "" #: uchaines.rsmoll msgctxt "uchaines.rsmoll" msgid "mol/L" msgstr "" #: uchaines.rsms msgctxt "uchaines.rsms" msgid "ms" msgstr "" #: uchaines.rsmultiplierle msgctxt "uchaines.rsmultiplierle" msgid "Multiplier les concentrations par 10" msgstr "" #: uchaines.rsmultiplierto msgid "Multiplier toutes les concentrations par le facteur:" msgstr "" #: uchaines.rsnaninfnansi1 msgid "naninf(,) : NAN si 1er arg. <2nd, 0 sinon" msgstr "" #: uchaines.rsnaninnansiab msgid "nanin(,) : NAN si abs(1er arg.) <abs(2nd), 0 sinon" msgstr "" #: uchaines.rsnanoutnansia msgid "nanout(,) : NAN si abs(1er arg.) >abs(2nd), 0 sinon" msgstr "" #: uchaines.rsnansupnansi1 msgid "nansup(,) : NAN si 1er arg. >2nd, 0 sinon" msgstr "" #: uchaines.rsnbedemoles msgid "Nbe de moles" msgstr "" #: uchaines.rsncessairemen msgid "nécessairement, en raison par exemple de blocages cinétiques (les" msgstr "" #: uchaines.rsnefigurepasd msgctxt "uchaines.rsnefigurepasd" msgid "ne figure pas dans ma base de données. Vous pouvez saisir la valeur ci-dessous:" msgstr "" #: uchaines.rsnepasreprsen msgctxt "uchaines.rsnepasreprsen" msgid "Ne pas représenter cette grandeur" msgstr "" #: uchaines.rsneplusaffich msgctxt "uchaines.rsneplusaffich" msgid "Ne plus afficher ce message au cours de cette session" msgstr "" #: uchaines.rsnetouchezrie msgctxt "uchaines.rsnetouchezrie" msgid "Ne touchez à rien, l'onglet suivant va bientôt être affiché." msgstr "" #: uchaines.rsneutraliserl msgid "neutraliser la charge automatiquement en ajoutant des K[+] " msgstr "" #: uchaines.rsneutraliserl2 msgid "neutraliser la charge automatiquement en ajoutant des Na[+] " msgstr "" #: uchaines.rsneutraliserl3 msgid "neutraliser la charge automatiquement en ajoutant des Cl[-] " msgstr "" #: uchaines.rsnom msgctxt "uchaines.rsnom" msgid "Nom:" msgstr "" #: uchaines.rsnombre msgctxt "uchaines.rsnombre" msgid "Nombre:" msgstr "" #: uchaines.rsnombredechif msgctxt "uchaines.rsnombredechif" msgid "Nombre de chiffres affichés et gardés pour les logarithmes de constantes de réaction:" msgstr "" #: uchaines.rsnombredechif2 msgctxt "uchaines.rsnombredechif2" msgid "Nombre de chiffres affichés pour les résultats:" msgstr "" #: uchaines.rsnombredecopi msgctxt "uchaines.rsnombredecopi" msgid "Nombre de copies" msgstr "" #: uchaines.rsnombrededonn msgctxt "uchaines.rsnombrededonn" msgid "Nombre de données par ligne:" msgstr "" #: uchaines.rsnombredemole msgid "Nombre de moles pour les précipités:" msgstr "" #: uchaines.rsnombredemole2 msgctxt "uchaines.rsnombredemole2" msgid "Nombre de moles ?" msgstr "" #: uchaines.rsnombredepoin msgctxt "uchaines.rsnombredepoin" msgid "Nombre de points de calcul" msgstr "" #: uchaines.rsnombredepoin2 msgctxt "uchaines.rsnombredepoin2" msgid "Nombre de points: N=" msgstr "" #: uchaines.rsnombredespce msgid "nombre d'espéces." msgstr "" #: uchaines.rsnon msgid "NON" msgstr "" #: uchaines.rsnon2 msgid "Non" msgstr "" #: uchaines.rsnoncalculabl msgid "non calculable." msgstr "" #: uchaines.rsnouvellesimu msgctxt "uchaines.rsnouvellesimu" msgid "Nouvelle simulation" msgstr "" #: uchaines.rsnquantitdema msgid "n%s: quantité de matière du solide %s (en mol)" msgstr "" #: uchaines.rsok msgctxt "uchaines.rsok" msgid "&OK" msgstr "" #: uchaines.rsok2 msgctxt "uchaines.rsok2" msgid "OK" msgstr "" #: uchaines.rsonappellepas msgid "On appelle %spas%s l'écart entre deux valeurs successives du volume." msgstr "" #: uchaines.rsoprateurs msgid "Opérateurs" msgstr "" #: uchaines.rsoprateursetf msgctxt "uchaines.rsoprateursetf" msgid "Opérateurs et fonctions utilisables:" msgstr "" #: uchaines.rsoptions msgctxt "uchaines.rsoptions" msgid "Options" msgstr "" #: uchaines.rsoptionspourl msgctxt "uchaines.rsoptionspourl" msgid "Options pour l'export au format tableur texte" msgstr "" #: uchaines.rsoptionspourl2 msgctxt "uchaines.rsoptionspourl2" msgid "Options pour l'indicateur coloré" msgstr "" #: uchaines.rsorganiques msgctxt "uchaines.rsorganiques" msgid "Organiques" msgstr "" #: uchaines.rsorientation msgctxt "uchaines.rsorientation" msgid "Orientation" msgstr "" #: uchaines.rsoubien msgctxt "uchaines.rsoubien" msgid "OU BIEN" msgstr "" #: uchaines.rsoui msgid "OUI" msgstr "" #: uchaines.rsoui2 msgid "Oui" msgstr "" #: uchaines.rspacologarith msgid "pa%s: cologarithme de l'activité de %s" msgstr "" #: uchaines.rsparfomulebru msgctxt "uchaines.rsparfomulebru" msgid "Par fomule brute" msgstr "" #: uchaines.rsparformulebr msgctxt "uchaines.rsparformulebr" msgid "Par formule brute" msgstr "" #: uchaines.rsparidentifia msgctxt "uchaines.rsparidentifia" msgid "Par identifiant ou synonyme" msgstr "" #: uchaines.rsparjeanmarie msgctxt "uchaines.rsparjeanmarie" msgid "Par Jean-Marie Biansan, 2005 à 2017" msgstr "" #: uchaines.rsparml msgid "%s par %smL " msgstr "" #: uchaines.rspas msgctxt "uchaines.rspas" msgid "Pas:" msgstr "" #: uchaines.rspasadaptatif msgid "Pas adaptatif" msgstr "" #: uchaines.rspasconstant msgid "Pas constant" msgstr "" #: uchaines.rspasdedonness msgid "Pas de données sur la ligne spécifiée" msgstr "" #: uchaines.rspasdegrandeu msgid "Pas de grandeur choisie..." msgstr "" #: uchaines.rspasdereactif msgid "pas de reactif ayant cette formule brute trouve" msgstr "" #: uchaines.rspasdevaleure msgid "Pas de valeur entrée! Utilisez %sAnnuler%s si vous renoncez !" msgstr "" #: uchaines.rspasseroutrea msgid "passer outre (attention: calculs non garantis !!) " msgstr "" #: uchaines.rspaysage msgid "Paysage" msgstr "" #: uchaines.rspccologarith msgid "pc%s: cologarithme du rapport concentration en %s /(1 mol/L)" msgstr "" #: uchaines.rsphlogactivit msgid "pH: -log(activité(H+))" msgstr "" #: uchaines.rspncologarith msgid "pn%s: cologarithme du rapport quantité de matière du solide %s /(1 mol)" msgstr "" #: uchaines.rspohlogactivi msgid "pOH: -log(activité(OH-))" msgstr "" #: uchaines.rspointparticu msgctxt "uchaines.rspointparticu" msgid "Point particulier" msgstr "" #: uchaines.rspointrecomma msgid "Point (recommandé pour Excel)" msgstr "" #: uchaines.rspointvirgule msgid "Point virgule" msgstr "" #: uchaines.rspolice msgctxt "uchaines.rspolice" msgid "Police" msgstr "" #: uchaines.rspopotentielr msgid "Po%s: potentiel redox du couple %s / %s" msgstr "" #: uchaines.rsporterlevolu msgid "Porter le volume total à la valeur:" msgstr "" #: uchaines.rsportrait msgid "Portrait" msgstr "" #: uchaines.rsposition msgctxt "uchaines.rsposition" msgid "Position" msgstr "" #: uchaines.rspourlaide msgid "Pour l'aide," msgstr "" #: uchaines.rspourlespceve msgctxt "uchaines.rspourlespceve" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve10 msgctxt "uchaines.rspourlespceve10" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve11 msgctxt "uchaines.rspourlespceve11" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve12 msgctxt "uchaines.rspourlespceve12" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve13 msgctxt "uchaines.rspourlespceve13" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve14 msgctxt "uchaines.rspourlespceve14" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve15 msgctxt "uchaines.rspourlespceve15" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve16 msgctxt "uchaines.rspourlespceve16" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve17 msgctxt "uchaines.rspourlespceve17" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve18 msgctxt "uchaines.rspourlespceve18" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve19 msgctxt "uchaines.rspourlespceve19" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve2 msgctxt "uchaines.rspourlespceve2" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve20 msgctxt "uchaines.rspourlespceve20" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve21 msgctxt "uchaines.rspourlespceve21" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve22 msgctxt "uchaines.rspourlespceve22" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve23 msgctxt "uchaines.rspourlespceve23" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve24 msgctxt "uchaines.rspourlespceve24" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve25 msgctxt "uchaines.rspourlespceve25" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve26 msgctxt "uchaines.rspourlespceve26" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve27 msgctxt "uchaines.rspourlespceve27" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve28 msgctxt "uchaines.rspourlespceve28" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve29 msgctxt "uchaines.rspourlespceve29" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve3 msgctxt "uchaines.rspourlespceve3" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve30 msgctxt "uchaines.rspourlespceve30" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve31 msgctxt "uchaines.rspourlespceve31" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve32 msgctxt "uchaines.rspourlespceve32" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve33 msgctxt "uchaines.rspourlespceve33" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve34 msgctxt "uchaines.rspourlespceve34" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve35 msgctxt "uchaines.rspourlespceve35" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve36 msgctxt "uchaines.rspourlespceve36" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve37 msgctxt "uchaines.rspourlespceve37" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve38 msgctxt "uchaines.rspourlespceve38" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve39 msgctxt "uchaines.rspourlespceve39" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve4 msgctxt "uchaines.rspourlespceve4" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve40 msgctxt "uchaines.rspourlespceve40" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve41 msgctxt "uchaines.rspourlespceve41" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve42 msgctxt "uchaines.rspourlespceve42" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve43 msgctxt "uchaines.rspourlespceve43" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve44 msgctxt "uchaines.rspourlespceve44" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve45 msgctxt "uchaines.rspourlespceve45" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve46 msgctxt "uchaines.rspourlespceve46" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve47 msgctxt "uchaines.rspourlespceve47" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve48 msgctxt "uchaines.rspourlespceve48" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve49 msgctxt "uchaines.rspourlespceve49" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve5 msgctxt "uchaines.rspourlespceve5" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve50 msgctxt "uchaines.rspourlespceve50" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve51 msgctxt "uchaines.rspourlespceve51" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve52 msgctxt "uchaines.rspourlespceve52" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve53 msgctxt "uchaines.rspourlespceve53" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve54 msgctxt "uchaines.rspourlespceve54" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve55 msgctxt "uchaines.rspourlespceve55" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve56 msgctxt "uchaines.rspourlespceve56" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve57 msgctxt "uchaines.rspourlespceve57" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve58 msgctxt "uchaines.rspourlespceve58" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve59 msgctxt "uchaines.rspourlespceve59" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve6 msgctxt "uchaines.rspourlespceve6" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve60 msgctxt "uchaines.rspourlespceve60" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve61 msgctxt "uchaines.rspourlespceve61" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve62 msgctxt "uchaines.rspourlespceve62" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve63 msgctxt "uchaines.rspourlespceve63" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve64 msgctxt "uchaines.rspourlespceve64" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve65 msgctxt "uchaines.rspourlespceve65" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve66 msgctxt "uchaines.rspourlespceve66" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve67 msgctxt "uchaines.rspourlespceve67" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve68 msgctxt "uchaines.rspourlespceve68" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve69 msgctxt "uchaines.rspourlespceve69" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve7 msgctxt "uchaines.rspourlespceve7" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve70 msgctxt "uchaines.rspourlespceve70" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve71 msgctxt "uchaines.rspourlespceve71" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve72 msgctxt "uchaines.rspourlespceve72" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve73 msgctxt "uchaines.rspourlespceve73" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve8 msgctxt "uchaines.rspourlespceve8" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourlespceve9 msgctxt "uchaines.rspourlespceve9" msgid "Pour l'espéce %s, veuillez introduire:" msgstr "" #: uchaines.rspourobtenirl msgctxt "uchaines.rspourobtenirl" msgid "Pour obtenir la formule brute d'une espéce, sélectionnez la puis cliquez sur le bouton ci-contre:" msgstr "" #: uchaines.rspourobtenirl2 msgctxt "uchaines.rspourobtenirl2" msgid " pour obtenir le faisceau:" msgstr "" #: uchaines.rspourslection msgctxt "uchaines.rspourslection" msgid "Pour sélectionner un réactif, faites un clic simple sur sa ligne." msgstr "" #: uchaines.rspourslection2 msgctxt "uchaines.rspourslection2" msgid "Pour sélectionner un réactif, faites un clic simple sur sa ligne." msgstr "" #: uchaines.rspourslection3 msgctxt "uchaines.rspourslection3" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: uchaines.rspourslection4 msgctxt "uchaines.rspourslection4" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: uchaines.rspourslection5 msgctxt "uchaines.rspourslection5" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: uchaines.rspourslection6 msgctxt "uchaines.rspourslection6" msgid "Pour sélectionner un réactif, cliquez sur la ligne correspondante." msgstr "" #: uchaines.rspower1erargu msgid "power(,) : 1er argument à la puissance second argument" msgstr "" #: uchaines.rsproduit msgid "* : produit" msgstr "" #: uchaines.rsprvisisionsf msgid "prévisisions fournies par le présent logiciel sont purement thermodynamiques)." msgstr "" #: uchaines.rsquantitmol msgid "%sQuantité (mol)" msgstr "" #: uchaines.rsquenenni msgid "Que nenni !" msgstr "" #: uchaines.rsquotient msgid "/ : quotient" msgstr "" #: uchaines.rsractifschois msgctxt "uchaines.rsractifschois" msgid "Réactifs choisis:" msgstr "" #: uchaines.rsractionsetco msgctxt "uchaines.rsractionsetco" msgid "Réactions et constantes" msgstr "" #: uchaines.rsrecalculerau msgctxt "uchaines.rsrecalculerau" msgid "Recalculer automatiquement les échelles verticales" msgstr "" #: uchaines.rsrecherchedan msgctxt "uchaines.rsrecherchedan" msgid "Recherche dans la base" msgstr "" #: uchaines.rsrechercherun msgctxt "uchaines.rsrechercherun" msgid "Rechercher une espéce" msgstr "" #: uchaines.rsremarquecett msgctxt "uchaines.rsremarquecett" msgid "Remarque: cette modification ne perdurera que durant cette session de Dozzzaqueux.." msgstr "" #: uchaines.rsreprsentepar msgctxt "uchaines.rsreprsentepar" msgid "Représentée par:" msgstr "" #: uchaines.rsrponsenontro msgid "Réponse non trouvée au terme des %s itérations." msgstr "" #: uchaines.rsrsultats msgctxt "uchaines.rsrsultats" msgid "Résultats" msgstr "" #: uchaines.rssaisieconduc msgctxt "uchaines.rssaisieconduc" msgid "Saisie conductivité" msgstr "" #: uchaines.rssaisiedelexp msgctxt "uchaines.rssaisiedelexp" msgid "Saisie de l'expression" msgstr "" #: uchaines.rssaisissezlex msgctxt "uchaines.rssaisissezlex" msgid "Saisissez l'expression de la grandeur . Les noms des variables (V,..., c1, c2,...,n1, n2...) et les noms de fonction ont les" msgstr "" #: uchaines.rssauvegarderl msgctxt "uchaines.rssauvegarderl" msgid "Sauvegarder les résultats numériques pour une exploitation avec tableur ou avec Régressi" msgstr "" #: uchaines.rsscript msgctxt "uchaines.rsscript" msgid "script" msgstr "" #: uchaines.rssignificatio msgctxt "uchaines.rssignificatio" msgid "significations indiquées ci-dessous:" msgstr "" #: uchaines.rssignsigne1si msgid "sign() : signe: 1 si argument >0, 0 pour 0, -1 sinon" msgstr "" #: uchaines.rssinhsinushyp msgid "sinh() : sinus hyperbolique" msgstr "" #: uchaines.rssinsinus msgid "sin() : sinus" msgstr "" #: uchaines.rssiteweb msgid "Site Web" msgstr "" #: uchaines.rssivouspensez msgctxt "uchaines.rssivouspensez" msgid "Si vous pensez que certaines ne seront pas présentes (blocage cinétique par exemple), il suffit de les décocher." msgstr "" #: uchaines.rssivoussaisis msgid "Si vous saisissez 0.2mol/L, la concentration sera de 0.2mol/L dans le bêcher (resp. la burette)" msgstr "" #: uchaines.rssivousvoulez msgctxt "uchaines.rssivousvoulez" msgid "Si vous voulez la rendre définitive, modifiez cette espèce dans la base avec Modifbase." msgstr "" #: uchaines.rssolides msgctxt "uchaines.rssolides" msgid "Solides" msgstr "" #: uchaines.rssomme msgid "+ : somme" msgstr "" #: uchaines.rssparateurdci msgctxt "uchaines.rssparateurdci" msgid "Séparateur décimal" msgstr "" #: uchaines.rssparateurdec msgctxt "uchaines.rssparateurdec" msgid "Séparateur de colonnes:" msgstr "" #: uchaines.rssparateurspc msgid "Séparateur spécifié introuvable à la ligne %s" msgstr "" #: uchaines.rssplashscreen msgctxt "uchaines.rssplashscreen" msgid "splashscreen" msgstr "" #: uchaines.rssqrcarr msgid "sqr() : carré" msgstr "" #: uchaines.rssqrtracineca msgid "sqrt() : racine carrée" msgstr "" #: uchaines.rsstyle msgctxt "uchaines.rsstyle" msgid "Style" msgstr "" #: uchaines.rsstyledespoin msgctxt "uchaines.rsstyledespoin" msgid "Style des points" msgstr "" #: uchaines.rsstylepoints msgid "Style points" msgstr "" #: uchaines.rssup1si1erarg msgid "sup(,) : 1 si 1er arg. >2nd, 0 sinon" msgstr "" #: uchaines.rssupe1si1erar msgid "supe(,) : 1 si 1er arg. >=2nd, 0 sinon" msgstr "" #: uchaines.rssuperp msgctxt "uchaines.rssuperp" msgid "Superp." msgstr "" #: uchaines.rssuperposer msgctxt "uchaines.rssuperposer" msgid "Superposer" msgstr "" #: uchaines.rssuperposerla msgid "Superposer à la courbe une courbe expérimentale ou calculée" msgstr "" #: uchaines.rssupprimer msgid "Supprimer" msgstr "" #: uchaines.rssupprimercet msgid "Supprimer cette grandeur" msgstr "" #: uchaines.rssynonyme msgid "Synonyme" msgstr "" #: uchaines.rssyntaxedeval msgid "Syntaxe de valeur numérique incorrecte..." msgstr "" #: uchaines.rssyntaxeillga msgid "Syntaxe illégale pour un des nombres de moles !" msgstr "" #: uchaines.rssyntaxeincor msgid "Syntaxe incorrecte pour xmin." msgstr "" #: uchaines.rssyntaxeincor2 msgid "Syntaxe incorrecte pour xmax." msgstr "" #: uchaines.rssyntaxeincor3 msgid "Syntaxe incorrecte pour ymindroit." msgstr "" #: uchaines.rssyntaxeincor4 msgid "Syntaxe incorrecte pour ymaxdroit." msgstr "" #: uchaines.rssyntaxeincor5 msgid "Syntaxe incorrecte pour ymingauche." msgstr "" #: uchaines.rssyntaxeincor6 msgid "Syntaxe incorrecte pour ymaxgauche." msgstr "" #: uchaines.rssyntaxeincor7 msgid "Syntaxe incorrecte pour le volume" msgstr "" #: uchaines.rssyntaxeincor8 msgid "Syntaxe incorrecte." msgstr "" #: uchaines.rssyntaxeincor9 msgid "Syntaxe incorrecte pour la conductivité" msgstr "" #: uchaines.rstableurtexte msgid "Tableur texte (*.txt;*.csv)|*.txt;*.csv|Régressi (*.rw3)|*.rw3" msgstr "" #: uchaines.rstableurtexte2 msgid "Tableur texte (*.csv;*.txt)|*.csv;*.txt|Régressi (*.rw3)|*.rw3" msgstr "" #: uchaines.rstailledespoi msgctxt "uchaines.rstailledespoi" msgid "Taille des points:" msgstr "" #: uchaines.rstailledespoi2 msgctxt "uchaines.rstailledespoi2" msgid "Taille des points" msgstr "" #: uchaines.rstailleendela msgctxt "uchaines.rstailleendela" msgid "Taille (en % de la page)" msgstr "" #: uchaines.rstaillepoints msgid "Taille points" msgstr "" #: uchaines.rstantangente msgid "tan() : tangente" msgstr "" #: uchaines.rstemporisatio msgctxt "uchaines.rstemporisatio" msgid "Temporisation film" msgstr "" #: uchaines.rstemporisatio2 msgctxt "uchaines.rstemporisatio2" msgid "Temporisation" msgstr "" #: uchaines.rstemprature msgctxt "uchaines.rstemprature" msgid "Température=" msgstr "" #: uchaines.rstitre msgctxt "uchaines.rstitre" msgid "Titre" msgstr "" #: uchaines.rstitredugraph msgctxt "uchaines.rstitredugraph" msgid "Titre du graphe" msgstr "" #: uchaines.rstitredugraph2 msgctxt "uchaines.rstitredugraph2" msgid "Titre du graphe:" msgstr "" #: uchaines.rstoutcocher msgctxt "uchaines.rstoutcocher" msgid "Tout cocher" msgstr "" #: uchaines.rstoutdcocher msgctxt "uchaines.rstoutdcocher" msgid "Tout décocher" msgstr "" #: uchaines.rstoutsupprime msgctxt "uchaines.rstoutsupprime" msgid "Tout supprimer" msgstr "" #: uchaines.rstracdescourb msgctxt "uchaines.rstracdescourb" msgid "Tracé des courbes" msgstr "" #: uchaines.rstraces msgid "Traces" msgstr "" #: uchaines.rstracesvaleur msgid ": traces (valeur non significative)" msgstr "" #: uchaines.rstracesvaleur2 msgid " traces (valeur non significative) " msgstr "" #: uchaines.rstracimpossib msgid "Tracé impossible car:" msgstr "" #: uchaines.rstruncpartiee msgid "trunc() : partie entière" msgstr "" #: uchaines.rstypedecompar msgctxt "uchaines.rstypedecompar" msgid "Type de comparaison" msgstr "" #: uchaines.rstypededonne msgctxt "uchaines.rstypededonne" msgid "Type de donnée" msgstr "" #: uchaines.rstypedeladonn msgid "Type de la donnée de la colonne %s" msgstr "" #: uchaines.rstypedeladonn2 msgid "Type de la donnée %s" msgstr "" #: uchaines.rstypedesuited msgctxt "uchaines.rstypedesuited" msgid "Type de suite de valeurs" msgstr "" #: uchaines.rsuneouplusieu msgctxt "uchaines.rsuneouplusieu" msgid "Une ou plusieurs des simulations faites depuis le dernier lancement de Dozzzaqueux" msgstr "" #: uchaines.rsuneseulesimu msgid "Une seule simulation effectuée, rien à superposer !" msgstr "" #: uchaines.rsunitafficher msgctxt "uchaines.rsunitafficher" msgid "Unité à afficher sur l'axe des abscisses:" msgstr "" #: uchaines.rsunitafficher2 msgctxt "uchaines.rsunitafficher2" msgid "Unité à afficher sur l'axe gauche des ordonnées:" msgstr "" #: uchaines.rsunitafficher3 msgctxt "uchaines.rsunitafficher3" msgid "Unité à afficher sur l'axe droit des ordonnées:" msgstr "" #: uchaines.rsunitsetlabel msgctxt "uchaines.rsunitsetlabel" msgid "Unités et labels des axes:" msgstr "" #: uchaines.rsunitslabels msgctxt "uchaines.rsunitslabels" msgid "Unités/labels" msgstr "" #: uchaines.rsunnombredemo msgctxt "uchaines.rsunnombredemo" msgid "Un nombre de moles ne peut être négatif! Pour éliminer cette espéce, cliquez sur %sSupprimer%s." msgstr "" #: uchaines.rsunnombredemo2 msgctxt "uchaines.rsunnombredemo2" msgid "Un nombre de moles ne peut être négatif! Pour éliminer cette espéce, cliquez sur %sSupprimer%s." msgstr "" #: uchaines.rsunouplusieur msgid "Un ou plusieurs espaces" msgstr "" #: uchaines.rsutiliserdeby msgctxt "uchaines.rsutiliserdeby" msgid "Utiliser Debye et Hückel" msgstr "" #: uchaines.rsv msgctxt "uchaines.rsv" msgid "V=" msgstr "" #: uchaines.rsv0volumedela msgid "V0: volume de la solution présente initialement dans le bécher (en mL)" msgstr "" #: uchaines.rsvaleurdeconc msgid "Valeur de concentration de syntaxe incorrecte" msgstr "" #: uchaines.rsvaleurdepas0 msgid "Valeur de pas <=0 ou =1 sans intérêt..." msgstr "" #: uchaines.rsvaleurdepasn msgid "Valeur de pas nulle sans intérêt..." msgstr "" #: uchaines.rsvaleursnumri msgctxt "uchaines.rsvaleursnumri" msgid "Valeurs numériques séparées par:" msgstr "" #: uchaines.rsvalidationde msgid "Validation des espéces présentes à l'équilibre..." msgstr "" #: uchaines.rsvalidationde2 msgid "Validation des constantes de réaction..." msgstr "" #: uchaines.rsvalider msgctxt "uchaines.rsvalider" msgid "Valider" msgstr "" #: uchaines.rsvalideretlan msgctxt "uchaines.rsvalideretlan" msgid "Valider et lancer les calculs>>>>>>" msgstr "" #: uchaines.rsvalideretpas msgctxt "uchaines.rsvalideretpas" msgid "Valider et passer à la burette >>>>>" msgstr "" #: uchaines.rsvalideretpas2 msgctxt "uchaines.rsvalideretpas2" msgid "Valider et passer au recensement >>>>>" msgstr "" #: uchaines.rsvalideretpas3 msgctxt "uchaines.rsvalideretpas3" msgid "Valider et passer aux constantes de réaction >>>>>" msgstr "" #: uchaines.rsvaliderettra msgctxt "uchaines.rsvaliderettra" msgid "Valider et tracer les courbes >>>>>" msgstr "" #: uchaines.rsvariablesuti msgctxt "uchaines.rsvariablesuti" msgid "Variables utilisables:" msgstr "" #: uchaines.rsversion30cod msgctxt "uchaines.rsversion30cod" msgid "Version 3.51 du 13/07/2017, codée en Lazarus" msgstr "" #: uchaines.rsversiondelab msgctxt "uchaines.rsversiondelab" msgid "Version de la base" msgstr "" #: uchaines.rsversiondu msgid "Version %s du %s" msgstr "" #: uchaines.rsverticale msgctxt "uchaines.rsverticale" msgid "Verticale" msgstr "" #: uchaines.rsverticalemen msgctxt "uchaines.rsverticalemen" msgid "Verticalement" msgstr "" #: uchaines.rsverticalenfo msgid "Vertical en fonction du pH (si pH en ordonnée)" msgstr "" #: uchaines.rsveuillezcomp msgctxt "uchaines.rsveuillezcomp" msgid "Veuillez compléter les informations suivantes:" msgstr "" #: uchaines.rsvider msgctxt "uchaines.rsvider" msgid "Vider" msgstr "" #: uchaines.rsvirgulerecom msgid "Virgule (recommandé pour OpenOffice/Staroffice)" msgstr "" #: uchaines.rsvoicilaliste msgctxt "uchaines.rsvoicilaliste" msgid "Voici la liste des espéces susceptibles d'être présentes à l'équilibre." msgstr "" #: uchaines.rsvoiciles4pre msgctxt "uchaines.rsvoiciles4pre" msgid "Voici les 4 premières lignes du fichier:" msgstr "" #: uchaines.rsvoiciunensem msgctxt "uchaines.rsvoiciunensem" msgid "Voici un ensemble d'équations de réactions linéairement indépendantes entre elles décrivant le système chimique." msgstr "" #: uchaines.rsvolumebcherm msgid "Volume bécher (mL)" msgstr "" #: uchaines.rsvolumeinitia msgctxt "uchaines.rsvolumeinitia" msgid "Volume initial=" msgstr "" #: uchaines.rsvolumemaxima msgid "Volume maximal burette (mL)" msgstr "" #: uchaines.rsvolumemaxima2 msgctxt "uchaines.rsvolumemaxima2" msgid "Volume maximal à verser=" msgstr "" #: uchaines.rsvolumetotalm msgid "Volume total: %smL" msgstr "" #: uchaines.rsvolumevers msgid "Volume versé" msgstr "" #: uchaines.rsvousavezdjen msgid "Vous avez déjà entré ce réactif !" msgstr "" #: uchaines.rsvouspouvezmo msgctxt "uchaines.rsvouspouvezmo" msgid "Vous pouvez modifier les logarithmes des constantes d'équilibre si vous pensez en avoir de meilleures estimations." msgstr "" #: uchaines.rsvtotalsommed msgid "Vtotal: somme des deux précédents (en mL)" msgstr "" #: uchaines.rsvvolumeverse msgid "V: volume versé (en mL)" msgstr "" #: uchaines.rsx10 msgctxt "uchaines.rsx10" msgid "x10" msgstr "" #: uchaines.rsxmax msgctxt "uchaines.rsxmax" msgid "Xmax=" msgstr "" #: uchaines.rsxmin msgctxt "uchaines.rsxmin" msgid "Xmin=" msgstr "" #: uchaines.rsy msgid "y" msgstr "" #: uchaines.rsymax msgctxt "uchaines.rsymax" msgid "Ymax=" msgstr "" #: uchaines.rsymin msgctxt "uchaines.rsymin" msgid "Ymin=" msgstr "" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.pl.po��������������������������������������������������������0000750�0001750�0001750�00000071373�11214023776�021550� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Last-Translator: AlbercikCD\n" "PO-Revision-Date: 2007-01-14 00:01+0100\n" "Project-Id-Version: lclstrconsts\n" "Language-Team: \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.3\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "POT-Creation-Date: \n" "MIME-Version: 1.0\n" "X-Poedit-Language: Polish\n" "X-Poedit-Country: POLAND\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "" #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "" #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "" #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "" #: lclstrconsts.ifsalt msgid "Alt" msgstr "" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "Anuluj" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Konwertuj" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "" #: lclstrconsts.ifsvk_end msgid "End" msgstr "" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Pomoc" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Lewy przycisk myszy" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Środkowy przycisk myszy" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Prawy przycisk myszy" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Nie znaleziono zasobu: %s" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Kontrolka nie może być sama swoim rodzicem" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Wszystkie pliki (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "" #: lclstrconsts.rsblank msgid "Blank" msgstr "Pusty" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Kalkulator" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "Anuluj" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Nie można ustawić ogniska." #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Canvas nie pozwala na rysowanie" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Błąd przy tworzeniu \"gdb catchable\":" #: lclstrconsts.rscursor msgid "Cursor" msgstr "" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "" #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "uprawnienia użytkownik grupa rozmiar data czas" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "" #: lclstrconsts.rsdirection msgid "Direction" msgstr "" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "" #: lclstrconsts.rsdocking msgid "Docking" msgstr "" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "" #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "Błąd" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Błąd przy tworzeniu \"device context\" dla %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "BŁĄD w LCL: " #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Błąd w %s przy %sAdres %s%s Ramka %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Błąd odczytu %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "" #: lclstrconsts.rsexception msgid "Exception" msgstr "Wyjątek" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Katalog musi istnieć" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "Katalog \"%s\" nie istnieje." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "Plik \"%s\" już istnieje. Nadpisać ?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Plik musi istnieć" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "Plik \"%s\" nie istnieje." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "Plik \"%s\" nie jest zapisywalny." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "Plik nie jest zapisywalny" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Zapisz plik jako" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Otwórz istniejący plik" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Chcesz nadpisać plik?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "Ścieżka musi istnieć" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "Ścieżka \"%s\" nie istnieje." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Wybierz katalog" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(nie znaleziono pliku: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Informacja o pliku" #: lclstrconsts.rsfind msgid "Find" msgstr "" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols nie może być >= ColCount" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows nie może być >= RowCount" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Błąd przy zapisie formularza do strumienia \"%s\": %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug flags Włącz specificzne dla GDK komunikaty śledzenia/odpluskwiania." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug flags Wyłącz specificzne dla GDK komunikaty śledzenia/odpluskwiania." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings Ostrzerzenia i błędy Gtk+/GDK zatrzymają aplikację." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "Plik siatki nie istnieje" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "" #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex nie może być mniejszy niż poprzedniego elementu menu" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Filtr:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "Historia:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class classname Zgodnie z konwencją Xt klasę programu tworzy jego nazwa z pierwszą wielką literą. Np. nazwą klasy dla programu gimp jest \"Gimp\". Jeśli --class jest podane, klasa programu będzie ustawiona na \"classname\"." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags Włącz specyficzne dla Gtk+ komunikaty śledzenia/odpluskwiania." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Połącz z podany mserwerem X; \"h\" jest nazwą hosta, \"s\" jest numerem serwera (zwykle 0), a \"d\" jest numerem ekranu (zwyle pomijanym). Jeśli --display nie jet podane, użyję zmienna środowiaka DISPLAY." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module module Ładuje podany moduł przy starcie." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "" #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug flags Wyłącz specyficzne dla Gtk+ komunikaty śledzenia/odpluskwiania." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient Nie ustawiaj nietrwałej kolejności dla modalnych formularzy" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Wyłącz używanie X Shared Memory Extension." #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Wywołaj XSynchronize (display, True) Po połączeniu z serwerem X. To ułatwia odpluskwianie protokołu X, ponieważ buforowanie żądań X będzie wyłączonei błędy X będą odbierane natychmiast po przetworzeniu przez serwer X żądania, które spowodowało błąd." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "" #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "" #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "" #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "Nie znaleziono pomocy" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s Indeks %d przekracza zakres 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Indeks poza zakresem Cell[Col=%d Row=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "błędny strumień obiektu formularza" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Błędna wartość właściwości" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Błędny format strumienia" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s jest już skojarzony z %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "Indeks listy poza zakresem (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "Lista musi być pusta" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Porzuć" #: lclstrconsts.rsmball msgid "&All" msgstr "&Wszystkie" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Anuluj" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "Z&amknij" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "P&omoc" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Zignoruj" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Nie" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Nie na wszystkie" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&OK" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "&Ponów próbę" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Tak" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "Tak na &wszystkie" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr " zmodyfikowany" #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Potwierdzenie" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Inny" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Błąd" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Informacja" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Ostrzeżenie" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Nieprawidłowy plik siatki" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "" #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Wybierz datę" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "" #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "Właściwość %s nie istnieje" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "Odśwież" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Zamień" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Zamień wszystko" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Nie znaleziono zasobu: %s" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Właściwość ScrollBar'u poza zakresem" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Wybierz kolor" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Wybierz czcionkę" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "" #: lclstrconsts.rssize msgid " size " msgstr " rozmiar " #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Nie można załadować domyślnej czcionki" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Nieznane rozszerzenie pliku obrazka" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Nieobsługiwany format bitmapy." #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Nieobsługiwany format schowka: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " UWAGA: Pozostały %d niezwolnione DC, szczegółowy zrzut poniżej:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " UWAGA: Pozostało %d niezwolnionych GDIObject, szczegółowy zrzut poniżej:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " UWAGA: Pozostało %d komunikatów w kolejce! Zostaną usunięte." #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " UWAGA: Pozostało %d struktur TimerInfo zostaną usunięte" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr " UWAGA: Pozostały %s nieusunięte dowiązania do LM_PAINT/LM_GtkPAINT." #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Błąd:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Ostrzeżenie:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Nie można ustawić ogniska na wyłączone lub niewidzialne okno" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Zdublowane menu" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Błędne tworzenie akcji" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Błędna enumeracja akcji" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Błędna rejestracja akcji" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Błędne wyrejestrowanie akcji" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Błędny rozmiar obrazka" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Błędny indeks ImageList" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Indeks menu poza zakresem" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "Element menu ma wartość nil" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Podmenu nie jest w menu" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "" #: lclstrconsts.snotimers msgid "No timers available" msgstr "Brak dostępnych timerów" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.ru.po��������������������������������������������������������0000750�0001750�0001750�00000113513�11214026223�021542� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Last-Translator: Maxim Ganetsky <maxkill@mail.ru>\n" "Project-Id-Version: lazaruside\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "POT-Creation-Date: \n" "PO-Revision-Date: 2009-06-09 01:40+0300\n" "Language-Team: \n" "MIME-Version: 1.0\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "Браузер %s%s%s не является исполнимым файлом." #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "Браузер %s%s%s не найден." #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "Ошибка при выполнении %s%s%s:%s%s" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "Невозможно найти браузер HTML." #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "Не найдена программа просмотра справки.%sЗадайте её в меню Справка -> Параметры справки -> Программы просмотра" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "База данных справки %s%s%s не смогла найти файл %s%s%s." #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "Макрос %s в BrowserParams будет заменён на URL." #: lclstrconsts.ifsalt msgid "Alt" msgstr "Alt" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "Ctrl" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "Accept" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "Клавиша Application" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "Забой" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "Cancel" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "CapsLock" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "Clear" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "Control" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Convert" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "Delete" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "Стрелка вниз" #: lclstrconsts.ifsvk_end msgid "End" msgstr "End" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "Escape" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "Execute" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "Final" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "Ханчча" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Справка" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "Home" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "Insert" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "Джанджа" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "Кана" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Левая клавиша мыши" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "Стрелка влево" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "Левая клавиша Windows" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Средняя клавиша мыши" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "Menu" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "Изменение режима" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "Next" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "Nonconvert" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "NumLock" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "%d цифровой клавиатуры" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "Клавиша Pause" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "Print" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "Page Up" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Правая клавиша мыши" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "Ввод" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "Стрелка вправо" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "Правая клавиша Windows" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "ScrollLock" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "Select" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "Shift" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "Snapshot" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "Пробел" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "Tab" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "Неизвестная" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "Стрелка вверх" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Ресурс %s не найден" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "Затенённая часть объекта 3D" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "Освещённая часть объекта 3D" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Элемент управления не может быть сам себе потомком" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "Граница активного окна" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "Заголовок активного окна" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Все файлы (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "Рабочая область приложения" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "Морской волны" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "Рабочий стол" #: lclstrconsts.rsbackward msgid "Backward" msgstr "Назад" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "Точечные рисунки" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "Чёрный" #: lclstrconsts.rsblank msgid "Blank" msgstr "Пустой" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "Синий" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "Лицевая часть кнопки" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "Освещаемая сторона кнопки" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "Затенённая сторона кнопки" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "Текст кнопки" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Калькулятор" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "Отмена" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Не могу принять фокус" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Канва не поддерживает рисования" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "Текст заголовка" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "С учётом регистра" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "Кремовый" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Создание ошибки, захватываемой GDB:" #: lclstrconsts.rscursor msgid "Cursor" msgstr "Курсор" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "Пользовательский ..." #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "По умолчанию" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "права пользователь группа размер дата время" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "Удалить запись?" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "Удалить" #: lclstrconsts.rsdirection msgid "Direction" msgstr "Направление" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "&Каталог" #: lclstrconsts.rsdocking msgid "Docking" msgstr "Стыковка" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "Формат значков дублируется." #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "Редактировать" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "Во всём файле" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "Ошибка" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Ошибка создания контекста устройства для %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "ОШИБКА в LCL:" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Произошла ошибка в %s по %s адресу %s%s фрейм %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Ошибка чтения %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "Ошибка при сохранении точечного рисунка (bitmap)." #: lclstrconsts.rsexception msgid "Exception" msgstr "Исключение" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Каталог должен существовать" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "Каталог \"%s\" не существует." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "Файл \"%s\" уже существует. Перезаписать?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Файл должен существовать" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "Файл \"%s\" не существует" #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "Файл \"%s\" не доступен для записи." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "Файл не доступен для записи" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Сохранить файл как" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Открыть существующий файл" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Перезаписать файл?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "Путь должен существовать" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "Путь \"%s\" не существует." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Выберите каталог" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(файл не найден: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Информация о файле" #: lclstrconsts.rsfind msgid "Find" msgstr "Найти" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "Найти далее" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "Первая" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols не может быть >= ColCount" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows не может быть >= RowCount" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "Форма" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Ошибка потоков \"%s\" форм: %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "Вперёд" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "Розовый" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug flags Включить указанные отладочные сообщения GDK." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug flags Выключить указанные отладочные сообщения GDK." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings Замечания и ошибки, выдаваемые Gtk+/GDK, остановят приложение." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "Градиент активного заголовка" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "Градиент неактивного заголовка" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "Тёмно-серый" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "Серый текст" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "Тёмно-зелёный" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "Файл сетки не существует" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "Индекс Grid'а вне диапазона допустимых значений." #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex не может быть меньше GroupIndex для предыдущего элемента меню" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Фильтр:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "История:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class classname Следуя соглашениям Xt, класс программы - это имя программы с прописным первым символом. Например, имя класса для gimp - \"Gimp\". Если задан --class, класс программы будет установлен в \"classname\"." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags Включить указанные отладочные сообщения Gtk+." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Связаться с указанным X-сервером, где \"h\" - имя хост-машины, \"s\" - номер сервера (обычно 0), и \"d\" - номер дисплея (обычно опускают). Если не задан --display, используется переменная окружения DISPLAY." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module модуль Загрузить указанный модуль при запуске." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "--name имяпрог Установить имя программы в \"имяпрог\". Если не указано, имя программы будет установлено в ParamStrUTF8(0)." #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug flags Выключить указанные отладочные сообщения Gtk+." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient Не устанавливать временный порядок модальных форм" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Запрет использования расширений X по разделяемой памяти." #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Вызов XSynchronize (display, True) после установлени соединения с Xserver'ом. Это облегчает отладку ошибок протокола X, т.к. запросы буферизации X будут отключены, и ошибки X будут получены сразу после запроса протокола, который вызвал эту ошибку, обработанную сервером X." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "%s: Уже зарегистрирован" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "Контекст справки не найден" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "База данных справки не найдена" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "Ошибка справки" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "Контекст справки %s не найден." #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "Контекст справки %s не найден в базе данных %s%s%s." #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "База данных справки %s%s%s не нашла программу просмотра для страницы справки типа %s" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "База данных справки %s%s%s не найдена" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "Ключевое слово справки %s%s%s не найдено." #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "Ключевое слово справки %s%s%s не найдено в базе данных %s%s%s." #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "Узел справки %s%s%s не имеет соответствующей базы данных" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "Не найдено справки для строки %d, столбца %d из %s." #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "Доступные узлы справки отсутствуют" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "Справка не найдена" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "%s: Не зарегистрирован" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "Ошибка переключателя справки" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "Отсутствует программа просмотра для типа справки %s%s%s" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "Ошибка программы просмотра справки" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "Программа просмотра справки не найдена" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "Выделенное" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "Текст выделенного" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "Выделение" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "Ресурс значков OSX" #: lclstrconsts.rsicon msgid "Icon" msgstr "Значок" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "Изображение значка не может быть пустым" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "Изображение значка должно иметь тот же формат" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "Невозможно изменить формат изображения значка" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "Изображение значка должно иметь тот же размер" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "Невозможно изменить размер изображения значка" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "Значок не имеет текущего изображения" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "Граница неактивного окна" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "Заголовок неактивного окна" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "Заголовок неактивного окна" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s Индекс %d вне диапазона 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Индекс вне диапазона Cell[Col=%d Row=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "Фон сообщения" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "Текст сообщения" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "Вставить" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Неверная дата: %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "Неверная дата: %s. Должна быть между %s and %s" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "неправильный поток объекта формы" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Неправильное значение свойства" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Неправильный формат потока" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s уже сопоставлено с %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "Joint Picture Expert Group" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "Последняя" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "Зелёный" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "Индекс списка вне диапазона (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "Список должен быть пуст" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "Малиновый" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Прервать" #: lclstrconsts.rsmball msgid "&All" msgstr "&Все" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Отмена" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "&Закрыть" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "&Справка" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Пропуск" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Нет" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Нет для всех" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&ОК" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "&Открыть" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "&Повтор" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "&Сохранить" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "&Разблокировать" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Да" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "Да для &всех" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "Серый" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "Панель меню" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "Меню" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "Выделенный пункт меню" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "Текст меню" #: lclstrconsts.rsmodified msgid " modified " msgstr " изменён " #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "Светло-зелёный" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "Проверка подлинности" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Подтверждение" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Пользовательский" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Ошибка" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Сведения" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Предупреждение" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "Тёмно-синий" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "Следующая" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "Нет" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Неверный файл сетки" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "Отсутствует объект библиотеки виджетов. Проверьте, что модуль \"interfaces\" был добавлен в выражение uses программы." #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "Оливковый" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Выберите дату" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "Pixmap" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "Portable BitMap" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "Portable GrayMap" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "Portable Network Graphic" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "Portable PixMap" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "Отправить" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%sНажмите 'OK' чтобы игнорировать и подвергнуться риску повреждения данных.%sНажмите 'Отмена' для закрытия программы." #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "Предыдущая" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "Свойство %s не существует" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "Лиловый" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "Команда Endupdate, хотя обновления не производилось" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "Невозможно сохранить изображение во время обновления" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "Невозможно начать обновление всех во время обновления канвы" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "Красный" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "Обновить" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Заменить" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Заменить всё" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Ресурс %s не найден" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "Полоса прокрутки" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "свойство ScrollBar вне диапазона" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Выбрать цвет" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Выбрать шрифт" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "Серебристый" #: lclstrconsts.rssize msgid " size " msgstr " размер " #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "Голубой" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "Бирюзовый" #: lclstrconsts.rstext msgid "Text" msgstr "Текст" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Не могу загрузить шрифт по умолчанию" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "Неизвестная ошибка, сообщите о ней разработчикам" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Неизвестное расширение файла изображения" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Неподдерживаемый тип точечного рисунка." #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Неподдерживаемый формат буфера обмена: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " ВНИМАНИЕ: Найдено %d неосвобождённых контекстов устройств, список см. ниже:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " ВНИМАНИЕ: Найдено %d неосвобождённых GDIObject, список см. ниже:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " ВНИМАНИЕ: В очереди осталось %d сообщений! Они будут удалены" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " ВНИМАНИЕ: Осталось %d структур TimerInfo, они будут освобождены" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr " ВНИМАНИЕ: Найдено %s неудалённых ссылок на сообщение LM_PAINT/LM_GtkPAINT." #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "Белый" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "Только целые слова" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Ошибка:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Предупреждение:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "Окно" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "Граница окна" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "Текст окна" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "Жёлтый" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Нельзя дать фокус отключённому или невидимому окну" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Повторяющиеся меню" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Неправильное создание действия" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Неправильное перечисление действий" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Неправильная регистрация действия" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Неправильная разрегистрация действия" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "Набор символов в маске \"%s\" неверен!" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Неправильный размер рисунка" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Неправильный индекс ImageList" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Индекс меню вне диапазона" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "MenuItem указывает на нуль" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Подменю не в меню" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "Отсутствует форма MDI." #: lclstrconsts.snotimers msgid "No timers available" msgstr "Таймеры недоступны" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "Неверный тип лексемы: ожидался %s" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "Неверное число с плавающей точкой: %s" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "Неверное целое число: %s" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr " (на %d,%d, смещение потока %.8x)" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "Незавершённое значение байта" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "Незавершённая строка" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "Неверный символ лексемы: ожидался %s, но найден %s" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "Неверный тип лексемы: ожидался %s, но найден %s" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.zh_CN.po�����������������������������������������������������0000750�0001750�0001750�00000074203�11214023776�022131� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Project-Id-Version: 0.9.27 beta\n" "POT-Creation-Date: \n" "PO-Revision-Date: 2009-04-24 19:20+0800\n" "Last-Translator: XY.Chen <chenxinyv@gmail.com>、Liu Sizhuang <chinatslsz@hotmail.com>(2008-06-15)\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Chinese\n" "X-Poedit-Country: CHINA\n" "X-Poedit-SourceCharset: utf-8\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "浏览 %s%s%s 不是可执行程序." #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "浏览 %s%s%s 未找到." #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "当执行 %s%s%s 时发生错误:%s%s " #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "无法找到 HTML 浏览器" #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "没有找到 HTML 浏览器。%s请在 帮助-> 配置帮助 -> 查看器 中定义一个" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "帮助数据库 %s%s%s 无法找到文件 %s%s%s." #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "浏览框里的宏 %s 将被 URL 所替代." #: lclstrconsts.ifsalt msgid "Alt" msgstr "" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "接受" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "应用程序快捷键" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "退格" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "取消" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "大写" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "清除" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "控件" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "转换" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "删除" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "" #: lclstrconsts.ifsvk_end msgid "End" msgstr "" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "执行" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "帮助" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "鼠标左键" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "左" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "左 Win 键" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "鼠标中键" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "菜单" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "模式更改" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "不转换" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "数字锁定" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "数字键盘 %d" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "暂停键" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "打印" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "鼠标右键" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "返回" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "右" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "右 Win 键" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "滚动" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "选择" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "快照" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "空格键" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "未知" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "上" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "未找到资源 %s" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "3D阴影" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "3D光线" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "控件不能把自己设为父节点" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "活动边线" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "活动标题" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "所有文件 (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "引用程序工作区" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "桌面" #: lclstrconsts.rsbackward msgid "Backward" msgstr "后退" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "黑白位图" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "黑" #: lclstrconsts.rsblank msgid "Blank" msgstr "空白" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "蓝" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "按钮表面" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "按钮高亮" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "按钮阴影" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "按钮文本" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "计算器" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "取消" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "无法聚焦" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Canvas 不允许画图" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "标题文本" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "大小写敏感" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "创建 GDB 可以捕捉的错误" #: lclstrconsts.rscursor msgid "Cursor" msgstr "光标" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "自定义..." #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "默认" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "权限 用户 组 大小 日期 时间" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "删除记录?" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "删除" #: lclstrconsts.rsdirection msgid "Direction" msgstr "方向" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "目录(&D)" #: lclstrconsts.rsdocking msgid "Docking" msgstr "停靠" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "同样的图标格式." #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "编辑" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "错误" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "在 %s %s地址 %s%s 框架 %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "读取 %s%s%s 错误: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "保存位图时出错。" #: lclstrconsts.rsexception msgid "Exception" msgstr "异常" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "目录必须存在" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "目录 \"%s\" 不存在." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "文件 \"%s\" 已经存在.%s替换吗?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "文件必须存在" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "文件 \"%s\" 不存在." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "文件 \"%s\" 为只读." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "文件为只读" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "另存为" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "打开文件" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "覆盖文件?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "路径不存在" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "路径 \"%s\" 不存在." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "选择目录" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(未找到文件: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "文件信息" #: lclstrconsts.rsfind msgid "Find" msgstr "查找" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "查找更多" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols 不能 >= ColCount" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows 不能 >= RowCount" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "窗体" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "窗体流 \"%s\" 错误: %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "向前" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "紫红" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug flags 打开 GDK 跟踪/调试信息." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug flags 关闭 GDK 跟踪/调试信息." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings 使 Gtk+/GDK 产生的警告和错误终止应用程序。" #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "活动标题颜色渐变" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "非活动标题颜色渐变" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "灰" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "灰色文本" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "绿" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "网格文件不存在" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "网格索引越界。" #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex 不能比之前的菜单项目的 GroupIndex 少" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "过滤器:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "历史:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class classname 按照 Xt 转换规则, 一个程序的类别是第一个字母大写的程序名称。比如,gimp 的类别是 \"Gimp\"。如果指定了 --class,程序的类别会被设为 \"classname\"。" #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags 打开 Gtk+ 跟踪/调试信息." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d 连接到指定的 X 服务器,其中 \"h\"是主机名,\"s\"是服务器编号(通常是0),\"d\" 是显示编号(一般省略)。如果没有指定 --display ,将会使用 DISPLAY 环境变量。" #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module module 启动时载入指定模块" #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "" #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug flags 关闭 Gtk+ 跟踪/调试信息." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient 不要为形式上的窗体设定临时顺序" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm 禁止使用 X 共享内存扩展。" #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "" #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "%s: 已经注册" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "未找到帮助内容" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "未找到帮助数据库" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "帮助错误" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "未找到帮助上下文 %s." #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "没有找到 %s 的帮助内容在数据库 %s%s%s 中." #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "帮助数据库 %s%s%s 未找到浏览器可以阅读帮助页 %s 的类型" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "未找到帮助数据库 %s%s%s" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "关键字 %s%s%s 未找到帮助." #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "关键字 %s 的帮助在数据库 %s%s%s 中没有找到." #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "帮助节点 %s%s%s 没有帮助数据库" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "没有找到 %s 的行 %d, 列 %d 的 %s 的相关帮助." #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "没有有效的帮助节点" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "未找到帮助" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "%s: 没有注册" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "帮助选择器错误" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "帮助类型 %s%s%s 没有查看器" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "帮助查看器错误" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "未找到帮助查看器" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "高亮" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "高亮文本" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "OSX 图标资源" #: lclstrconsts.rsicon msgid "Icon" msgstr "图标" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "图标图像不能为空" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "图标图像必须有相同的格式" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "不能改变图标图像的格式" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "图标图像必须有同样的大小" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "不能改变图标图像的大小" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "图标有不正确的图像" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "非活动边框" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "非活动标题" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "非活动标题" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s 索引 %d 超出范围 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "单元格索引超过范围[列=%d 行=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "info底色" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "info文本" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "插入" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "无效日期: %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "无效日期: %s。 必须在 %s 和 %s 之间" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "无效窗体流对象" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "无效属性值" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "无效流格式" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s 已经与 %s 相关联" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "橙" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "list 索引超过限制 (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "列表必须为空" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "栗" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "中止" #: lclstrconsts.rsmball msgid "&All" msgstr "所有(&A)" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "取消" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "关闭(&C)" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "帮助(&H)" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "忽略(&I)" #: lclstrconsts.rsmbno msgid "&No" msgstr "否(&N)" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "全部选否" #: lclstrconsts.rsmbok msgid "&OK" msgstr "确定(&O)" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "重试(&R)" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "是(&Y)" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "全部选是(&A)" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "中灰" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "菜单条" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "菜单" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "菜单高亮" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "菜单文本" #: lclstrconsts.rsmodified msgid " modified " msgstr "已更改" #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "钱青" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "确认" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "自定义" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "错误" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "信息" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "警告" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "深蓝" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "下一个" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "无" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "不是有效的网格文件" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "没有窗口部件集合对象,请检查单元 \"interfaces\" 是否已添加到程序的uses语句中。" #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "橄榄" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "选择日期" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "位图" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "便携黑白位图" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "便携灰度位图" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "便携网络图片(PNG)" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "便携位图" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "提交" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #, fuzzy #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%s确定忽略但数据有遗失的风险。%s取消则终止程序." #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "优先" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "属性 %s 不存在" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "紫" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "处理更新时候不能保存图片" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "红" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "刷新" #: lclstrconsts.rsreplace msgid "Replace" msgstr "替换" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "替换所有" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "未找到资源 %s" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "滚动条" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "滚动条属性超出范围" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "选择颜色" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "选择字体" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "银" #: lclstrconsts.rssize msgid " size " msgstr "大小" #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "天蓝" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "青" #: lclstrconsts.rstext msgid "Text" msgstr "文本" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "无法装载默认字体" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "未知错误, 请报告这个错误" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "未知图形文件后缀" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "未支持的位图格式" #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "未支持的剪贴板格式: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr "" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr "" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr "" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr "" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr "" #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "白" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "仅整个单词" #: lclstrconsts.rswin32error msgid "Error:" msgstr "错误:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "警告:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "窗口" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "窗口框架" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "窗口文本" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "黄" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "不能聚焦于无法聚焦或者不可见的窗口" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "重复的菜单" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "无效创建行为" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "无效列举行为" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "无效的注册行为" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "无效的取消注册行为" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "\"%s\" 指定的字符集无效!" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "无效图像大小" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "无效 ImageList 索引" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "菜单索引超过范围" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "MenuItem 为 nil" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "子菜单不在菜单中" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "没有 MDI 窗体出现" #: lclstrconsts.snotimers msgid "No timers available" msgstr "无有效计时器" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "错误的标识符类型:期望 %s" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "无效的浮点数:%s" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "无效的整数:%s" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "(在 %d,%d, 流偏移 %.8x)" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "未结束的字节值" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "未结束的字符串" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "错误的标识符:期望 %s 但是找到了 %s" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "错误的标识符类型:期望 %s 但是找到了 %s" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.it.po��������������������������������������������������������0000750�0001750�0001750�00000077620�11304537463�021555� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Last-Translator: Pietro Bua <BPsoftw@hotmail.com>\n" "PO-Revision-Date: 2009-11-29 13:59+0200\n" "Language-Team: italiano <tp@lists.linux.it>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Project-Id-Version: 0.9.2\n" "MIME-Version: 1.0\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "Il browser %s%s%s non eseguibile." #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "Il browser %s%s%s non stato trovato." #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "Errore eseguendo %s%s%s:%s%s" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "Impossibile trovare un browser HTML" #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "Non stato trovato nessun browser HTML.%sDefiniscine uno in Aiuto -> Configura l'aiuto -> Visualizzatori" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "L'archivio dell'help %s%s%s non riesce a trovare il file %s%s%s." #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "La macro %s nei parametri del browser verr sostituita dall'URL" #: lclstrconsts.ifsalt msgid "Alt" msgstr "Alt" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "Ctrl" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "Accetta" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "tasto applicazione" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "Backspace" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "Cancella" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "Maiuscola" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "Cancella" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "Controllo" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Converti" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "Elimina" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "Giù" #: lclstrconsts.ifsvk_end msgid "End" msgstr "Fine" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "Escape" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "Esegui" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "Finale" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "Hanja" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Aiuto" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "Home" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "Inserisci" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "Junja" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "Kana" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Tasto sinistro del mouse" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "Sinistra" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "tasto windows sinistro" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Tasto centrale del mouse" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "Menu" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "Cambiamento di modalità" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "Successivo" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "Nnoconvertire" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "BlocNum" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "TastNum %d" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "Tasto pausa" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "Stampa" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "Precedente" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Tasto destro del mouse" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "Invio" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "Destra" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "tasto windows destro" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "Scorrimento" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "Selezione" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "Maiusc" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "Istantanea" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "Tasto di spaziatura" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "Tab" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "Sconosciuto" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "Su" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Risorsa %s non trovata" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "Luce 3D" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Un controllo non può avere sè stesso come genitore" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "Bordo attivo" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Tutti i file (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "Acqua" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "Scrivania" #: lclstrconsts.rsbackward msgid "Backward" msgstr "Indietro" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "Bitmap" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "Nero" #: lclstrconsts.rsblank msgid "Blank" msgstr "Vuoto" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "Blu" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "Superfice pulsante" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "Ombra pulsante" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "Testo pulsante" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Calcolatore" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "Cancella" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Impossibile spostare il focus" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Le tele non permettono il disegno" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "Testo caption" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "Differenzia maiuscolo e minuscolo" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "Crema" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Creazione errore intercettabile gdb:" #: lclstrconsts.rscursor msgid "Cursor" msgstr "cursore" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "Personalizzato ..." #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "Standard" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "permessi utente gruppo ampiezza data ora" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "Eliminare un record?" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "Elimina" #: lclstrconsts.rsdirection msgid "Direction" msgstr "Direzione" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "&Directory" #: lclstrconsts.rsdocking msgid "Docking" msgstr "Aggancia" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "Formato icona duplice." #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "Modifica" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "Ricerca il file interamente" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "Errpre" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Errore nella creazione del contesto dispositivo per %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "Errore nell'LCL:" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Errore in %s a %sIndirizzo %s%s Frame %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Errore nella lettura di %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "Errore salvando il bitmap." #: lclstrconsts.rsexception msgid "Exception" msgstr "Eccezzione" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "La directory deve esistere" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "La directory \"%s\" non esiste." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "Il file \"%s\" Esiste gi. Lo rimpiazzo?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Il file deve esistere" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "Il file \"%s\" non esiste." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "Il file \"%s\" non è scrivibile." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "Il file non è scrivibile" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Salva con nome" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Apri file esistenti" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Sovrascrivere il file?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "Il percorso deve esistere" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "Il percorso \"%s\" non esiste." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Selezionare una directory" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(file non trovato \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Informazioni sul file" #: lclstrconsts.rsfind msgid "Find" msgstr "Trova" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "Trova successivo" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "Primo" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCol non può essere >= ColCount" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows non può essere >= RowCount" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "Form" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Streaming della form \"%s\" errore: %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "Avanti" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "Fucsia" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug-flags Abilita specifici messaggi di trace/debug GDK." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug flags Disabilita messaggi specifici di trace/debug di GDK" #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings Avvertimenti ed errori generati da Gtk/GDK bloccheranno l'applicazione." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "Caption con gradient attiva" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "Caption con gradient disattiva" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "Grigio" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "testo grigio" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "Verde" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "Il file griglia non esiste" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "Indice della griglia fuori dai limiti." #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex non può essere inferiore ad un GroupIndex di un elemento menu precedente" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Filtro:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "Cronologia:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class nomeclasse Seguendo le convenzioni Xt, la classe di un programma è il nome del programma con il carattere iniziale maiuscolo. Per esempio il nome della classe per gimp è \"Gimp\". Se --class viene specificata, la classe del programma verrà impostata a \"nomeclasse\"." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags Abilita messaggi specifici di trace/debug Gtk+" #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Connessione al server X specificato da \"h\" per il nome host, \"s\" per il numero di server (solitamente 0) e \"d\" per il numero di schermo (normalmente viene omesso). Se --display non è specificato verrà utilizzata la variabile di ambiente DISPLAY." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module-module Carica il modulo specificato alla partenza." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "--name programe Imposta il nome del programma a \"progname\". Se non specificato, il nome del programma sar impostato a ParamStrUTF8(0)." #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug-flags Disabilita messaggi specifici di trace/debug Gtk+" #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient Non impostare l'ordine transiente per form modali" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Disabilita l'uso dell'estensione della memoria condivisa di X." #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Chiama XSynchronize (display, True) appena viene stabilita la connessione al server X. Ciò semplifica la correzzione degli errori di protocollo X dato che la richiesta di bufferizzazione di X sarà disabilitata e quindi gli errori di X verranno ricevuti subito dopo che la richiesta di protocollo che ha generato l'errore è stata processata dal server X." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "%s: Gi registrato" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "Pagina del manuale non trovata" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "Archivio Help non trovato" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "Errore nell'Help" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "Aiuto su %s non trovato." #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "Aiuto su %s non trovato nell'archivio %s%s%s." #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "L'archivio Help %s%s%s non trova un visualizzatore per le pagine di aiuto di tipo %s" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "Archivio Help %s%s%s non trovato" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "Aiuto sulla parola chiave %s%s%s non trovato." #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "Aiuto sulla parola chiave %s%s%s non trovato nell'archivio %s%s%s." #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "Il nodo di aiuto %s%s%s non ha un Database di aiuto" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "Nessun aiuto trovato per la linea %d, colonna %d di %s." #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "Nessun aiuto disponibile" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "Aiuto non trovato" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "%s: Non registrato" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "Errore nella selezione dell'Help" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "Nessun visualizzatore per gli help di tipo %s%s%s" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "Errore nel visualizzatore dell'Help" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "Visualizzatore dell'Help non trovato" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "Icona" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "L'immagine dell'icona non pu essere vuota" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "L'immagine dell'icona deve avere lo stesso formato" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "Impossibile cambiare il formato dell'immagine dell'icona" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "L'immaigne dell'icona deve avere le stesse dimensioni" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "Impossibile cambiare il formato dell'immagine dell'icona" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "L'icona non ha nessuna immagine corrente" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "Bordo inattivo" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "Caption inattiva" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "Caption inattiva" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s indice %d fuori dai limiti 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Indice fuori dall'ampiezza massima Cell[Col=%d Row=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "Informazioni sfondo" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "Informazioni testo" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "Inserimento" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Data non valida: %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "Data non valida: %s. Deve essere tra %s e %s" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "Stream form oggetto non valido" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Valore proprietà non valido" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Formato stream non valido" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s è già associato con %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "Ultimo" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "L'elenco indice eccede i limiti (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "L'elenco deve essere vuoto" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Blocca" #: lclstrconsts.rsmball msgid "&All" msgstr "&Tutti" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Annulla" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "&Chiudi" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "&Aiuto" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Ignora" #: lclstrconsts.rsmbno msgid "&No" msgstr "&No" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "No a tutto" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&OK" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "&Apri" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "&Riprova" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "&Salva" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "&Sblocca" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Si" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "Si a &All" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "Menu" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr " modificato " #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "Autenticazione" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Conferma" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Personalizza" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Errore" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Informazioni" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Attenzione" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "Successivo" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "Niente" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Non è un file griglia valido" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "Nessun oggetto. Verifica se la unit \"interfaces\" stata aggiunta alla clausola uses del programma." #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Seleziona una data" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "Pixmap" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "Portable Network Graphic" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #, fuzzy #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%sPremi Ok per ignorare il messaggio e rischiare di corrompere i dati.%sPremi Annulla per terminare l'esecuzione del programma" #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "Precedente" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "La proprietà %s non esiste" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "Viola" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "Rosso" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "Aggiorna" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Sostituisci" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Sostituisci tutto" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Risorsa %s non trovata" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Proprietà barra di scorrimento fuori dal range" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Selezionare un colore" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Selezionare un font" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "Argento" #: lclstrconsts.rssize msgid " size " msgstr " ampiezza " #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "Testo" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Impossibile caricare il font predefinito" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "Errore sconosciuto. Per favore, riporta questo errore al team di sviluppo" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Estensione immagine sconosciuta" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Formato bitmap non supportato." #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Formato degli appunti non supportato %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr "Attenzione: esistono %s DC non rilasciati, segue un dump dettagliato:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr "Attenzione: ci sono %d GDIObjects non rilasciati, segue un dump dettagliato:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr "Attenzione: ci sono %d messaggi lasciati in coda! Li sto liberando" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr "Attenzione: ci sono ancora %d strutture Timer Info, li sto liberando " #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr "Attenzione: esistono ancora %s collegamenti a messaggi LM_GtkPAINT." #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "Bianco" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "Solo parole intere" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Errore:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Attenzione:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "Finestra" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "Frame della finestra" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "Testo della finestra" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "Giallo" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Impossibile spostare il focus su una finestra disabilitata o invisibile" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Menu dupicati" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Creazione azione non valida" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Enumerazione azione non valida" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Registrazione azione non valida" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Deregistrazione azione non valida" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "Il carattere di mask \"%s\" non valido" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Grandezza immagine non valida" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Indice ImageList non valido" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Indice del menu fuori range" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "La voce menu è nulla" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Il sottomenu non è nel menu" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "Nessuna form MDI presente." #: lclstrconsts.snotimers msgid "No timers available" msgstr "Nessun timer disponibile" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "String non determinata" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" ����������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.nl.po��������������������������������������������������������0000750�0001750�0001750�00000075015�11233377565�021554� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" "PO-Revision-Date: 2007-10-03 22:04+0100\n" "Last-Translator: Marc Fokker <ptp@extel.xs4all.nl>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "Browser %s%s%s niet uitvoerbaar" #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "Browser %s%s%s niet gevonden" #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "Fout tijdens uitvoeren van %s%s%s:%s%s" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "Geen HTML browser kunnen vinden." #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "Geen HTML browser gevonden. %sDefinieer deze alstublieft via Help -> Configureer Help -> Viewers" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "De help database %s%s%s heeft bestand %s%s%s niet kunnen vinden." #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "De macro %s in BrowserParams zal worden vervangen door de URL." #: lclstrconsts.ifsalt msgid "Alt" msgstr "Alt" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "Ctrl" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "Accepteer" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "toepassing sleutel" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "Backspace" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "Hoofdletter" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "Wissen" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "Controleer" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Converteer" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "Neer" #: lclstrconsts.ifsvk_end msgid "End" msgstr "Eind" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "Escape" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "Uitvoeren" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "Laatste" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "Hanja" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Help" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "Home" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "Junja" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "Kana" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Muisknop Links" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "Links" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "linker windows toets" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Muisknop Midden" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "Menu" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "Mode wijziging" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "Niet converteren" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "Numlock" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "Nummeriek deel %d" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "Pause toets" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "Druk af" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Muisknop Rechts" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "Return" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "Rechts" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "rechter windows toets" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "Schuif" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "Selecteer" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "Shift" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "Snapshot" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "Spatiebar" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "Tab" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "Onbekend" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "Omhoog" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Resource %s is niet gevonden" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Een control kan niet zijn eigen ouder zijn" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Alle bestanden (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "Achteruit" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "Bitmaps" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "" #: lclstrconsts.rsblank msgid "Blank" msgstr "Spatie" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Rekenmachine" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Kan geen focus geven" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Er kan op het canvas niet getekend worden" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "Hoofdletter gevoelig" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Maak een fout die door gdb opgevangen kan worden" #: lclstrconsts.rscursor msgid "Cursor" msgstr "" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "" #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "permissies gebruiker groep grootte datum tijd" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "Verwijder" #: lclstrconsts.rsdirection msgid "Direction" msgstr "Richting" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "&Map" #: lclstrconsts.rsdocking msgid "Docking" msgstr "Docking" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "" #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Fout tijdens het maken van een DC voor %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "FOUT in LCL" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Er is een fout opgetreden in %s op %sAdres %s%s Frame %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Fout tijdens het lezen %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "Fout tijdens opslaan van bitmap." #: lclstrconsts.rsexception msgid "Exception" msgstr "Fout" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Directory moet bestaan" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "De map \"%s\" bestaat niet." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "Het bestand \"%s\" bestaat al. Overschrijven?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Bestand moet bestaan" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "Het bestand \"%s\" bestaat niet." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "Het bestand \"%s\" kan niet geschreven worden." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "Kan bestand niet schrijven" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Bestand opslaan als" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Open een bestaand bestand" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Bestand overschrijven?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "Het pad moet bestaan" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "Het pad \"%s\" bestaat niet." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Kies map" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(bestand niet gevonden: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Bestandsinformatie" #: lclstrconsts.rsfind msgid "Find" msgstr "Zoek" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "Zoek meer" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols kan niet >= ColCount" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows kan niet >= RowCount" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "\"%s\" fout: %s bij het streamen van form." #: lclstrconsts.rsforward msgid "Forward" msgstr "Vooruit" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug flags Zet bepaalde GDK trace/debug berichten aan." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug flags Zet bepaalde GDK trace/debug berichten uit." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings De applicatie stop bij waarschuwingen en fouten gegenereerd door GtK+/GDK." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "Grid bestand bestaat niet" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "Rooster index buiten bereik" #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "De GroupIndex kan niet minder zijn dan de GroupIndex van een vorig item." #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Filter:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "Historie:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class klassenaam Volgens de Xt conventies, is de klasse van een prograam de naam van dat programma met de eerste letter als kapitaal. Bijv. the klassenaam voor gimp is \"Gimp\". Als de --class optie is meegegeven, wordt de klasse van het programma gezet op \"klassenaam\"." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags Zet bepaalde GtK+ trace/debug berichten aan." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Start het programma op de genoemde X server, waarbij \"h\" de hostnaam is, \"s\" het nummer van de server (meestal 0), en \"d\" is het display nummer (vaak weggelaten). Als --display niet is meegegeven, wordt de DISPLAY omgevings variabele gebruikt." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module module Laad de betreffende module tijdens het starten." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "" #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug flags Zet bepaalde GtK+ trace/debug berichten uit." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient Zet geen overdraagbare volgorde voor modale schermen" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Maak geen gebruik van de X Shared Memory Extensie." #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Roep XSynchronize (display, True) aan na verbinding met de Xserver. Dit maakt het debuggen van X protocol fouten eenvoudiger, doordat X aanvragen buffering uitstaat en X fouten direct ontvangen worden nadat de aanvraag door de Xserver is behandeld." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "%s: Al vastgelegd" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "Help Context niet gevonden" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "Help Database niet gevonden" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "Help Fout" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "Help context %s niet gevonden." #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "Help context %s niet gevonden in Database %s%s%s." #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "Help Database %s%s%s heeft geen viewer gevonden voor help pagina van type %s" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "Help Database %s%s%s niet gevonden" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "Help sleutelwoord %s%s%s niet gevonden." #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "Help sleutelwoord %s%s%s niet gevonden in Database %s%s%s." #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "Help node %s%s%s heeft geen Help Database" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "Geen help gevonden voor regel %d, kolom %d van %s. " #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "Geen help nodes beschikbaar" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "Help niet gevonden" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "%s: Niet vastgelegd" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "Help Selectie fout" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "Er is geen viewer voor help type %s%s%s" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "Help Viewer Fout" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "Help Viewer niet gevonden" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "Icon" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s Index %d valt buiten de grenzen 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Index buiten de grenzen Cell[Col=%d Ro=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "Invoegen" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Ongeldige datum: %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "Ongeldige datum: %s. Het moet liggen tussen %s en %s" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "Ongeldige form objectstream" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Ongeldige eigenschap waarde" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Omgeldig stream format" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s is al verbonden met %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "Lijst index overschreidt grenzen (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "Lijst moet leeg zijn" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Afbreken" #: lclstrconsts.rsmball msgid "&All" msgstr "&Alles" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Annuleer" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "&Sluiten" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "&Help" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Negeer" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Nee" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Nee op alles" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&OK" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "&Opnieuw" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Ja" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "Ja op &Alles" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "Menu" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr " gewijzigd " #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Bevestiging" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Eigen" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Fout" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Informatie" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Waarschuwing" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "Volgende" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Geen geldig grid bestand" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "Geen widgetset object. Controleer of the unit \"interface\" is toegevoegd aan de \"uses\" van het programma." #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Kies een datum" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "Pixmap" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "Portable Network Graphic" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #, fuzzy #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%sDruk op Ok om te negeren, hierbij kunnen gegevens verloren gaan.%sDruk op Cancel om het programma te annuleren." #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "Vorige" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "Eigenschap %s bestaat niet" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Vervang" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Vervang alles" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Resource %s is niet gevonden" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Schuifbalk eigenschap buiten bereik" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Kies een kleur" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Kies een font" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "" #: lclstrconsts.rssize msgid " size " msgstr " afmeting " #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "Tekst" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Kan het standaard font niet laden" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "Onbekende Fout, rapporteer alstublieft deze fout" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Onbekende extensie voor plaatje" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Niet ondersteund bitmap formaat." #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Niet ondersteund klembord formaat: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " WAARSCHUWING: Er zijn nog %d DCs niet vrijgegeven, een gedetailleerde dump volgt:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " WAARSCHUWING: Er zijn nog %d GDIObject niet vrijgegeven, een gedetailleerde dump volgt:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " WAARSCHUWING: Er staan nog %d berichten in de queue! Deze worden nu vrijgegeven" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " WAARSCHUWING: Er zijn %d TimerInfo structuren overgebleven. Deze worden nu vrijgegeven" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr " WAARSCHUWING: Er zijn %s LM_PAINT/LM_GtkPAINT berichten niet verwijderd." #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "Alleen hele woorden" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Fout:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Waarschuwing:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Kan geen focus geven aan een onzichtbaar of disabled scherm" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Dubbele menus" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Ongeldige aktie aangemaakt" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Ongeldige aktie opsomming" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Ongeldige aktie registratie" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Ongeldige aktie de-registratie" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "De characterset in mask \"%s\" is niet geldig!" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Ongeldig formaat voor afbeelding " #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Ongeldige index van ImageList" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Index van menu buiten de grenzen" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "MenuItem is nil" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Submenu niet in menu" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "Geen MDI formulier aanwezig" #: lclstrconsts.snotimers msgid "No timers available" msgstr "Geen timers beschikbaar" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.pb.po��������������������������������������������������������0000750�0001750�0001750�00000101135�11232126756�021526� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Project-Id-Version: \n" "POT-Creation-Date: \n" "PO-Revision-Date: \n" "Last-Translator: Marcelo Borges de Paula\n" "Language-Team: \n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "Navegador %s%s%s não é executável" #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "Navegador %s%s%s não encontrado" #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "Erro ao executar %s%s%s:%s%s" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "Impossível encontrar um navegador \"HTML\"." #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "Nenhum navegador \"HTML\" encontrado.%sFavor definir um em Ambiente -> Ajuda -> Opções Ajuda -> Visualizadores" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "O banco de dados de ajuda %s%s%s não pode encontrar o arquivo %s%s%s." #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "A macro %s em \"BrowseParams\" será substituída pela URL." #: lclstrconsts.ifsalt msgid "Alt" msgstr "Alt" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "Ctl" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "Aceitar" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "tecla da aplicação" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "\"Backspace\"" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "Cancelar" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "Capital" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "Limpar" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "Control" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Converter" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "Excluir" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "Abaixo" #: lclstrconsts.ifsvk_end msgid "End" msgstr "End" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "Escape" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "Executar" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "Final" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "Hanja" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Ajuda" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "Home" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "Inserir" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "Junja" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "Kana" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Botão Esquerdo do Mouse" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "Esquerda" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "tecla windows esqueda" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Botão Central do Mouse" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "Menu" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "Modo Alterar" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "Próximo" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "Não converter" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "Numlock" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "Numpad %d" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "Tecla Pause" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "Imprimir" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "Anterior" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Botão Direito do Mouse" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "Retorno" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "Direita" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "tecla windows direita" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "Deslizar" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "Selecionar" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "Shift" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "Instantâneo" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "Tecla espaço" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "Tabulação" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "Desconhecido" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "Acima" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Recurso %s não encontrado" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "Sombra escura 3D" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "Luz 3D" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Um controle não pode ter ele mesmo como pai" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "Borda Ativa" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "Rótulo Ativo" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Todos os arquivos (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "Espaçõ de trabalho Aplicação" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "Ciano" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "Área de trabalho" #: lclstrconsts.rsbackward msgid "Backward" msgstr "Atrás" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "Bitmaps" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "Preto" #: lclstrconsts.rsblank msgid "Blank" msgstr "Em Branco" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "Azul" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "Face Botão" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "Realce Botão" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "Sombra Botão" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "Texto Botão" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Calculadora" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "Cancelar" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Não é possível focar" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Canvas não permite desenho" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "Texto Rótulo" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "Diferenciar maiúsc./minúsc." #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "Creme" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Erro na criação \"gdb catchable\":" #: lclstrconsts.rscursor msgid "Cursor" msgstr "Cursor" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "Personalizado ..." #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "Padrão" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "permissões grupo usuário, tamanho, data, hora" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "Excluir registro?" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "Excluir" #: lclstrconsts.rsdirection msgid "Direction" msgstr "Direção" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "&Diretório" #: lclstrconsts.rsdocking msgid "Docking" msgstr "Aportar" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "Formato de ícone duplicado." #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "Editar" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "Localizar no arquivo inteiro" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "Erro" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Erro criação do dispositivo de contexto para %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "ERRO na LCL:" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Erro ocorrido em %s no %sEndereço %s%s Quadro %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Erro na leitura %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "Erro ao salvar \"bitmap\"." #: lclstrconsts.rsexception msgid "Exception" msgstr "Excessão" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Diretório deve existir" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "O diretório \"%s\" não existe" #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "O arquivo \"%s\" já existe. Sobrescrever ?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Arquivo deve existir" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "O arquivo \"%s\" não existe." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "O arquivo \"%s\" não é gravável" #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "Arquivo não é gravável" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Salvar arquivo como" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Abrir arquivo existente" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Sobrescrever arquivo ?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "O Caminho deve existir" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "O caminho \"%s\" não existe." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Selecionar Diretório" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(arquivo não encontrado: \"%s\"" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Informação Arquivo" #: lclstrconsts.rsfind msgid "Find" msgstr "Localizar" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "Localizar mais" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "Primeiro" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "\"FixedCols\" não pode ser >= \"ColCount\"" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "\"FixedRows\" não pode ser >= \"RowCount\"" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "Formulário" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Fluxo formulário \"%s\" erro: %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "Adiante" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "Lilás" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug flags Ativa mensagens GDK trace/debug." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug flags Desativa mensagens GDK trace/debug." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatar-warnings Avisos e erros gerados por Gkt+/GDK interromperá a aplicação." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "Rótulo Gradiente Ativo" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "Rótulo Gradiente Inativo" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "Cinza" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "Texto Cinza" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "Verde" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "Arquivo de grade não existe" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "Índice grade fora de faixa" #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "\"GroupIndex\" não pode ser menor que um \"GroupIndex\" anterior de itens de menu" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Filtro:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "Histórico:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class classname Segue convenções Xt, a classe do programa é o nome do programa com o caractere inicial em maiúsculo. Por exemplo, o nome de classe para gimp é \"Gimp\". Se \"--class\" é especificada, a classe do programa será ajustada para \"classname\"." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags Ativa mensagens Gtk+ trace/debug." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Conecta com o servidor X especificado, onde \"h\" é o \"hostname\", \"s\" é o número do servidor (normalmente 0), e \"d\" é o número da tela (tipicamente omitido). Se \"--display\" não é especificado, a variável de ambiente \"DISPLAY\" é usada." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module module Carregar o módulo especificado na inicialização." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "--name progname Ajusta nome do programa para \"progname\". Se não especificado, nome do programa será ajustado para \"ParamStrUTF8(0)\"." #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug flags Desativa mensagens Gtk+ trace/debug." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient Não ajustar ordenação transiente para formulários modais" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Desativa uso da Extensão de Memória X Compartilhada." #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Chama XSynchronize (display, True) após a conexão com Xserver for estabelecida. Isto cria fácil depuração de erros do protocolo X, porque X solicita que a armazenagem seja desativada e erro X são recebidos imediatamente após o protocolo solicitar que a geração de erros seja processada pelo servidor X." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "%s: já registrado" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "Ajuda contextual não encontrada" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "Banco de dados de ajuda não encontrado" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "Erro na ajuda" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "Ajuda contextual %s não encontrada." #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "Ajuda contextual %s não encontrada no banco de dados %s%s%s." #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "Banco de dados Ajuda%s%s%s não encontra visualizador para página de ajuda do tipo %s" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "Banco de dados de ajuda %s%s%s não encontrado" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "Palavra-chave Ajuda%s%s%s não encontrada" #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "Palavra-chave Ajuda%s%s%s não encontrada no banco de dados %s%s%s." #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "Ramificação ajuda %s%s%s não tem banco de dados ajuda" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "Nenhuma ajuda encontrada para a linha %d, coluna %d de %s." #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "Nenhuma ramificação ajuda disponível" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "Ajuda não encontrada" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "%s: não registrado" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "Erro no seletor de ajuda" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "Não ha visualizador para tipo ajuda %s%s%s" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "Erro no visualizador de ajuda" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "Visualizador de ajuda não encontrado" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "Realçar" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "Texto realçado" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "Luz Quente" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "Recurso de ícone OSX" #: lclstrconsts.rsicon msgid "Icon" msgstr "Ícone" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "Imagem ícone não pode estar vazia" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "Imagem ícone deve ter o mesmo formato" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "Impossível alterar formato da imagem do ícone" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "Imagem ícone deve ter o mesmo tamanho" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "Impossível alterar tamanho da imagem do ícone" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "Ícone não tem imagem atual" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "Borda Inativa" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "Rótulo Inativo" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "Rótulo Inativo" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s Indice %s fora dos limites 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Indice fora de faixa Célula[Col=%d Lin=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "Informações plano de fundo" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "Informações Texto" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "Inserir" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Data Inválida : %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "Data Inválida: %s. Deve estar entre %s e %s" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "fluxo de objeto de Formulário inválido" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Valor de propriedade inválido" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Formato fluxo inválido" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s já está associado com %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "\"Joint Picture Expert Group\"" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "Último" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "Lima" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "Indice lista excede o limite (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "Lista deve estar vazia" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "Marrom" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Abortar" #: lclstrconsts.rsmball msgid "&All" msgstr "&Tudo" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Cancelar" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "&Fechar" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "&Ajuda" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Ignorar" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Não" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Não para todos" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&OK" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "&Abrir" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "&Tentar novamente" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "&Salvar" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "&Destravar" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Sim" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "Sim para &todos" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "Cinza Médio" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "Barra Menu" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "Menu" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "Realce Menu" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "Texto Menu" #: lclstrconsts.rsmodified msgid " modified " msgstr " modificado " #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "Verde dinheiro" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "Autenticação" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Confirmação" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Personalizado" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Erro" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Informação" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Aviso" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "Azul marinho" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "Próximo" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "Nenhum" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Não é um arquivo de grade válido" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "Nenhum objeto \"widgetset\". Favor verificar se a unidade \"interfaces\" foi adicionada à cláusula \"uses\" do programa." #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "Oliva" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "selecionar uma data" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "\"Pixmap\"" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "\"BitMap\" portátil" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "\"GrayMap\" portátil" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "Gráfico Rede Portátil (PNG)" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "\"PixMap\" portátil" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "Postar" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%sPressione Ok para ignorar e correr o risco de corrupção dos dados.%sCancelar para finalizar o Programa." #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "Anterior" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "Propriedade %s não existe" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "Roxo" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "Fim atualização enquanto nenhuma atualização em andamento" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "Impossível salvar imagem enquando atualização em andamento" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "Impossível iniciar atualização de tudo enquanto atualização somente do \"canvas\" em andamento" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "Vermelho" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "Atualizar" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Substituir" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Substituir tudo" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Recurso %s não encontrado" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "Barra deslizante" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Propriedade \"ScrollBar\" fora de faixa" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Selecionar Cor" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Selecionar uma fonte" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "Prata" #: lclstrconsts.rssize msgid " size " msgstr " tamanho " #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "Azul Celeste" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "Verde Musgo" #: lclstrconsts.rstext msgid "Text" msgstr "Texto" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Impossível carregar fonte padrão" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "Erro desconhecido, favor relatar esta falha" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Extensão da imagem desconhecida" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Formato \"bitmap\" não suportado." #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Formato Aréa de Transferência não suportado: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " AVISO: Há %d \"DCs\" não liberados, segue um despejo detalhado:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " AVISO: Há %d \"GDIObjects\" não liberadors, segue um despejo detalhado:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " AVISO: Há %d mensagens restantes na fila! Eu as liberarei" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " AVISO: Há %d estruturas \"TimerInfo\" restantes, eu as liberarei" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr " AVISO: Há %d vínculos de mensagem \"LM_PAINT/LM_GtkPAINT\" não removidos restantes." #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "Branco" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "Somente palavras inteiras" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Erro:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Aviso:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "Janela" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "Quadro Janela" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "Texto Janela" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "Amarelo" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Não é possível focar uma janela inativa ou invísivel" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Menus Duplicados" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Criação de ação inválida" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Enumeração de ação inválida" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Registro de ação inválida" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Desregistro de ação inválida" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "O conjunto de caracteres na máscara \"%s\" não é válido" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Tamanho de imagem inválido" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Índice \"ImageList\" inválido" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Índice Menu fora de faixa" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "Item menu é nulo (nil)" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Submenu não está no menu" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "Nenhum formulário MDI presente." #: lclstrconsts.snotimers msgid "No timers available" msgstr "Nenhum cronômetro disponível" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "Tipo sílaba incorreta: %s esperado" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "Número de ponto flutuante inválido: %s" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "Número inteiro inválido: %s" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "(em %s,%s, deslocamento fluxo %.8x)" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "Valor \"byte\" não terminado" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "Sequência de caracteres não terminada" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "Símbolo sílaba incorreto: %s esperado mas %s encontrado" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "Tipo sílaba incorreto: %s esperado mas %s encontrado" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.tr.po��������������������������������������������������������0000750�0001750�0001750�00000076145�11214023776�021564� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Last-Translator: Hakan KIZILHAN <hakan486@yahoo.com>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Project-Id-Version: \n" "POT-Creation-Date: \n" "PO-Revision-Date: 2008-03-11 00:06+0200\n" "Language-Team: \n" "MIME-Version: 1.0\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "%s%s%s tarayıcısı çalıştırılabilir değil." #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "%s%s%s tarayıcısı bulunamadı." #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "%s%s%s:%s%s çalıştırılırken hata" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "HTML tarayıcı bulunamıyor." #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "HTML tarayıcı bulunamadı. %s Yardım -> Yardımı Yapılandır -> Görüntüleyiciler'den bir tane tanımlayın" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "%s%s%s yardım veritabanı, %s%s%s dosyasını bulamadı." #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "BrowserParams içindeki %s betiği(makro) URL ile değiştirilecek." #: lclstrconsts.ifsalt msgid "Alt" msgstr "Alt" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "Ctrl" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "Kabul" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "uygulama tuşu" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "Silme" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "Büyük harf" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "Temizle" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "Kontrol" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Dönüştür" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "Aşağı" #: lclstrconsts.ifsvk_end msgid "End" msgstr "Sona git" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "Çıkış karakteri" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "Çalıştır" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "Final" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "Hanja" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Yardım" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "Başa git" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "Junja" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "Kana" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Sol fare düğmesi" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "Sol" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "sol windows tuşu" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Orta fare düğmesi" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "Menü" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "Kip değişimi" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "Dönüştürme" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "Numlock" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "Nümerik %d" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "Durdurma tuşu" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "Yazdır" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Sağ fare düğmesi" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "Giriş" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "Sağ" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "sağ windows tuşu" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "Kaydırma" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "Seçim" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "Üstkarakter" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "Kare yakala" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "Boşluk tuşu" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "Sekme" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "Bilinmeyen" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "Yukarı" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "%s adlı kaynak bulunamadı" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Bir denetim, kendikendini üstdenetim(parent) olarak gösteremez" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Tüm dosyalar (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "Geriye doğru" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "Bitmap resimleri" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "" #: lclstrconsts.rsblank msgid "Blank" msgstr "Boş" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Hesap makinesi" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Odaklanamıyor" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Tuval(canvas) çizmeye izin vermiyor" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "Büyük/küçük harfe duyarlı" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "gdb catchable yaratma hatası:" #: lclstrconsts.rscursor msgid "Cursor" msgstr "" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "" #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "kullanıcı grup boyut tarih zaman izinleri" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "Kayıt silinsin mi?" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "Sil" #: lclstrconsts.rsdirection msgid "Direction" msgstr "Yön" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "&Dizin" #: lclstrconsts.rsdocking msgid "Docking" msgstr "Gömme" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "" #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "%s için aygıt bağlamı oluşturulurken hata.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "LCL'de HATA:" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "%s @ %s içinde hata oluştu. Adres %s%s Çerçeve %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "%s%s%s okunurken hata: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "Bitmap verisini kaydederken hata." #: lclstrconsts.rsexception msgid "Exception" msgstr "İstisna" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Dizin var olmak zorunda" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "\"%s\" dizini mevcut değil." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "\"%s\" adlı dosya zaten var. Üzerine yazılsın mı?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Dosya var olmak zorunda" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "\"%s\" dosyası mevcut değil." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "\"%s\" dosyası yazılabilir değil." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "Dosya yazılabilir değil" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Dosyayı farklı kaydet" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Var olan bir dosyayı aç" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Dosyanın üzerine yazılsın mı?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "Yol var olmak zorunda" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "\"%s\" yolu mevcut değil." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Dizin seç" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(dosya bulunamadı: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Dosya bilgisi" #: lclstrconsts.rsfind msgid "Find" msgstr "Ara" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "Daha fazla ara" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols >= ColCount olamaz" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows >= RowCount olamaz" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Form akışı \"%s\" hatası: %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "İleriye doğru" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug flags GDK'ya özgü izleme/hata ayıklama iletilerini açar." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "-gdk-no-debug flags GDK'ya özgü izleme/hata ayıklama iletilerini kapatır." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings Gtk+/GDK tarafından üretilen hatalar ve uyarılar uygulamayı sonlandıracak." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "Izgara dosyası mevcut değil" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "Izgara tanımlayıcısı sınırın dışında." #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex değeri, önceki menü bileşeninin GroupIndex değerinden az olamaz" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Süzgeç:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "Geçmiş:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class classname Bir programın sınıfı büyük harfle başlayan program adıyla aynı ise, Xt geleneklerini izler. Örneğin, gimp için sınıf adı \"Gimp\". Eğer --class belirtilmişse, program sınıfı \"classname\" olacak şekilde ayarlanacaktır." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags Gtk+'a özgü izleme/hata ayıklama iletilerini açar." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Belirtilen X sunucusuna bağlanır, \"h\" bilgisayar adı, \"s\" sunucu numarası (genellikle 0), ve \"d\" ekran numarasıdır (genellikle yazılmaz). Eğer --display belirtilmezse, DISPLAY ortam değişkeni kullanılır." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module module Belirtilen modülü başlangıçta yükler." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "" #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug flags Gtk+'a özgü izleme/hata ayıklama iletilerini kapatır." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient modal pencereler için transient sıralama seçeneğini ayarlama" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm X paylaşımlı bellek genişletmesini kullanmayı kapatır." #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Xserver bağlantısı sağlandıktan sonra XSynchronize (display, True) işlevini çağırır. Bu X protokol hatalarını ayıklamayı kolaylaştırır, çünkü X istek tamponlama kapalı olacaktır ve X hataları hata oluşturan protokol isteği X sunucu tarafından işlendikten hemen sonra alınacaktır." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "%s: Zaten kaydedilmiş" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "Yardım bağlamı bulunamadı" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "Yardım veritabanı bulunamadı" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "Yardım hatası" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "%s yardım bağlamı bulunamadı." #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "%s yardım bağlamı, %s%s%s veritabanı içinde bulunamadı." #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "%s%s%s yardım veritabanı %s türündeki yardım sayfası için bir görüntüleyici bulamadı" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "%s%s%s Yardım veritabanı bulunamadı" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "%s%s%s yardım anahtar sözcüğü bulunamadı." #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "%s%s%s Yardım anahtar sözcüğü %s%s%s veritabanı içinde bulunamadı." #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "%s%s%s yardım düğümü yardım veritabanına sahip değil" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "%s'nin satır %d, sütun %d için yardım bulunamadı." #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "Kullanılabilir yardım düğümü yok" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "Yardım bulunamadı" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "%s: kaydedilmemiş" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "Yardım seçici hatası" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "%s%s%s yardım türü için bir görüntüleyici yok" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "Yardım görüntüleyici hatası" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "Yardım görüntüleyici bulunamadı" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "Simge" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s Dizin %d sınırların dışında 0.. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Tanımlayıcı sınırın dışında Cell[Col=%d Row=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "Ekle" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Geçersiz tarih : %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "Geçersiz tarih : %s. %s ve %s arasında olmalı" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "Geçersiz Form nesnesi akışı" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Geçersiz özellik değeri" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Geçersiz akış biçimi" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s, zaten %s ile birleştirilmiş durumda" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "Joint Picture Expert Group" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "Liste tanımlayıcısı sınırları aşıyor (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "Liste boş olmak zorunda" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Vazgeç" #: lclstrconsts.rsmball msgid "&All" msgstr "Tümü" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "İptal" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "Kapa&t" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "&Yardım" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Yoksay" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Hayır" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Tümüne hayır" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&Tamam" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "Tek&rar dene" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Evet" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "Tümüne evet" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "Menü" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr " değiştirilmiş " #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Onaylama" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Özel" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Hata" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Bilgi" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Dikkat" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "Sonraki" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Geçerli bir ızgara dosyası değil" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "Parçacık nesnesi yok. Lütfen \"interfaces\" biriminin programın uses bölümüne eklenip eklenmediğini denetleyin." #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Bir tarih seç" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "Pixmap" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "Taşınabilir BitMap" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "Taşınabilir GrayMap" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "Taşınabilir ağ grafiği" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "Taşınabilir PixMap" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #, fuzzy #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%s Yoksaymak ve verinin bozulması riskiyle devam etmek için Tamam'a basın. %s Programı sonlandırmak için İptal'e basın." #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "Önceki" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "%s özelliği mevcut değil" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Değiştir" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Tümünü değiştir" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "%s adlı kaynak bulunamadı" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "ScrollBar özelliği sınırın dışında" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Renk seç" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Yazıtipi seç" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "" #: lclstrconsts.rssize msgid " size " msgstr " boyut " #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "Metin" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Varsayılan yazıtipi yüklenemiyor" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "Bilinmeyen hata, lütfen bu hatayı bildirin" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Bilinmeyen resim genişletmesi" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Desteklenmeyen bitmap biçimi." #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Desteklenmeyen pano biçimi: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " DİKKAT: %d adet serbest bırakılmamış DC var, ayrıntılı döküm aşağıda:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " DİKKAT: %d adet serbest bırakılmamış GDIObject var, ayrıntılı döküm aşağıda:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " DİKKAT: Kuyrukta %d adet mesaj kaldı! Onları serbest bırakacağım" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " DİKKAT: %d adet TimerInfo yapısı kaldı, onları serbest bırakacağım" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr " DİKKAT: %s adet kaldırılmamış LM_PAINT/LM_GtkPAINT mesaj bağlantısı kaldı." #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "Yalnızca tam sözcükler" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Hata:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Dikkat:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Etkisizleştirilmiş ya da görünmez pencerelere odaklanılamaz" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Birbirinin aynı menüler" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Geçersiz eylem yaratma" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Geçersiz eylem sayımı" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Geçersiz eylem kaydetme" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Geçersiz eylem kaydı silme" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "maskede \"%s\" ile gösterilen karakter geçerli değil!" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Geçersiz görüntü boyutu" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Geçersiz ImageList tanımlayıcısı" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Menü tanımlayıcısı sınırın dışında" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "MenuItem nil" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Alt-menü, menü içinde değil" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "MDI Pencere mevcut değil." #: lclstrconsts.snotimers msgid "No timers available" msgstr "Kullanılabilir zamanlayıcı yok" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.fr.po��������������������������������������������������������0000750�0001750�0001750�00000077337�11214023776�021552� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "Last-Translator: Laurent Jacques <wile64@gmail.com>\n" "PO-Revision-Date: 2008-09-04 11:40+0100\n" "Language-Team: Laurent Jacques <wile64@gmail.com>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "MIME-Version: 1.0\n" "POT-Creation-Date: \n" "Project-Id-Version: \n" "X-Poedit-Bookmarks: -1,190,-1,-1,-1,-1,-1,-1,-1,-1\n" "X-Poedit-Language: French\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "Navigateur %s%s%s non exécutable." #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "Navigateur %s%s%s non trouvé." #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "Erreur en exécutant %s%s%s : %s%s" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "Impossible de trouver un navigateur de HTML. " #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "Aucun navigateur HTML trouvé. %s définissés en un dans Aide->Configurer l'aide->Visionneuses" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "La base de données d'aide %s%s%s ne trouve pas le fichier %s%s%s." #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "La macro %s dans BrowserParams sera remplacé par l'URL." #: lclstrconsts.ifsalt msgid "Alt" msgstr "Alt" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "Ctrl" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "Accepter" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "Touche Application" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "Retour arriére" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "Majuscule" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "Effacer" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "Contrôle" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Convertir" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "Bas" #: lclstrconsts.ifsvk_end msgid "End" msgstr "Fin" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "Echappement" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "Exécuter" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "Final" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "Hanja" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Aide" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "Maison" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "Junja" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "Kana" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Bouton gauche de la souris" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "Gauche" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "Touche Windows gauche" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Bouton central de la souris" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "Menu" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "Changement de mode" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "Non converti" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "Verr num." #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "%d pav num." #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "Touche Pause" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "Imprimer" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Bouton droit de la souris" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "Retour" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "Droite" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "Touche Windows droite" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "Défilement" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "Sélectionner" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "Maj" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "Capture d'écran" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "Barre d'espace" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "Étiquette" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "Inconnu" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "Haut" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Ressource %s non trouve" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Un contrôle ne peut pas être son propre parent" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Tous les fichiers (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "Arrière" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "Images" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "" #: lclstrconsts.rsblank msgid "Blank" msgstr "Blanc" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Calculateur" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Impossible de focaliser" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Dessin sur le Canvas non autorisé" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "Respecter la casse" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Créer une erreur d'arret de gdb :" #: lclstrconsts.rscursor msgid "Cursor" msgstr "Curseur" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "" #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "permission utilisateur groupe taille date heure" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "Supprimer l'enregistrement ?" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "Supprimer" #: lclstrconsts.rsdirection msgid "Direction" msgstr "Direction" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "&Répertoire" #: lclstrconsts.rsdocking msgid "Docking" msgstr "Amarrage" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "Format icône Dupliquer." #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Erreur en écrant le contexte de dispositif pour %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "ERREUR dans LCL : " #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Une erreur s'est produite dans %s %s l'adresse %s%s page %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Erreur de lecture %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "Erreur en sauvegardent l'image." #: lclstrconsts.rsexception msgid "Exception" msgstr "Exception" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Le répertoire doit exister" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "Le répertoire \"%s\" n'existe pas." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "Le fichier \"%s\" existe déjà. Ecraser ? " #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Le fichier doit exister" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "Le fichier \"%s\" n'existe pas" #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "Le fichier \"%s\" est en lecture seule" #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "Fichier protégé en écriture" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Enregistrer le fichier sous" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Ouvrir un fichier existant" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Ecraser le fichier ?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "Le chemin doit exister" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "Le répertoire \"%s\" n'existe pas" #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Choisir un répertoire" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(Fichier \"%s\" non trouvé)" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Informations fichier" #: lclstrconsts.rsfind msgid "Find" msgstr "Chercher" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "Chercher encore" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols ne peut pas être supérieur ColCount" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows ne peut pas être supérieur RowCount" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Dans le flux de fiche \"%s\" : erreur %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "Avant" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug flags Activer les messages spécifique GDK+ trace/debug." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug flags Arrêter les messages spécifique GDK+ trace/debug." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings Les avertissements et les erreurs produits par Gtk+/GDK stopperont l'application." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "Le fichier Grid n'existe pas" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "Index de grille hors limite." #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex ne peut pas être inférieur au GroupIndex des éléments précédents" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Filtre :" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "Historique" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class classname Suivre la convention Xt, la classe d'un programme est le nom de programme avec le caractère initial en majuscule. Par exemple, le nom de classe pour gimp est \"Gimp\". Si --class est indiquée, la classe du programme sera réglé sur \"classname\"." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags Activer les messages spécifique Gtk+ trace/debug." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Se connecter à X serveur, où \"h\" est le nom d'hôte, \"s\" est le nombre de serveur (habituellement 0), et \"d\" est le nombre d'affichage (typiquement omis). Si --l'affichage n'est pas indiqué, la variable d'environnement DISPLAY est employé." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module module Charger le module indiqué au démarrage." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "--name programme Ensemble pour le nom du programme \"progname\". Si non spécifiée, le nom du programme sera fixée à ParamStrUTF8 (0)." #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug flags Arrêter les messages spécifique Gtk+ trace/debug." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient Ne mettez pas d'ordre transitoire pour les formes modales" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Désactive l'utilisation de la mémoire étendu partagée par X." #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Appel XSynchronize (affichage, Vrai) après que le raccordement au serveur X ait été établi. Ceci rend le déboguage des erreurs du protocole X plus faciles, parce que les demandes de buffer par X sont désactivé et les erreurs de X seront reçu immédiatement après la demande de protocole qui a produit l'erreur traité par le serveur X." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "%s : Déjà enregistré" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "Contexte d'aide non trouvé" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "Base de données d'aide non trouvée" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "Erreur d'aide" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "Contexte d'aide %s non trouvé." #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "Contexte d'aide %s non trouvé dans la base de données %s%s%s." #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "La base de données d'aide %s%s%s n'a pas trouvé une visionneuse pour une page d'aide du type %s" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "Base de données d'aide %s%s%s non trouvée" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "Mot-clé d'aide %s%s%s non trouvé." #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "Mot-clé d'aide %s%s%s non trouvé dans la base de données %s%s%s. " #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "Le noeud d'aide %s%s%s n'a aucune base de données" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "Aucune aide trouvé pour la ligne %d, colonne %d de %s." #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "Aucuns noeuds d'aide disponibles" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "Aide non trouvé" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "%s : Non enregistré" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "Erreur de sélecteur d'aide" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "Il n'y a aucune visionneuse pour ce type d'aide %s%s%s" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "Erreur de visionneuse d'aide" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "Visionneuse d'aide non trouvée" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "Osx icône ressource" #: lclstrconsts.rsicon msgid "Icon" msgstr "Icône" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "L'image icône ne peut pas être vide" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "L'image d'icône doit avoir le même format" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "Impossible de modifier le format d'image de l'icône" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "L'image d'icône doit avoir la même taille" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "Impossible de modifier la taille d'image de l'icône" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "L'icône n'a pas d'image" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s Index %d hors des limites 0 .. %d " #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Index hors limites Cell[Col=%d Row=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "Insérer" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Date invalide : %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "Date invalide : %s. Doit être entre %s et %s " #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "Flux d'objet fiche invalide" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Valeur de propriété incorrecte" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Format de flux incorrecte" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s est déjà associé avec %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "Joint Picture Expert Group" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "Index de liste hors limites (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "La liste doit être vide" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Abandonner" #: lclstrconsts.rsmball msgid "&All" msgstr "&Tout" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Annuler" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "&Fermer" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "&Aide" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Ignorer" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Non" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Non pour tout" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&OK" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "Réessayer" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Oui" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "Oui à &tous" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "Menu" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr " modifier" #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Confirmation" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Personnalisé" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Erreur" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Information" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Avertissement" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "Suivant" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "N'est pas un fichier de grille correct" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "Aucun objet widgetset. Vérifier si l'unité \"interfaces\" est ajouté à la clause uses du programme." #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Choisir une date" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "Pixmap" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "Portable BitMap" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "Portable GrayMap" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "Portable Network Graphic" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "Portable PixMap" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #, fuzzy #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%s Pressez OK pour ignorer et risquer des données corruption.%s Pressez Annuler pour fermer le programme. " #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "Précédent" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "La propriété %s n'existe pas" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Remplacer" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Remplacer tous" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Ressource %s non trouve" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Propriété ScrollBar hors limites" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Choisir une couleur" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Choisir une police" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "" #: lclstrconsts.rssize msgid " size " msgstr " taille" #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "Texte" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Impossible de charger la police par défaut" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "Erreur inconnue, rapporter ce bogue svp" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Type d'image inconnu" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Format de bitmap non supporté." #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Format %s de presse-papiers non supporté" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " ATTENTION : Il y a %d DCs non libres, en voici le détail : " #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " ATTENTION : Il y a %d GDIObjects non libres, en voici le détail : " #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " ATTENTION : il y a %d messages en file d'attente ! Ils seront supprimés." #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " ATTENTION : Il y a %d structures TimerInfo, elles seront supprimés." #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr " ATTENTION : Il y a %s non enlevé LM_PAINT/LM_GtkPAINT liens de message." #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "Mots entiers seulement " #: lclstrconsts.rswin32error msgid "Error:" msgstr "Erreur:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Attention :" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Impossible de focaliser une fenêtre invisible ou désactive" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Doublons de Menus" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Création d'action non valide" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Enumration d'action non valide" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Référencement d'action non valide" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Déréférencement d'action non valide" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "Le caractère placer dans le masque \"%s\" n'est pas valide !" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Taille d'image non valide" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Index de liste d'images non valide" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Index de menu hors limites" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "MenuItem n'est pas assigné (nil)" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Le sous-menu n'est pas dans le menu" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "Aucune fiche MDI présente" #: lclstrconsts.snotimers msgid "No timers available" msgstr "Aucun temporisateur disponible" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "Nombre à virgule flottante non valide : %s" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "Nombre entier non valide : %s" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "Chaîne non terminé" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.fi.po��������������������������������������������������������0000750�0001750�0001750�00000063164�11214023776�021532� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "" #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "" #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "" #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "" #: lclstrconsts.ifsalt msgid "Alt" msgstr "" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "Hyväksy" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "" #: lclstrconsts.ifsvk_end msgid "End" msgstr "" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Kaikki tiedostot (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "Taaksepäin" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "" #: lclstrconsts.rsblank msgid "Blank" msgstr "" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Laskin" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "Sama kirjainkoko" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "" #: lclstrconsts.rscursor msgid "Cursor" msgstr "" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "" #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "oikeudet käyttäjä ryhmä koko päivä aika" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "" #: lclstrconsts.rsdirection msgid "Direction" msgstr "Suunta" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "" #: lclstrconsts.rsdocking msgid "Docking" msgstr "" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "" #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "" #: lclstrconsts.rsexception msgid "Exception" msgstr "" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "" #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Tiedosto täytyy olla olemassa" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "Tiedostoa \"%s\" ei ole olemassa." #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "" #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Tallenna nimellä" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Avaa tiedosto" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Tallennetaanko vanhan päälle ?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "" #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Valitse kansio" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(tiedostoa ei löytynyt: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Tiedoston tietoja" #: lclstrconsts.rsfind msgid "Find" msgstr "Etsi" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols ei voi olla suurempi kuin kaikkien sarakkeiden määrä (ColCount)" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows ei voi olla suurempi kuin kaikkien rivien määrä (RowCount)" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "" #: lclstrconsts.rsforward msgid "Forward" msgstr "Eteenpäin" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "" #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "" #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "" #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "" #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Suodatus:" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "Historia:" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "" #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "" #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "" #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "" #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "" #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "" #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "" #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "" #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "" #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "" #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "" #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Ideksi osoittaa taulukon ulkopuolella olevaa solua [saraketta(col)=%d ja riviä(row)=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Laiton päivämäärä: %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Keskeytä" #: lclstrconsts.rsmball msgid "&All" msgstr "Kaikki" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Peru" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "&Sulje" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "&Ohje" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "Ohita" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Ei" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Ei kaikkiin" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&OK" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "Uudelleen" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Kyllä" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "Kyllä, kaikki" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr " muokattu " #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Vahvistus" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Virhe" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Informaatio" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Varoitus" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "" #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Valitse päivä" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok #, fuzzy #| msgid "%s%sPress Ok to ignore and risk data corruption.%sPress Cancel to kill the program." msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "%s%sPaina 'Ok'-näppäintä jos haluat ohittaa varoituksen ja ottaa riskin tietojen (datan) sekoamisesta.%sPaina 'Peru'-näppäintä poistuaksesi ohjelmasta." #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "" #: lclstrconsts.rsreplace msgid "Replace" msgstr "Etsi ja korvaa" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "Korvaa kaikki" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Valitse väri" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Valitse fontti" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "" #: lclstrconsts.rssize msgid " size " msgstr " koko " #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "Teksti" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "" #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr "" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr "" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr "" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr "" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr "" #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "Etsi vain kokonaisia sanoja" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Virhe:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Varoitus:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "" #: lclstrconsts.snotimers msgid "No timers available" msgstr "" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.ua.po��������������������������������������������������������0000750�0001750�0001750�00000077075�11214023776�021547� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "" #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "" #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "" #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "" #: lclstrconsts.ifsalt msgid "Alt" msgstr "" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "Прийняти" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "кнопка програми" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "Забій" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "Заголовний" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "Очистити" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "Контрол" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "Перетворити" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "Вниз" #: lclstrconsts.ifsvk_end msgid "End" msgstr "Кінець" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "Виконувати" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "Кінцевий" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "Корейська" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "Допомога" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "Кенійська" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "Японська" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "Ліва кнопка мишки" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "Вліво" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "ліва кнопка Win" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "Середня кнопка мишки" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "Меню" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "Зміна режиму" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "Неконвертоване" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "Numpad %d" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "Кнопка Pause" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "Друкувати" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "Права кнопка мишки" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "права кнопка Win" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "Вибрати" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "Знімок" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "Пробіл" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "Невідомий" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "Вверх" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "Ресурсу %s не знайдено" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "Елемент управління не може бути сам собі предком" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "Всі файли (%s)|%s|%s" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "Піктограмки" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "" #: lclstrconsts.rsblank msgid "Blank" msgstr "Порожній" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "Калькулятор" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "Не можу прийняти фокус" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "Канва не підтримує малювання" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "Створення помилки кешування gdb:" #: lclstrconsts.rscursor msgid "Cursor" msgstr "" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "" #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "дозволи користувача група дата час" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "Видалити" #: lclstrconsts.rsdirection msgid "Direction" msgstr "" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "" #: lclstrconsts.rsdocking msgid "Docking" msgstr "" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "" #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "Помилка створення контексту пристроїв для %s.%s" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "ПОМИЛКА в LCL:" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "Сталась помилка в %s за %s адресою %s%s Кадр %s" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "Помилка читання %s%s%s: %s" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "" #: lclstrconsts.rsexception msgid "Exception" msgstr "Виняткова ситуація" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "Має існувати тека" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "Теки \"%s\" не існує." #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "Такий файл \"%s\" вже існує. Переписати його ?" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "Файл має існувати" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "Файл \"%s\" не існує" #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "Файл \"%s\" не для запису." #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "Файл тільки для читання" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "Зберегти файл як" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "Відкрити існуючий файл" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "Переписати файл ?" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "Шлях має існувати" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "Шлях \"%s\" не існує." #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "Виберіть теку" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "(файл не знайдений: \"%s\")" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "Інформація про файл" #: lclstrconsts.rsfind msgid "Find" msgstr "" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "FixedCols не може бути >= ColCount" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "FixedRows не може бути >= RowCount" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "Помилка потоків \"%s\" форм: %s" #: lclstrconsts.rsforward msgid "Forward" msgstr "" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "--gdk-debug flags Ввімкнути вказані налагоджувальні повідомлення GDK." #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "--gdk-no-debug flags Вимкнути вказані налагоджувальні повідомлення GDK." #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "--g-fatal-warnings Попередження і помилки програми, згенеровані Gtk+/GDK, зупинятимуть програму." #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "Файла сітки не існує" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "" #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "GroupIndex не може бути менше GroupIndex для попереднього елемента меню" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "Фільтр" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "Історія" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "--class classname Відповідно до домовленостей Xt, класом програмим є її назва з великої літери. Напр., назвою класу для gimp є \"Gimp\". Якщо вказано --class, клас програми буде встановлено в \"classname\"." #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "--gtk-debug flags Ввімкнути вказані налагоджувальні повідомлення Gtk+." #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "--display h:s:d Зв'язатись із вказаним сервером іксів, де \"h\" - назва хоста, \"s\" - номер сервера (звичайно 0) і \"d\" - номер дисплея (звичайно нехтують). Якщо --display не вказаний, використовується змінна оточення DISPLAY." #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "--gtk-module модуль Завантажити вказаний модуль при запуску." #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "" #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "--gtk-no-debug flags Вимкнути вказані налагоджувальні повідомлення Gtk+." #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "--lcl-no-transient Не встановлювати тимчасовий порядок модальних форм" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "--no-xshm Заборонити використання розширень Х-пам'яті, що розділяється." #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "--sync Виклик XSynchronize (display, True) після встановлення з'єднання з Xserver'ом. Це полегшує налагодження помилок протокола X через те, що запити буферування X будуть вимкнені і помилки X будуть одержані одразу після запиту протоколу, який викликав цю помилку, яка була оброблена сервером X." #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "" #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "" #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "" #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "Іконка" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "%s Індекс %d поза діапазоном 0 .. %d" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "Індекс поза діапазоном Cell[Col=%d Row=%d]" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "Вставка" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "Неправильна Дата : %s" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "Неправильна Дата: %s. Має бути між %s та %s" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "неправильний потік об'єкту Форми" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "Неправильне значення властивості" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "Неправильний формат потоку" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "%s вже зіставлено з %s" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "Індекс списку поза діапазоном (%d)" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "Список має бути порожнім" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "Скидання" #: lclstrconsts.rsmball msgid "&All" msgstr "&Всі" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "Скасувати" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "&Закрити" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "&Довідка" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "&Знехтувати" #: lclstrconsts.rsmbno msgid "&No" msgstr "&Ні" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "Ні для всіх" #: lclstrconsts.rsmbok msgid "&OK" msgstr "&ОК" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "&Повтор" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "&Так" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "Меню" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr "змінений" #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "Підтвердження" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "Спеціальний" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "Помилка" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "Відомості" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "Попередження" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "Наступний" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "Неправильний файл сітки" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "Об'єкт не є widgetset. Перевірте, чи був доданий модуль \"interfaces\" до програмних частин uses." #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "Виберіть дату" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "Pixmap" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "Портативна мережева графіка PNG" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "" #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "Попередній" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "Властивості %s не існує" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "" #: lclstrconsts.rsreplace msgid "Replace" msgstr "" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "Ресурсу %s не знайдено" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "Властивість ScrollBar поза діапазоном" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "Вибати колір" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "Вибрати шрифт" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "" #: lclstrconsts.rssize msgid " size " msgstr "розмір" #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "Не можу завантажити шрифт за замовчуванням" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "Невідоме розширення файлу зображення" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "Не підтримуваний тип точкового малюнка." #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "Формат не підтримує буфер обміну: %s" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr " УВАГА: Знайдено %d не звільнених контекстів пристроїв, список див. нижче:" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr " УВАГА: Знайдено %d не звільнених GDIObject, список див. нижче:" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr " УВАГА: В черзі залишилось %d повідомлень! Я їх видаляю" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr " УВАГА: Залишилось %d структур TimerInfo, я їх звільняю" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr " УВАГА: Знайдено %s не видалених LM_PAINT/LM_GtkPAINT посилань на повідомлення." #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "" #: lclstrconsts.rswin32error msgid "Error:" msgstr "Помилка:" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "Попередження:" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "Не можна дати фокус вимкненому або невидимому вікну" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "Повторювані меню" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "Неправильне створення дії" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "Неправильне перерахування дій" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "Неправильна реєстрація дії" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "Неправильна дія зняття реєстрації" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "Неправильний розмір малюнка" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "Неправильний індекс ImageList" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "Індекс меню поза діапазоном" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "MenuItem вказує на nil" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "Підменю не в меню" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "Немає MDI форми" #: lclstrconsts.snotimers msgid "No timers available" msgstr "Таймери є недоступними" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/languages/lclstrconsts.po�����������������������������������������������������������0000750�0001750�0001750�00000061033�11214023776�021126� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lclstrconsts.hhshelpbrowsernotexecutable msgid "Browser %s%s%s not executable." msgstr "" #: lclstrconsts.hhshelpbrowsernotfound msgid "Browser %s%s%s not found." msgstr "" #: lclstrconsts.hhshelperrorwhileexecuting msgid "Error while executing %s%s%s:%s%s" msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfound msgid "Unable to find a HTML browser." msgstr "" #: lclstrconsts.hhshelpnohtmlbrowserfoundpleasedefineoneinhelpconfigurehe msgid "No HTML Browser found.%sPlease define one in Help -> Configure Help -> Viewers" msgstr "" #: lclstrconsts.hhshelpthehelpdatabasewasunabletofindfile msgid "The help database %s%s%s was unable to find file %s%s%s." msgstr "" #: lclstrconsts.hhshelpthemacrosinbrowserparamswillbereplacedbytheurl msgid "The macro %s in BrowserParams will be replaced by the URL." msgstr "" #: lclstrconsts.ifsalt msgid "Alt" msgstr "" #: lclstrconsts.ifsctrl msgid "Ctrl" msgstr "" #: lclstrconsts.ifsvk_accept msgid "Accept" msgstr "" #: lclstrconsts.ifsvk_apps msgid "application key" msgstr "" #: lclstrconsts.ifsvk_back msgid "Backspace" msgstr "" #: lclstrconsts.ifsvk_cancel msgctxt "lclstrconsts.ifsvk_cancel" msgid "Cancel" msgstr "" #: lclstrconsts.ifsvk_capital msgid "Capital" msgstr "" #: lclstrconsts.ifsvk_clear msgid "Clear" msgstr "" #: lclstrconsts.ifsvk_control msgid "Control" msgstr "" #: lclstrconsts.ifsvk_convert msgid "Convert" msgstr "" #: lclstrconsts.ifsvk_delete msgctxt "lclstrconsts.ifsvk_delete" msgid "Delete" msgstr "" #: lclstrconsts.ifsvk_down msgid "Down" msgstr "" #: lclstrconsts.ifsvk_end msgid "End" msgstr "" #: lclstrconsts.ifsvk_escape msgid "Escape" msgstr "" #: lclstrconsts.ifsvk_execute msgid "Execute" msgstr "" #: lclstrconsts.ifsvk_final msgid "Final" msgstr "" #: lclstrconsts.ifsvk_hanja msgid "Hanja" msgstr "" #: lclstrconsts.ifsvk_help msgid "Help" msgstr "" #: lclstrconsts.ifsvk_home msgid "Home" msgstr "" #: lclstrconsts.ifsvk_insert msgctxt "lclstrconsts.ifsvk_insert" msgid "Insert" msgstr "" #: lclstrconsts.ifsvk_junja msgid "Junja" msgstr "" #: lclstrconsts.ifsvk_kana msgid "Kana" msgstr "" #: lclstrconsts.ifsvk_lbutton msgid "Mouse Button Left" msgstr "" #: lclstrconsts.ifsvk_left msgid "Left" msgstr "" #: lclstrconsts.ifsvk_lwin msgid "left windows key" msgstr "" #: lclstrconsts.ifsvk_mbutton msgid "Mouse Button Middle" msgstr "" #: lclstrconsts.ifsvk_menu msgctxt "lclstrconsts.ifsvk_menu" msgid "Menu" msgstr "" #: lclstrconsts.ifsvk_modechange msgid "Mode Change" msgstr "" #: lclstrconsts.ifsvk_next msgctxt "lclstrconsts.ifsvk_next" msgid "Next" msgstr "" #: lclstrconsts.ifsvk_nonconvert msgid "Nonconvert" msgstr "" #: lclstrconsts.ifsvk_numlock msgid "Numlock" msgstr "" #: lclstrconsts.ifsvk_numpad msgid "Numpad %d" msgstr "" #: lclstrconsts.ifsvk_pause msgid "Pause key" msgstr "" #: lclstrconsts.ifsvk_print msgid "Print" msgstr "" #: lclstrconsts.ifsvk_prior msgctxt "lclstrconsts.ifsvk_prior" msgid "Prior" msgstr "" #: lclstrconsts.ifsvk_rbutton msgid "Mouse Button Right" msgstr "" #: lclstrconsts.ifsvk_return msgid "Return" msgstr "" #: lclstrconsts.ifsvk_right msgid "Right" msgstr "" #: lclstrconsts.ifsvk_rwin msgid "right windows key" msgstr "" #: lclstrconsts.ifsvk_scroll msgid "Scroll" msgstr "" #: lclstrconsts.ifsvk_select msgid "Select" msgstr "" #: lclstrconsts.ifsvk_shift msgid "Shift" msgstr "" #: lclstrconsts.ifsvk_snapshot msgid "Snapshot" msgstr "" #: lclstrconsts.ifsvk_space msgid "Space key" msgstr "" #: lclstrconsts.ifsvk_tab msgid "Tab" msgstr "" #: lclstrconsts.ifsvk_unknown msgid "Unknown" msgstr "" #: lclstrconsts.ifsvk_up msgid "Up" msgstr "" #: lclstrconsts.lislclresourcesnotfound msgctxt "lclstrconsts.lislclresourcesnotfound" msgid "Resource %s not found" msgstr "" #: lclstrconsts.rs3ddkshadowcolorcaption msgid "3D Dark Shadow" msgstr "" #: lclstrconsts.rs3dlightcolorcaption msgid "3D Light" msgstr "" #: lclstrconsts.rsacontrolcannothaveitselfasparent msgid "A control can't have itself as parent" msgstr "" #: lclstrconsts.rsactivebordercolorcaption msgid "Active Border" msgstr "" #: lclstrconsts.rsactivecaptioncolorcaption msgid "Active Caption" msgstr "" #: lclstrconsts.rsallfiles msgid "All files (%s)|%s|%s" msgstr "" #: lclstrconsts.rsappworkspacecolorcaption msgid "Application Workspace" msgstr "" #: lclstrconsts.rsaquacolorcaption msgid "Aqua" msgstr "" #: lclstrconsts.rsbackgroundcolorcaption msgid "Desktop" msgstr "" #: lclstrconsts.rsbackward msgid "Backward" msgstr "" #: lclstrconsts.rsbitmaps msgid "Bitmaps" msgstr "" #: lclstrconsts.rsblackcolorcaption msgid "Black" msgstr "" #: lclstrconsts.rsblank msgid "Blank" msgstr "" #: lclstrconsts.rsbluecolorcaption msgid "Blue" msgstr "" #: lclstrconsts.rsbtnfacecolorcaption msgid "Button Face" msgstr "" #: lclstrconsts.rsbtnhighlightcolorcaption msgid "Button Highlight" msgstr "" #: lclstrconsts.rsbtnshadowcolorcaption msgid "Button Shadow" msgstr "" #: lclstrconsts.rsbtntextcolorcaption msgid "Button Text" msgstr "" #: lclstrconsts.rscalculator msgid "Calculator" msgstr "" #: lclstrconsts.rscancelrecordhint msgctxt "lclstrconsts.rscancelrecordhint" msgid "Cancel" msgstr "" #: lclstrconsts.rscannotfocus msgid "Can not focus" msgstr "" #: lclstrconsts.rscanvasdoesnotallowdrawing msgid "Canvas does not allow drawing" msgstr "" #: lclstrconsts.rscaptiontextcolorcaption msgid "Caption Text" msgstr "" #: lclstrconsts.rscasesensitive msgid "Case sensitive" msgstr "" #: lclstrconsts.rscreamcolorcaption msgid "Cream" msgstr "" #: lclstrconsts.rscreatinggdbcatchableerror msgid "Creating gdb catchable error:" msgstr "" #: lclstrconsts.rscursor msgid "Cursor" msgstr "" #: lclstrconsts.rscustomcolorcaption msgid "Custom ..." msgstr "" #: lclstrconsts.rsdefaultcolorcaption msgid "Default" msgstr "" #: lclstrconsts.rsdefaultfileinfovalue msgid "permissions user group size date time" msgstr "" #: lclstrconsts.rsdeleterecord msgid "Delete record?" msgstr "" #: lclstrconsts.rsdeleterecordhint msgctxt "lclstrconsts.rsdeleterecordhint" msgid "Delete" msgstr "" #: lclstrconsts.rsdirection msgid "Direction" msgstr "" #: lclstrconsts.rsdirectory msgid "&Directory" msgstr "" #: lclstrconsts.rsdocking msgid "Docking" msgstr "" #: lclstrconsts.rsduplicateiconformat msgid "Duplicate icon format." msgstr "" #: lclstrconsts.rseditrecordhint msgid "Edit" msgstr "" #: lclstrconsts.rsentirescope msgid "Search entire file" msgstr "" #: lclstrconsts.rserror msgctxt "lclstrconsts.rserror" msgid "Error" msgstr "" #: lclstrconsts.rserrorcreatingdevicecontext msgid "Error creating device context for %s.%s" msgstr "" #: lclstrconsts.rserrorinlcl msgid "ERROR in LCL: " msgstr "" #: lclstrconsts.rserroroccurredinataddressframe msgid "Error occurred in %s at %sAddress %s%s Frame %s" msgstr "" #: lclstrconsts.rserrorreadingproperty msgid "Error reading %s%s%s: %s" msgstr "" #: lclstrconsts.rserrorwhilesavingbitmap msgid "Error while saving bitmap." msgstr "" #: lclstrconsts.rsexception msgid "Exception" msgstr "" #: lclstrconsts.rsfddirectorymustexist msgid "Directory must exist" msgstr "" #: lclstrconsts.rsfddirectorynotexist msgid "The directory \"%s\" does not exist." msgstr "" #: lclstrconsts.rsfdfilealreadyexists msgid "The file \"%s\" already exists. Overwrite ?" msgstr "" #: lclstrconsts.rsfdfilemustexist msgid "File must exist" msgstr "" #: lclstrconsts.rsfdfilenotexist msgid "The file \"%s\" does not exist." msgstr "" #: lclstrconsts.rsfdfilereadonly msgid "The file \"%s\" is not writable." msgstr "" #: lclstrconsts.rsfdfilereadonlytitle msgid "File is not writable" msgstr "" #: lclstrconsts.rsfdfilesaveas msgid "Save file as" msgstr "" #: lclstrconsts.rsfdopenfile msgid "Open existing file" msgstr "" #: lclstrconsts.rsfdoverwritefile msgid "Overwrite file ?" msgstr "" #: lclstrconsts.rsfdpathmustexist msgid "Path must exist" msgstr "" #: lclstrconsts.rsfdpathnoexist msgid "The path \"%s\" does not exist." msgstr "" #: lclstrconsts.rsfdselectdirectory msgid "Select Directory" msgstr "" #: lclstrconsts.rsfileinfofilenotfound msgid "(file not found: \"%s\")" msgstr "" #: lclstrconsts.rsfileinformation msgid "File information" msgstr "" #: lclstrconsts.rsfind msgid "Find" msgstr "" #: lclstrconsts.rsfindmore msgid "Find more" msgstr "" #: lclstrconsts.rsfirstrecordhint msgid "First" msgstr "" #: lclstrconsts.rsfixedcolstoobig msgid "FixedCols can't be >= ColCount" msgstr "" #: lclstrconsts.rsfixedrowstoobig msgid "FixedRows can't be >= RowCount" msgstr "" #: lclstrconsts.rsformcolorcaption msgid "Form" msgstr "" #: lclstrconsts.rsformstreamingerror msgid "Form streaming \"%s\" error: %s" msgstr "" #: lclstrconsts.rsforward msgid "Forward" msgstr "" #: lclstrconsts.rsfuchsiacolorcaption msgid "Fuchsia" msgstr "" #: lclstrconsts.rsgdkoptiondebug msgid "--gdk-debug flags Turn on specific GDK trace/debug messages." msgstr "" #: lclstrconsts.rsgdkoptionnodebug msgid "--gdk-no-debug flags Turn off specific GDK trace/debug messages." msgstr "" #: lclstrconsts.rsgoptionfatalwarnings msgid "--g-fatal-warnings Warnings and errors generated by Gtk+/GDK will halt the application." msgstr "" #: lclstrconsts.rsgradientactivecaptioncolorcaption msgid "Gradient Active Caption" msgstr "" #: lclstrconsts.rsgradientinactivecaptioncolorcaption msgid "Gradient Inactive Caption" msgstr "" #: lclstrconsts.rsgraycolorcaption msgid "Gray" msgstr "" #: lclstrconsts.rsgraytextcolorcaption msgid "Gray Text" msgstr "" #: lclstrconsts.rsgreencolorcaption msgid "Green" msgstr "" #: lclstrconsts.rsgridfiledoesnotexists msgid "Grid file doesn't exists" msgstr "" #: lclstrconsts.rsgridindexoutofrange msgid "Grid index out of range." msgstr "" #: lclstrconsts.rsgroupindexcannotbelessthanprevious msgid "GroupIndex cannot be less than a previous menu item's GroupIndex" msgstr "" #: lclstrconsts.rsgtkfilter msgid "Filter:" msgstr "" #: lclstrconsts.rsgtkhistory msgid "History:" msgstr "" #: lclstrconsts.rsgtkoptionclass msgid "--class classname Following Xt conventions, the class of a program is the program name with the initial character capitalized. For example, the classname for gimp is \"Gimp\". If --class is specified, the class of the program will be set to \"classname\"." msgstr "" #: lclstrconsts.rsgtkoptiondebug msgid "--gtk-debug flags Turn on specific Gtk+ trace/debug messages." msgstr "" #: lclstrconsts.rsgtkoptiondisplay msgid "--display h:s:d Connect to the specified X server, where \"h\" is the hostname, \"s\" is the server number (usually 0), and \"d\" is the display number (typically omitted). If --display is not specified, the DISPLAY environment variable is used." msgstr "" #: lclstrconsts.rsgtkoptionmodule msgid "--gtk-module module Load the specified module at startup." msgstr "" #: lclstrconsts.rsgtkoptionname msgid "--name programe Set program name to \"progname\". If not specified, program name will be set to ParamStrUTF8(0)." msgstr "" #: lclstrconsts.rsgtkoptionnodebug msgid "--gtk-no-debug flags Turn off specific Gtk+ trace/debug messages." msgstr "" #: lclstrconsts.rsgtkoptionnotransient msgid "--lcl-no-transient Do not set transient order for modal forms" msgstr "" #: lclstrconsts.rsgtkoptionnoxshm msgid "--no-xshm Disable use of the X Shared Memory Extension." msgstr "" #: lclstrconsts.rsgtkoptionsync msgid "--sync Call XSynchronize (display, True) after the Xserver connection has been established. This makes debugging X protocol errors easier, because X request buffering will be disabled and X errors will be received immediatey after the protocol request that generated the error has been processed by the X server." msgstr "" #: lclstrconsts.rshelpalreadyregistered msgid "%s: Already registered" msgstr "" #: lclstrconsts.rshelpcontextnotfound msgid "Help Context not found" msgstr "" #: lclstrconsts.rshelpdatabasenotfound msgid "Help Database not found" msgstr "" #: lclstrconsts.rshelperror msgid "Help Error" msgstr "" #: lclstrconsts.rshelphelpcontextnotfound msgid "Help context %s not found." msgstr "" #: lclstrconsts.rshelphelpcontextnotfoundindatabase msgid "Help context %s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpdatabasedidnotfoundaviewerforahelppageoftype msgid "Help Database %s%s%s did not found a viewer for a help page of type %s" msgstr "" #: lclstrconsts.rshelphelpdatabasenotfound msgid "Help Database %s%s%s not found" msgstr "" #: lclstrconsts.rshelphelpkeywordnotfound msgid "Help keyword %s%s%s not found." msgstr "" #: lclstrconsts.rshelphelpkeywordnotfoundindatabase msgid "Help keyword %s%s%s not found in Database %s%s%s." msgstr "" #: lclstrconsts.rshelphelpnodehasnohelpdatabase msgid "Help node %s%s%s has no Help Database" msgstr "" #: lclstrconsts.rshelpnohelpfoundforsource msgid "No help found for line %d, column %d of %s." msgstr "" #: lclstrconsts.rshelpnohelpnodesavailable msgid "No help nodes available" msgstr "" #: lclstrconsts.rshelpnotfound msgid "Help not found" msgstr "" #: lclstrconsts.rshelpnotregistered msgid "%s: Not registered" msgstr "" #: lclstrconsts.rshelpselectorerror msgid "Help Selector Error" msgstr "" #: lclstrconsts.rshelpthereisnoviewerforhelptype msgid "There is no viewer for help type %s%s%s" msgstr "" #: lclstrconsts.rshelpviewererror msgid "Help Viewer Error" msgstr "" #: lclstrconsts.rshelpviewernotfound msgid "Help Viewer not found" msgstr "" #: lclstrconsts.rshighlightcolorcaption msgid "Highlight" msgstr "" #: lclstrconsts.rshighlighttextcolorcaption msgid "Highlight Text" msgstr "" #: lclstrconsts.rshotlightcolorcaption msgid "Hot Light" msgstr "" #: lclstrconsts.rsicns msgid "OSX Icon Resource" msgstr "" #: lclstrconsts.rsicon msgid "Icon" msgstr "" #: lclstrconsts.rsiconimageempty msgid "Icon image cannot be empty" msgstr "" #: lclstrconsts.rsiconimageformat msgid "Icon image must have the same format" msgstr "" #: lclstrconsts.rsiconimageformatchange msgid "Cannot change format of icon image" msgstr "" #: lclstrconsts.rsiconimagesize msgid "Icon image must have the same size" msgstr "" #: lclstrconsts.rsiconimagesizechange msgid "Cannot change size of icon image" msgstr "" #: lclstrconsts.rsiconnocurrent msgid "Icon has no current image" msgstr "" #: lclstrconsts.rsinactivebordercolorcaption msgid "Inactive Border" msgstr "" #: lclstrconsts.rsinactivecaptioncolorcaption msgctxt "lclstrconsts.rsinactivecaptioncolorcaption" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsinactivecaptiontext msgctxt "lclstrconsts.rsinactivecaptiontext" msgid "Inactive Caption" msgstr "" #: lclstrconsts.rsindexoutofbounds msgid "%s Index %d out of bounds 0 .. %d" msgstr "" #: lclstrconsts.rsindexoutofrange msgid "Index Out of range Cell[Col=%d Row=%d]" msgstr "" #: lclstrconsts.rsinfobkcolorcaption msgid "Info Background" msgstr "" #: lclstrconsts.rsinfotextcolorcaption msgid "Info Text" msgstr "" #: lclstrconsts.rsinsertrecordhint msgctxt "lclstrconsts.rsinsertrecordhint" msgid "Insert" msgstr "" #: lclstrconsts.rsinvaliddate msgid "Invalid Date : %s" msgstr "" #: lclstrconsts.rsinvaliddaterangehint msgid "Invalid Date: %s. Must be between %s and %s" msgstr "" #: lclstrconsts.rsinvalidformobjectstream msgid "invalid Form object stream" msgstr "" #: lclstrconsts.rsinvalidpropertyvalue msgid "Invalid property value" msgstr "" #: lclstrconsts.rsinvalidstreamformat msgid "Invalid stream format" msgstr "" #: lclstrconsts.rsisalreadyassociatedwith msgid "%s is already associated with %s" msgstr "" #: lclstrconsts.rsjpeg msgid "Joint Picture Expert Group" msgstr "" #: lclstrconsts.rslastrecordhint msgid "Last" msgstr "" #: lclstrconsts.rslimecolorcaption msgid "Lime" msgstr "" #: lclstrconsts.rslistindexexceedsbounds msgid "List index exceeds bounds (%d)" msgstr "" #: lclstrconsts.rslistmustbeempty msgid "List must be empty" msgstr "" #: lclstrconsts.rsmarooncolorcaption msgid "Maroon" msgstr "" #: lclstrconsts.rsmbabort msgid "Abort" msgstr "" #: lclstrconsts.rsmball msgid "&All" msgstr "" #: lclstrconsts.rsmbcancel msgctxt "lclstrconsts.rsmbcancel" msgid "Cancel" msgstr "" #: lclstrconsts.rsmbclose msgid "&Close" msgstr "" #: lclstrconsts.rsmbhelp msgid "&Help" msgstr "" #: lclstrconsts.rsmbignore msgid "&Ignore" msgstr "" #: lclstrconsts.rsmbno msgid "&No" msgstr "" #: lclstrconsts.rsmbnotoall msgid "No to all" msgstr "" #: lclstrconsts.rsmbok msgid "&OK" msgstr "" #: lclstrconsts.rsmbopen msgid "&Open" msgstr "" #: lclstrconsts.rsmbretry msgid "&Retry" msgstr "" #: lclstrconsts.rsmbsave msgid "&Save" msgstr "" #: lclstrconsts.rsmbunlock msgid "&Unlock" msgstr "" #: lclstrconsts.rsmbyes msgid "&Yes" msgstr "" #: lclstrconsts.rsmbyestoall msgid "Yes to &All" msgstr "" #: lclstrconsts.rsmedgraycolorcaption msgid "Medium Gray" msgstr "" #: lclstrconsts.rsmenubarcolorcaption msgid "Menu Bar" msgstr "" #: lclstrconsts.rsmenucolorcaption msgctxt "lclstrconsts.rsmenucolorcaption" msgid "Menu" msgstr "" #: lclstrconsts.rsmenuhighlightcolorcaption msgid "Menu Highlight" msgstr "" #: lclstrconsts.rsmenutextcolorcaption msgid "Menu Text" msgstr "" #: lclstrconsts.rsmodified msgid " modified " msgstr "" #: lclstrconsts.rsmoneygreencolorcaption msgid "Money Green" msgstr "" #: lclstrconsts.rsmtauthentication msgid "Authentication" msgstr "" #: lclstrconsts.rsmtconfirmation msgid "Confirmation" msgstr "" #: lclstrconsts.rsmtcustom msgid "Custom" msgstr "" #: lclstrconsts.rsmterror msgctxt "lclstrconsts.rsmterror" msgid "Error" msgstr "" #: lclstrconsts.rsmtinformation msgid "Information" msgstr "" #: lclstrconsts.rsmtwarning msgid "Warning" msgstr "" #: lclstrconsts.rsnavycolorcaption msgid "Navy" msgstr "" #: lclstrconsts.rsnextrecordhint msgctxt "lclstrconsts.rsnextrecordhint" msgid "Next" msgstr "" #: lclstrconsts.rsnonecolorcaption msgid "None" msgstr "" #: lclstrconsts.rsnotavalidgridfile msgid "Not a valid grid file" msgstr "" #: lclstrconsts.rsnowidgetset msgid "No widgetset object. Please check if the unit \"interfaces\" was added to the programs uses clause." msgstr "" #: lclstrconsts.rsolivecolorcaption msgid "Olive" msgstr "" #: lclstrconsts.rspickdate msgid "Select a date" msgstr "" #: lclstrconsts.rspixmap msgid "Pixmap" msgstr "" #: lclstrconsts.rsportablebitmap msgid "Portable BitMap" msgstr "" #: lclstrconsts.rsportablegraymap msgid "Portable GrayMap" msgstr "" #: lclstrconsts.rsportablenetworkgraphic msgid "Portable Network Graphic" msgstr "" #: lclstrconsts.rsportablepixmap msgid "Portable PixMap" msgstr "" #: lclstrconsts.rspostrecordhint msgid "Post" msgstr "" #: lclstrconsts.rspressoktoignoreandriskdatacorruptionpresscanceltok msgid "%s%sPress OK to ignore and risk data corruption.%sPress Cancel to kill the program." msgstr "" #: lclstrconsts.rspriorrecordhint msgctxt "lclstrconsts.rspriorrecordhint" msgid "Prior" msgstr "" #: lclstrconsts.rspropertydoesnotexist msgid "Property %s does not exist" msgstr "" #: lclstrconsts.rspurplecolorcaption msgid "Purple" msgstr "" #: lclstrconsts.rsrasterimageendupdate msgid "Endupdate while no update in progress" msgstr "" #: lclstrconsts.rsrasterimagesaveinupdate msgid "Cannot save image while update in progress" msgstr "" #: lclstrconsts.rsrasterimageupdateall msgid "Cannot begin update all when canvas only update in progress" msgstr "" #: lclstrconsts.rsredcolorcaption msgid "Red" msgstr "" #: lclstrconsts.rsrefreshrecordshint msgid "Refresh" msgstr "" #: lclstrconsts.rsreplace msgid "Replace" msgstr "" #: lclstrconsts.rsreplaceall msgid "Replace all" msgstr "" #: lclstrconsts.rsresourcenotfound msgctxt "lclstrconsts.rsresourcenotfound" msgid "Resource %s not found" msgstr "" #: lclstrconsts.rsscrollbarcolorcaption msgid "ScrollBar" msgstr "" #: lclstrconsts.rsscrollbaroutofrange msgid "ScrollBar property out of range" msgstr "" #: lclstrconsts.rsselectcolortitle msgid "Select color" msgstr "" #: lclstrconsts.rsselectfonttitle msgid "Select a font" msgstr "" #: lclstrconsts.rssilvercolorcaption msgid "Silver" msgstr "" #: lclstrconsts.rssize msgid " size " msgstr "" #: lclstrconsts.rsskybluecolorcaption msgid "Sky Blue" msgstr "" #: lclstrconsts.rstealcolorcaption msgid "Teal" msgstr "" #: lclstrconsts.rstext msgid "Text" msgstr "" #: lclstrconsts.rsunabletoloaddefaultfont msgid "Unable to load default font" msgstr "" #: lclstrconsts.rsunknownerrorpleasereportthisbug msgid "Unknown Error, please report this bug" msgstr "" #: lclstrconsts.rsunknownpictureextension msgid "Unknown picture extension" msgstr "" #: lclstrconsts.rsunsupportedbitmapformat msgid "Unsupported bitmap format." msgstr "" #: lclstrconsts.rsunsupportedclipboardformat msgid "Unsupported clipboard format: %s" msgstr "" #: lclstrconsts.rswarningunreleaseddcsdump msgid " WARNING: There are %d unreleased DCs, a detailed dump follows:" msgstr "" #: lclstrconsts.rswarningunreleasedgdiobjectsdump msgid " WARNING: There are %d unreleased GDIObjects, a detailed dump follows:" msgstr "" #: lclstrconsts.rswarningunreleasedmessagesinqueue msgid " WARNING: There are %d messages left in the queue! I'll free them" msgstr "" #: lclstrconsts.rswarningunreleasedtimerinfos msgid " WARNING: There are %d TimerInfo structures left, I'll free them" msgstr "" #: lclstrconsts.rswarningunremovedpaintmessages msgid " WARNING: There are %s unremoved LM_PAINT/LM_GtkPAINT message links left." msgstr "" #: lclstrconsts.rswhitecolorcaption msgid "White" msgstr "" #: lclstrconsts.rswholewordsonly msgid "Whole words only" msgstr "" #: lclstrconsts.rswin32error msgid "Error:" msgstr "" #: lclstrconsts.rswin32warning msgid "Warning:" msgstr "" #: lclstrconsts.rswindowcolorcaption msgid "Window" msgstr "" #: lclstrconsts.rswindowframecolorcaption msgid "Window Frame" msgstr "" #: lclstrconsts.rswindowtextcolorcaption msgid "Window Text" msgstr "" #: lclstrconsts.rsyellowcolorcaption msgid "Yellow" msgstr "" #: lclstrconsts.scannotfocus msgid "Cannot focus a disabled or invisible window" msgstr "" #: lclstrconsts.sduplicatemenus msgid "Duplicate menus" msgstr "" #: lclstrconsts.sinvalidactioncreation msgid "Invalid action creation" msgstr "" #: lclstrconsts.sinvalidactionenumeration msgid "Invalid action enumeration" msgstr "" #: lclstrconsts.sinvalidactionregistration msgid "Invalid action registration" msgstr "" #: lclstrconsts.sinvalidactionunregistration msgid "Invalid action unregistration" msgstr "" #: lclstrconsts.sinvalidcharset msgid "The char set in mask \"%s\" is not valid!" msgstr "" #: lclstrconsts.sinvalidimagesize msgid "Invalid image size" msgstr "" #: lclstrconsts.sinvalidindex msgid "Invalid ImageList Index" msgstr "" #: lclstrconsts.smenuindexerror msgid "Menu index out of range" msgstr "" #: lclstrconsts.smenuitemisnil msgid "MenuItem is nil" msgstr "" #: lclstrconsts.smenunotfound msgid "Sub-menu is not in menu" msgstr "" #: lclstrconsts.snomdiform msgid "No MDI form present." msgstr "" #: lclstrconsts.snotimers msgid "No timers available" msgstr "" #: lclstrconsts.sparexpected msgid "Wrong token type: %s expected" msgstr "" #: lclstrconsts.sparinvalidfloat msgid "Invalid floating point number: %s" msgstr "" #: lclstrconsts.sparinvalidinteger msgid "Invalid integer number: %s" msgstr "" #: lclstrconsts.sparlocinfo msgid " (at %d,%d, stream offset %.8x)" msgstr "" #: lclstrconsts.sparunterminatedbinvalue msgid "Unterminated byte value" msgstr "" #: lclstrconsts.sparunterminatedstring msgid "Unterminated string" msgstr "" #: lclstrconsts.sparwrongtokensymbol msgid "Wrong token symbol: %s expected but %s found" msgstr "" #: lclstrconsts.sparwrongtokentype msgid "Wrong token type: %s expected but %s found" msgstr "" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit29.lrs��������������������������������������������������������������������������0000750�0001750�0001750�00000005525�13147330070�015736� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisie_derivees','FORMDATA',[ 'TPF0'#16'Tsaisie_derivees'#15'saisie_derivees'#4'Left'#3'P'#1#6'Height'#3#212 +#0#3'Top'#3#179#0#5'Width'#3'o'#2#13'ActiveControl'#7#16'CheckBoxDerivees'#11 +'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSin' +'gle'#7'Caption'#6#21'Calcul des d'#195#169'riv'#195#169'es'#12'ClientHeight' +#3#212#0#11'ClientWidth'#3'o'#2#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'F' +'ormShow'#10'LCLVersion'#6#7'1.2.2.0'#0#6'TLabel'#6'Label1'#22'AnchorSideLef' +'t.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#16'CheckBoxDerivees'#18'A' +'nchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#2','#5 +'Width'#3#9#2#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Capti' +'on'#6'NLe calcul de la d'#195#169'riv'#195#169'e num'#195#169'rique en V0 s' +'e fait par: (f(V0+h)-f(V0-h))/(2h)'#10'Font.Style'#11#6'fsBold'#0#11'Parent' +'Color'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.Control' +#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#2'J'#5'Width'#3#196#0#18'Bord' +'erSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#27'Choix de h:' +' volume burette/'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'Parent' +'Font'#8#0#0#9'TCheckBox'#16'CheckBoxDerivees'#22'AnchorSideLeft.Control'#7#5 +'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#24#3'T' +'op'#2#10#5'Width'#3#128#1#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top' +#2#10#7'Caption'#6'6Activer le calcul des d'#195#169'riv'#195#169'es par rap' +'port au volume'#10'Font.Style'#11#6'fsBold'#0#10'ParentFont'#8#8'TabOrder'#2 +#0#0#0#9'TSpinEdit'#15'SpinEditDerivee'#22'AnchorSideLeft.Control'#7#6'Label' +'2'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Lab' +'el2'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#216#0#6'Height'#2#28#3 +'Top'#2'F'#5'Width'#2'Z'#18'BorderSpacing.Left'#2#10#8'MaxValue'#4#128#150 +#152#0#8'MinValue'#2#10#8'TabOrder'#2#1#5'Value'#2'd'#0#0#7'TBitBtn'#7'BitBt' +'n1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#15'Sp' +'inEditDerivee'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Con' +'trol'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBotto' +'m.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#10 +#6'Height'#2'^'#3'Top'#2'l'#5'Width'#3'['#2#7'Anchors'#11#5'akTop'#6'akLeft' +#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2 +#10#19'BorderSpacing.Right'#2#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6#3 +'&OK'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#7'OnClick'#7#12'Bit' +'Btn1Click'#8'TabOrder'#2#2#0#0#0 ]); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit17.lrs��������������������������������������������������������������������������0000750�0001750�0001750�00000004254�13147330070�015731� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsplashscreen','FORMDATA',[ 'TPF0'#13'Tsplashscreen'#12'splashscreen'#4'Left'#3'p'#1#6'Height'#3'4'#1#3'T' +'op'#2'R'#5'Width'#3#17#3#11'BorderIcons'#11#0#11'BorderStyle'#7#6'bsNone'#7 +'Caption'#6#12'splashscreen'#12'ClientHeight'#3'4'#1#11'ClientWidth'#3#17#3#5 +'Color'#7#6'clAqua'#9'FormStyle'#7#8'fsSplash'#8'OnCreate'#7#10'FormCreate'#6 +'OnShow'#7#8'FormShow'#10'ParentFont'#9#10'LCLVersion'#6#7'1.2.2.0'#0#6'TLab' +'el'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner'#19'AnchorSideLeft.Side' +#7#9'asrCenter'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#3#249#0#6'Heigh' +'t'#2'>'#3'Top'#2#20#5'Width'#3#31#1#17'BorderSpacing.Top'#2#20#7'Caption'#6 +#11'Dozzzaqueux'#10'Font.Color'#7#9'clFuchsia'#11'Font.Height'#2#210#10'Font' +'.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'L' +'abel2'#22'AnchorSideLeft.Control'#7#5'Owner'#19'AnchorSideLeft.Side'#7#9'as' +'rCenter'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'a' +'srBottom'#4'Left'#2'v'#6'Height'#2#30#3'Top'#2'f'#5'Width'#3'$'#2#17'Border' +'Spacing.Top'#2#20#7'Caption'#6'<Logiciel libre et gratuit de simulation de ' +'courbes de dosage'#10'Font.Color'#7#7'clGreen'#11'Font.Height'#2#235#11'Par' +'entColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label3'#22'AnchorSideLeft.Cont' +'rol'#7#5'Owner'#19'AnchorSideLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Con' +'trol'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#241#0#6'H' +'eight'#2#20#3'Top'#3#152#0#5'Width'#3'.'#1#17'BorderSpacing.Top'#2#20#7'Cap' +'tion'#6'-Version 3.04 du 10/08/2009, cod'#195#169'e en Lazarus'#11'ParentCo' +'lor'#8#0#0#6'TLabel'#6'Label4'#22'AnchorSideLeft.Control'#7#5'Owner'#19'Anc' +'horSideLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Control'#7#6'Label3'#18'A' +'nchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#6#1#6'Height'#2#20#3'Top'#3#192 +#0#5'Width'#3#4#1#17'BorderSpacing.Top'#2#20#7'Caption'#6'$Par Jean-Marie Bi' +'ansan, 2005 '#195#160' 2009'#10'Font.Color'#7#5'clRed'#10'Font.Style'#11#6 +'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#0 ]); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit29.lfm��������������������������������������������������������������������������0000750�0001750�0001750�00000004666�13147330070�015721� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object saisie_derivees: Tsaisie_derivees Left = 336 Height = 212 Top = 179 Width = 623 ActiveControl = CheckBoxDerivees BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Calcul des dérivées' ClientHeight = 212 ClientWidth = 623 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = CheckBoxDerivees AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 44 Width = 521 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Le calcul de la dérivée numérique en V0 se fait par: (f(V0+h)-f(V0-h))/(2h)' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 74 Width = 196 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Choix de h: volume burette/' Font.Style = [fsBold] ParentColor = False ParentFont = False end object CheckBoxDerivees: TCheckBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 24 Top = 10 Width = 384 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Activer le calcul des dérivées par rapport au volume' Font.Style = [fsBold] ParentFont = False TabOrder = 0 end object SpinEditDerivee: TSpinEdit AnchorSideLeft.Control = Label2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrCenter Left = 216 Height = 28 Top = 70 Width = 90 BorderSpacing.Left = 10 MaxValue = 10000000 MinValue = 10 TabOrder = 1 Value = 100 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = SpinEditDerivee AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 94 Top = 108 Width = 603 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 2 end end ��������������������������������������������������������������������������dozzaqueux-3.51/monpng.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000136403�13147330070�016065� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit MonPNG; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,LCLProc,Math,UnitScaleFont; type TMyPNG=object Xmin,Xmax,Ymin1,Ymax1,Ymin2,Ymax2,GraduationX, GraduationY1,GraduationY2, SousGraduationX, SousGraduationY1,SousGraduationY2:extended; Rang_Premiere_Graduation_X,Rang_Premiere_Graduation_Y1,Rang_Premiere_Graduation_Y2, Rang_Derniere_Graduation_X,Rang_Derniere_Graduation_Y1,Rang_Derniere_Graduation_Y2, Rang_Premiere_Sous_Graduation_X,Rang_Premiere_Sous_Graduation_Y1,Rang_Premiere_Sous_Graduation_Y2, Rang_Derniere_Sous_Graduation_X,Rang_Derniere_Sous_Graduation_Y1,Rang_Derniere_Sous_Graduation_Y2:integer; Largeur,Hauteur,BordureBasse,BordureHaute, BordureGauche,BordureDroite,EpaisseurGrille,PuissanceDeDixX, PuissancedeDixY1,PuissancedeDixY2,epaisseurcadre,epaisseurgraduation:integer; longueurgraduationX,longueurgraduationY1,longueurgraduationY2:float; PasGrillex,PasGrilley1,PasGrilley2:float; couleurfond,couleurcadre,couleurgraduation, couleurgrille1,couleurgrille2:tcolor; cadre,gradue,grille1,grille2,fond,borduresverticalessymetriques,echelle_g,echelle_d:boolean; titre,labelx,labely1,labely2,unitex,unitey1,unitey2:string; fontegraduation:tfont; fontetitre:tfont; procedure background(couleur:tcolor); function LimitesEtAxes(_xmin,_xmax,_ymin1,_ymax1,_ymin2,_ymax2:float; _Largeur,_Hauteur:integer; _titre:string; _fontetitre:tfont; _Fond:boolean; _CouleurFond:tcolor; _Cadre:boolean; _EpaisseurCadre:integer; _CouleurCadre:tcolor; _Gradue:boolean; _EpaisseurGraduation,_LongueurGraduation:integer; _couleurgraduation:tcolor; _fontegraduation:tfont; _Grille1,_Grille2:boolean; _EpaisseurGrille:integer; _CouleurGrille1,_CouleurGrille2:tcolor; _labelx,_labely1,_labely2,_unitex,_unitey1,_unitey2:string; _borduresverticalessymetriques, _echelle_g,_echelle_d:boolean; b_g,b_d,b_b,b_h:integer):boolean; function MonRectangle(x1,y1,x2,y2:extended; couleur:tcolor; gauche:boolean):boolean; function invconvert(var xi,yi:integer; x,y:float;gauche:boolean):boolean; function Convert(xi,yi:integer; var x,y:float;gauche:boolean):boolean; function CroixX(x,y:float; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function CroixP(x,y:float; demi_longueur,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function Carreau(x,y:float; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function Trait(x1,y1,x2,y2:float; epaisseur:integer; couleur:tcolor; sty:tpenstyle; penmod:tpenmode;gauche:boolean):boolean; function Point(x,y:float; rayon:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function cercle(x,y:float; rayon,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function disque(x,y:float; rayon:float; couleurbord,couleurf:tcolor;transparent:boolean;gauche:boolean): boolean; function disque2(x,y:float; rayon:integer; couleurbord,couleurf:tcolor;gauche:boolean): boolean; function arcdecercle(x,y:float; rayonreel:float; epaisseur:integer; theta1,theta2:float; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function tracepolygone(nombrepoint:integer;listex,listey:array of float; couleurbord,couleurf:tcolor;transparent:boolean;gauche:boolean):boolean; procedure traceconique(theta0,theta1,theta2,fx,fy,excentricite,parametre:float; couleur:tcolor;gauche:boolean); procedure arronditalagrille(var x1,y1:float;gauche:boolean); procedure ecrire(x,y:float; s:string;gauche:boolean; police:tfont); procedure graduation(xi,xa:extended; var xci,xca:extended; var graduation,sousgraduation:extended; var rang_premiere_sousgraduation,rang_derniere_sousgraduation,rang_premiere_graduation,rang_derniere_graduation:integer); end; procedure echange(var a,b:float); procedure echange_entiers(var a,b:integer); function partieentiere(x:float):float; function dix_pp(p:longint):float; implementation uses Unit1; function tmypng.MonRectangle(x1,y1,x2,y2:extended; couleur:tcolor; gauche:boolean):boolean; var ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; xi1,yi1,xi2,yi2:integer; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; if xmax=xmin then exit; if ymax=ymin then exit; old_pen_color:=image_pour_export.canvas.pen.color; old_pen_style:=image_pour_export.canvas.pen.style; old_pen_width:=image_pour_export.canvas.pen.width; old_pen_mode:=image_pour_export.canvas.pen.mode; old_brush_style:=image_pour_export.canvas.brush.style; old_brush_color:=image_pour_export.canvas.Brush.Color; image_pour_export.canvas.pen.color:=couleur; image_pour_export.canvas.pen.Style:=pssolid; image_pour_export.canvas.pen.mode:=pmcopy; image_pour_export.canvas.Brush.Color:=couleur; image_pour_export.canvas.Brush.Style:=bssolid; self.invconvert(xi1,yi1,x1,y1,gauche); self.invconvert(xi2,yi2,x2,y2,gauche); if xi1>xi2 then echange_entiers(xi1,xi2); if yi1>yi2 then echange_entiers(yi1,yi2); image_pour_export.canvas.Rectangle(xi1,yi1,xi2,yi2); image_pour_export.canvas.pen.color:=old_pen_color; image_pour_export.canvas.pen.style:=old_pen_style; image_pour_export.canvas.pen.width:=old_pen_width; image_pour_export.canvas.pen.mode:=old_pen_mode; image_pour_export.canvas.brush.style:=old_brush_style; image_pour_export.canvas.brush.Color:=old_brush_color; end; procedure TMyPNG.graduation(xi,xa:extended; var xci,xca:extended; var graduation,sousgraduation:extended; var rang_premiere_sousgraduation,rang_derniere_sousgraduation,rang_premiere_graduation,rang_derniere_graduation:integer); var g,sg,d:extended; p:longint; label 124; begin if xa<xi then echange(xi,xa); d:=xa-xi; p:=floor(log10(d/4)); {d est compris entre 4.10^p et 4.10^(p+1)} if d<=8*intpower(10,p) then begin g:=intpower(10,p); sg:=g/5; end else if d<=20*intpower(10,p) then begin g:=2*intpower(10,p); sg:=g/4; end else begin g:=5*intpower(10,p); sg:=g/5; end; graduation:=g; sousgraduation:=sg; rang_derniere_sousgraduation:=ceil(xa/sousgraduation); rang_premiere_sousgraduation:=floor(xi/sousgraduation); xci:=rang_premiere_sousgraduation*sousgraduation; xca:=rang_derniere_sousgraduation*sousgraduation; rang_derniere_graduation:=floor(xca/graduation); rang_premiere_graduation:=ceil(xci/graduation); end; function dix_pp(p:longint):float; var i:longint; inter:float; begin if (p<-1) then begin inter:=1/10; for i:=1 to abs(p)-1 do inter:=inter/10; result:=inter; end else if p=0 then begin result:=1; end else if p=1 then begin result:=10; end else if (p>1) then begin inter:=10; for i:=1 to p-1 do inter:=inter*10; result:=inter; end else if (p=-1) then begin result:=1/10; end; end; function partieentiere(x:float):float; begin if x>=0 then begin partieentiere:=int(x); exit; end; if frac(x)=0 then begin partieentiere:=x; exit; end; {cas ou x est <0 et non entier} partieentiere:=int(x)-1; end; function tmypng.disque2(x,y:float; rayon:integer; couleurbord,couleurf:tcolor;gauche:boolean): boolean; var x1,y1,r1x,r1y:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin disque2:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; if rayon=0 then exit; old_pen_color:=image_pour_export.canvas.pen.color; old_pen_style:=image_pour_export.canvas.pen.style; old_pen_width:=image_pour_export.canvas.pen.width; old_pen_mode:=image_pour_export.canvas.pen.mode; old_brush_style:=image_pour_export.canvas.brush.style; old_brush_color:=image_pour_export.canvas.brush.color; image_pour_export.canvas.pen.color:=couleurbord; image_pour_export.canvas.pen.style:=pssolid; image_pour_export.canvas.pen.width:=1; image_pour_export.canvas.pen.mode:=pmcopy; disque2:=true; image_pour_export.canvas.brush.style:=bssolid; image_pour_export.canvas.brush.color:=couleurf; image_pour_export.canvas.ellipse(x1-rayon,y1-rayon,x1+rayon, y1+rayon); image_pour_export.canvas.brush.color:=clwhite; image_pour_export.canvas.pen.color:=old_pen_color; image_pour_export.canvas.pen.style:=old_pen_style; image_pour_export.canvas.pen.width:=old_pen_width; image_pour_export.canvas.pen.mode:=old_pen_mode; image_pour_export.canvas.brush.style:=old_brush_style; image_pour_export.canvas.brush.color:=old_brush_color; end; function tmypng.Carreau(x,y:float; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin carreau:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=image_pour_export.canvas.pen.color; old_pen_style:=image_pour_export.canvas.pen.style; old_pen_width:=image_pour_export.canvas.pen.width; old_pen_mode:=image_pour_export.canvas.pen.mode; old_brush_style:=image_pour_export.canvas.brush.style; image_pour_export.canvas.pen.width:=epaisseur; image_pour_export.canvas.pen.mode:=penmod; image_pour_export.canvas.pen.style:=pssolid; image_pour_export.canvas.pen.color:=couleur; image_pour_export.canvas.moveto(x1,y1+demi_diagonale); image_pour_export.canvas.lineto(x1+demi_diagonale,y1); image_pour_export.canvas.lineto(x1,y1-demi_diagonale); image_pour_export.canvas.lineto(x1-demi_diagonale,y1); image_pour_export.canvas.lineto(x1,y1+demi_diagonale); carreau:=true; image_pour_export.canvas.pen.color:=old_pen_color; image_pour_export.canvas.pen.style:=old_pen_style; image_pour_export.canvas.pen.width:=old_pen_width; image_pour_export.canvas.pen.mode:=old_pen_mode; image_pour_export.canvas.brush.style:=old_brush_style; end; procedure echange_entiers(var a,b:integer); var c:integer; begin c:=a; a:=b; b:=c; end; procedure echange(var a,b:float); var c:float; begin c:=a; a:=b; b:=c; end; procedure tmypng.traceconique(theta0,theta1,theta2,fx,fy,excentricite,parametre:float; couleur:tcolor;gauche:boolean); var pas,theta,r,ract,thetaact,nx,ny,ttai:float; nombrepas,i:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; nombrepas:=1000; pas:=(theta2-theta1)/nombrepas; thetaact:=theta1; ract:=parametre/(1+excentricite*cos(thetaact-theta0)); for i:=1 to nombrepas do begin theta:=theta1+i*pas; r:=parametre/(1+excentricite*cos(theta-theta0)); if ((r>0) and (ract>0)) then trait(fx+ract*cos(thetaact),fy+ract*sin(thetaact),fx+r*cos(theta),fy+r*sin(theta), 1,couleur,pssolid,pmcopy,gauche); thetaact:=theta; ract:=r; end; end; function tmypng.tracepolygone(nombrepoint:integer;listex,listey:array of float; couleurbord,couleurf:tcolor;transparent:boolean;gauche:boolean):boolean; var i,x1,y1:integer; titi:array of tpoint; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; setlength(titi,nombrepoint); for i:=1 to nombrepoint do begin x1:= trunc((listex[i-1]-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-listey[i-1])/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; titi[i-1].x:=x1; titi[i-1].y:=y1; end; old_pen_color:=image_pour_export.canvas.pen.color; old_pen_style:=image_pour_export.canvas.pen.style; old_pen_width:=image_pour_export.canvas.pen.width; old_pen_mode:=image_pour_export.canvas.pen.mode; old_brush_style:=image_pour_export.canvas.brush.style; old_brush_color:=image_pour_export.canvas.brush.color; image_pour_export.canvas.Pen.Color:=couleurbord; image_pour_export.canvas.brush.color:=couleurf; if not(transparent) then image_pour_export.canvas.brush.style:=bsSolid else image_pour_export.canvas.brush.style:=bsclear; image_pour_export.canvas.Polygon(titi,false,0,nombrepoint); image_pour_export.canvas.pen.color:=old_pen_color; image_pour_export.canvas.pen.style:=old_pen_style; image_pour_export.canvas.pen.width:=old_pen_width; image_pour_export.canvas.pen.mode:=old_pen_mode; image_pour_export.canvas.brush.style:=old_brush_style; image_pour_export.canvas.brush.color:=old_brush_color; end; function tmypng.arcdecercle(x,y:float; rayonreel:float; epaisseur:integer; theta1,theta2:float; couleur:tcolor; penmod:tpenmode;gauche:boolean): boolean; var x1,y1,rax,ray:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; invconvert(x1,y1,x,y,gauche); rax:= trunc(rayonreel/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); ray:= trunc(rayonreel/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if rayonreel=0 then exit; old_pen_color:=image_pour_export.canvas.pen.color; old_pen_style:=image_pour_export.canvas.pen.style; old_pen_width:=image_pour_export.canvas.pen.width; old_pen_mode:=image_pour_export.canvas.pen.mode; old_brush_style:=image_pour_export.canvas.brush.style; old_brush_color:=image_pour_export.canvas.brush.color; image_pour_export.canvas.pen.color:=couleur; image_pour_export.canvas.pen.style:=pssolid; image_pour_export.canvas.pen.width:=epaisseur; image_pour_export.canvas.pen.mode:=penmod; arcdecercle:=true; image_pour_export.canvas.brush.style:=bsclear; image_pour_export.canvas.arc(x1-rax,y1-ray,x1+rax,y1+ray,trunc(theta1/Pi*180*16),trunc((theta2-theta1)/Pi*180*16)); arcdecercle:=true; image_pour_export.canvas.pen.color:=old_pen_color; image_pour_export.canvas.pen.style:=old_pen_style; image_pour_export.canvas.pen.width:=old_pen_width; image_pour_export.canvas.pen.mode:=old_pen_mode; image_pour_export.canvas.brush.style:=old_brush_style; image_pour_export.canvas.brush.color:=old_brush_color; end; function tmypng.Point(x,y:float; rayon:integer; couleur:tcolor ; penmod:tpenmode;gauche:boolean): boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin point:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; if rayon=0 then image_pour_export.canvas.pixels[x1,y1]:=couleur; if rayon=0 then exit; old_pen_color:=image_pour_export.canvas.pen.color; old_pen_style:=image_pour_export.canvas.pen.style; old_pen_width:=image_pour_export.canvas.pen.width; old_pen_mode:=image_pour_export.canvas.pen.mode; old_brush_style:=image_pour_export.canvas.brush.style; image_pour_export.canvas.brush.style:=bssolid; image_pour_export.canvas.brush.Color:=couleur; image_pour_export.canvas.ellipse(x1-rayon,y1-rayon,x1+rayon,y1+rayon); image_pour_export.canvas.pen.color:=old_pen_color; image_pour_export.canvas.pen.style:=old_pen_style; image_pour_export.canvas.pen.width:=old_pen_width; image_pour_export.canvas.pen.mode:=old_pen_mode; image_pour_export.canvas.brush.style:=old_brush_style; end; function tmypng.cercle(x,y:float; rayon,epaisseur:integer; couleur:tcolor ; penmod:tpenmode;gauche:boolean): boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin cercle:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=image_pour_export.canvas.pen.color; old_pen_style:=image_pour_export.canvas.pen.style; old_pen_width:=image_pour_export.canvas.pen.width; old_pen_mode:=image_pour_export.canvas.pen.mode; old_brush_style:=image_pour_export.canvas.brush.style; image_pour_export.canvas.pen.color:=couleur; image_pour_export.canvas.pen.style:=pssolid; image_pour_export.canvas.pen.width:=epaisseur; image_pour_export.canvas.pen.mode:=penmod; cercle:=true; image_pour_export.canvas.brush.style:=bsclear; if rayon=0 then exit; image_pour_export.canvas.arc(x1-rayon,y1-rayon,x1+rayon,y1+rayon,x1+rayon, y1+rayon,x1+rayon,y1+rayon); image_pour_export.canvas.pen.color:=old_pen_color; image_pour_export.canvas.pen.style:=old_pen_style; image_pour_export.canvas.pen.width:=old_pen_width; image_pour_export.canvas.pen.mode:=old_pen_mode; image_pour_export.canvas.brush.style:=old_brush_style; end; function tmypng.disque(x,y:float; rayon:float; couleurbord,couleurf:tcolor;transparent:boolean;gauche:boolean): boolean; var x1,y1,r1x,r1y:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin disque:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; r1x:= trunc(rayon/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); r1y:=trunc((rayon)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if rayon=0 then exit; old_pen_color:=image_pour_export.canvas.pen.color; old_pen_style:=image_pour_export.canvas.pen.style; old_pen_width:=image_pour_export.canvas.pen.width; old_pen_mode:=image_pour_export.canvas.pen.mode; old_brush_style:=image_pour_export.canvas.brush.style; old_brush_color:=image_pour_export.canvas.brush.color; image_pour_export.canvas.pen.color:=couleurbord; image_pour_export.canvas.pen.style:=pssolid; image_pour_export.canvas.pen.width:=1; image_pour_export.canvas.pen.mode:=pmcopy; disque:=true; image_pour_export.canvas.brush.color:=couleurf; if not(transparent) then image_pour_export.canvas.brush.style:=bssolid else image_pour_export.canvas.brush.style:=bsclear; image_pour_export.canvas.ellipse(x1-r1x,y1-r1y,x1+r1x, y1+r1y); image_pour_export.canvas.brush.color:=clwhite; image_pour_export.canvas.pen.color:=old_pen_color; image_pour_export.canvas.pen.style:=old_pen_style; image_pour_export.canvas.pen.width:=old_pen_width; image_pour_export.canvas.pen.mode:=old_pen_mode; image_pour_export.canvas.brush.style:=old_brush_style; image_pour_export.canvas.brush.color:=old_brush_color; end; function tmypng.Trait(x1,y1,x2,y2:float; epaisseur:integer; couleur:tcolor;sty:tpenstyle; penmod:tpenmode;gauche:boolean):boolean; var ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; old_pen_color:=image_pour_export.canvas.pen.color; old_pen_style:=image_pour_export.canvas.pen.style; old_pen_width:=image_pour_export.canvas.pen.width; old_pen_mode:=image_pour_export.canvas.pen.mode; old_brush_style:=image_pour_export.canvas.brush.style; image_pour_export.canvas.pen.width:=epaisseur; image_pour_export.canvas.pen.color:=couleur; image_pour_export.canvas.pen.Style:=sty; image_pour_export.canvas.pen.mode:=penmod; image_pour_export.canvas.moveto(trunc((x1-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche,trunc((ymax-y1)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute); image_pour_export.canvas.lineto(trunc((x2-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche,trunc((ymax-y2)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute); image_pour_export.canvas.pen.color:=old_pen_color; image_pour_export.canvas.pen.style:=old_pen_style; image_pour_export.canvas.pen.width:=old_pen_width; image_pour_export.canvas.pen.mode:=old_pen_mode; image_pour_export.canvas.brush.style:=old_brush_style; end; function tmypng.CroixP(x,y:float; demi_longueur,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin croixp:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=image_pour_export.canvas.pen.color; old_pen_style:=image_pour_export.canvas.pen.style; old_pen_width:=image_pour_export.canvas.pen.width; old_pen_mode:=image_pour_export.canvas.pen.mode; old_brush_style:=image_pour_export.canvas.brush.style; image_pour_export.canvas.pen.width:=epaisseur; image_pour_export.canvas.pen.mode:=penmod; image_pour_export.canvas.pen.style:=pssolid; image_pour_export.canvas.pen.color:=couleur; image_pour_export.canvas.moveto(x1,y1); image_pour_export.canvas.lineto(x1,y1+demi_longueur); image_pour_export.canvas.moveto(x1,y1); image_pour_export.canvas.lineto(x1,y1-demi_longueur); image_pour_export.canvas.moveto(x1,y1); image_pour_export.canvas.lineto(x1+demi_longueur,y1); image_pour_export.canvas.moveto(x1,y1); image_pour_export.canvas.lineto(x1-demi_longueur,y1); croixp:=true; image_pour_export.canvas.pen.color:=old_pen_color; image_pour_export.canvas.pen.style:=old_pen_style; image_pour_export.canvas.pen.width:=old_pen_width; image_pour_export.canvas.pen.mode:=old_pen_mode; image_pour_export.canvas.brush.style:=old_brush_style; end; procedure tmypng.arronditalagrille(var x1,y1:float;gauche:boolean); var newx,newy,divx,divy,fracx,fracy:float; ymax,ymin,pasgrilley:float; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; divx:=partieentiere((x1-xmin)/pasgrillex); divy:=partieentiere((y1-ymin)/pasgrilley); fracx:=x1-xmin-divx*pasgrillex; fracy:=y1-ymin-divy*pasgrilley; if fracx>0.5*pasgrillex then newx:=(divx+1)*pasgrillex else newx:=divx*pasgrillex; if fracy>0.5*pasgrilley then newy:=(divy+1)*pasgrilley else newy:=divy*pasgrilley; x1:=newx; y1:=newy; end; procedure tmypng.ecrire(x,y:float; s:string;gauche:boolean; police:tfont); var xi,yi:integer; begin invconvert(xi,yi,x,y,gauche); image_pour_export.canvas.Font:=police; image_pour_export.canvas.textout(xi,yi,s); end; procedure tmypng.background(couleur:tcolor); var old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin old_pen_color:=image_pour_export.canvas.pen.color; old_pen_style:=image_pour_export.canvas.pen.style; old_pen_width:=image_pour_export.canvas.pen.width; old_pen_mode:=image_pour_export.canvas.pen.mode; old_brush_style:=image_pour_export.canvas.brush.style; old_brush_color:=image_pour_export.canvas.brush.color; image_pour_export.canvas.pen.style:=psclear; image_pour_export.canvas.Brush.Color:=couleur; image_pour_export.canvas.Brush.style:=bssolid; image_pour_export.canvas.Rectangle(borduregauche,bordurehaute, largeur-borduredroite,hauteur-bordurebasse); image_pour_export.canvas.pen.color:=old_pen_color; image_pour_export.canvas.pen.style:=old_pen_style; image_pour_export.canvas.pen.width:=old_pen_width; image_pour_export.canvas.pen.mode:=old_pen_mode; image_pour_export.canvas.brush.style:=old_brush_style; image_pour_export.canvas.brush.color:=old_brush_color; end; function TMyPNG.LimitesEtAxes(_xmin,_xmax,_ymin1,_ymax1,_ymin2,_ymax2:extended; _Largeur,_Hauteur:integer; _titre:string; _fontetitre:tfont; _Fond:boolean; _CouleurFond:tcolor; _Cadre:boolean; _EpaisseurCadre:integer; _CouleurCadre:tcolor; _Gradue:boolean; _EpaisseurGraduation,_LongueurGraduation:integer; _couleurgraduation:tcolor; _fontegraduation:tfont; _Grille1,_Grille2:boolean; _EpaisseurGrille:integer; _CouleurGrille1,_CouleurGrille2:tcolor; _labelx,_labely1,_labely2,_unitex,_unitey1,_unitey2:string; _borduresverticalessymetriques, _echelle_g,_echelle_d:boolean; b_g,b_d,b_b,b_h:integer):boolean; var xi,xa,yi1,yi2,ya1,ya2,gi,ga:extended; t1,t2,i:integer; dixx,dixy1,dixy2,tt,aff:string; nbgx,nbgy1,nbgy2:integer; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; rg_grad_first,rg_grad_last,rg_ssgrad_first,rg_ssgrad_last:integer; begin old_pen_color:=image_pour_export.canvas.pen.color; old_pen_style:=image_pour_export.canvas.pen.style; old_pen_width:=image_pour_export.canvas.pen.width; old_pen_mode:=image_pour_export.canvas.pen.mode; old_brush_style:=image_pour_export.canvas.brush.style; old_brush_color:=image_pour_export.canvas.brush.color; fond:=_fond; echelle_g:=_echelle_g; echelle_d:=_echelle_d; borduresverticalessymetriques:=_borduresverticalessymetriques; labelx:=_labelx; labely1:=_labely1; labely2:=_labely2; unitex:=_unitex; unitey1:=_unitey1; unitey2:=_unitey2; fontetitre:=_fontetitre; largeur:=_largeur; hauteur:=_hauteur; titre:=_titre; couleurfond:=_couleurfond; cadre:=_cadre; epaisseurcadre:=_epaisseurcadre; couleurcadre:=_couleurcadre; gradue:=_gradue; epaisseurgraduation:=_epaisseurgraduation; fontegraduation:=_fontegraduation; couleurgraduation:=_couleurgraduation; grille1:=_grille1; grille2:=_grille2; epaisseurgrille:=_epaisseurgrille; couleurgrille1:=_couleurgrille1; couleurgrille2:=_couleurgrille2; bordurehaute:=0; bordurebasse:=0; borduregauche:=0; borduredroite:=0; if (echelle_g and ( (_ymin1=_ymax1) or (_xmax=_xmin))) then begin LimitesEtAxes:=false; exit; end; if (echelle_d and ( (_ymin2=_ymax2) or (_xmax=_xmin))) then begin LimitesEtAxes:=false; exit; end; LimitesEtAxes:=true; if (_xmin>_xmax ) then begin xmin:=_xmax; xmax:=_xmin; end else begin xmin:=_xmin; xmax:=_xmax; end; if (_ymin1>_ymax1 ) then begin ymin1:=_ymax1; ymax1:=_ymin1; end else begin ymin1:=_ymin1; ymax1:=_ymax1; end; if (_ymin2>_ymax2 ) then begin ymin2:=_ymax2; ymax2:=_ymin2; end else begin ymin2:=_ymin2; ymax2:=_ymax2; end; xi:=xmin; yi1:=ymin1; yi2:=ymin2; xa:=xmax; ya1:=ymax1; ya2:=ymax2; graduation(xi,xa,xmin,xmax,graduationx,sousgraduationx,Rang_Premiere_Sous_Graduation_X, Rang_Derniere_Sous_Graduation_X,Rang_Premiere_Graduation_X,Rang_Derniere_Graduation_X); if echelle_g then graduation(yi1,ya1,ymin1,ymax1,graduationY1,sousgraduationY1,Rang_Premiere_Sous_Graduation_Y1, Rang_Derniere_Sous_Graduation_Y1,Rang_Premiere_Graduation_Y1,Rang_Derniere_Graduation_Y1); if echelle_d then graduation(yi2,ya2,ymin2,ymax2,graduationY2,sousgraduationY2,Rang_Premiere_Sous_Graduation_Y2, Rang_Derniere_Sous_Graduation_Y2,Rang_Premiere_Graduation_Y2,Rang_Derniere_Graduation_Y2); { str(-puissancededixx+1,dixx); if echelle_g then str(-puissancededixy1+1,dixy1) else dixy1:='0'; if echelle_d then str(-puissancededixy2+1,dixy2)else dixy2:='0'; } dixx:='0'; dixy1:='0'; dixy2:='0'; {determination taille bordure haute} image_pour_export.canvas.font:=fontetitre; if (titre<>'') then begin t1:=trunc(image_pour_export.canvas.textheight(titre))+10; end else t1:=10; if gradue then begin image_pour_export.canvas.font:=fontegraduation; if ((dixy1='0') and (dixy2='0')) then t2:=trunc(image_pour_export.canvas.textheight(unitex+labelx)*1.5) else t2:=trunc(image_pour_export.canvas.textheight(unitex+labelx)*2.2); end else t2:=10; if (t1>t2) then bordurehaute:=t1 else bordurehaute:=t2; {taille bordure basse} if gradue then begin image_pour_export.canvas.font:=fontegraduation; t1:=trunc(image_pour_export.canvas.textheight('x10'))+10; end else t1:=10; bordurebasse:=t1; {taille bordure droite} if (gradue and echelle_d) then begin image_pour_export.canvas.font:=fontegraduation; t1:=image_pour_export.canvas.textwidth(floattostr(Rang_Premiere_Graduation_Y2*GraduationY2)); for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do t1:=max(t1,image_pour_export.canvas.textwidth(floattostr(i*GraduationY2))); t1:=t1+10+_longueurgraduation; end else begin t1:=10; end; if gradue then begin image_pour_export.canvas.font:=fontegraduation; t2:=(image_pour_export.canvas.textwidth(floattostr(Rang_Derniere_Graduation_X*GraduationX)) div 2)- trunc((xmax-Rang_Derniere_Graduation_X*GraduationX)/(xmax-xmin)*(largeur-borduredroite-borduregauche)); end else t2:=10; borduredroite:=max(t1,t2); {taille bordure gauche} if (gradue and echelle_g) then begin image_pour_export.canvas.font:=fontegraduation; t1:=image_pour_export.canvas.textwidth(floattostr(Rang_Premiere_Graduation_Y1*GraduationY1)); for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do t1:=max(t1,image_pour_export.canvas.textwidth(floattostr(i*GraduationY1))); t1:=t1+10+_longueurgraduation; end else begin t1:=10; end; if gradue then begin image_pour_export.canvas.font:=fontegraduation; t2:=(image_pour_export.canvas.textwidth(floattostr(Rang_Premiere_Graduation_X*GraduationX)) div 2)- trunc((Rang_Premiere_Graduation_X*GraduationX-xmin)/(xmax-xmin)*(largeur-borduredroite-borduregauche)); end else t2:=10; borduregauche:=max(t1,t2); if borduresverticalessymetriques then begin borduregauche:=max(borduregauche,borduredroite); borduredroite:=borduregauche; end; borduregauche:=max(borduregauche,b_g); borduredroite:=max(borduredroite,b_d); bordurebasse:=max(bordurebasse,b_b); bordurehaute:=max(bordurehaute,b_h); if fond then background(couleurfond); {longueurgraduation} longueurgraduationX:=_longueurgraduation/largeur*(xmax-xmin); if echelle_g then longueurgraduationy1:=_longueurgraduation/hauteur*(ymax1-ymin1); if echelle_d then longueurgraduationy2:=_longueurgraduation/hauteur*(ymax2-ymin2); if grille1 then begin image_pour_export.canvas.pen.style:=psdot; image_pour_export.canvas.pen.color:=couleurgrille1; image_pour_export.canvas.pen.width:=epaisseurgrille; for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin1,i*sousgraduationx,ymax1, epaisseurgrille,couleurgrille1,psdot,pmcopy,true); for i:=Rang_Premiere_Sous_Graduation_Y1 to Rang_Derniere_Sous_Graduation_Y1 do trait(xmin,i*sousgraduationy1,xmax,i*sousgraduationy1, epaisseurgrille,couleurgrille1,psdot,pmcopy,true); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin1,i*graduationx,ymax1, epaisseurgrille,couleurgrille1,psdash,pmcopy,true); for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do trait(xmin,i*graduationy1,xmax,i*graduationy1, epaisseurgrille,couleurgrille1,psdash,pmcopy,true); end; if grille2 then begin image_pour_export.canvas.pen.style:=psdot; image_pour_export.canvas.pen.color:=couleurgrille2; image_pour_export.canvas.pen.width:=epaisseurgrille; for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin2,i*sousgraduationx,ymax2, epaisseurgrille,couleurgrille2,psdot,pmcopy,false); for i:=Rang_Premiere_Sous_Graduation_Y2 to Rang_Derniere_Sous_Graduation_Y2 do trait(xmin,i*sousgraduationy2,xmax,i*sousgraduationy2, epaisseurgrille,couleurgrille2,psdot,pmcopy,false); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin2,i*graduationx,ymax2, epaisseurgrille,couleurgrille2,psdash,pmcopy,false); for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do trait(xmin,i*graduationy2,xmax,i*graduationy2, epaisseurgrille,couleurgrille2,psdash,pmcopy,false); end; {cadre} if cadre then begin trait(xmin,ymin1,xmax,ymin1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); trait(xmax,ymin1,xmax,ymax1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); trait(xmax,ymax1,xmin,ymax1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); trait(xmin,ymax1,xmin,ymin1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); end; {affichage du titre} image_pour_export.canvas.font:=fontetitre; image_pour_export.canvas.Font.Size:=abs(image_pour_export.canvas.Font.Size); while (((image_pour_export.canvas.textwidth(titre)>largeur-borduregauche-borduredroite) or (image_pour_export.canvas.textheight(titre)>bordurehaute)) and (image_pour_export.canvas.Font.Size>1)) do begin { application.MessageBox(pchar(inttostr(image_pour_export.canvas.Font.Size)), pchar(inttostr(image_pour_export.canvas.textwidth(titre))),mb_ok);} image_pour_export.canvas.Font.Size:= image_pour_export.canvas.Font.Size-1; end; if image_pour_export.canvas.Font.Size<6 then image_pour_export.canvas.Font.Size:=6; image_pour_export.canvas.textout(largeur div 2 -(image_pour_export.canvas.textwidth(titre) div 2), 2,titre); {graduation} if gradue then begin if dixx='0' then aff:='' else begin aff:='10'; if dixx<>'1' then for i:=1 to length(dixx) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labelx; if ((unitex<>'1') and (unitex<>'')) then aff:=aff+' en '+unitex; image_pour_export.canvas.font:=fontegraduation; image_pour_export.canvas.textout(largeur-borduredroite-trunc(image_pour_export.canvas.textwidth (aff)*1.3),hauteur-bordurebasse- trunc(image_pour_export.canvas.textheight('x10')*1.3),aff); if ((dixx<>'0') and (dixx<>'1')) then image_pour_export.canvas.textout(largeur-borduredroite-trunc(image_pour_export.canvas.textwidth(aff)*1.3)+ trunc(image_pour_export.canvas.textwidth('10')),hauteur-bordurebasse -trunc(1.9*image_pour_export.canvas.textheight('x10')), dixx); if echelle_g then begin if dixy1='0' then aff:='' else begin aff:='10'; if dixy1<>'1' then for i:=1 to length(dixy1) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labely1; if ((unitey1<>'1') and (unitey1<>'')) then aff:=aff+' en '+unitey1; image_pour_export.canvas.font:=fontegraduation; image_pour_export.canvas.textout(borduregauche,bordurehaute-trunc(image_pour_export.canvas.textheight(aff)*1.2),aff); if ((dixy1<>'0') and (dixy1<>'1')) then image_pour_export.canvas.textout(borduregauche+image_pour_export.canvas.textwidth('10'),bordurehaute -trunc(image_pour_export.canvas.textheight(aff)*1.8), dixy1); end; if echelle_d then begin if dixy2='0' then aff:='' else begin aff:='10'; if dixy2<>'1' then for i:=1 to length(dixy2) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labely2; if ((unitey2<>'1') and (unitey2<>'')) then aff:=aff+' en '+unitey2; image_pour_export.canvas.font:=fontegraduation; image_pour_export.canvas.textout(largeur-borduredroite-trunc(image_pour_export.canvas.textwidth(aff)*1.2), bordurehaute-trunc(image_pour_export.canvas.textheight(aff)*1.2),aff); if ((dixy2<>'0') and (dixy2<>'1')) then image_pour_export.canvas.textout(largeur-borduredroite-trunc(image_pour_export.canvas.textwidth(aff)*1.2)+image_pour_export.canvas.textwidth('10'), bordurehaute -trunc(image_pour_export.canvas.textheight(aff)*1.8), dixy2); end; image_pour_export.canvas.font:=fontegraduation; for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do //str(round((i*graduationx)),tt); begin tt:=floattostr(i*graduationx); image_pour_export.canvas.textout( trunc((i*graduationx-xmin)/(xmax-xmin)*(largeur-borduredroite-borduregauche))+ borduregauche-image_pour_export.canvas.textwidth(tt) div 2, hauteur-bordurebasse+_LongueurGraduation,tt); end; if echelle_g then for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do begin //str( round((i*graduationy1)),tt); tt:=floattostr(i*graduationy1); image_pour_export.canvas.textout( borduregauche-trunc(image_pour_export.canvas.textwidth(tt)*1.1)-5 -_LongueurGraduation, trunc((ymax1-i*graduationy1)/(ymax1-ymin1)*(hauteur-bordurehaute-bordurebasse))+bordurehaute -image_pour_export.canvas.textheight(tt) div 2, tt); end; if echelle_d then for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do begin //str( round((i*graduationy2)),tt); tt:=floattostr(i*graduationy2); image_pour_export.canvas.textout( largeur-borduredroite+_LongueurGraduation+5, trunc((ymax2-i*graduationy2)/(ymax2-ymin2)*(hauteur-bordurehaute-bordurebasse))+bordurehaute -image_pour_export.canvas.textheight(tt) div 2, tt); end; if echelle_g then begin for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin1-longueurgraduationy1,i*sousgraduationx, ymin1+longueurgraduationy1,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymax1+longueurgraduationy1,i*sousgraduationx, ymax1-longueurgraduationy1,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin1-2*longueurgraduationy1,i*graduationx, ymin1+longueurgraduationy1*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymax1-2*longueurgraduationy1,i*graduationx, ymax1+longueurgraduationy1*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Sous_Graduation_Y1 to Rang_Derniere_Sous_Graduation_Y1 do trait(xmin-longueurgraduationx,i*sousgraduationy1,xmin+longueurgraduationx,i*sousgraduationy1, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do trait(xmin-2*longueurgraduationx,i*graduationy1,xmin+longueurgraduationx*2,i*graduationy1, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); end; if echelle_d then begin for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin2-longueurgraduationy2,i*sousgraduationx, ymin2+longueurgraduationy2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymax2-longueurgraduationy2,i*sousgraduationx, ymax2-longueurgraduationy2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin2-2*longueurgraduationy2,i*graduationx, ymin2+longueurgraduationy2*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymax2+2*longueurgraduationy2,i*graduationx, ymax2-longueurgraduationy2*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Sous_Graduation_Y2 to Rang_Derniere_Sous_Graduation_Y2 do trait(xmax+longueurgraduationx,i*sousgraduationy2,xmax-longueurgraduationx,i*sousgraduationy2, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do trait(xmax+2*longueurgraduationx,i*graduationy2,xmax-longueurgraduationx*2,i*graduationy2, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); end; end; image_pour_export.canvas.pen.color:=old_pen_color; image_pour_export.canvas.pen.style:=old_pen_style; image_pour_export.canvas.pen.width:=old_pen_width; image_pour_export.canvas.pen.mode:=old_pen_mode; image_pour_export.canvas.brush.style:=old_brush_style; image_pour_export.canvas.brush.color:=old_brush_color; end; function tmypng.Convert(xi,yi:integer; var x,y:float;gauche:boolean):boolean; var ymax,ymin,pasgrilley:float; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x:=(xi-BordureGauche)*(xmax-xmin)/ (largeur-BordureGauche-BordureDroite) +xmin; y:=-(yi-BordureHaute)*(ymax-ymin)/(hauteur-BordureHaute-BordureBasse) +ymax; convert:=true; end; function tmypng.invconvert(var xi,yi:integer; x,y:float;gauche:boolean):boolean; var ymax,ymin,pasgrilley:float; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; xi:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; yi:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; invconvert:=true; end; function tmypng.CroixX(x,y:float; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin croixx:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=image_pour_export.canvas.pen.color; old_pen_style:=image_pour_export.canvas.pen.style; old_pen_width:=image_pour_export.canvas.pen.width; old_pen_mode:=image_pour_export.canvas.pen.mode; old_brush_style:=image_pour_export.canvas.brush.style; image_pour_export.canvas.pen.width:=epaisseur; image_pour_export.canvas.pen.mode:=penmod; image_pour_export.canvas.pen.style:=pssolid; image_pour_export.canvas.pen.color:=couleur; image_pour_export.canvas.moveto(x1,y1); image_pour_export.canvas.lineto(x1+demi_diagonale,y1+demi_diagonale); image_pour_export.canvas.moveto(x1,y1); image_pour_export.canvas.lineto(x1-demi_diagonale,y1+demi_diagonale); image_pour_export.canvas.moveto(x1,y1); image_pour_export.canvas.lineto(x1+demi_diagonale,y1-demi_diagonale); image_pour_export.canvas.moveto(x1,y1); image_pour_export.canvas.lineto(x1-demi_diagonale,y1-demi_diagonale); croixx:=true; image_pour_export.canvas.pen.color:=old_pen_color; image_pour_export.canvas.pen.style:=old_pen_style; image_pour_export.canvas.pen.width:=old_pen_width; image_pour_export.canvas.pen.mode:=old_pen_mode; image_pour_export.canvas.brush.style:=old_brush_style; end; end. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit12.lrs��������������������������������������������������������������������������0000750�0001750�0001750�00000013110�13147330070�015713� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisiecouleurs','FORMDATA',[ 'TPF0'#15'Tsaisiecouleurs'#14'saisiecouleurs'#4'Left'#3'P'#1#6'Height'#3#212#0 +#3'Top'#3#195#0#5'Width'#3#153#1#13'ActiveControl'#7#25'BitBtncouleurgrilleg' +'auche'#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle' +#7#8'bsSingle'#7'Caption'#6#8'Couleurs'#12'ClientHeight'#3#212#0#11'ClientWi' +'dth'#3#153#1#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVer' +'sion'#6#7'1.2.2.0'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Own' +'er'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3'Top' +#2#10#5'Width'#3#203#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10 +#7'Caption'#6#31'Couleur grille '#195#169'chelle gauche:'#10'Font.Color'#7#8 +'clMaroon'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0 +#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTo' +'p.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6 +'Height'#2#20#3'Top'#2'-'#5'Width'#3#195#0#18'BorderSpacing.Left'#2#10#17'Bo' +'rderSpacing.Top'#2#15#7'Caption'#6#31'Couleur grille '#195#169'chelle droit' +'e:'#10'Font.Color'#7#9'clFuchsia'#10'Font.Style'#11#6'fsBold'#0#11'ParentCo' +'lor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label3'#22'AnchorSideLeft.Control'#7 +#5'Owner'#21'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'a' +'srBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#2'P'#5'Width'#3#146#0#18'Borde' +'rSpacing.Left'#2#10#17'BorderSpacing.Top'#2#15#7'Caption'#6#20'Couleur grad' +'uations:'#10'Font.Color'#7#6'clBlue'#10'Font.Style'#11#6'fsBold'#0#11'Paren' +'tColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label4'#22'AnchorSideLeft.Contro' +'l'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label3'#18'AnchorSideTop.Side'#7 +#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#2's'#5'Width'#2'u'#18'Borde' +'rSpacing.Left'#2#10#17'BorderSpacing.Top'#2#15#7'Caption'#6#16'Couleur du f' +'ond:'#10'Font.Color'#7#7'clGreen'#10'Font.Style'#11#6'fsBold'#0#11'ParentCo' +'lor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label5'#22'AnchorSideLeft.Control'#7 +#5'Owner'#21'AnchorSideTop.Control'#7#6'Label4'#18'AnchorSideTop.Side'#7#9'a' +'srBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#3#150#0#5'Width'#2'y'#18'Borde' +'rSpacing.Left'#2#10#17'BorderSpacing.Top'#2#15#7'Caption'#6#17'Couleur des ' +'axes:'#10'Font.Color'#7#5'clRed'#10'Font.Style'#11#6'fsBold'#0#11'ParentCol' +'or'#8#10'ParentFont'#8#0#0#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLeft.Control' +#7#25'BitBtncouleurgrillegauche'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'A' +'nchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20 +'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner' +#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#29#1#6'Height'#3#192#0#3 +'Top'#2#10#5'Width'#2'r'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBot' +'tom'#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpac' +'ing.Right'#2#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6#3'&OK'#7'Default' +#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#8'TabOrder'#2#0#0#0#6'TPanel'#25'Bi' +'tBtncouleurgrillegauche'#22'AnchorSideLeft.Control'#7#6'Label1'#19'AnchorSi' +'deLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Label1'#18'Anchor' +'SideTop.Side'#7#9'asrCenter'#4'Left'#3#223#0#6'Height'#2#24#3'Top'#2#8#5'Wi' +'dth'#2'4'#18'BorderSpacing.Left'#2#10#8'TabOrder'#2#1#7'OnClick'#7#30'BitBt' +'ncouleurgrillegaucheClick'#0#0#6'TPanel'#25'BitBtncouleurgrilledroite'#22'A' +'nchorSideLeft.Control'#7#6'Label2'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21 +'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrCenter'#4 +'Left'#3#215#0#6'Height'#2#24#3'Top'#2'+'#5'Width'#2'4'#18'BorderSpacing.Lef' +'t'#2#10#8'TabOrder'#2#2#7'OnClick'#7#30'BitBtncouleurgrilledroiteClick'#0#0 +#6'TPanel'#24'BitBtncouleurgraduations'#22'AnchorSideLeft.Control'#7#6'Label' +'3'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Lab' +'el3'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#166#0#6'Height'#2#24#3 +'Top'#2'N'#5'Width'#2'4'#18'BorderSpacing.Left'#2#10#8'TabOrder'#2#3#7'OnCli' +'ck'#7#29'BitBtncouleurgraduationsClick'#0#0#6'TPanel'#17'BitBtncouleurfond' +#22'AnchorSideLeft.Control'#7#6'Label4'#19'AnchorSideLeft.Side'#7#9'asrBotto' +'m'#21'AnchorSideTop.Control'#7#6'Label4'#18'AnchorSideTop.Side'#7#9'asrCent' +'er'#4'Left'#3#137#0#6'Height'#2#24#3'Top'#2'q'#5'Width'#2'4'#18'BorderSpaci' +'ng.Left'#2#10#8'TabOrder'#2#4#7'OnClick'#7#22'BitBtncouleurfondClick'#0#0#6 +'TPanel'#17'BitBtncouleuraxes'#22'AnchorSideLeft.Control'#7#6'Label5'#19'Anc' +'horSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Label5'#18'A' +'nchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#141#0#6'Height'#2#24#3'Top'#3 +#148#0#5'Width'#2'4'#18'BorderSpacing.Left'#2#10#8'TabOrder'#2#5#7'OnClick'#7 +#22'BitBtncouleuraxesClick'#0#0#12'TColorDialog'#12'ColorDialog1'#5'Color'#7 +#7'clBlack'#20'CustomColors.Strings'#1#6#13'ColorA=000000'#6#13'ColorB=00008' +'0'#6#13'ColorC=008000'#6#13'ColorD=008080'#6#13'ColorE=800000'#6#13'ColorF=' ,'800080'#6#13'ColorG=808000'#6#13'ColorH=808080'#6#13'ColorI=C0C0C0'#6#13'Co' +'lorJ=0000FF'#6#13'ColorK=00FF00'#6#13'ColorL=00FFFF'#6#13'ColorM=FF0000'#6 +#13'ColorN=FF00FF'#6#13'ColorO=FFFF00'#6#13'ColorP=FFFFFF'#6#13'ColorQ=C0DCC' +'0'#6#13'ColorR=F0CAA6'#6#13'ColorS=F0FBFF'#6#13'ColorT=A4A0A0'#0#4'left'#3 +'P'#1#3'top'#2'^'#0#0#0 ]); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/monjpeg.pas�������������������������������������������������������������������������0000750�0001750�0001750�00000141363�13147330070�016227� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit MonJPEG; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,LCLProc,Math,UnitScaleFont; type TMyJPEG=object Xmin,Xmax,Ymin1,Ymax1,Ymin2,Ymax2,GraduationX, GraduationY1,GraduationY2, SousGraduationX, SousGraduationY1,SousGraduationY2:extended; Rang_Premiere_Graduation_X,Rang_Premiere_Graduation_Y1,Rang_Premiere_Graduation_Y2, Rang_Derniere_Graduation_X,Rang_Derniere_Graduation_Y1,Rang_Derniere_Graduation_Y2, Rang_Premiere_Sous_Graduation_X,Rang_Premiere_Sous_Graduation_Y1,Rang_Premiere_Sous_Graduation_Y2, Rang_Derniere_Sous_Graduation_X,Rang_Derniere_Sous_Graduation_Y1,Rang_Derniere_Sous_Graduation_Y2:integer; Largeur,Hauteur,BordureBasse,BordureHaute, BordureGauche,BordureDroite,EpaisseurGrille,PuissanceDeDixX, PuissancedeDixY1,PuissancedeDixY2,epaisseurcadre,epaisseurgraduation:integer; longueurgraduationX,longueurgraduationY1,longueurgraduationY2:float; PasGrillex,PasGrilley1,PasGrilley2:float; couleurfond,couleurcadre,couleurgraduation, couleurgrille1,couleurgrille2:tcolor; cadre,gradue,grille1,grille2,fond,borduresverticalessymetriques,echelle_g,echelle_d:boolean; titre,labelx,labely1,labely2,unitex,unitey1,unitey2:string; fontegraduation:tfont; fontetitre:tfont; procedure background(couleur:tcolor); function LimitesEtAxes(_xmin,_xmax,_ymin1,_ymax1,_ymin2,_ymax2:float; _Largeur,_Hauteur:integer; _titre:string; _fontetitre:tfont; _Fond:boolean; _CouleurFond:tcolor; _Cadre:boolean; _EpaisseurCadre:integer; _CouleurCadre:tcolor; _Gradue:boolean; _EpaisseurGraduation,_LongueurGraduation:integer; _couleurgraduation:tcolor; _fontegraduation:tfont; _Grille1,_Grille2:boolean; _EpaisseurGrille:integer; _CouleurGrille1,_CouleurGrille2:tcolor; _labelx,_labely1,_labely2,_unitex,_unitey1,_unitey2:string; _borduresverticalessymetriques, _echelle_g,_echelle_d:boolean; b_g,b_d,b_b,b_h:integer):boolean; function MonRectangle(x1,y1,x2,y2:extended; couleur:tcolor; gauche:boolean):boolean; function invconvert(var xi,yi:integer; x,y:float;gauche:boolean):boolean; function Convert(xi,yi:integer; var x,y:float;gauche:boolean):boolean; function CroixX(x,y:float; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function CroixP(x,y:float; demi_longueur,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function Carreau(x,y:float; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function Trait(x1,y1,x2,y2:float; epaisseur:integer; couleur:tcolor; sty:tpenstyle; penmod:tpenmode;gauche:boolean):boolean; function Point(x,y:float; rayon:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function cercle(x,y:float; rayon,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function disque(x,y:float; rayon:float; couleurbord,couleurf:tcolor;transparent:boolean;gauche:boolean): boolean; function disque2(x,y:float; rayon:integer; couleurbord,couleurf:tcolor;gauche:boolean): boolean; function arcdecercle(x,y:float; rayonreel:float; epaisseur:integer; theta1,theta2:float; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function tracepolygone(nombrepoint:integer;listex,listey:array of float; couleurbord,couleurf:tcolor;transparent:boolean;gauche:boolean):boolean; procedure traceconique(theta0,theta1,theta2,fx,fy,excentricite,parametre:float; couleur:tcolor;gauche:boolean); procedure arronditalagrille(var x1,y1:float;gauche:boolean); procedure ecrire(x,y:float; s:string;gauche:boolean; police:tfont); procedure graduation(xi,xa:extended; var xci,xca:extended; var graduation,sousgraduation:extended; var rang_premiere_sousgraduation,rang_derniere_sousgraduation,rang_premiere_graduation,rang_derniere_graduation:integer); end; procedure echange(var a,b:float); procedure echange_entiers(var a,b:integer); function partieentiere(x:float):float; function dix_pp(p:longint):float; implementation uses Unit1; procedure TMyJPEG.graduation(xi,xa:extended; var xci,xca:extended; var graduation,sousgraduation:extended; var rang_premiere_sousgraduation,rang_derniere_sousgraduation,rang_premiere_graduation,rang_derniere_graduation:integer); var g,sg,d:extended; p:longint; label 124; begin if xa<xi then echange(xi,xa); d:=xa-xi; p:=floor(log10(d/4)); {d est compris entre 4.10^p et 4.10^(p+1)} if d<=8*intpower(10,p) then begin g:=intpower(10,p); sg:=g/5; end else if d<=20*intpower(10,p) then begin g:=2*intpower(10,p); sg:=g/4; end else begin g:=5*intpower(10,p); sg:=g/5; end; graduation:=g; sousgraduation:=sg; rang_derniere_sousgraduation:=ceil(xa/sousgraduation); rang_premiere_sousgraduation:=floor(xi/sousgraduation); xci:=rang_premiere_sousgraduation*sousgraduation; xca:=rang_derniere_sousgraduation*sousgraduation; rang_derniere_graduation:=floor(xca/graduation); rang_premiere_graduation:=ceil(xci/graduation); end; function dix_pp(p:longint):float; var i:longint; inter:float; begin if (p<-1) then begin inter:=1/10; for i:=1 to abs(p)-1 do inter:=inter/10; result:=inter; end else if p=0 then begin result:=1; end else if p=1 then begin result:=10; end else if (p>1) then begin inter:=10; for i:=1 to p-1 do inter:=inter*10; result:=inter; end else if (p=-1) then begin result:=1/10; end; end; function partieentiere(x:float):float; begin if x>=0 then begin partieentiere:=int(x); exit; end; if frac(x)=0 then begin partieentiere:=x; exit; end; {cas ou x est <0 et non entier} partieentiere:=int(x)-1; end; function TMyJPEG.disque2(x,y:float; rayon:integer; couleurbord,couleurf:tcolor;gauche:boolean): boolean; var x1,y1,r1x,r1y:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin disque2:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; if rayon=0 then exit; old_pen_color:=image_jpeg_pour_export.canvas.pen.color; old_pen_style:=image_jpeg_pour_export.canvas.pen.style; old_pen_width:=image_jpeg_pour_export.canvas.pen.width; old_pen_mode:=image_jpeg_pour_export.canvas.pen.mode; old_brush_style:=image_jpeg_pour_export.canvas.brush.style; old_brush_color:=image_jpeg_pour_export.canvas.brush.color; image_jpeg_pour_export.canvas.pen.color:=couleurbord; image_jpeg_pour_export.canvas.pen.style:=pssolid; image_jpeg_pour_export.canvas.pen.width:=1; image_jpeg_pour_export.canvas.pen.mode:=pmcopy; disque2:=true; image_jpeg_pour_export.canvas.brush.style:=bssolid; image_jpeg_pour_export.canvas.brush.color:=couleurf; image_jpeg_pour_export.canvas.ellipse(x1-rayon,y1-rayon,x1+rayon, y1+rayon); image_jpeg_pour_export.canvas.brush.color:=clwhite; image_jpeg_pour_export.canvas.pen.color:=old_pen_color; image_jpeg_pour_export.canvas.pen.style:=old_pen_style; image_jpeg_pour_export.canvas.pen.width:=old_pen_width; image_jpeg_pour_export.canvas.pen.mode:=old_pen_mode; image_jpeg_pour_export.canvas.brush.style:=old_brush_style; image_jpeg_pour_export.canvas.brush.color:=old_brush_color; end; function TMyJPEG.Carreau(x,y:float; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin carreau:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=image_jpeg_pour_export.canvas.pen.color; old_pen_style:=image_jpeg_pour_export.canvas.pen.style; old_pen_width:=image_jpeg_pour_export.canvas.pen.width; old_pen_mode:=image_jpeg_pour_export.canvas.pen.mode; old_brush_style:=image_jpeg_pour_export.canvas.brush.style; image_jpeg_pour_export.canvas.pen.width:=epaisseur; image_jpeg_pour_export.canvas.pen.mode:=penmod; image_jpeg_pour_export.canvas.pen.style:=pssolid; image_jpeg_pour_export.canvas.pen.color:=couleur; image_jpeg_pour_export.canvas.moveto(x1,y1+demi_diagonale); image_jpeg_pour_export.canvas.lineto(x1+demi_diagonale,y1); image_jpeg_pour_export.canvas.lineto(x1,y1-demi_diagonale); image_jpeg_pour_export.canvas.lineto(x1-demi_diagonale,y1); image_jpeg_pour_export.canvas.lineto(x1,y1+demi_diagonale); carreau:=true; image_jpeg_pour_export.canvas.pen.color:=old_pen_color; image_jpeg_pour_export.canvas.pen.style:=old_pen_style; image_jpeg_pour_export.canvas.pen.width:=old_pen_width; image_jpeg_pour_export.canvas.pen.mode:=old_pen_mode; image_jpeg_pour_export.canvas.brush.style:=old_brush_style; end; procedure echange_entiers(var a,b:integer); var c:integer; begin c:=a; a:=b; b:=c; end; procedure echange(var a,b:float); var c:float; begin c:=a; a:=b; b:=c; end; procedure TMyJPEG.traceconique(theta0,theta1,theta2,fx,fy,excentricite,parametre:float; couleur:tcolor;gauche:boolean); var pas,theta,r,ract,thetaact,nx,ny,ttai:float; nombrepas,i:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; nombrepas:=1000; pas:=(theta2-theta1)/nombrepas; thetaact:=theta1; ract:=parametre/(1+excentricite*cos(thetaact-theta0)); for i:=1 to nombrepas do begin theta:=theta1+i*pas; r:=parametre/(1+excentricite*cos(theta-theta0)); if ((r>0) and (ract>0)) then trait(fx+ract*cos(thetaact),fy+ract*sin(thetaact),fx+r*cos(theta),fy+r*sin(theta), 1,couleur,pssolid,pmcopy,gauche); thetaact:=theta; ract:=r; end; end; function TMyJPEG.tracepolygone(nombrepoint:integer;listex,listey:array of float; couleurbord,couleurf:tcolor;transparent:boolean;gauche:boolean):boolean; var i,x1,y1:integer; titi:array of tpoint; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; setlength(titi,nombrepoint); for i:=1 to nombrepoint do begin x1:= trunc((listex[i-1]-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-listey[i-1])/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; titi[i-1].x:=x1; titi[i-1].y:=y1; end; old_pen_color:=image_jpeg_pour_export.canvas.pen.color; old_pen_style:=image_jpeg_pour_export.canvas.pen.style; old_pen_width:=image_jpeg_pour_export.canvas.pen.width; old_pen_mode:=image_jpeg_pour_export.canvas.pen.mode; old_brush_style:=image_jpeg_pour_export.canvas.brush.style; old_brush_color:=image_jpeg_pour_export.canvas.brush.color; image_jpeg_pour_export.canvas.Pen.Color:=couleurbord; image_jpeg_pour_export.canvas.brush.color:=couleurf; if not(transparent) then image_jpeg_pour_export.canvas.brush.style:=bsSolid else image_jpeg_pour_export.canvas.brush.style:=bsclear; image_jpeg_pour_export.canvas.Polygon(titi,false,0,nombrepoint); image_jpeg_pour_export.canvas.pen.color:=old_pen_color; image_jpeg_pour_export.canvas.pen.style:=old_pen_style; image_jpeg_pour_export.canvas.pen.width:=old_pen_width; image_jpeg_pour_export.canvas.pen.mode:=old_pen_mode; image_jpeg_pour_export.canvas.brush.style:=old_brush_style; image_jpeg_pour_export.canvas.brush.color:=old_brush_color; end; function TMyJPEG.arcdecercle(x,y:float; rayonreel:float; epaisseur:integer; theta1,theta2:float; couleur:tcolor; penmod:tpenmode;gauche:boolean): boolean; var x1,y1,rax,ray:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; invconvert(x1,y1,x,y,gauche); rax:= trunc(rayonreel/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); ray:= trunc(rayonreel/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if rayonreel=0 then exit; old_pen_color:=image_jpeg_pour_export.canvas.pen.color; old_pen_style:=image_jpeg_pour_export.canvas.pen.style; old_pen_width:=image_jpeg_pour_export.canvas.pen.width; old_pen_mode:=image_jpeg_pour_export.canvas.pen.mode; old_brush_style:=image_jpeg_pour_export.canvas.brush.style; old_brush_color:=image_jpeg_pour_export.canvas.brush.color; image_jpeg_pour_export.canvas.pen.color:=couleur; image_jpeg_pour_export.canvas.pen.style:=pssolid; image_jpeg_pour_export.canvas.pen.width:=epaisseur; image_jpeg_pour_export.canvas.pen.mode:=penmod; arcdecercle:=true; image_jpeg_pour_export.canvas.brush.style:=bsclear; image_jpeg_pour_export.canvas.arc(x1-rax,y1-ray,x1+rax,y1+ray,trunc(theta1/Pi*180*16),trunc((theta2-theta1)/Pi*180*16)); arcdecercle:=true; image_jpeg_pour_export.canvas.pen.color:=old_pen_color; image_jpeg_pour_export.canvas.pen.style:=old_pen_style; image_jpeg_pour_export.canvas.pen.width:=old_pen_width; image_jpeg_pour_export.canvas.pen.mode:=old_pen_mode; image_jpeg_pour_export.canvas.brush.style:=old_brush_style; image_jpeg_pour_export.canvas.brush.color:=old_brush_color; end; function TMyJPEG.Point(x,y:float; rayon:integer; couleur:tcolor ; penmod:tpenmode;gauche:boolean): boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin point:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; if rayon=0 then image_jpeg_pour_export.canvas.pixels[x1,y1]:=couleur; if rayon=0 then exit; old_pen_color:=image_jpeg_pour_export.canvas.pen.color; old_pen_style:=image_jpeg_pour_export.canvas.pen.style; old_pen_width:=image_jpeg_pour_export.canvas.pen.width; old_pen_mode:=image_jpeg_pour_export.canvas.pen.mode; old_brush_style:=image_jpeg_pour_export.canvas.brush.style; image_jpeg_pour_export.canvas.brush.style:=bssolid; image_jpeg_pour_export.canvas.brush.Color:=couleur; image_jpeg_pour_export.canvas.ellipse(x1-rayon,y1-rayon,x1+rayon,y1+rayon); image_jpeg_pour_export.canvas.pen.color:=old_pen_color; image_jpeg_pour_export.canvas.pen.style:=old_pen_style; image_jpeg_pour_export.canvas.pen.width:=old_pen_width; image_jpeg_pour_export.canvas.pen.mode:=old_pen_mode; image_jpeg_pour_export.canvas.brush.style:=old_brush_style; end; function TMyJPEG.cercle(x,y:float; rayon,epaisseur:integer; couleur:tcolor ; penmod:tpenmode;gauche:boolean): boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin cercle:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=image_jpeg_pour_export.canvas.pen.color; old_pen_style:=image_jpeg_pour_export.canvas.pen.style; old_pen_width:=image_jpeg_pour_export.canvas.pen.width; old_pen_mode:=image_jpeg_pour_export.canvas.pen.mode; old_brush_style:=image_jpeg_pour_export.canvas.brush.style; image_jpeg_pour_export.canvas.pen.color:=couleur; image_jpeg_pour_export.canvas.pen.style:=pssolid; image_jpeg_pour_export.canvas.pen.width:=epaisseur; image_jpeg_pour_export.canvas.pen.mode:=penmod; cercle:=true; image_jpeg_pour_export.canvas.brush.style:=bsclear; if rayon=0 then exit; image_jpeg_pour_export.canvas.arc(x1-rayon,y1-rayon,x1+rayon,y1+rayon,x1+rayon, y1+rayon,x1+rayon,y1+rayon); image_jpeg_pour_export.canvas.pen.color:=old_pen_color; image_jpeg_pour_export.canvas.pen.style:=old_pen_style; image_jpeg_pour_export.canvas.pen.width:=old_pen_width; image_jpeg_pour_export.canvas.pen.mode:=old_pen_mode; image_jpeg_pour_export.canvas.brush.style:=old_brush_style; end; function TMyJPEG.disque(x,y:float; rayon:float; couleurbord,couleurf:tcolor;transparent:boolean;gauche:boolean): boolean; var x1,y1,r1x,r1y:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin disque:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; r1x:= trunc(rayon/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); r1y:=trunc((rayon)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if rayon=0 then exit; old_pen_color:=image_jpeg_pour_export.canvas.pen.color; old_pen_style:=image_jpeg_pour_export.canvas.pen.style; old_pen_width:=image_jpeg_pour_export.canvas.pen.width; old_pen_mode:=image_jpeg_pour_export.canvas.pen.mode; old_brush_style:=image_jpeg_pour_export.canvas.brush.style; old_brush_color:=image_jpeg_pour_export.canvas.brush.color; image_jpeg_pour_export.canvas.pen.color:=couleurbord; image_jpeg_pour_export.canvas.pen.style:=pssolid; image_jpeg_pour_export.canvas.pen.width:=1; image_jpeg_pour_export.canvas.pen.mode:=pmcopy; disque:=true; image_jpeg_pour_export.canvas.brush.color:=couleurf; if not(transparent) then image_jpeg_pour_export.canvas.brush.style:=bssolid else image_jpeg_pour_export.canvas.brush.style:=bsclear; image_jpeg_pour_export.canvas.ellipse(x1-r1x,y1-r1y,x1+r1x, y1+r1y); image_jpeg_pour_export.canvas.brush.color:=clwhite; image_jpeg_pour_export.canvas.pen.color:=old_pen_color; image_jpeg_pour_export.canvas.pen.style:=old_pen_style; image_jpeg_pour_export.canvas.pen.width:=old_pen_width; image_jpeg_pour_export.canvas.pen.mode:=old_pen_mode; image_jpeg_pour_export.canvas.brush.style:=old_brush_style; image_jpeg_pour_export.canvas.brush.color:=old_brush_color; end; function TMyJPEG.Trait(x1,y1,x2,y2:float; epaisseur:integer; couleur:tcolor;sty:tpenstyle; penmod:tpenmode;gauche:boolean):boolean; var ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; old_pen_color:=image_jpeg_pour_export.canvas.pen.color; old_pen_style:=image_jpeg_pour_export.canvas.pen.style; old_pen_width:=image_jpeg_pour_export.canvas.pen.width; old_pen_mode:=image_jpeg_pour_export.canvas.pen.mode; old_brush_style:=image_jpeg_pour_export.canvas.brush.style; image_jpeg_pour_export.canvas.pen.width:=epaisseur; image_jpeg_pour_export.canvas.pen.color:=couleur; image_jpeg_pour_export.canvas.pen.Style:=sty; image_jpeg_pour_export.canvas.pen.mode:=penmod; image_jpeg_pour_export.canvas.moveto(trunc((x1-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche,trunc((ymax-y1)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute); image_jpeg_pour_export.canvas.lineto(trunc((x2-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche,trunc((ymax-y2)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute); image_jpeg_pour_export.canvas.pen.color:=old_pen_color; image_jpeg_pour_export.canvas.pen.style:=old_pen_style; image_jpeg_pour_export.canvas.pen.width:=old_pen_width; image_jpeg_pour_export.canvas.pen.mode:=old_pen_mode; image_jpeg_pour_export.canvas.brush.style:=old_brush_style; end; function TMyJPEG.CroixP(x,y:float; demi_longueur,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin croixp:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=image_jpeg_pour_export.canvas.pen.color; old_pen_style:=image_jpeg_pour_export.canvas.pen.style; old_pen_width:=image_jpeg_pour_export.canvas.pen.width; old_pen_mode:=image_jpeg_pour_export.canvas.pen.mode; old_brush_style:=image_jpeg_pour_export.canvas.brush.style; image_jpeg_pour_export.canvas.pen.width:=epaisseur; image_jpeg_pour_export.canvas.pen.mode:=penmod; image_jpeg_pour_export.canvas.pen.style:=pssolid; image_jpeg_pour_export.canvas.pen.color:=couleur; image_jpeg_pour_export.canvas.moveto(x1,y1); image_jpeg_pour_export.canvas.lineto(x1,y1+demi_longueur); image_jpeg_pour_export.canvas.moveto(x1,y1); image_jpeg_pour_export.canvas.lineto(x1,y1-demi_longueur); image_jpeg_pour_export.canvas.moveto(x1,y1); image_jpeg_pour_export.canvas.lineto(x1+demi_longueur,y1); image_jpeg_pour_export.canvas.moveto(x1,y1); image_jpeg_pour_export.canvas.lineto(x1-demi_longueur,y1); croixp:=true; image_jpeg_pour_export.canvas.pen.color:=old_pen_color; image_jpeg_pour_export.canvas.pen.style:=old_pen_style; image_jpeg_pour_export.canvas.pen.width:=old_pen_width; image_jpeg_pour_export.canvas.pen.mode:=old_pen_mode; image_jpeg_pour_export.canvas.brush.style:=old_brush_style; end; procedure TMyJPEG.arronditalagrille(var x1,y1:float;gauche:boolean); var newx,newy,divx,divy,fracx,fracy:float; ymax,ymin,pasgrilley:float; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; divx:=partieentiere((x1-xmin)/pasgrillex); divy:=partieentiere((y1-ymin)/pasgrilley); fracx:=x1-xmin-divx*pasgrillex; fracy:=y1-ymin-divy*pasgrilley; if fracx>0.5*pasgrillex then newx:=(divx+1)*pasgrillex else newx:=divx*pasgrillex; if fracy>0.5*pasgrilley then newy:=(divy+1)*pasgrilley else newy:=divy*pasgrilley; x1:=newx; y1:=newy; end; procedure TMyJPEG.ecrire(x,y:float; s:string;gauche:boolean; police:tfont); var xi,yi:integer; begin invconvert(xi,yi,x,y,gauche); image_jpeg_pour_export.canvas.Font:=police; image_jpeg_pour_export.canvas.textout(xi,yi,s); end; procedure TMyJPEG.background(couleur:tcolor); var old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin old_pen_color:=image_jpeg_pour_export.canvas.pen.color; old_pen_style:=image_jpeg_pour_export.canvas.pen.style; old_pen_width:=image_jpeg_pour_export.canvas.pen.width; old_pen_mode:=image_jpeg_pour_export.canvas.pen.mode; old_brush_style:=image_jpeg_pour_export.canvas.brush.style; old_brush_color:=image_jpeg_pour_export.canvas.brush.color; image_jpeg_pour_export.canvas.pen.style:=psclear; image_jpeg_pour_export.canvas.Brush.Color:=couleur; image_jpeg_pour_export.canvas.Brush.style:=bssolid; image_jpeg_pour_export.canvas.Rectangle(borduregauche,bordurehaute, largeur-borduredroite,hauteur-bordurebasse); image_jpeg_pour_export.canvas.pen.color:=old_pen_color; image_jpeg_pour_export.canvas.pen.style:=old_pen_style; image_jpeg_pour_export.canvas.pen.width:=old_pen_width; image_jpeg_pour_export.canvas.pen.mode:=old_pen_mode; image_jpeg_pour_export.canvas.brush.style:=old_brush_style; image_jpeg_pour_export.canvas.brush.color:=old_brush_color; end; function TMyJPEG.LimitesEtAxes(_xmin,_xmax,_ymin1,_ymax1,_ymin2,_ymax2:extended; _Largeur,_Hauteur:integer; _titre:string; _fontetitre:tfont; _Fond:boolean; _CouleurFond:tcolor; _Cadre:boolean; _EpaisseurCadre:integer; _CouleurCadre:tcolor; _Gradue:boolean; _EpaisseurGraduation,_LongueurGraduation:integer; _couleurgraduation:tcolor; _fontegraduation:tfont; _Grille1,_Grille2:boolean; _EpaisseurGrille:integer; _CouleurGrille1,_CouleurGrille2:tcolor; _labelx,_labely1,_labely2,_unitex,_unitey1,_unitey2:string; _borduresverticalessymetriques, _echelle_g,_echelle_d:boolean; b_g,b_d,b_b,b_h:integer):boolean; var xi,xa,yi1,yi2,ya1,ya2,gi,ga:extended; t1,t2,i:integer; dixx,dixy1,dixy2,tt,aff:string; nbgx,nbgy1,nbgy2:integer; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; rg_grad_first,rg_grad_last,rg_ssgrad_first,rg_ssgrad_last:integer; begin old_pen_color:=image_jpeg_pour_export.canvas.pen.color; old_pen_style:=image_jpeg_pour_export.canvas.pen.style; old_pen_width:=image_jpeg_pour_export.canvas.pen.width; old_pen_mode:=image_jpeg_pour_export.canvas.pen.mode; old_brush_style:=image_jpeg_pour_export.canvas.brush.style; old_brush_color:=image_jpeg_pour_export.canvas.brush.color; fond:=_fond; echelle_g:=_echelle_g; echelle_d:=_echelle_d; borduresverticalessymetriques:=_borduresverticalessymetriques; labelx:=_labelx; labely1:=_labely1; labely2:=_labely2; unitex:=_unitex; unitey1:=_unitey1; unitey2:=_unitey2; fontetitre:=_fontetitre; largeur:=_largeur; hauteur:=_hauteur; titre:=_titre; couleurfond:=_couleurfond; cadre:=_cadre; epaisseurcadre:=_epaisseurcadre; couleurcadre:=_couleurcadre; gradue:=_gradue; epaisseurgraduation:=_epaisseurgraduation; fontegraduation:=_fontegraduation; couleurgraduation:=_couleurgraduation; grille1:=_grille1; grille2:=_grille2; epaisseurgrille:=_epaisseurgrille; couleurgrille1:=_couleurgrille1; couleurgrille2:=_couleurgrille2; bordurehaute:=0; bordurebasse:=0; borduregauche:=0; borduredroite:=0; if (echelle_g and ( (_ymin1=_ymax1) or (_xmax=_xmin))) then begin LimitesEtAxes:=false; exit; end; if (echelle_d and ( (_ymin2=_ymax2) or (_xmax=_xmin))) then begin LimitesEtAxes:=false; exit; end; LimitesEtAxes:=true; if (_xmin>_xmax ) then begin xmin:=_xmax; xmax:=_xmin; end else begin xmin:=_xmin; xmax:=_xmax; end; if (_ymin1>_ymax1 ) then begin ymin1:=_ymax1; ymax1:=_ymin1; end else begin ymin1:=_ymin1; ymax1:=_ymax1; end; if (_ymin2>_ymax2 ) then begin ymin2:=_ymax2; ymax2:=_ymin2; end else begin ymin2:=_ymin2; ymax2:=_ymax2; end; xi:=xmin; yi1:=ymin1; yi2:=ymin2; xa:=xmax; ya1:=ymax1; ya2:=ymax2; graduation(xi,xa,xmin,xmax,graduationx,sousgraduationx,Rang_Premiere_Sous_Graduation_X, Rang_Derniere_Sous_Graduation_X,Rang_Premiere_Graduation_X,Rang_Derniere_Graduation_X); if echelle_g then graduation(yi1,ya1,ymin1,ymax1,graduationY1,sousgraduationY1,Rang_Premiere_Sous_Graduation_Y1, Rang_Derniere_Sous_Graduation_Y1,Rang_Premiere_Graduation_Y1,Rang_Derniere_Graduation_Y1); if echelle_d then graduation(yi2,ya2,ymin2,ymax2,graduationY2,sousgraduationY2,Rang_Premiere_Sous_Graduation_Y2, Rang_Derniere_Sous_Graduation_Y2,Rang_Premiere_Graduation_Y2,Rang_Derniere_Graduation_Y2); { str(-puissancededixx+1,dixx); if echelle_g then str(-puissancededixy1+1,dixy1) else dixy1:='0'; if echelle_d then str(-puissancededixy2+1,dixy2)else dixy2:='0'; } dixx:='0'; dixy1:='0'; dixy2:='0'; {determination taille bordure haute} image_jpeg_pour_export.canvas.font:=fontetitre; if (titre<>'') then begin t1:=trunc(image_jpeg_pour_export.canvas.textheight(titre))+10; end else t1:=10; if gradue then begin image_jpeg_pour_export.canvas.font:=fontegraduation; if ((dixy1='0') and (dixy2='0')) then t2:=trunc(image_jpeg_pour_export.canvas.textheight(unitex+labelx)*1.5) else t2:=trunc(image_jpeg_pour_export.canvas.textheight(unitex+labelx)*2.2); end else t2:=10; if (t1>t2) then bordurehaute:=t1 else bordurehaute:=t2; {taille bordure basse} if gradue then begin image_jpeg_pour_export.canvas.font:=fontegraduation; t1:=trunc(image_jpeg_pour_export.canvas.textheight('x10'))+10; end else t1:=10; bordurebasse:=t1; {taille bordure droite} if (gradue and echelle_d) then begin image_jpeg_pour_export.canvas.font:=fontegraduation; t1:=image_jpeg_pour_export.canvas.textwidth(floattostr(Rang_Premiere_Graduation_Y2*GraduationY2)); for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do t1:=max(t1,image_jpeg_pour_export.canvas.textwidth(floattostr(i*GraduationY2))); t1:=t1+10+_longueurgraduation; end else begin t1:=10; end; if gradue then begin image_jpeg_pour_export.canvas.font:=fontegraduation; t2:=(image_jpeg_pour_export.canvas.textwidth(floattostr(Rang_Derniere_Graduation_X*GraduationX)) div 2)- trunc((xmax-Rang_Derniere_Graduation_X*GraduationX)/(xmax-xmin)*(largeur-borduredroite-borduregauche)); end else t2:=10; borduredroite:=max(t1,t2); {taille bordure gauche} if (gradue and echelle_g) then begin image_jpeg_pour_export.canvas.font:=fontegraduation; t1:=image_jpeg_pour_export.canvas.textwidth(floattostr(Rang_Premiere_Graduation_Y1*GraduationY1)); for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do t1:=max(t1,image_jpeg_pour_export.canvas.textwidth(floattostr(i*GraduationY1))); t1:=t1+10+_longueurgraduation; end else begin t1:=10; end; if gradue then begin image_jpeg_pour_export.canvas.font:=fontegraduation; t2:=(image_jpeg_pour_export.canvas.textwidth(floattostr(Rang_Premiere_Graduation_X*GraduationX)) div 2)- trunc((Rang_Premiere_Graduation_X*GraduationX-xmin)/(xmax-xmin)*(largeur-borduredroite-borduregauche)); end else t2:=10; borduregauche:=max(t1,t2); if borduresverticalessymetriques then begin borduregauche:=max(borduregauche,borduredroite); borduredroite:=borduregauche; end; borduregauche:=max(borduregauche,b_g); borduredroite:=max(borduredroite,b_d); bordurebasse:=max(bordurebasse,b_b); bordurehaute:=max(bordurehaute,b_h); if fond then background(couleurfond); {longueurgraduation} longueurgraduationX:=_longueurgraduation/largeur*(xmax-xmin); if echelle_g then longueurgraduationy1:=_longueurgraduation/hauteur*(ymax1-ymin1); if echelle_d then longueurgraduationy2:=_longueurgraduation/hauteur*(ymax2-ymin2); if grille1 then begin image_jpeg_pour_export.canvas.pen.style:=psdot; image_jpeg_pour_export.canvas.pen.color:=couleurgrille1; image_jpeg_pour_export.canvas.pen.width:=epaisseurgrille; for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin1,i*sousgraduationx,ymax1, epaisseurgrille,couleurgrille1,psdot,pmcopy,true); for i:=Rang_Premiere_Sous_Graduation_Y1 to Rang_Derniere_Sous_Graduation_Y1 do trait(xmin,i*sousgraduationy1,xmax,i*sousgraduationy1, epaisseurgrille,couleurgrille1,psdot,pmcopy,true); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin1,i*graduationx,ymax1, epaisseurgrille,couleurgrille1,psdash,pmcopy,true); for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do trait(xmin,i*graduationy1,xmax,i*graduationy1, epaisseurgrille,couleurgrille1,psdash,pmcopy,true); end; if grille2 then begin image_jpeg_pour_export.canvas.pen.style:=psdot; image_jpeg_pour_export.canvas.pen.color:=couleurgrille2; image_jpeg_pour_export.canvas.pen.width:=epaisseurgrille; for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin2,i*sousgraduationx,ymax2, epaisseurgrille,couleurgrille2,psdot,pmcopy,false); for i:=Rang_Premiere_Sous_Graduation_Y2 to Rang_Derniere_Sous_Graduation_Y2 do trait(xmin,i*sousgraduationy2,xmax,i*sousgraduationy2, epaisseurgrille,couleurgrille2,psdot,pmcopy,false); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin2,i*graduationx,ymax2, epaisseurgrille,couleurgrille2,psdash,pmcopy,false); for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do trait(xmin,i*graduationy2,xmax,i*graduationy2, epaisseurgrille,couleurgrille2,psdash,pmcopy,false); end; {cadre} if cadre then begin trait(xmin,ymin1,xmax,ymin1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); trait(xmax,ymin1,xmax,ymax1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); trait(xmax,ymax1,xmin,ymax1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); trait(xmin,ymax1,xmin,ymin1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); end; {affichage du titre} image_jpeg_pour_export.canvas.font:=fontetitre; image_jpeg_pour_export.canvas.Font.Size:=abs(image_jpeg_pour_export.canvas.Font.Size); while (((image_jpeg_pour_export.canvas.textwidth(titre)>largeur-borduregauche-borduredroite) or (image_jpeg_pour_export.canvas.textheight(titre)>bordurehaute)) and (image_jpeg_pour_export.canvas.Font.Size>1)) do begin { application.MessageBox(pchar(inttostr(image_jpeg_pour_export.canvas.Font.Size)), pchar(inttostr(image_jpeg_pour_export.canvas.textwidth(titre))),mb_ok);} image_jpeg_pour_export.canvas.Font.Size:= image_jpeg_pour_export.canvas.Font.Size-1; end; if image_jpeg_pour_export.canvas.Font.Size<6 then image_jpeg_pour_export.canvas.Font.Size:=6; image_jpeg_pour_export.canvas.textout(largeur div 2 -(image_jpeg_pour_export.canvas.textwidth(titre) div 2), 2,titre); {graduation} if gradue then begin if dixx='0' then aff:='' else begin aff:='10'; if dixx<>'1' then for i:=1 to length(dixx) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labelx; if ((unitex<>'1') and (unitex<>'')) then aff:=aff+' en '+unitex; image_jpeg_pour_export.canvas.font:=fontegraduation; image_jpeg_pour_export.canvas.textout(largeur-borduredroite-trunc(image_jpeg_pour_export.canvas.textwidth (aff)*1.3),hauteur-bordurebasse- trunc(image_jpeg_pour_export.canvas.textheight('x10')*1.3),aff); if ((dixx<>'0') and (dixx<>'1')) then image_jpeg_pour_export.canvas.textout(largeur-borduredroite-trunc(image_jpeg_pour_export.canvas.textwidth(aff)*1.3)+ trunc(image_jpeg_pour_export.canvas.textwidth('10')),hauteur-bordurebasse -trunc(1.9*image_jpeg_pour_export.canvas.textheight('x10')), dixx); if echelle_g then begin if dixy1='0' then aff:='' else begin aff:='10'; if dixy1<>'1' then for i:=1 to length(dixy1) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labely1; if ((unitey1<>'1') and (unitey1<>'')) then aff:=aff+' en '+unitey1; image_jpeg_pour_export.canvas.font:=fontegraduation; image_jpeg_pour_export.canvas.textout(borduregauche,bordurehaute-trunc(image_jpeg_pour_export.canvas.textheight(aff)*1.2),aff); if ((dixy1<>'0') and (dixy1<>'1')) then image_jpeg_pour_export.canvas.textout(borduregauche+image_jpeg_pour_export.canvas.textwidth('10'),bordurehaute -trunc(image_jpeg_pour_export.canvas.textheight(aff)*1.8), dixy1); end; if echelle_d then begin if dixy2='0' then aff:='' else begin aff:='10'; if dixy2<>'1' then for i:=1 to length(dixy2) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labely2; if ((unitey2<>'1') and (unitey2<>'')) then aff:=aff+' en '+unitey2; image_jpeg_pour_export.canvas.font:=fontegraduation; image_jpeg_pour_export.canvas.textout(largeur-borduredroite-trunc(image_jpeg_pour_export.canvas.textwidth(aff)*1.2), bordurehaute-trunc(image_jpeg_pour_export.canvas.textheight(aff)*1.2),aff); if ((dixy2<>'0') and (dixy2<>'1')) then image_jpeg_pour_export.canvas.textout(largeur-borduredroite-trunc(image_jpeg_pour_export.canvas.textwidth(aff)*1.2)+image_jpeg_pour_export.canvas.textwidth('10'), bordurehaute -trunc(image_jpeg_pour_export.canvas.textheight(aff)*1.8), dixy2); end; image_jpeg_pour_export.canvas.font:=fontegraduation; for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do //str(round((i*graduationx)),tt); begin tt:=floattostr(i*graduationx); image_jpeg_pour_export.canvas.textout( trunc((i*graduationx-xmin)/(xmax-xmin)*(largeur-borduredroite-borduregauche))+ borduregauche-image_jpeg_pour_export.canvas.textwidth(tt) div 2, hauteur-bordurebasse+_LongueurGraduation,tt); end; if echelle_g then for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do begin //str( round((i*graduationy1)),tt); tt:=floattostr(i*graduationy1); image_jpeg_pour_export.canvas.textout( borduregauche-trunc(image_jpeg_pour_export.canvas.textwidth(tt)*1.1)-5 -_LongueurGraduation, trunc((ymax1-i*graduationy1)/(ymax1-ymin1)*(hauteur-bordurehaute-bordurebasse))+bordurehaute -image_jpeg_pour_export.canvas.textheight(tt) div 2, tt); end; if echelle_d then for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do begin //str( round((i*graduationy2)),tt); tt:=floattostr(i*graduationy2); image_jpeg_pour_export.canvas.textout( largeur-borduredroite+_LongueurGraduation+5, trunc((ymax2-i*graduationy2)/(ymax2-ymin2)*(hauteur-bordurehaute-bordurebasse))+bordurehaute -image_jpeg_pour_export.canvas.textheight(tt) div 2, tt); end; if echelle_g then begin for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin1-longueurgraduationy1,i*sousgraduationx, ymin1+longueurgraduationy1,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymax1+longueurgraduationy1,i*sousgraduationx, ymax1-longueurgraduationy1,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin1-2*longueurgraduationy1,i*graduationx, ymin1+longueurgraduationy1*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymax1-2*longueurgraduationy1,i*graduationx, ymax1+longueurgraduationy1*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Sous_Graduation_Y1 to Rang_Derniere_Sous_Graduation_Y1 do trait(xmin-longueurgraduationx,i*sousgraduationy1,xmin+longueurgraduationx,i*sousgraduationy1, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do trait(xmin-2*longueurgraduationx,i*graduationy1,xmin+longueurgraduationx*2,i*graduationy1, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); end; if echelle_d then begin for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin2-longueurgraduationy2,i*sousgraduationx, ymin2+longueurgraduationy2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymax2-longueurgraduationy2,i*sousgraduationx, ymax2-longueurgraduationy2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin2-2*longueurgraduationy2,i*graduationx, ymin2+longueurgraduationy2*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymax2+2*longueurgraduationy2,i*graduationx, ymax2-longueurgraduationy2*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Sous_Graduation_Y2 to Rang_Derniere_Sous_Graduation_Y2 do trait(xmax+longueurgraduationx,i*sousgraduationy2,xmax-longueurgraduationx,i*sousgraduationy2, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do trait(xmax+2*longueurgraduationx,i*graduationy2,xmax-longueurgraduationx*2,i*graduationy2, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); end; end; image_jpeg_pour_export.canvas.pen.color:=old_pen_color; image_jpeg_pour_export.canvas.pen.style:=old_pen_style; image_jpeg_pour_export.canvas.pen.width:=old_pen_width; image_jpeg_pour_export.canvas.pen.mode:=old_pen_mode; image_jpeg_pour_export.canvas.brush.style:=old_brush_style; image_jpeg_pour_export.canvas.brush.color:=old_brush_color; end; function TMyJPEG.Convert(xi,yi:integer; var x,y:float;gauche:boolean):boolean; var ymax,ymin,pasgrilley:float; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x:=(xi-BordureGauche)*(xmax-xmin)/ (largeur-BordureGauche-BordureDroite) +xmin; y:=-(yi-BordureHaute)*(ymax-ymin)/(hauteur-BordureHaute-BordureBasse) +ymax; convert:=true; end; function TMyJPEG.MonRectangle(x1,y1,x2,y2:extended; couleur:tcolor; gauche:boolean):boolean; var ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; xi1,yi1,xi2,yi2:integer; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; if xmax=xmin then exit; if ymax=ymin then exit; old_pen_color:=image_jpeg_pour_export.canvas.pen.color; old_pen_style:=image_jpeg_pour_export.canvas.pen.style; old_pen_width:=image_jpeg_pour_export.canvas.pen.width; old_pen_mode:=image_jpeg_pour_export.canvas.pen.mode; old_brush_style:=image_jpeg_pour_export.canvas.brush.style; old_brush_color:=image_jpeg_pour_export.canvas.Brush.Color; image_jpeg_pour_export.canvas.pen.color:=couleur; image_jpeg_pour_export.canvas.pen.Style:=pssolid; image_jpeg_pour_export.canvas.pen.mode:=pmcopy; image_jpeg_pour_export.canvas.Brush.Color:=couleur; image_jpeg_pour_export.canvas.Brush.Style:=bssolid; self.invconvert(xi1,yi1,x1,y1,gauche); self.invconvert(xi2,yi2,x2,y2,gauche); if xi1>xi2 then echange_entiers(xi1,xi2); if yi1>yi2 then echange_entiers(yi1,yi2); image_jpeg_pour_export.canvas.Rectangle(xi1,yi1,xi2,yi2); image_jpeg_pour_export.canvas.pen.color:=old_pen_color; image_jpeg_pour_export.canvas.pen.style:=old_pen_style; image_jpeg_pour_export.canvas.pen.width:=old_pen_width; image_jpeg_pour_export.canvas.pen.mode:=old_pen_mode; image_jpeg_pour_export.canvas.brush.style:=old_brush_style; image_jpeg_pour_export.canvas.brush.Color:=old_brush_color; end; function TMyJPEG.invconvert(var xi,yi:integer; x,y:float;gauche:boolean):boolean; var ymax,ymin,pasgrilley:float; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; xi:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; yi:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; invconvert:=true; end; function TMyJPEG.CroixX(x,y:float; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:float; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin croixx:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=image_jpeg_pour_export.canvas.pen.color; old_pen_style:=image_jpeg_pour_export.canvas.pen.style; old_pen_width:=image_jpeg_pour_export.canvas.pen.width; old_pen_mode:=image_jpeg_pour_export.canvas.pen.mode; old_brush_style:=image_jpeg_pour_export.canvas.brush.style; image_jpeg_pour_export.canvas.pen.width:=epaisseur; image_jpeg_pour_export.canvas.pen.mode:=penmod; image_jpeg_pour_export.canvas.pen.style:=pssolid; image_jpeg_pour_export.canvas.pen.color:=couleur; image_jpeg_pour_export.canvas.moveto(x1,y1); image_jpeg_pour_export.canvas.lineto(x1+demi_diagonale,y1+demi_diagonale); image_jpeg_pour_export.canvas.moveto(x1,y1); image_jpeg_pour_export.canvas.lineto(x1-demi_diagonale,y1+demi_diagonale); image_jpeg_pour_export.canvas.moveto(x1,y1); image_jpeg_pour_export.canvas.lineto(x1+demi_diagonale,y1-demi_diagonale); image_jpeg_pour_export.canvas.moveto(x1,y1); image_jpeg_pour_export.canvas.lineto(x1-demi_diagonale,y1-demi_diagonale); croixx:=true; image_jpeg_pour_export.canvas.pen.color:=old_pen_color; image_jpeg_pour_export.canvas.pen.style:=old_pen_style; image_jpeg_pour_export.canvas.pen.width:=old_pen_width; image_jpeg_pour_export.canvas.pen.mode:=old_pen_mode; image_jpeg_pour_export.canvas.brush.style:=old_brush_style; end; end. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit14.lrs��������������������������������������������������������������������������0000750�0001750�0001750�00000003474�13147330070�015731� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tformavertissement','FORMDATA',[ 'TPF0'#18'Tformavertissement'#17'formavertissement'#4'Left'#3'T'#1#6'Height'#3 +#170#1#3'Top'#3#156#0#5'Width'#3#194#1#13'ActiveControl'#7#5'Memo1'#11'Borde' +'rIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7 +'Caption'#6#17'!!! Attention !!!'#12'ClientHeight'#3#170#1#11'ClientWidth'#3 +#194#1#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6 +#7'1.2.2.0'#0#7'TBitBtn'#7'BitBtn1'#24'AnchorSideBottom.Control'#7#9'CheckBo' +'x1'#4'Left'#2#7#6'Height'#2'M'#3'Top'#3'1'#1#5'Width'#3#169#1#7'Anchors'#11 +#6'akLeft'#8'akBottom'#0#20'BorderSpacing.Bottom'#2#10#7'Caption'#6#3'&OK'#7 +'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#8'TabOrder'#2#0#0#0#9'TChe' +'ckBox'#9'CheckBox1'#22'AnchorSideLeft.Control'#7#5'Owner'#24'AnchorSideBott' +'om.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#10 +#6'Height'#2#24#3'Top'#3#136#1#5'Width'#3'y'#1#7'Anchors'#11#6'akLeft'#8'akB' +'ottom'#0#18'BorderSpacing.Left'#2#10#20'BorderSpacing.Bottom'#2#10#7'Captio' +'n'#6'5Ne plus afficher ce message au cours de cette session'#7'OnClick'#7#14 +'CheckBox1Click'#8'TabOrder'#2#1#0#0#5'TMemo'#5'Memo1'#22'AnchorSideLeft.Con' +'trol'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Co' +'ntrol'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBott' +'om.Control'#7#7'BitBtn1'#4'Left'#2#10#6'Height'#3#29#1#3'Top'#2#10#5'Width' +#3#174#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'Border' +'Spacing.Left'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10 +#20'BorderSpacing.Bottom'#2#10#13'Lines.Strings'#1#6#0#6#0#6#0#6#0#6#0#6#0#6 +#0#6#0#6#0#0#8'TabOrder'#2#2#0#0#0 ]); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit19.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000013654�13147330070�015722� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit19; {$mode objfpc}{$H+} interface uses Classes, SysUtils,FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin, ExtCtrls, Buttons,UChaines,UnitScaleFont,math,LCLType,Unit_commune; type { Tsaisiefaisceau } Tsaisiefaisceau = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; ColorDialog1: TColorDialog; Editgeometriquepas: TEdit; Editgeometriquex1: TEdit; editlineairepas: TEdit; Editlineairex1: TEdit; Label1: TLabel; Label2: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; ListBox1: TListBox; Panel1: TPanel; RadioGrouptypefaisceau: TRadioGroup; SpinEdit1: TSpinEdit; procedure BitBtn1Click(Sender: TObject); procedure EditgeometriquepasKeyPress(Sender: TObject; var Key: char); procedure Editgeometriquex1KeyPress(Sender: TObject; var Key: char); procedure editlineairepasKeyPress(Sender: TObject; var Key: char); procedure Editlineairex1KeyPress(Sender: TObject; var Key: char); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure Panel1Click(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisiefaisceau: Tsaisiefaisceau; premiere_valeur,derniere_valeur:float; indice_valeur_a_modifier:integer; couleur_limite_degrade:tcolor; implementation uses Unit1; { Tsaisiefaisceau } procedure Tsaisiefaisceau.BitBtn1Click(Sender: TObject); var i:integer; zzz:string; begin nombre_valeurs_faisceau:=0; setlength(liste_valeurs_faisceau,0); if listbox1.ItemIndex=-1 then begin application.MessageBox(pchar(rsPasDeGrandeu), pchar(rsHLas), mb_ok); modalresult:=mrcancel; exit; end; indice_valeur_a_modifier:=listbox1.ItemIndex; case RadioGrouptypefaisceau.ItemIndex of 0: begin try mystrtofloat(editlineairex1.Text); except application.MessageBox(pchar(rsSyntaxeDeVal), pchar(rsHLas), mb_ok); modalresult:=mrcancel; exit; end; try mystrtofloat(editlineairepas.Text); except application.MessageBox(pchar(rsSyntaxeDeVal), pchar(rsHLas), mb_ok); modalresult:=mrcancel; exit; end; if editlineairepas.Text='0' then begin application.MessageBox(pchar(rsValeurDePasN), pchar(rsHLas), mb_ok); modalresult:=mrcancel; exit; end; nombre_valeurs_faisceau:=spinedit1.Value; premiere_valeur:= mystrtofloat(editlineairex1.Text); derniere_valeur:= mystrtofloat(editlineairex1.Text)+ (nombre_valeurs_faisceau-1)*mystrtofloat(editlineairepas.text); if ((listbox1.ItemIndex<=1+form1.stringgridreactifs_becher.rowcount-1+ form1.stringgridreactifs_burette.rowcount-1)) then if ((premiere_valeur<0) or (derniere_valeur<0)) then begin application.MessageBox(pchar(rsCelaConduira), pchar(rsHLas), mb_ok); modalresult:=mrcancel; exit; end; nombre_valeurs_faisceau:=spinedit1.Value; setlength(liste_valeurs_faisceau,nombre_valeurs_faisceau); for i:=1 to nombre_valeurs_faisceau do liste_valeurs_faisceau[i-1]:= mystrtofloat(editlineairex1.text)+(i-1)*mystrtofloat(editlineairepas.text); end; {du cas lineaire} 1: begin try mystrtofloat(editgeometriquex1.Text); except application.MessageBox(pchar(rsSyntaxeDeVal), pchar(rsHLas), mb_ok); modalresult:=mrcancel; exit; end; try mystrtofloat(editgeometriquepas.Text); except application.MessageBox(pchar(rsSyntaxeDeVal), pchar(rsHLas), mb_ok); modalresult:=mrcancel; exit; end; if ((mystrtofloat(editgeometriquepas.Text)<=0) or (mystrtofloat(editgeometriquepas.Text)=1)) then begin application.MessageBox(pchar(rsValeurDePas0), pchar(rsHLas), mb_ok); modalresult:=mrcancel; exit; end; if ((listbox1.ItemIndex<=1+form1.stringgridreactifs_becher.rowcount-1+ form1.stringgridreactifs_burette.rowcount-1)) then if (mystrtofloat(editgeometriquex1.Text)<=0) then begin application.MessageBox(pchar(rsConcentratio4), pchar(rsHLas), mb_ok); modalresult:=mrcancel; exit; end; nombre_valeurs_faisceau:=spinedit1.Value; setlength(liste_valeurs_faisceau,nombre_valeurs_faisceau); liste_valeurs_faisceau[0]:=mystrtofloat(editgeometriquex1.text); for i:=2 to nombre_valeurs_faisceau do liste_valeurs_faisceau[i-1]:=liste_valeurs_faisceau[i-2] *mystrtofloat(editgeometriquepas.text); end; {du cas geometrique} end;{du case} end; procedure Tsaisiefaisceau.EditgeometriquepasKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure Tsaisiefaisceau.Editgeometriquex1KeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure Tsaisiefaisceau.editlineairepasKeyPress(Sender: TObject; var Key: char ); begin if key=',' then key:='.'; end; procedure Tsaisiefaisceau.Editlineairex1KeyPress(Sender: TObject; var Key: char ); begin if key=',' then key:='.'; end; procedure Tsaisiefaisceau.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsFaisceauDeCo; Label1.Caption := rsGrandeurFair; Label2.Caption := rsPourObtenirL2; Label4.Caption := rs1ReValeur; Label5.Caption := rsIncrMent; Label6.Caption := rs1ReValeur; Label7.Caption := rsPas; Label8.Caption := rsLesCouleursE; RadioGrouptypefaisceau.Caption := rsTypeDeSuiteD; //RadioGrouptypefaisceau.Items.Clear; RadioGrouptypefaisceau.Items[0]:=(rsArithmTique); RadioGrouptypefaisceau.Items[1]:=(rsGOmTrique); BitBtn1.Caption := rsOK; BitBtn2.Caption := rsAnnuler; end; procedure Tsaisiefaisceau.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; procedure Tsaisiefaisceau.Panel1Click(Sender: TObject); begin colordialog1.Color:=panel1.Color; colordialog1.Execute; panel1.Color:=colordialog1.Color; couleur_limite_degrade:=panel1.Color; end; initialization {$I unit19.lrs} end. ������������������������������������������������������������������������������������dozzaqueux-3.51/about.txt���������������������������������������������������������������������������0000750�0001750�0001750�00000001113�13147330070�015722� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Dozzzaqueux, version 3.51 du 13/07/2017 écrite en Lazarus. Dozzzaqueux est un logiciel de simulation de courbes de dosages. Copyright Jean-Marie Biansan, 2005 à 2017. Dozzzaqueux un logiciel libre, diffusé sous licence GNU GPL. Une copie de la licence est fournie avec le logiciel. Aux termes de la licence, vous pouvez librement utiliser et copier Dozzzqueux, et le diffuser en respectant les termes de la licence. Vous pouvez m'envoyer un courriel pour toute remarque, compte-rendu de bug, proposition d'amélioration: jeanmarie.biansan@free.fr. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit26.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000017534�13147330070�015721� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit26; {$mode objfpc}{$H+} interface uses Classes, SysUtils,FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,Unit2, Grids,math,UChaines,UnitScaleFont,LCLType,lclproc,Unit_commune; type { Tform26 } Tform26 = class(TForm) BitBtn2: TBitBtn; Label1: TLabel; Editformulebrute: TEdit; BitBtn1: TBitBtn; Label2: TLabel; sgreactifs: TStringGrid; Label3: TLabel; procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure sgreactifsMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Dclarations prives } encreation:boolean; public { Dclarations publiques } end; var form26: Tform26; largeur_col1_reactifs,largeur_col2_reactifs,largeur_col3_reactifs:integer; id9:string; implementation uses Unit1, Unit3; procedure Tform26.BitBtn1Click(Sender: TObject); var toto:tstringlist; i,didi:integer; begin if editformulebrute.Text='' then exit; toto:=tstringlist.Create; for i:=1 to nombre_elements_base do if (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_base[i-1].identifiant))<>0) or (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_base[i-1].synonyme))<>0) then toto.Add(tableau_elements_base[i-1].identifiant); for i:=1 to nombre_elements_mineraux do if (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_mineraux[i-1].identifiant))<>0) or (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_mineraux[i-1].synonyme))<>0) then toto.Add(tableau_elements_mineraux[i-1].identifiant); for i:=1 to nombre_elements_aqueux do if (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_aqueux[i-1].identifiant))<>0) or (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_aqueux[i-1].synonyme))<>0) then toto.Add(tableau_elements_aqueux[i-1].identifiant); for i:=1 to nombre_elements_organiques do if (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_organiques[i-1].identifiant))<>0) or (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_organiques[i-1].synonyme))<>0) then toto.Add(tableau_elements_organiques[i-1].identifiant); if toto.Count=0 then begin application.MessageBox(pchar(rsAucuneEspCeA), pchar(rsAttention2), mb_ok); exit end; sgreactifs.RowCount:=1+toto.Count; for i:=1 to toto.Count do begin sgreactifs.Cells[0,i]:=toto[i-1]; case DonneNatureReactif(toto[i-1],didi) of debase: sgreactifs.Cells[2,i]:=floattostr( tableau_elements_base[didi-1].masse_molaire); aqueux: sgreactifs.Cells[2,i]:=floattostr( tableau_elements_aqueux[didi-1].masse_molaire); gaz: sgreactifs.Cells[2,i]:=floattostr( tableau_elements_gazeux[didi-1].masse_molaire); solide: sgreactifs.Cells[2,i]:=floattostr( tableau_elements_mineraux[didi-1].masse_molaire); organique: sgreactifs.Cells[2,i]:=floattostr( tableau_elements_organiques[didi-1].masse_molaire); end; case DonneNatureReactif(toto[i-1],didi) of debase: sgreactifs.Cells[1,i]:= tableau_elements_base[didi-1].synonyme; aqueux: sgreactifs.Cells[1,i]:= tableau_elements_aqueux[didi-1].synonyme; gaz: sgreactifs.Cells[1,i]:= tableau_elements_gazeux[didi-1].synonyme; solide: sgreactifs.Cells[1,i]:= tableau_elements_mineraux[didi-1].synonyme; organique: sgreactifs.Cells[1,i]:= tableau_elements_organiques[didi-1].synonyme; end; sgreactifs.AutoSizeColumns; end; toto.Free; end; procedure Tform26.FormCreate(Sender: TObject); begin encreation:=true; id9:=''; sgreactifs.ColCount:=3; sgreactifs.RowCount:=2; sgreactifs.Cells[0, 0]:=rsIdentifiant; sgreactifs.Cells[2, 0]:=rsMGMol; sgreactifs.Cells[1, 0]:=rsSynonyme; sgreactifs.AutoSizeColumns; Caption := rsRechercheDan; Label1.Caption := rsEntrezToutOu ; Label3.Caption := rsExemplesThan; sgreactifs.Hint := rsPourSLection3; BitBtn1.Caption := rsOK2 ; end; procedure Tform26.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; procedure Tform26.sgreactifsMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; deja_entre:boolean; repmode:integer; label 555,666; begin sgreactifs.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=sgreactifs.rowcount-1) and (coco>=0) and (coco<=sgreactifs.ColCount-1) and( sgreactifs.Cells[0,roro]<>'') and (form1.stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to form1.stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (form1.stringgridreactifs_becher.cells[1,i]=sgreactifs.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe66, [sgreactifs.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; form1.stringgridreactifs_becher.RowCount:= form1.stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; form1.stringgridreactifs_becher.cells[1,form1.stringgridreactifs_becher.RowCount-1]:= sgreactifs.Cells[0,roro]; form1.stringgridreactifs_becher.cells[0,form1.stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(sgreactifs.Cells[2,roro])/ volume_becher)else if unit3.nono1>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(sgreactifs.Cells[2,roro])); form1.stringgridreactifs_becher.AutoSizeColumns; modalresult:=mrok; close; end; if ((roro>0) and (roro<=sgreactifs.rowcount) and (sgreactifs.Cells[0,roro]<>'') and (form1.stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe67, [sgreactifs.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; form1.stringgridreactifs_becher.cells[1,1]:= sgreactifs.Cells[0,roro]; form1.stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(sgreactifs.Cells[2,roro])/ volume_becher)else if unit3.nono1>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(sgreactifs.Cells[2,roro])); form1.stringgridreactifs_becher.AutoSizeColumns; modalresult:=mrok; close; end; end; initialization {$I unit26.lrs} end. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/saisie_options_indicateur.lrs�������������������������������������������������������0000750�0001750�0001750�00000004143�13147330070�022036� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('Toptions_indicateur','FORMDATA',[ 'TPF0'#19'Toptions_indicateur'#18'options_indicateur'#4'Left'#3#186#2#6'Heigh' +'t'#3#220#0#3'Top'#2'Q'#5'Width'#3#23#2#13'ActiveControl'#7#24'RadioGroup1.R' +'adioButton0'#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'Border' +'Style'#7#8'bsSingle'#7'Caption'#6'!Options pour l''indicateur color'#195#169 +#12'ClientHeight'#3#220#0#11'ClientWidth'#3#23#2#8'OnCreate'#7#10'FormCreate' +#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2.0'#0#11'TRadioGroup'#11'Ra' +'dioGroup1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7 +#5'Owner'#4'Left'#2#10#6'Height'#3#200#0#3'Top'#2#10#5'Width'#3#128#1#8'Auto' +'Fill'#9#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6 +'%D'#195#169'grad'#195#169' de couleurs de l''indicateur'#28'ChildSizing.Lef' +'tRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.Enla' +'rgeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertica' +'l'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crs' +'ScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSi' +'zing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPer' +'Line'#2#1#12'ClientHeight'#3#178#0#11'ClientWidth'#3'|'#1#9'ItemIndex'#2#0 +#13'Items.Strings'#1#6'/Vertical en fonction du pH (si pH en ordonn'#195#169 +'e)'#6'3Horizontal en fonction du volume (si V en abscisse)'#0#8'TabOrder'#2 +#0#0#0#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLeft.Control'#7#11'RadioGroup1'#19 +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#5'Owner'#23 +'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom' +#4'Left'#3#148#1#6'Height'#3#192#0#3'Top'#2#10#5'Width'#2'y'#7'Anchors'#11#5 +'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.' +'Top'#2#10#19'BorderSpacing.Right'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'K' +'ind'#7#4'bkOK'#11'ModalResult'#2#1#8'TabOrder'#2#1#0#0#0 ]); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit14.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000002634�13147330070�015711� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit14; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,UChaines,UnitScaleFont; type { Tformavertissement } Tformavertissement = class(TForm) BitBtn1: TBitBtn; CheckBox1: TCheckBox; Memo1: TMemo; procedure CheckBox1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var formavertissement: Tformavertissement; implementation uses Unit1; { Tformavertissement } procedure Tformavertissement.CheckBox1Click(Sender: TObject); begin afficher_avertissement_redox:=not(afficher_avertissement_redox); end; procedure Tformavertissement.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsAttention3; BitBtn1.Caption := rsOK; CheckBox1.Caption := rsNePlusAffich; memo1.Clear; memo1.lines.add(rsAttentionAut); memo1.lines.add(rsNombreDEspCe); memo1.lines.add(rsCeciPeutDonn); memo1.lines.add(rsDePlusEtSurt); memo1.lines.add(rsNCessairemen); memo1.lines.add(rsPrVisisionsF); memo1.lines.add(rsExaminezDonc); memo1.lines.add(rsEspCesPrSent3); end; procedure Tformavertissement.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit14.lrs} end. ����������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit26b.pas�������������������������������������������������������������������������0000750�0001750�0001750�00000017627�13147330070�016066� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit26b; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,Unit2, Grids,math,UChaines,UnitScaleFont,LCLType,Unit_commune; type { Tform26b } Tform26b = class(TForm) BitBtn2: TBitBtn; Label1: TLabel; Editformulebrute: TEdit; BitBtn1: TBitBtn; Label2: TLabel; sgreactifs: TStringGrid; Label3: TLabel; procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure sgreactifsMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Dclarations prives } encreation:boolean; public { Dclarations publiques } end; var form26b: Tform26b; largeur_col1_reactifs,largeur_col2_reactifs,largeur_col3_reactifs:integer; id9:string; implementation uses Unit1, Unit3; procedure Tform26b.BitBtn1Click(Sender: TObject); var toto:tstringlist; i,didi:integer; begin if editformulebrute.Text='' then exit; toto:=tstringlist.Create; for i:=1 to nombre_elements_base do if (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_base[i-1].identifiant))<>0) or (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_base[i-1].synonyme))<>0) then toto.Add(tableau_elements_base[i-1].identifiant); for i:=1 to nombre_elements_mineraux do if (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_mineraux[i-1].identifiant))<>0) or (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_mineraux[i-1].synonyme))<>0) then toto.Add(tableau_elements_mineraux[i-1].identifiant); for i:=1 to nombre_elements_aqueux do if (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_aqueux[i-1].identifiant))<>0) or (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_aqueux[i-1].synonyme))<>0) then toto.Add(tableau_elements_aqueux[i-1].identifiant); for i:=1 to nombre_elements_organiques do if (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_organiques[i-1].identifiant))<>0) or (pos(lowercase(editformulebrute.Text),lowercase(tableau_elements_organiques[i-1].synonyme))<>0) then toto.Add(tableau_elements_organiques[i-1].identifiant); if toto.Count=0 then begin application.MessageBox(pchar(rsAucuneEspCeA2), pchar(rsAttention2), mb_ok); exit end; sgreactifs.RowCount:=1+toto.Count; for i:=1 to toto.Count do begin sgreactifs.Cells[0,i]:=toto[i-1]; case DonneNatureReactif(toto[i-1],didi) of debase: sgreactifs.Cells[2,i]:=floattostr( tableau_elements_base[didi-1].masse_molaire); aqueux: sgreactifs.Cells[2,i]:=floattostr( tableau_elements_aqueux[didi-1].masse_molaire); gaz: sgreactifs.Cells[2,i]:=floattostr( tableau_elements_gazeux[didi-1].masse_molaire); solide: sgreactifs.Cells[2,i]:=floattostr( tableau_elements_mineraux[didi-1].masse_molaire); organique: sgreactifs.Cells[2,i]:=floattostr( tableau_elements_organiques[didi-1].masse_molaire); end; case DonneNatureReactif(toto[i-1],didi) of debase: sgreactifs.Cells[1,i]:= tableau_elements_base[didi-1].synonyme; aqueux: sgreactifs.Cells[1,i]:= tableau_elements_aqueux[didi-1].synonyme; gaz: sgreactifs.Cells[1,i]:= tableau_elements_gazeux[didi-1].synonyme; solide: sgreactifs.Cells[1,i]:= tableau_elements_mineraux[didi-1].synonyme; organique: sgreactifs.Cells[1,i]:= tableau_elements_organiques[didi-1].synonyme; end; sgreactifs.AutoSizeColumns; end; toto.Free; end; procedure Tform26b.FormCreate(Sender: TObject); begin encreation:=true; id9:=''; sgreactifs.ColCount:=3; sgreactifs.RowCount:=2; sgreactifs.Cells[0, 0]:=rsIdentifiant; sgreactifs.Cells[2, 0]:=rsMGMol; sgreactifs.Cells[1, 0]:=rsSynonyme; sgreactifs.AutoSizeColumns; Caption := rsRechercheDan; Label1.Caption := rsEntrezToutOu2; Label3.Caption := rsExemplesThan ; BitBtn1.Caption := rsOK2; sgreactifs.Hint := rsPourSLection4 ; end; procedure Tform26b.FormShow(Sender: TObject); begin if encreation then begin scalefont(self); encreation:=false; end; end; procedure Tform26b.sgreactifsMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; deja_entre:boolean; repmode:integer; label 555,666; begin sgreactifs.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=sgreactifs.rowcount-1) and (coco>=0) and (coco<=sgreactifs.ColCount-1) and( sgreactifs.Cells[0,roro]<>'') and (form1.stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to form1.stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (form1.stringgridreactifs_burette.cells[1,i]=sgreactifs.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe68, [sgreactifs.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; form1.stringgridreactifs_burette.RowCount:= form1.stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; form1.stringgridreactifs_burette.cells[1,form1.stringgridreactifs_burette.RowCount-1]:= sgreactifs.Cells[0,roro]; form1.stringgridreactifs_burette.cells[0,form1.stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(sgreactifs.Cells[2,roro])/ volume_burette_max)else if unit3.nono1>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(sgreactifs.Cells[2,roro])); form1.stringgridreactifs_burette.AutoSizeColumns; modalresult:=mrok; close; end; if ((roro>0) and (roro<=sgreactifs.rowcount) and (sgreactifs.Cells[0,roro]<>'') and (form1.stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe69, [sgreactifs.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; form1.stringgridreactifs_burette.cells[1,1]:= sgreactifs.Cells[0,roro]; form1.stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(sgreactifs.Cells[2,roro])/ volume_burette_max)else if unit3.nono1>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(sgreactifs.Cells[2,roro])); form1.stringgridreactifs_burette.AutoSizeColumns; modalresult:=mrok; close; end; end; initialization {$I unit26b.lrs} end. ���������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit4.lrs���������������������������������������������������������������������������0000750�0001750�0001750�00000031627�13147330070�015651� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm4','FORMDATA',[ 'TPF0'#6'TForm4'#5'Form4'#4'Left'#3'Y'#2#6'Height'#3#6#2#3'Top'#3#208#0#5'Wid' +'th'#3';'#3#13'ActiveControl'#7#16'Editformulebrute'#11'BorderIcons'#11#12'b' +'iSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#22 +'Recherche dans la base'#12'ClientHeight'#3#6#2#11'ClientWidth'#3';'#3#8'OnC' +'reate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2.0' +#0#12'TSpeedButton'#12'SpeedButtonC'#22'AnchorSideLeft.Control'#7#5'Owner'#21 +'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrBottom'#4 +'Left'#2#10#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'BorderSpacing.Left'#2 +#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#1'C'#10'Font.Color'#7#7'clBlack' +#10'Font.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7 +#17'SpeedButtonCClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButtonO' +#22'AnchorSideLeft.Control'#7#12'SpeedButtonC'#19'AnchorSideLeft.Side'#7#9'a' +'srBottom'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Sid' +'e'#7#9'asrCenter'#4'Left'#2'-'#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18 +'BorderSpacing.Left'#2#10#7'Caption'#6#1'O'#10'Font.Color'#7#7'clBlack'#10'F' +'ont.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'S' +'peedButtonOClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButtonH'#22 +'AnchorSideLeft.Control'#7#12'SpeedButtonO'#19'AnchorSideLeft.Side'#7#9'asrB' +'ottom'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7 +#9'asrCenter'#4'Left'#2'P'#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'Borde' +'rSpacing.Left'#2#10#7'Caption'#6#1'H'#10'Font.Color'#7#7'clBlack'#10'Font.P' +'itch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'SpeedB' +'uttonHClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButtonN'#22'Anch' +'orSideLeft.Control'#7#12'SpeedButtonH'#19'AnchorSideLeft.Side'#7#9'asrBotto' +'m'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#2's'#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'BorderS' +'pacing.Left'#2#10#7'Caption'#6#1'N'#10'Font.Color'#7#7'clBlack'#10'Font.Pit' +'ch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'SpeedBut' +'tonNClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButtonP'#22'Anchor' +'SideLeft.Control'#7#12'SpeedButtonN'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9'asr' +'Center'#4'Left'#3#150#0#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'BorderS' +'pacing.Left'#2#10#7'Caption'#6#1'P'#10'Font.Color'#7#7'clBlack'#10'Font.Pit' +'ch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'SpeedBut' +'tonPClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButtonS'#22'Anchor' +'SideLeft.Control'#7#12'SpeedButtonP'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9'asr' +'Center'#4'Left'#3#185#0#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'BorderS' +'pacing.Left'#2#10#7'Caption'#6#1'S'#10'Font.Color'#7#7'clBlack'#10'Font.Pit' +'ch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'SpeedBut' +'tonSClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#16'SpeedButton1plus'#22'An' +'chorSideLeft.Control'#7#12'SpeedButton3'#19'AnchorSideLeft.Side'#7#9'asrBot' +'tom'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#3'"'#1#6'Height'#2#25#3'Top'#2'd'#5'Width'#2'!'#18'Borde' +'rSpacing.Left'#2#10#7'Caption'#6#3'[+]'#10'Font.Color'#7#7'clBlack'#10'Font' +'.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#21'Spee' +'dButton1plusClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#16'SpeedButton2plu' +'s'#22'AnchorSideLeft.Control'#7#16'SpeedButton1plus'#19'AnchorSideLeft.Side' +#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTo' +'p.Side'#7#9'asrCenter'#4'Left'#3'M'#1#6'Height'#2#25#3'Top'#2'd'#5'Width'#2 +'!'#18'BorderSpacing.Left'#2#10#7'Caption'#6#4'[2+]'#10'Font.Color'#7#7'clBl' +'ack'#10'Font.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClic' +'k'#7#21'SpeedButton2plusClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#16'Spe' +'edButton3plus'#22'AnchorSideLeft.Control'#7#16'SpeedButton2plus'#19'AnchorS' +'ideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18 +'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3'x'#1#6'Height'#2#25#3'Top'#2'd' +#5'Width'#2'!'#18'BorderSpacing.Left'#2#10#7'Caption'#6#4'[3+]'#10'Font.Colo' +'r'#7#7'clBlack'#10'Font.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold' +#0#7'OnClick'#7#21'SpeedButton3plusClick'#10'ParentFont'#8#0#0#12'TSpeedButt' +'on'#17'SpeedButton3moins'#22'AnchorSideLeft.Control'#7#16'SpeedButton3plus' +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'Speed' +'ButtonC'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#163#1#6'Height'#2 +#25#3'Top'#2'd'#5'Width'#2'!'#18'BorderSpacing.Left'#2#10#7'Caption'#6#4'[3-' +']'#10'Font.Color'#7#7'clBlack'#10'Font.Pitch'#7#10'fpVariable'#10'Font.Styl' ,'e'#11#6'fsBold'#0#7'OnClick'#7#22'SpeedButton3moinsClick'#10'ParentFont'#8#0 +#0#12'TSpeedButton'#17'SpeedButton2moins'#22'AnchorSideLeft.Control'#7#17'Sp' +'eedButton3moins'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Co' +'ntrol'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3 +#206#1#6'Height'#2#25#3'Top'#2'd'#5'Width'#2'!'#18'BorderSpacing.Left'#2#10#7 +'Caption'#6#4'[2-]'#10'Font.Color'#7#7'clBlack'#10'Font.Pitch'#7#10'fpVariab' +'le'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#22'SpeedButton2moinsClick'#10 +'ParentFont'#8#0#0#12'TSpeedButton'#17'SpeedButton1moins'#22'AnchorSideLeft.' +'Control'#7#17'SpeedButton2moins'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21 +'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9'asrCen' +'ter'#4'Left'#3#249#1#6'Height'#2#25#3'Top'#2'd'#5'Width'#2'!'#18'BorderSpac' +'ing.Left'#2#10#7'Caption'#6#3'[-]'#10'Font.Color'#7#7'clBlack'#10'Font.Pitc' +'h'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#22'SpeedButt' +'on1moinsClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButton2'#22'An' +'chorSideLeft.Control'#7#12'SpeedButtonS'#19'AnchorSideLeft.Side'#7#9'asrBot' +'tom'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#3#220#0#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'Bord' +'erSpacing.Left'#2#10#7'Caption'#6#1'2'#10'Font.Color'#7#7'clBlack'#10'Font.' +'Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'Speed' +'Button2Click'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButton3'#22'Anc' +'horSideLeft.Control'#7#12'SpeedButton2'#19'AnchorSideLeft.Side'#7#9'asrBott' +'om'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#3#255#0#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'Bord' +'erSpacing.Left'#2#10#7'Caption'#6#1'3'#10'Font.Color'#7#7'clBlack'#10'Font.' +'Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'Speed' +'Button3Click'#10'ParentFont'#8#0#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Co' +'ntrol'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Heigh' +'t'#2#20#3'Top'#2#10#5'Width'#3#163#2#18'BorderSpacing.Left'#2#10#17'BorderS' +'pacing.Top'#2#10#7'Caption'#6'hEntrez la formule brute. Puis cliquez sur "O' +'K". Puis s'#195#169'lectionnez le r'#195#169'actif dans la liste ci-dessous' +'.'#10'Font.Color'#7#7'clBlack'#10'Font.Pitch'#7#10'fpVariable'#10'Font.Styl' +'e'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label2' +#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label3' +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#2 +'F'#5'Width'#3'V'#2#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7 +'Caption'#6'R mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (p' +'as de parenth'#195#169'ses)'#10'Font.Color'#7#7'clBlack'#10'Font.Pitch'#7#10 +'fpVariable'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8 +#0#0#6'TLabel'#6'Label3'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSide' +'Top.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10 +#6'Height'#2#20#3'Top'#2'('#5'Width'#3#157#1#18'BorderSpacing.Left'#2#10#17 +'BorderSpacing.Top'#2#10#7'Caption'#6'? Exemples: BaSO4 Ag[+] ' +'CrO4[2-] FeO3H3[3+] '#10'Font.Color'#7#7'clBlack'#10'Font.Pitch'#7#10 +'fpVariable'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8 +#0#0#5'TEdit'#16'Editformulebrute'#22'AnchorSideLeft.Control'#7#5'Owner'#21 +'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9'asrBot' +'tom'#4'Left'#2#10#6'Height'#2#28#3'Top'#3#135#0#5'Width'#3'i'#2#18'BorderSp' +'acing.Left'#2#10#17'BorderSpacing.Top'#2#10#8'OnChange'#7#22'Editformulebru' +'teChange'#7'OnKeyUp'#7#21'EditformulebruteKeyUp'#9'OnMouseUp'#7#23'Editform' +'ulebruteMouseUp'#8'TabOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLef' +'t.Control'#7#10'sgreactifs'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Ancho' +'rSideTop.Control'#7#11'RadioGroup1'#18'AnchorSideTop.Side'#7#9'asrBottom'#24 +'AnchorSideBottom.Control'#7#7'BitBtn2'#4'Left'#3#205#1#6'Height'#2'r'#3'Top' +#3'R'#1#5'Width'#3#251#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'B' +'orderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#20'BorderSpacing.Bottom' +#2#10#7'Caption'#6#2'OK'#7'Default'#9#10'Glyph.Data'#10#226#1#0#0#222#1#0#0 +'BM'#222#1#0#0#0#0#0#0'v'#0#0#0'('#0#0#0'$'#0#0#0#18#0#0#0#1#0#4#0#0#0#0#0'h' +#1#0#0#18#11#0#0#18#11#0#0#16#0#0#0#16#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0 +#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0#192#192#192#0#128#128#128#0#0#0 +#255#0#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0 +'333333333333333333'#0#0'333333333333'#243'33333'#0#0'334C33333338'#143'3333' +'3'#0#0'33B$3333333'#131'8'#243'3333'#0#0'34""C33333833'#143'3333'#0#0'3B""$' +'33333'#131'338'#243'333'#0#0'4"*""C3338'#243'8'#243'3'#143'333'#0#0'2"'#163 +#162'"C3338'#243#131#143'3'#143'333'#0#0':*3:"$3338'#248'38'#243'8'#243'33'#0 ,#0'3'#163'33'#162'"C333'#131'33'#143'3'#143'33'#0#0'3333:"$3333338'#243'8' +#243'3'#0#0'33333'#162'"C333333'#143'3'#143'3'#0#0'33333:"$3333338'#243'8' +#243#0#0'333333'#162'"C333333'#143'3'#143#0#0'333333:"C3333338'#243#143#0#0 +'3333333'#162'#3333333'#143#131#0#0'3333333:3333333383'#0#0'3333333333333333' +'33'#0#0#9'NumGlyphs'#2#2#7'OnClick'#7#12'BitBtn1Click'#8'TabOrder'#2#1#0#0 +#11'TStringGrid'#10'sgreactifs'#22'AnchorSideLeft.Control'#7#5'Owner'#21'Anc' +'horSideTop.Control'#7#11'RadioGroup1'#18'AnchorSideTop.Side'#7#9'asrBottom' +#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBo' +'ttom'#4'Left'#2#10#6'Height'#3#170#0#4'Hint'#6'DPour s'#195#169'lectionner ' +'un r'#195#169'actif, cliquez sur la ligne correspondante.'#3'Top'#3'R'#1#5 +'Width'#3#185#1#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpac' +'ing.Left'#2#10#17'BorderSpacing.Top'#2#10#20'BorderSpacing.Bottom'#2#10#14 +'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#3#9'OnMouseUp'#7#17'sgreactif' +'sMouseUp'#0#0#11'TRadioGroup'#11'RadioGroup1'#22'AnchorSideLeft.Control'#7#5 +'Owner'#21'AnchorSideTop.Control'#7#16'Editformulebrute'#18'AnchorSideTop.Si' +'de'#7#9'asrBottom'#4'Left'#2#10#6'Height'#3#155#0#3'Top'#3#173#0#5'Width'#3 +'i'#2#8'AutoFill'#9#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7 +'Caption'#6#19'Type de comparaison'#28'ChildSizing.LeftRightSpacing'#2#6#28 +'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'cr' +'sHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousC' +'hildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildS' +'izing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclL' +'eftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHei' +'ght'#3#133#0#11'ClientWidth'#3'e'#2#9'ItemIndex'#2#0#13'Items.Strings'#1#6#6 +'Exacte'#6'/M'#195#170'mes atomes, en nombres inf'#195#169'rieurs ou '#195 +#169'gaux'#6'.M'#195#170'mes atomes, en nombre sup'#195#169'rieurs ou '#195 +#169'gaux'#6'$M'#195#170'mes atomes, en nombre quelconques'#0#8'TabOrder'#2#2 +#0#0#7'TBitBtn'#7'BitBtn2'#22'AnchorSideLeft.Control'#7#10'sgreactifs'#19'An' +'chorSideLeft.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21 +'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#205#1#6'Height'#2'.'#3'Top' +#3#206#1#5'Width'#3#252#0#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpa' +'cing.Left'#2#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6#7'&Fermer'#4'Kin' +'d'#7#7'bkClose'#8'TabOrder'#2#4#0#0#0 ]); ���������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit11.lrs��������������������������������������������������������������������������0000750�0001750�0001750�00000004455�13147330070�015726� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisietitre','FORMDATA',[ 'TPF0'#12'Tsaisietitre'#11'saisietitre'#4'Left'#3'P'#1#6'Height'#2'm'#3'Top'#3 +#195#0#5'Width'#3'b'#2#13'ActiveControl'#7#9'Edittitre'#11'BorderIcons'#11#12 +'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#15 +'Titre du graphe'#12'ClientHeight'#2'm'#11'ClientWidth'#3'b'#2#8'OnCreate'#7 +#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2.0'#0#6'TLab' +'el'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Contro' +'l'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3'Top'#2#10#5'Width'#2'p'#18'Bord' +'erSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#16'Titre du gr' +'aphe:'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0 +#12'TSpeedButton'#12'SpeedButton1'#22'AnchorSideLeft.Control'#7#5'Owner'#21 +'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4 +'Left'#2#10#6'Height'#2'8'#3'Top'#2'2'#5'Width'#2'e'#18'BorderSpacing.Left'#2 +#10#17'BorderSpacing.Top'#2#20#7'Caption'#6#6'Police'#7'OnClick'#7#17'SpeedB' +'utton1Click'#0#0#5'TEdit'#9'Edittitre'#22'AnchorSideLeft.Control'#7#6'Label' +'1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Lab' +'el1'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#5 +'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#132#0#6'Height'#2 +#28#3'Top'#2#6#5'Width'#3#212#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0 +#18'BorderSpacing.Left'#2#10#19'BorderSpacing.Right'#2#10#8'TabOrder'#2#0#0#0 +#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLeft.Control'#7#12'SpeedButton1'#19'Anch' +'orSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'SpeedButton1' +#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#5'Owner' +#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#131#0#6'Height'#2'4'#3'To' +'p'#2'4'#5'Width'#3#213#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'B' +'orderSpacing.Left'#2#20#19'BorderSpacing.Right'#2#10#7'Caption'#6#3'&OK'#7 +'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#8'TabOrder'#2#1#0#0#11'TFo' +'ntDialog'#11'FontDialog1'#11'MinFontSize'#2#0#11'MaxFontSize'#2#0#4'left'#3 +#184#0#3'top'#2'0'#0#0#0 ]); �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit24.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000002523�13147330070�015707� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit24; {$mode objfpc}{$H+} interface uses Classes, SysUtils,FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin, Buttons,UChaines,UnitScaleFont; type { Tsaisiechiffressignificatifs } Tsaisiechiffressignificatifs = class(TForm) BitBtn1: TBitBtn; Label1: TLabel; Label2: TLabel; SpinEdit1: TSpinEdit; SpinEdit2: TSpinEdit; procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisiechiffressignificatifs: Tsaisiechiffressignificatifs; implementation uses Unit1; { Tsaisiechiffressignificatifs } procedure Tsaisiechiffressignificatifs.BitBtn1Click(Sender: TObject); begin nombre_chiffres_constantes:=spinedit1.Value; nombre_chiffres_resultats:=spinedit2.Value; end; procedure Tsaisiechiffressignificatifs.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsChiffresSign; Label1.Caption := rsNombreDeChif ; Label2.Caption := rsNombreDeChif2 ; BitBtn1.Caption := rsOK ; end; procedure Tsaisiechiffressignificatifs.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit24.lrs} end. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit4b.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000032072�13147330070�015771� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit4b; {$mode objfpc}{$H+} interface uses Classes, SysUtils,FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,Unit2, Grids, ExtCtrls,math,UChaines,UnitScaleFont,LCLType,Unit_commune; type { TForm4b } TForm4b = class(TForm) BitBtn2: TBitBtn; Label1: TLabel; Label2: TLabel; Editformulebrute: TEdit; BitBtn1: TBitBtn; sgreactifs: TStringGrid; Label3: TLabel; SpeedButtonC: TSpeedButton; SpeedButtonO: TSpeedButton; SpeedButtonH: TSpeedButton; SpeedButtonN: TSpeedButton; SpeedButtonP: TSpeedButton; SpeedButtonS: TSpeedButton; SpeedButton1plus: TSpeedButton; SpeedButton2plus: TSpeedButton; SpeedButton3plus: TSpeedButton; SpeedButton3moins: TSpeedButton; SpeedButton2moins: TSpeedButton; SpeedButton1moins: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; RadioGroup1: TRadioGroup; procedure BitBtn1Click(Sender: TObject); procedure EditformulebruteChange(Sender: TObject); procedure EditformulebruteKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure EditformulebruteMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure sgreactifsMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure SpeedButtonCClick(Sender: TObject); procedure SpeedButtonOClick(Sender: TObject); procedure SpeedButtonHClick(Sender: TObject); procedure SpeedButtonNClick(Sender: TObject); procedure SpeedButtonPClick(Sender: TObject); procedure SpeedButtonSClick(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton1plusClick(Sender: TObject); procedure SpeedButton2plusClick(Sender: TObject); procedure SpeedButton3plusClick(Sender: TObject); procedure SpeedButton3moinsClick(Sender: TObject); procedure SpeedButton2moinsClick(Sender: TObject); procedure SpeedButton1moinsClick(Sender: TObject); private { Dclarations prives } encreation:boolean; public { Dclarations publiques } end; var Form4b: TForm4b; mypos:integer; largeur_col1_reactifs,largeur_col2_reactifs,largeur_col3_reactifs,largeur_col4_reactifs:integer; implementation uses Unit3,Unit1; procedure TForm4b.BitBtn1Click(Sender: TObject); var toto:tstringlist; i,didi:integer; tyty:comparaison_entre_formules_brutes; begin if editformulebrute.Text='' then exit; case radiogroup1.ItemIndex of 0: tyty:=egal; 1: tyty:=inf; 2: tyty:=sup; 3: tyty:=parmi; end; toto:=tstringlist.Create; if not(ReactifsDeFormuleBrute(editformulebrute.Text,toto,true,tyty)) then begin application.MessageBox(pchar(rsLaSyntaxeDeV2), pchar(rsAttention2), mb_ok); exit end; if toto.Count=0 then begin sgreactifs.RowCount:=1; application.MessageBox(pchar(rsAucuneEspCeA4), pchar(rsAttention2), mb_ok); exit end; sgreactifs.Cells[0, 0]:=rsIdentifiant; sgreactifs.Cells[1, 0]:=rsSynonyme; sgreactifs.Cells[2, 0]:=rsFormuleBrute2; sgreactifs.Cells[3, 0]:=rsMGMol; sgreactifs.AutoSizeColumns; sgreactifs.RowCount:=1+toto.Count; for i:=1 to toto.Count do begin sgreactifs.Cells[0,i]:=toto[i-1]; case DonneNatureReactif(toto[i-1],didi) of debase: begin sgreactifs.Cells[3,i]:=floattostr( tableau_elements_base[didi-1].masse_molaire); sgreactifs.Cells[1,i]:= tableau_elements_base[didi-1].synonyme; sgreactifs.Cells[2,i]:=''; end; aqueux: begin sgreactifs.Cells[3,i]:=floattostr( tableau_elements_aqueux[didi-1].masse_molaire); sgreactifs.Cells[1,i]:= tableau_elements_aqueux[didi-1].synonyme; sgreactifs.Cells[2,i]:=tableau_elements_aqueux[didi-1].formule; end; gaz: sgreactifs.Cells[3,i]:=floattostr( tableau_elements_gazeux[didi-1].masse_molaire); solide: begin sgreactifs.Cells[3,i]:=floattostr( tableau_elements_mineraux[didi-1].masse_molaire); sgreactifs.Cells[1,i]:= tableau_elements_mineraux[didi-1].synonyme; sgreactifs.Cells[2,i]:=tableau_elements_mineraux[didi-1].formule; end; organique: begin sgreactifs.Cells[3,i]:=floattostr( tableau_elements_organiques[didi-1].masse_molaire); sgreactifs.Cells[1,i]:= tableau_elements_organiques[didi-1].synonyme; sgreactifs.Cells[2,i]:=tableau_elements_organiques[didi-1].formule; end; end; sgreactifs.AutoSizeColumns; end; toto.Free; end; procedure TForm4b.EditformulebruteChange(Sender: TObject); begin //form4b.Editformulebrute.SelStart:=length(form4b.Editformulebrute.text)+1; end; procedure TForm4b.EditformulebruteKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin mypos:=form4b.Editformulebrute.SelStart; end; procedure TForm4b.EditformulebruteMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin mypos:=form4b.Editformulebrute.SelStart; end; procedure TForm4b.FormCreate(Sender: TObject); begin encreation:=true; sgreactifs.ColCount:=4; sgreactifs.RowCount:=2; sgreactifs.Cells[0, 0]:=rsIdentifiant; sgreactifs.Cells[1, 0]:=rsSynonyme; sgreactifs.Cells[2, 0]:=rsFormuleBrute2; sgreactifs.Cells[3, 0]:=rsMGMol; sgreactifs.AutoSizeColumns; Caption := rsRechercheDan; Label1.Caption := Format(rsEntrezLaForm, ['"', '"']); Label2.Caption := rsMaisPasAGSO4; Label3.Caption := rsExemplesBaSO; BitBtn1.Caption := rsOK2; sgreactifs.Hint := rsPourSLection5 ; RadioGroup1.Caption := rsTypeDeCompar; //RadioGroup1.Items.Clear; RadioGroup1.Items[0]:=rsExacte; RadioGroup1.Items[1]:=rsMMesAtomesEn; RadioGroup1.Items[2]:=rsMMesAtomesEn2; RadioGroup1.Items[3]:=rsMMesAtomesEn3; BitBtn2.Caption := rsFermer2; end; procedure TForm4b.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; procedure TForm4b.sgreactifsMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; deja_entre:boolean; repmode:integer; label 555,666; begin sgreactifs.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=sgreactifs.rowcount-1) and (coco>=0) and (coco<=sgreactifs.ColCount-1) and( sgreactifs.Cells[0,roro]<>'') and (form1.stringgridreactifs_burette.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to form1.stringgridreactifs_burette.RowCount-1 do deja_entre:=deja_entre or (form1.stringgridreactifs_burette.cells[1,i]=sgreactifs.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe72, [sgreactifs.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; form1.stringgridreactifs_burette.RowCount:= form1.stringgridreactifs_burette.RowCount+1; etape:=choisir_burette; form1.stringgridreactifs_burette.cells[1,form1.stringgridreactifs_burette.RowCount-1]:= sgreactifs.Cells[0,roro]; form1.stringgridreactifs_burette.cells[0,form1.stringgridreactifs_burette.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(sgreactifs.Cells[3,roro])/ volume_burette_max)else if unit3.nono1>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(sgreactifs.Cells[3,roro])); form1.stringgridreactifs_burette.AutoSizeColumns; modalresult:=mrok; close; end; if ((roro>0) and (roro<=sgreactifs.rowcount) and (sgreactifs.Cells[0,roro]<>'') and (form1.stringgridreactifs_burette.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe73, [sgreactifs.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; form1.stringgridreactifs_burette.cells[1,1]:= sgreactifs.Cells[0,roro]; form1.stringgridreactifs_burette.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono/volume_burette_max) else if unit3.mama>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(sgreactifs.Cells[3,roro])/ volume_burette_max)else if unit3.nono1>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then form1.stringgridreactifs_burette.cells[2,form1.stringgridreactifs_burette.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(sgreactifs.Cells[3,roro])); form1.stringgridreactifs_burette.AutoSizeColumns; modalresult:=mrok; close; end; end; procedure TForm4b.SpeedButtonCClick(Sender: TObject); var s:string; p:integer; begin s:=Form4b.editformulebrute.Text; p:=mypos; insert('C',s,p+1); Form4b.editformulebrute.Text:=s; form4b.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4b.SpeedButtonOClick(Sender: TObject); var s:string; p:integer; begin s:=Form4b.editformulebrute.Text; p:=mypos; insert('O',s,p+1); Form4b.editformulebrute.Text:=s; form4b.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4b.SpeedButtonHClick(Sender: TObject); var s:string; p:integer; begin s:=Form4b.editformulebrute.Text; p:=mypos; insert('H',s,p+1); Form4b.editformulebrute.Text:=s; form4b.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4b.SpeedButtonNClick(Sender: TObject); var s:string; p:integer; begin s:=Form4b.editformulebrute.Text; p:=mypos; insert('N',s,p+1); Form4b.editformulebrute.Text:=s; form4b.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4b.SpeedButtonPClick(Sender: TObject); var s:string; p:integer; begin s:=Form4b.editformulebrute.Text; p:=mypos; insert('P',s,p+1); Form4b.editformulebrute.Text:=s; form4b.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4b.SpeedButtonSClick(Sender: TObject); var s:string; p:integer; begin s:=Form4b.editformulebrute.Text; p:=mypos; insert('S',s,p+1); Form4b.editformulebrute.Text:=s; form4b.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4b.SpeedButton2Click(Sender: TObject); var s:string; p:integer; begin s:=Form4b.editformulebrute.Text; p:=mypos; insert('2',s,p+1); Form4b.editformulebrute.Text:=s; form4b.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4b.SpeedButton3Click(Sender: TObject); var s:string; p:integer; begin s:=Form4b.editformulebrute.Text; p:=mypos; insert('3',s,p+1); Form4b.editformulebrute.Text:=s; form4b.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4b.SpeedButton1plusClick(Sender: TObject); begin editformulebrute.Text:=editformulebrute.Text+'[+]'; form4b.Editformulebrute.SelStart:=length(editformulebrute.Text); mypos:=length(editformulebrute.Text); end; procedure TForm4b.SpeedButton2plusClick(Sender: TObject); begin editformulebrute.Text:=editformulebrute.Text+'[2+]'; form4b.Editformulebrute.SelStart:=length(editformulebrute.Text); mypos:=length(editformulebrute.Text); end; procedure TForm4b.SpeedButton3plusClick(Sender: TObject); begin editformulebrute.Text:=editformulebrute.Text+'[3+]'; form4b.Editformulebrute.SelStart:=length(editformulebrute.Text); mypos:=length(editformulebrute.Text); end; procedure TForm4b.SpeedButton3moinsClick(Sender: TObject); begin editformulebrute.Text:=editformulebrute.Text+'[3-]'; form4b.Editformulebrute.SelStart:=length(editformulebrute.Text); mypos:=length(editformulebrute.Text); end; procedure TForm4b.SpeedButton2moinsClick(Sender: TObject); begin editformulebrute.Text:=editformulebrute.Text+'[2-]'; form4b.Editformulebrute.SelStart:=length(editformulebrute.Text); mypos:=length(editformulebrute.Text); end; procedure TForm4b.SpeedButton1moinsClick(Sender: TObject); begin editformulebrute.Text:=editformulebrute.Text+'[-]'; form4b.Editformulebrute.SelStart:=length(editformulebrute.Text); mypos:=length(editformulebrute.Text); end; initialization {$I unit4b.lrs} end. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/gibbs.pas���������������������������������������������������������������������������0000750�0001750�0001750�00000235544�13147330070�015663� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit gibbs; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, Buttons, ComCtrls, Menus, ExtCtrls, StdCtrls,Grids,pivotgauss,Math,UnitScaleFont,LCLType; const max_type_atomes=100; max_especes=100; constante_gaz_parfaits=8.314; a_debye=0.5091; b_debye=3.286; rtfln10=0.05915; type _tableau_nombres_atomes=tableaureel; _tableau_nombre_atomes_par_espece=matriceentiere; _nombre_atomes_par_espece=tableauentier; _nombres_moles=tableaureel; _tableau_noms_especes=tableaustring; _tableau_noms_atomes=tableaustring; _tableau_presents=tableaubooleen; function calcule_equilibre_phase_gaz(nombres_especes,nombre_type_atomes:integer; t_n_a:_tableau_nombres_atomes; t_n_a_p_e:_tableau_nombre_atomes_par_espece; var nombres_moles_equilibre: _nombres_moles; potentiels_chimiques_standards:_nombres_moles; pression,temperature,residu_max:float;max_iter:integer; var iter:integer):boolean; function calcule_equilibre_phase_aqueuse_annexe(nombre_solutes,nombre_precipites,nombre_type_atomes:integer; nombre_initial_moles_solvant:float; tableau_nombre_initial_moles_solutes,tableau_nombre_initial_moles_precipites:_tableau_nombres_atomes; moles_initiales_atomes:tableaureel; t_n_a_p_e_solvant_1:tableaureel; t_n_a_p_e_solutes_1,t_n_a_p_e_precipites_1:matricereelle; nom_solvant:string; noms_solutes,noms_precipites:tableaustring; var nombre_moles_equilibre_solvant:float; var nombre_moles_equilibre_solutes,nombre_moles_equilibre_precipites, activites_solutes: _nombres_moles; potentiel_chimique_standard_solvant:float; potentiels_chimiques_standards_solutes,potentiels_chimiques_standards_precipites,rayons_solutes:_nombres_moles; volume,temperature,maxresiduconservationrelatif, maxresiduactionmasserelatif:float; max_iter:integer; var iter:integer; var enthalpie_libre:float; debye:boolean):boolean; function calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes,nombre_precipites,nombre_type_atomes:integer; nombre_initial_moles_solvant:float; tableau_nombre_initial_moles_solutes,tableau_nombre_initial_moles_precipites:_tableau_nombres_atomes; t_n_a_p_e_solvant:tableaureel; t_n_a_p_e_solutes,t_n_a_p_e_precipites:matricereelle; nom_solvant:string; noms_solutes,noms_precipites:tableaustring; var nombre_moles_equilibre_solvant:float; var nombre_moles_equilibre_solutes,nombre_moles_equilibre_precipites, activites_solutes: _nombres_moles; potentiel_chimique_standard_solvant:float; potentiels_chimiques_standards_solutes,potentiels_chimiques_standards_precipites, rayons_solutes:_nombres_moles; volume,temperature,maxresiduconservationrelatif, maxresiduactionmasserelatif:float;max_iter:integer; var iter:integer; var enthalpie_libre:float; debye:boolean):boolean; function puissance_entiere(base,exposant:integer):longint; function minabstableauhorszero(t:tableaureel; n:integer):float; function minabs(a,b:float):float; function maxabs(a,b:float):float; function maxabstableau(t:tableaureel; n:integer):float; function minabstableauhorstroppetit(t:tableaureel; n:integer; seuil_significatif:float):float; var pluspetiteconcentrationsignificative, pluspetitlnconcentrationsignificatif:float; implementation uses UnitGaussJordan,Unit1,Unit2; function maxabstableau(t:tableaureel; n:integer):float; var i:integer; mama:float; begin if n<=0 then begin result:=0; exit; end; if n=1 then begin result:=abs(t[0]); exit; end; mama:=abs(t[0]); for i:=2 to n do mama:=maxabs(mama,t[i-1]); result:=mama; end; function minabs(a,b:float):float; begin if abs(a)<abs(b) then result:=abs(a) else result:=abs(b); end; function maxabs(a,b:float):float; begin if abs(a)>abs(b) then result:=abs(a) else result:=abs(b); end; function minabstableauhorszero(t:tableaureel; n:integer):float; var i,j:integer; mimi:float; begin if n<=0 then begin result:=0; exit; end; if n=1 then begin result:=abs(t[0]); exit; end; i:=0; repeat inc(i); mimi:=abs(t[i-1]); until ((mimi<>0) or (i=n)); if i=n then begin result:=mimi; exit; end; for j:=i+1 to n do if t[j-1]<>0 then mimi:=minabs(mimi,t[j-1]); result:=mimi; end; function minabstableauhorstroppetit(t:tableaureel; n:integer; seuil_significatif:float):float; var i,j:integer; mimi:float; begin if n<=0 then begin result:=0; exit; end; if n=1 then begin result:=abs(t[0]); exit; end; i:=0; repeat inc(i); mimi:=abs(t[i-1]); until ((mimi>abs(seuil_significatif)) or (i=n)); if i=n then begin result:=mimi; exit; end; for j:=i+1 to n do if abs(t[j-1])>=abs(seuil_significatif) then mimi:=minabs(mimi,t[j-1]); result:=mimi; end; function puissance_entiere(base,exposant:integer):longint; var i:integer; res:longint; begin res:=1; if exposant>0 then for i:=1 to exposant do res:=res*base; puissance_entiere:=res; end; function calcule_equilibre_phase_gaz(nombres_especes,nombre_type_atomes:integer; t_n_a:_tableau_nombres_atomes; t_n_a_p_e:_tableau_nombre_atomes_par_espece; var nombres_moles_equilibre: _nombres_moles; potentiels_chimiques_standards:_nombres_moles; pression,temperature,residu_max:float;max_iter:integer; var iter:integer):boolean; {pression en bar, temperature en K} var nombre_moles_gaz:float; i,j,k:integer; potentiels_chimiques:_nombres_moles; mat:matricereelle; delta,delt:tableaureel; inter1,inter2,fac1,fac2,fac,residu:float; begin setlength(potentiels_chimiques,nombres_especes); setlength(mat,nombre_type_atomes+1,nombre_type_atomes+2); setlength(delta,nombres_especes+1); setlength(delt,nombre_type_atomes+1); nombre_moles_gaz:=0.1; for j:=1 to nombres_especes do nombres_moles_equilibre[j-1]:=0.1/nombres_especes; iter:=0; REPEAT inc(iter); for j:=1 to nombres_especes do potentiels_chimiques[j-1]:= potentiels_chimiques_standards[j-1]+ constante_gaz_parfaits*temperature*ln(nombres_moles_equilibre[j-1]/nombre_moles_gaz*pression); for k:=1 to nombre_type_atomes do begin inter1:=0; for j:=1 to nombres_especes do inter1:=inter1+t_n_a_p_e[k-1,j-1]*nombres_moles_equilibre[j-1]* (potentiels_chimiques[j-1]/constante_gaz_parfaits/temperature-1); mat[k,nombre_type_atomes+1]:=t_n_a[k-1]+inter1; for i:=1 to nombre_type_atomes do begin inter2:=0; for j:=1 to nombres_especes do inter2:=inter2+ t_n_a_p_e[k-1,j-1]*t_n_a_p_e[i-1,j-1]* nombres_moles_equilibre[j-1]; mat[k-1,i-1]:=inter2; end; inter1:=0; for j:=1 to nombres_especes do inter1:=inter1+ t_n_a_p_e[k-1,j-1]* nombres_moles_equilibre[j-1]; mat[k-1,nombre_type_atomes]:=inter1; end; inter1:=0; for j:=1 to nombres_especes do inter1:=inter1+nombres_moles_equilibre[j-1]*(potentiels_chimiques[j-1]/constante_gaz_parfaits/temperature-1); mat[nombre_type_atomes,nombre_type_atomes+1]:=nombre_moles_gaz+inter1; for i:=1 to nombre_type_atomes do begin inter2:=0; for j:=1 to nombres_especes do inter2:=inter2+ t_n_a_p_e[i-1,j-1]* nombres_moles_equilibre[j-1]; mat[nombre_type_atomes,i-1]:=inter2; end; inter1:=0; for j:=1 to nombres_especes do inter1:=inter1+ nombres_moles_equilibre[j-1]; mat[nombre_type_atomes,nombre_type_atomes]:=inter1-nombre_moles_gaz; ResoudLineaire(mat,nombre_type_atomes+1,delt); for j:=1 to nombres_especes do begin inter1:=0; for i:=1 to nombre_type_atomes do inter1:=inter1+ t_n_a_p_e[i-1,j-1]*delt[i-1]; delta[j-1]:=delt[nombre_type_atomes]+inter1-potentiels_chimiques[j-1]/constante_gaz_parfaits/temperature; end; delta[nombres_especes]:=delt[nombre_type_atomes]; fac1:=5*abs( delta[nombres_especes]); for j:=1 to nombres_especes do if abs(delta[j-1])>fac1 then fac1:=abs(delta[j-1]); fac1:=2/fac1; fac2:=1; for j:=1 to nombres_especes do if ((nombres_moles_equilibre[j-1]<1e-8*nombre_moles_gaz) and (delta[j-1]>0) and (abs((-ln(nombres_moles_equilibre[j-1]/nombre_moles_gaz)-9.2103404)/ (delta[j-1]-delta[nombres_especes]))<fac2)) then fac2:=abs((-ln(nombres_moles_equilibre[j-1]/nombre_moles_gaz)-9.2103404)/ (delta[j-1]-delta[nombres_especes])); fac:=1; if fac1<fac then fac:=fac1; if fac2<fac then fac:=fac2; for j:=1 to nombres_especes do nombres_moles_equilibre[j-1]:=nombres_moles_equilibre[j-1]*exp(fac*delta[j-1]); nombre_moles_gaz:=nombre_moles_gaz*exp(fac*delta[nombres_especes]); inter1:=0; for j:=1 to nombres_especes do inter1:=inter1+t_n_a_p_e[0,j-1]*nombres_moles_equilibre[j-1]; inter1:=abs(inter1-t_n_a[0])/t_n_a[0]; residu:=inter1; if nombre_type_atomes>1 then for k:=2 to nombre_type_atomes do begin inter1:=0; for j:=1 to nombres_especes do inter1:=inter1+t_n_a_p_e[k-1,j-1]*nombres_moles_equilibre[j-1]; inter1:=abs(inter1-t_n_a[k-1])/t_n_a[k-1]; if inter1>residu then residu:=inter1; end; UNTIL ((residu<residu_max) or (iter>max_iter)); calcule_equilibre_phase_gaz:=(iter<=max_iter); finalize(potentiels_chimiques); finalize(mat); finalize(delta); finalize(delt); end; function calcule_equilibre_phase_aqueuse_annexe(nombre_solutes,nombre_precipites,nombre_type_atomes:integer; nombre_initial_moles_solvant:float; tableau_nombre_initial_moles_solutes,tableau_nombre_initial_moles_precipites:_tableau_nombres_atomes; moles_initiales_atomes:tableaureel; t_n_a_p_e_solvant_1:tableaureel; t_n_a_p_e_solutes_1,t_n_a_p_e_precipites_1:matricereelle; nom_solvant:string; noms_solutes,noms_precipites:tableaustring; var nombre_moles_equilibre_solvant:float; var nombre_moles_equilibre_solutes,nombre_moles_equilibre_precipites, activites_solutes: _nombres_moles; potentiel_chimique_standard_solvant:float; potentiels_chimiques_standards_solutes,potentiels_chimiques_standards_precipites, rayons_solutes:_nombres_moles; volume,temperature,maxresiduconservationrelatif, maxresiduactionmasserelatif:float; max_iter:integer; var iter:integer; var enthalpie_libre:float; debye:boolean):boolean; {pression en bar, temperature en K} var i,j,k,kkk,rang,reac:integer; potentiels_chimiques_precipites,potentiels_chimiques_solutes,t_n_a:_nombres_moles; delta_solvant,potentiel_chimique_solvant,nombre_total_hors_solvant,nombre_total_moles_solutes,delta_charge:float; mat,a,aa,coeff_stoechio:matricereelle; delta_ln_solutes,delta_precipites,delt,delt_old,b,bb,potentiel_standard,deltarg0,lk:tableaureel; inter1,inter2,fac1,fac2,fac,plusgrandelement:float; testadditionnel,test_precipites,test_solutes:boolean; f:textfile; noms_1,f_b_1,reactions,equations_conservation,equations_avancements,ea:tableaustring; t_n_a_p_e_solvant,nono_1:tableaureel; t_n_a_p_e_solutes,t_n_a_p_e_precipites:matricereelle; plusgrandresiduactionmasserelatif,plusgrandresiduconservationrelatif:float; residuconservationrelatif,residuconservation,residuactionmasserelatif, residuactionmasse,tata:tableaureel; un_seul_non_nul,tous_nuls:boolean; moles_initiales_atomes_0,nombre_moles_equilibre_precipites_p_p:tableaureel; correspondance_atomes,correspondance_solutes,correspondance_precipites:array of integer; atomes_de_concentration_nulle,solutes_de_concentration_bloquee, precipites_de_concentration_bloquee:array of boolean; nombre_type_atomes_p0,nombre_solutes_p0,nombre_precipites_p0:integer; t_n_a_p_e_solvant_p0:tableaureel; t_n_a_p_e_solutes_p0,t_n_a_p_e_precipites_p0:matricereelle; tableau_nombre_initial_moles_solutes_p0,tableau_nombre_initial_moles_precipites_p0: _tableau_nombres_atomes; noms_solutes_p0,noms_precipites_p0:tableaustring; potentiels_chimiques_standards_solutes_p0,potentiels_chimiques_standards_precipites_p0, charges_solutes_p0,rayons_solutes_p0: _tableau_nombres_atomes; moles_initiales_atomes_0_p0:tableaureel; nombre_moles_equilibre_solutes_p0,nombre_moles_equilibre_precipites_p0:_nombres_moles; reactions_bloquees:array of boolean; bloblo:boolean; totalll:float; force_ionique,force_ionique_partie_constante:float; begin setlength(nombre_moles_equilibre_solutes,nombre_solutes); setlength(nombre_moles_equilibre_precipites,nombre_precipites); {on refait le compte des nombres d'atome, pour verifier s'il n'y a pas d'erreur dans les donnees (cas par exemple d'une precipite non compte alors qu'il est present initialement)} { for i:=1 to nombre_type_atomes do begin totalll:=0; if nombre_solutes>0 then for j:=1 to nombre_solutes do totalll:=totalll+tableau_nombre_initial_moles_solutes[j-1]* t_n_a_p_e_solutes_1[i-1,j-1]; if nombre_precipites>0 then for j:=1 to nombre_precipites do totalll:=totalll+tableau_nombre_initial_moles_precipites[j-1]* t_n_a_p_e_precipites_1[i-1,j-1]; totalll:=totalll+nombre_initial_moles_solvant* t_n_a_p_e_solvant_1[i-1]; if abs(abs(totalll)-abs(moles_initiales_atomes[i-1]))> max(abs(totalll),abs(moles_initiales_atomes[i-1]))*1e-10 then begin result:=false; exit; end; end;} {on fabrique les matrices necessaires pour determiner les equations de conservation independante} setlength(a,nombre_type_atomes,1+nombre_solutes+nombre_precipites); setlength(b,nombre_type_atomes); for i:=1 to nombre_type_atomes do a[i-1,0]:=t_n_a_p_e_solvant_1[i-1]; if nombre_solutes>0 then for i:=1 to nombre_type_atomes do for j:=1 to nombre_solutes do a[i-1,j-1+1]:=t_n_a_p_e_solutes_1[i-1,j-1]; if nombre_precipites>0 then for i:=1 to nombre_type_atomes do for j:=1 to nombre_precipites do a[i-1,j-1+1+nombre_solutes]:=t_n_a_p_e_precipites_1[i-1,j-1]; for i:=1 to nombre_type_atomes do b[i-1]:=moles_initiales_atomes[i-1]; setlength(noms_1,1+nombre_solutes+nombre_precipites); setlength( f_b_1,1+nombre_solutes+nombre_precipites); noms_1[0]:=nom_solvant; f_b_1[0]:=nom_solvant; if nombre_solutes>0 then for i:=1 to nombre_solutes do begin noms_1[i]:=noms_solutes[i-1]; f_b_1[i]:=noms_solutes[i-1]; end; if nombre_precipites>0 then for i:=1 to nombre_precipites do begin noms_1[i+nombre_solutes]:=noms_precipites[i-1]; f_b_1[i+nombre_solutes]:=noms_precipites[i-1]; end; setlength(potentiel_standard,1+nombre_solutes+nombre_precipites); potentiel_standard[0]:=potentiel_chimique_standard_solvant; if nombre_solutes>0 then for i:=1 to nombre_solutes do potentiel_standard[i]:=potentiels_chimiques_standards_solutes[i-1]; if nombre_precipites>0 then for i:=1 to nombre_precipites do potentiel_standard[i+nombre_solutes]:=potentiels_chimiques_standards_precipites[i-1]; DetermineReactionsAnnexe(a,moles_initiales_atomes,1+nombre_solutes+nombre_precipites,nombre_type_atomes, noms_1,f_b_1,rang,reac,reactions,equations_conservation, aa,bb,coeff_stoechio,potentiel_standard,deltarG0,temperature); {s'il n'y a pas de reactions} if reac=0 then begin setlength(potentiels_chimiques_precipites,nombre_precipites); setlength(potentiels_chimiques_solutes,nombre_solutes); setlength(activites_solutes,nombre_solutes); nombre_moles_equilibre_solvant:=nombre_initial_moles_solvant; if nombre_solutes>0 then for i:=1 to nombre_solutes do nombre_moles_equilibre_solutes[i-1]:= tableau_nombre_initial_moles_solutes[i-1]; if nombre_precipites>0 then for i:=1 to nombre_precipites do nombre_moles_equilibre_precipites[i-1]:= tableau_nombre_initial_moles_precipites[i-1]; force_ionique:=0; for i:=1 to nombre_solutes do force_ionique:=force_ionique+0.5*sqr(charges_solutes_0[i-1])* nombre_moles_equilibre_solutes[i-1]/volume; if not(debye) then if nombre_solutes>0 then for i:=1 to nombre_solutes do activites_solutes[i-1]:= tableau_nombre_initial_moles_solutes[i-1]/volume; if debye then if nombre_solutes>0 then for j:=1 to nombre_solutes do if nombre_moles_equilibre_solutes[j-1]>0 then begin potentiels_chimiques_solutes[j-1]:= potentiels_chimiques_standards_solutes[j-1]+ constante_gaz_parfaits*temperature*( ln(nombre_moles_equilibre_solutes[j-1]/volume)- ln(10)*a_debye*sqr(charges_solutes_0[j-1])*sqrt(force_ionique)/ (1+b_debye*rayons_solutes_0[j-1]*sqrt(force_ionique))); activites_solutes[j-1]:=exp( ln(nombre_moles_equilibre_solutes[j-1]/volume)- ln(10)*a_debye*sqr(charges_solutes_0[j-1])*sqrt(force_ionique)/ (1+b_debye*rayons_solutes[j-1]*sqrt(force_ionique))); enthalpie_libre:=enthalpie_libre+ nombre_moles_equilibre_solutes[j-1]*potentiels_chimiques_solutes[j-1]; end else activites_solutes[j-1]:=0; if debye then if nombre_solutes>0 then for j:=1 to nombre_solutes do if nombre_moles_equilibre_solutes[j-1]<>0 then potentiels_chimiques_solutes[j-1]:= potentiels_chimiques_standards_solutes[j-1]+ constante_gaz_parfaits*temperature*ln(nombre_moles_equilibre_solutes[j-1]/volume) else potentiels_chimiques_solutes[j-1]:=0; if nombre_precipites>0 then for j:=1 to nombre_precipites do if nombre_moles_equilibre_precipites[j-1]<>0 then potentiels_chimiques_precipites[j-1]:=potentiels_chimiques_standards_precipites[j-1] else potentiels_chimiques_precipites[j-1]:=0; potentiel_chimique_solvant:=potentiel_chimique_standard_solvant; enthalpie_libre:=nombre_moles_equilibre_solvant*potentiel_chimique_solvant; if nombre_precipites>0 then for i:=1 to nombre_precipites do enthalpie_libre:=enthalpie_libre+nombre_moles_equilibre_precipites[i-1]*potentiels_chimiques_precipites[i-1]; if nombre_solutes>0 then for j:=1 to nombre_solutes do enthalpie_libre:=enthalpie_libre+nombre_moles_equilibre_solutes[j-1]*potentiels_chimiques_solutes[j-1]; iter:=0; result:=true; exit; end; {du cas ou il n'y a pas de reaction} {on regarde s'il y a des nombre de moles d'atome nuls, ce qui permet d'eliminer des especes} setlength(correspondance_solutes,nombre_solutes); setlength(correspondance_precipites,nombre_precipites); setlength(atomes_de_concentration_nulle,nombre_type_atomes); setlength(solutes_de_concentration_bloquee,nombre_solutes); setlength(precipites_de_concentration_bloquee,nombre_precipites); {on repere les atomes en nombre nul} for i:=1 to nombre_type_atomes do if ensemble_atomes[i-1]<>-1 then atomes_de_concentration_nulle[i-1]:=(moles_initiales_atomes[i-1]=0) else atomes_de_concentration_nulle[i-1]:=false; {on en deduit les solutes en nombre nul} if nombre_solutes>0 then for i:=1 to nombre_solutes do begin solutes_de_concentration_bloquee[i-1]:=false; for j:=1 to nombre_type_atomes do if atomes_de_concentration_nulle[j-1] then if t_n_a_p_e_solutes_1[j-1,i-1]<>0 then solutes_de_concentration_bloquee[i-1]:=true; end; {si un solute ne figure dans aucune reaction, sa concentration est imposee a sa valeur initiale} if nombre_solutes>0 then for i:=1 to nombre_solutes do begin bloblo:=true; for j:=1 to reac do bloblo:=bloblo and (coeff_stoechio[j-1,i]=0); solutes_de_concentration_bloquee[i-1]:=bloblo or solutes_de_concentration_bloquee[i-1] ; end; {et les precipites en nombre nul} if nombre_precipites>0 then for i:=1 to nombre_precipites do begin precipites_de_concentration_bloquee[i-1]:=false; for j:=1 to nombre_type_atomes do if atomes_de_concentration_nulle[j-1] then if t_n_a_p_e_precipites_1[j-1,i-1]<>0 then precipites_de_concentration_bloquee[i-1]:=true; end; {si un precipite ne figure dans aucune reaction, sa concentration est imposee a sa valeur initiale} if nombre_precipites>0 then for i:=1 to nombre_precipites do begin bloblo:=true; for j:=1 to reac do bloblo:=bloblo and (coeff_stoechio[j-1,i+nombre_solutes]=0); precipites_de_concentration_bloquee[i-1]:=bloblo or precipites_de_concentration_bloquee[i-1] ; end; {on repere les reactions bloquees} setlength(reactions_bloquees,reac); for i:=1 to reac do reactions_bloquees[i-1]:=false; for i:=1 to reac do begin for j:=1 to nombre_solutes do if ((coeff_stoechio[i-1,j]<>0) and solutes_de_concentration_bloquee[j-1]) then reactions_bloquees[i-1]:=true; for j:=1 to nombre_precipites do if ((coeff_stoechio[i-1,j+nombre_solutes]<>0) and precipites_de_concentration_bloquee[j-1]) then reactions_bloquees[i-1]:=true; end; {pour chaque espece, on cherche si elle n'apparait pas uniquement dans des reactions bloquees, auquel cas sa concentration est bloquee a sa valeur initiale} if nombre_solutes>0 then for i:=1 to nombre_solutes do begin bloblo:=true; for j:=1 to reac do if ((coeff_stoechio[j-1,i]<>0) and not(reactions_bloquees[j-1])) then bloblo:=false; solutes_de_concentration_bloquee[i-1]:= solutes_de_concentration_bloquee[i-1] or bloblo; end; if nombre_precipites>0 then for i:=1 to nombre_precipites do begin bloblo:=true; for j:=1 to reac do if ((coeff_stoechio[j-1,i+nombre_solutes]<>0) and not(reactions_bloquees[j-1])) then bloblo:=false; precipites_de_concentration_bloquee[i-1]:= precipites_de_concentration_bloquee[i-1] or bloblo; end; {maintenant qu'on connait toutes les especes bloquees, on complete les atomes a ne pas prendre en commpte} for i:=1 to nombre_type_atomes do if ensemble_atomes[i-1]<>-1 then begin bloblo:=true; for j:=1 to nombre_solutes do if ((t_n_a_p_e_solutes_1[i-1,j-1]<>0) and not(solutes_de_concentration_bloquee[j-1])) then bloblo:=false; for j:=1 to nombre_precipites do if ((t_n_a_p_e_precipites_1[i-1,j-1]<>0) and not(precipites_de_concentration_bloquee[j-1])) then bloblo:=false; atomes_de_concentration_nulle[i-1]:=atomes_de_concentration_nulle[i-1] or bloblo; end; {on compte les atomes en nombre nul et on fait les correspondances} nombre_type_atomes_p0:=0; for i:=1 to nombre_type_atomes do if not(atomes_de_concentration_nulle[i-1]) then begin inc(nombre_type_atomes_p0); setlength(correspondance_atomes,nombre_type_atomes_p0); correspondance_atomes[nombre_type_atomes_p0-1]:=i; end; setlength(moles_initiales_atomes_0_p0,nombre_type_atomes_p0); for i:=1 to nombre_type_atomes_p0 do moles_initiales_atomes_0_p0[i-1]:= moles_initiales_atomes[correspondance_atomes[i-1]-1]; {on recalcule la charge totale eventuelle} i:=0; repeat inc(i); until ((i=nombre_type_atomes) or (ensemble_atomes[i-1]=-1)); if (ensemble_atomes[i-1]=-1) then begin j:=0; repeat inc(j); until correspondance_atomes[j-1]=i; moles_initiales_atomes_0_p0[j-1]:=0; for k:=1 to nombre_solutes do if not(solutes_de_concentration_bloquee[k-1]) then moles_initiales_atomes_0_p0[j-1]:=moles_initiales_atomes_0_p0[j-1]+ t_n_a_p_e_solutes_1[i-1,k-1]*tableau_nombre_initial_moles_solutes[k-1]; end; force_ionique_partie_constante:=0; {on compte les solutes de concentration nulle et on fait le tableau des correspondances} nombre_solutes_p0:=0; for i:=1 to nombre_solutes do if not(solutes_de_concentration_bloquee[i-1]) then begin inc(nombre_solutes_p0); setlength(correspondance_solutes,nombre_solutes_p0); correspondance_solutes[nombre_solutes_p0-1]:=i; end else force_ionique_partie_constante:=force_ionique_partie_constante +0.5*sqr(charges_solutes_0[i-1])*tableau_nombre_initial_moles_solutes[i-1]/volume; {on compte les precipites de concentration nulle et on fait le tableau des correspondances} nombre_precipites_p0:=0; for i:=1 to nombre_precipites do if not(precipites_de_concentration_bloquee[i-1]) then begin inc(nombre_precipites_p0); setlength(correspondance_precipites,nombre_precipites_p0); correspondance_precipites[nombre_precipites_p0-1]:=i; end; {correspondance pour le solvant} setlength(t_n_a_p_e_solvant_p0,nombre_type_atomes_p0); for i:=1 to nombre_type_atomes_p0 do t_n_a_p_e_solvant_p0[i-1]:=t_n_a_p_e_solvant_1[correspondance_atomes[i-1]-1]; {on fait le nouveau tableau des concentrations initiales et les tnape pour les solutes} setlength(tableau_nombre_initial_moles_solutes_p0,nombre_solutes_p0); setlength(t_n_a_p_e_solutes_p0,nombre_type_atomes_p0,nombre_solutes_p0); for i:=1 to nombre_solutes_p0 do begin tableau_nombre_initial_moles_solutes_p0[i-1]:= tableau_nombre_initial_moles_solutes[correspondance_solutes[i-1]-1]; for j:=1 to nombre_type_atomes_p0 do t_n_a_p_e_solutes_p0[j-1,i-1]:= t_n_a_p_e_solutes_1[correspondance_atomes[j-1]-1, correspondance_solutes[i-1]-1]; end; {on fait le nouveau tableau des concentrations initiales et les tnape pour les precipites} setlength(tableau_nombre_initial_moles_precipites_p0,nombre_precipites_p0); setlength(t_n_a_p_e_precipites_p0,nombre_type_atomes_p0,nombre_precipites_p0); for i:=1 to nombre_precipites_p0 do begin tableau_nombre_initial_moles_precipites_p0[i-1]:= tableau_nombre_initial_moles_precipites[correspondance_precipites[i-1]-1]; for j:=1 to nombre_type_atomes_p0 do t_n_a_p_e_precipites_p0[j-1,i-1]:= t_n_a_p_e_precipites_1[correspondance_atomes[j-1]-1, correspondance_precipites[i-1]-1]; end; {nouveau tableau des noms et des potentiels} setlength(noms_solutes_p0,nombre_solutes_p0); setlength(charges_solutes_p0,nombre_solutes_p0); setlength(rayons_solutes_p0,nombre_solutes_p0); setlength(potentiels_chimiques_standards_solutes_p0,nombre_solutes_p0); setlength(potentiels_chimiques_standards_precipites_p0,nombre_precipites_p0); setlength(noms_precipites_p0,nombre_precipites_p0); for i:=1 to nombre_solutes_p0 do begin noms_solutes_p0[i-1]:=noms_solutes[correspondance_solutes[i-1]-1]; charges_solutes_p0[i-1]:=charges_solutes_0[correspondance_solutes[i-1]-1]; rayons_solutes_p0[i-1]:=rayons_solutes_0[correspondance_solutes[i-1]-1]; potentiels_chimiques_standards_solutes_p0[i-1]:= potentiels_chimiques_standards_solutes[correspondance_solutes[i-1]-1]; end; for i:=1 to nombre_precipites_p0 do begin noms_precipites_p0[i-1]:=noms_precipites[correspondance_precipites[i-1]-1]; potentiels_chimiques_standards_precipites_p0[i-1]:= potentiels_chimiques_standards_precipites[correspondance_precipites[i-1]-1]; end; {on recommence la determination du rang} setlength(nombre_moles_equilibre_solutes,nombre_solutes_p0); setlength(nombre_moles_equilibre_precipites,nombre_precipites_p0); {on fabrique les matrices necessaires pour determiner les equations de conservation independante} setlength(a,nombre_type_atomes_p0,1+nombre_solutes_p0+nombre_precipites_p0); setlength(b,nombre_type_atomes_p0); for i:=1 to nombre_type_atomes_p0 do a[i-1,0]:=t_n_a_p_e_solvant_p0[i-1]; if nombre_solutes_p0>0 then for i:=1 to nombre_type_atomes_p0 do for j:=1 to nombre_solutes_p0 do a[i-1,j-1+1]:=t_n_a_p_e_solutes_p0[i-1,j-1]; if nombre_precipites_p0>0 then for i:=1 to nombre_type_atomes_p0 do for j:=1 to nombre_precipites_p0 do a[i-1,j-1+1+nombre_solutes_p0]:=t_n_a_p_e_precipites_p0[i-1,j-1]; for i:=1 to nombre_type_atomes_p0 do b[i-1]:=moles_initiales_atomes_0_p0[i-1]; setlength(noms_1,1+nombre_solutes_p0+nombre_precipites_p0); setlength( f_b_1,1+nombre_solutes_p0+nombre_precipites_p0); setlength( nono_1,1+nombre_solutes_p0+nombre_precipites_p0); noms_1[0]:=nom_solvant; f_b_1[0]:=nom_solvant; nono_1[0]:=nombre_initial_moles_solvant; if nombre_solutes_p0>0 then for i:=1 to nombre_solutes_p0 do begin noms_1[i]:=noms_solutes_p0[i-1]; f_b_1[i]:=noms_solutes_p0[i-1]; nono_1[i]:=tableau_nombre_initial_moles_solutes_p0[i-1]; end; if nombre_precipites_p0>0 then for i:=1 to nombre_precipites_p0 do begin noms_1[i+nombre_solutes_p0]:=noms_precipites_p0[i-1]; f_b_1[i+nombre_solutes_p0]:=noms_precipites_p0[i-1]; nono_1[i+nombre_solutes_p0]:=tableau_nombre_initial_moles_precipites_p0[i-1]; end; setlength(potentiel_standard,1+nombre_solutes_p0+nombre_precipites_p0); potentiel_standard[0]:=potentiel_chimique_standard_solvant; if nombre_solutes_p0>0 then for i:=1 to nombre_solutes_p0 do potentiel_standard[i]:=potentiels_chimiques_standards_solutes_p0[i-1]; if nombre_precipites_p0>0 then for i:=1 to nombre_precipites_p0 do potentiel_standard[i+nombre_solutes_p0]:=potentiels_chimiques_standards_precipites_p0[i-1]; DetermineReactions(a,nono_1, 1+nombre_solutes_p0+nombre_precipites_p0,nombre_type_atomes_p0, noms_1,f_b_1,rang,reac,reactions,equations_conservation,ea, aa,bb,coeff_stoechio,potentiel_standard,deltarG0,lk,temperature); finalize(ea); finalize(lk); finalize(nono_1); {DetermineReactionsAnnexe(a,moles_initiales_atomes_0_p0, 1+nombre_solutes_p0+nombre_precipites_p0,nombre_type_atomes_p0, noms_1,f_b_1,rang,reac,reactions,equations_conservation, aa,bb,coeff_stoechio,potentiel_standard,deltarG0,temperature);} setlength(t_n_a_p_e_solvant,rang); setlength(t_n_a_p_e_solutes,rang,nombre_solutes_p0); setlength(t_n_a_p_e_precipites,rang,nombre_precipites_p0); for i:=1 to rang do t_n_a_p_e_solvant[i-1]:=aa[i-1,0]; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do for i:=1 to rang do t_n_a_p_e_solutes[i-1,j-1]:=aa[i-1,j]; if nombre_precipites_p0>0 then for j:=1 to nombre_precipites_p0 do for i:=1 to rang do t_n_a_p_e_precipites[i-1,j-1]:=aa[i-1,j+nombre_solutes_p0]; setlength(potentiels_chimiques_precipites,nombre_precipites_p0); setlength(potentiels_chimiques_solutes,nombre_solutes_p0); setlength(mat,rang+1+nombre_precipites_p0, rang+1+nombre_precipites_p0+1); setlength(delta_ln_solutes,nombre_solutes_p0); setlength(delta_precipites,nombre_precipites_p0); setlength(delt,rang+1+nombre_precipites_p0); setlength(delt_old,rang+1+nombre_precipites_p0); setlength(t_n_a,rang); {calcul du nombre d'atomes pour chaque atome} for k:=1 to rang do t_n_a[k-1]:=bb[k-1]; nombre_moles_equilibre_solvant:=nombre_initial_moles_solvant; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do nombre_moles_equilibre_solutes[j-1]:=0.1/nombre_solutes_p0; iter:=0; if nombre_precipites_p0>0 then for j:=1 to nombre_precipites_p0 do begin nombre_moles_equilibre_precipites[j-1]:=0; potentiels_chimiques_precipites[j-1]:=potentiels_chimiques_standards_precipites_p0[j-1]; end; potentiel_chimique_solvant:=potentiel_chimique_standard_solvant; iter:=0; REPEAT inc(iter); if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do potentiels_chimiques_solutes[j-1]:= potentiels_chimiques_standards_solutes_p0[j-1]+ constante_gaz_parfaits*temperature*ln(nombre_moles_equilibre_solutes[j-1]/volume); for k:=1 to rang do begin {calcul du seond membre des equations issues de la conservation de la matiere} inter1:=0; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do inter1:=inter1+t_n_a_p_e_solutes[k-1,j-1]*nombre_moles_equilibre_solutes[j-1]* (potentiels_chimiques_solutes[j-1]/constante_gaz_parfaits/temperature-1); inter1:=inter1-t_n_a_p_e_solvant[k-1]*nombre_moles_equilibre_solvant; if nombre_precipites_p0>0 then for j:=1 to nombre_precipites_p0 do inter1:=inter1-t_n_a_p_e_precipites[k-1,j-1]*nombre_moles_equilibre_precipites[j-1]; mat[k-1,rang+2+nombre_precipites_p0-1]:=t_n_a[k-1]+inter1; {calcul du coefficient de Pi(i) dans le premier membre des equations issues de la conservation de la matiere} for i:=1 to rang do begin inter2:=0; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do inter2:=inter2+ t_n_a_p_e_solutes[k-1,j-1]*t_n_a_p_e_solutes[i-1,j-1]* nombre_moles_equilibre_solutes[j-1]; mat[k-1,i-1]:=inter2; end; {coefficient de delta P(i) dans le premier membre des equations issues de la conservation de la matiere} inter2:=0; if nombre_precipites_p0>0 then for i:=1 to nombre_precipites_p0 do mat[k-1,rang+1+i-1]:=t_n_a_p_e_precipites[k-1,i-1]; {coefficient de delta Nsolvant dans le premier membre des equations issues de la conservation de la matiere} mat[k-1,rang]:=t_n_a_p_e_solvant[k-1]; end; {equation issue du potentiel chimique de l'eau} for i:=1 to rang do mat[rang,i-1]:=t_n_a_p_e_solvant[i-1]; mat[rang,rang]:=0; if nombre_precipites_p0>0 then for i:=1 to nombre_precipites_p0 do mat[rang,rang+i]:=0; mat[rang,rang+2+nombre_precipites_p0-1]:= potentiel_chimique_solvant/constante_gaz_parfaits/temperature; {equations issues des potnetiels chimiques des precipites} if nombre_precipites_p0>0 then for k:=1 to nombre_precipites_p0 do begin for i:=1 to rang do mat[rang+1+k-1,i-1]:=t_n_a_p_e_precipites[i-1,k-1]; mat[rang+1+k-1,rang+1-1]:=0; if nombre_precipites_p0>0 then for i:=1 to nombre_precipites_p0 do mat[rang+1+k-1,rang+1+i-1]:=0; mat[rang+1+k-1,rang+2+nombre_precipites_p0-1]:= potentiels_chimiques_precipites[k-1]/constante_gaz_parfaits/temperature; end; ResoudLineaire(mat,rang+1+nombre_precipites_p0,delt); if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do begin inter1:=0; for i:=1 to rang do inter1:=inter1+ t_n_a_p_e_solutes[i-1,j-1]*delt[i-1]; delta_ln_solutes[j-1]:=inter1-potentiels_chimiques_solutes[j-1]/constante_gaz_parfaits/temperature; end; delta_solvant:=delt[rang+1-1]; if nombre_precipites_p0>0 then for j:=1 to nombre_precipites_p0 do delta_precipites[j-1]:=delt[rang+1+j-1]; fac1:=0; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do if abs(delta_ln_solutes[j-1])>fac1 then fac1:=abs(delta_ln_solutes[j-1]); if fac1<>0 then fac1:=2/fac1 else fac1:=1; nombre_total_moles_solutes:=0; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do nombre_total_moles_solutes:=nombre_total_moles_solutes+nombre_moles_equilibre_solutes[j-1] else nombre_total_moles_solutes:=0.1; fac2:=1; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do if ((nombre_moles_equilibre_solutes[j-1]<1e-8*nombre_total_moles_solutes) and (delta_ln_solutes[j-1]>0) and (abs((-ln(nombre_moles_equilibre_solutes[j-1]/nombre_total_moles_solutes)-9.2103404)/ (delta_ln_solutes[j-1]))<fac2)) then fac2:=abs((-ln(nombre_moles_equilibre_solutes[j-1]/nombre_total_moles_solutes)-9.2103404)/ (delta_ln_solutes[j-1])); fac:=1; if fac1<fac then fac:=fac1; if fac2<fac then fac:=fac2; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do nombre_moles_equilibre_solutes[j-1]:= nombre_moles_equilibre_solutes[j-1]*exp(fac*delta_ln_solutes[j-1]); nombre_moles_equilibre_solvant:=nombre_moles_equilibre_solvant+ fac*delta_solvant; if nombre_precipites_p0>0 then for j:=1 to nombre_precipites_p0 do nombre_moles_equilibre_precipites[j-1]:= nombre_moles_equilibre_precipites[j-1]+ fac*delta_precipites[j-1]; for i:=1 to rang do delt_old[i-1]:=delt[i-1]; setlength(residuconservation,rang); setlength(residuconservationrelatif,rang); {calcul du residu relatif max des equations de conservation} for i:=1 to rang do begin setlength(tata,1+nombre_solutes_p0+nombre_precipites_p0+1); tata[0]:=aa[i-1,0]*nombre_moles_equilibre_solvant; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do tata[j]:=aa[i-1,j]*nombre_moles_equilibre_solutes[j-1]; if nombre_precipites_p0>0 then for j:=1 to nombre_precipites_p0 do tata[j+nombre_solutes_p0]:=aa[i-1,j+nombre_solutes_p0]* nombre_moles_equilibre_precipites[j-1]; tata[1+nombre_solutes_p0+nombre_precipites_p0]:=bb[i-1]; plusgrandelement:=maxabstableau(tata,1+nombre_solutes_p0+nombre_precipites_p0+1); residuconservation[i-1]:=0; for j:=1 to 1+nombre_solutes_p0+nombre_precipites_p0 do residuconservation[i-1]:=residuconservation[i-1]+tata[j-1]; residuconservation[i-1]:=residuconservation[i-1] -tata[1+nombre_solutes_p0+nombre_precipites_p0]; {on cherche si il n'y a pas un unique terme non nul} un_seul_non_nul:=false; j:=0; repeat inc(j); until ((tata[j-1]<>0) or (j=1+nombre_solutes_p0+nombre_precipites_p0+1)); un_seul_non_nul:=true; if j<1+nombre_solutes_p0+nombre_precipites_p0+1 then for kkk:=j+1 to 1+nombre_solutes_p0+nombre_precipites_p0+1 do if (tata[kkk-1]<>0) then un_seul_non_nul:=false; {on cherche s'ils ne sont pas tous nuls} tous_nuls:=true; for j:=1 to 1+nombre_solutes_p0+nombre_precipites_p0+1 do tous_nuls:=tous_nuls and (tata[j-1]=0); if (not(tous_nuls) and not ( un_seul_non_nul)) then if ((plusgrandelement>0) and (abs(residuconservation[i-1])> pluspetiteconcentrationsignificative)) then residuconservationrelatif[i-1]:=abs(abs(residuconservation[i-1])/plusgrandelement) else residuconservationrelatif[i-1]:=0; if un_seul_non_nul then if ((abs(residuconservation[i-1])< pluspetiteconcentrationsignificative)) then residuconservationrelatif[i-1]:=0 else residuconservationrelatif[i-1]:=maxresiduconservationrelatif*10; if tous_nuls then residuconservationrelatif[i-1]:=0; finalize(tata); end; plusgrandresiduconservationrelatif:=maxabstableau(residuconservationrelatif,rang); {fin du calcul des residus des equations de conservation} {calcul du residu des equations de ln K} setlength(residuactionmasse,reac); setlength(residuactionmasserelatif,reac); for i:=1 to reac do begin setlength(tata,nombre_solutes_p0+1); for j:=1 to nombre_solutes_p0 do if nombre_moles_equilibre_solutes[j-1]>0 then tata[j-1]:=coeff_stoechio[i-1,j]*ln(nombre_moles_equilibre_solutes[j-1]/volume) else tata[j-1]:=0; tata[nombre_solutes_p0]:=-deltarg0[i-1]/constante_gaz_parfaits/temperature; plusgrandelement:=maxabstableau(tata,1+nombre_solutes_p0); residuactionmasse[i-1]:=0; for j:=1 to nombre_solutes_p0 do residuactionmasse[i-1]:=residuactionmasse[i-1]+tata[j-1]; residuactionmasse[i-1]:=residuactionmasse[i-1] -tata[nombre_solutes_p0]; if ((plusgrandelement>0) and (abs(residuactionmasse[i-1])> pluspetitlnconcentrationsignificatif)) then residuactionmasserelatif[i-1]:=abs(abs(residuactionmasse[i-1])/ plusgrandelement) else residuactionmasserelatif[i-1]:=0; finalize(tata); end; plusgrandresiduactionmasserelatif:=maxabstableau(residuactionmasserelatif,reac); {fin du calcul des residus des lois d'action de masse} finalize(residuactionmasserelatif); finalize(residuactionmasse); finalize(residuconservationrelatif); finalize(residuconservation); UNTIL ( ((plusgrandresiduactionmasserelatif<=maxresiduactionmasserelatif) and (plusgrandresiduconservationrelatif<=maxresiduconservationrelatif)) or (iter>max_iter) ); result:=(iter<=max_iter); force_ionique:=force_ionique_partie_constante; for i:=1 to nombre_solutes_p0 do force_ionique:=force_ionique+0.5*sqr(charges_solutes_p0[i-1])* nombre_moles_equilibre_solutes[i-1]/volume; if not(debye and (force_ionique>0)) then begin enthalpie_libre:=nombre_moles_equilibre_solvant*potentiel_chimique_solvant; if nombre_precipites_p0>0 then for i:=1 to nombre_precipites_p0 do if nombre_moles_equilibre_precipites[i-1]>0 then enthalpie_libre:=enthalpie_libre+ nombre_moles_equilibre_precipites[i-1]*potentiels_chimiques_precipites[i-1]; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do if nombre_moles_equilibre_solutes[j-1]>0 then begin potentiels_chimiques_solutes[j-1]:= potentiels_chimiques_standards_solutes_p0[j-1]+ constante_gaz_parfaits*temperature* ln(nombre_moles_equilibre_solutes[j-1]/volume); enthalpie_libre:=enthalpie_libre+ nombre_moles_equilibre_solutes[j-1]*potentiels_chimiques_solutes[j-1]; end; setlength(nombre_moles_equilibre_solutes_p0,nombre_solutes_p0); setlength(nombre_moles_equilibre_precipites_p0,nombre_precipites_p0); for i:=1 to nombre_solutes_p0 do nombre_moles_equilibre_solutes_p0[i-1]:= nombre_moles_equilibre_solutes[i-1]; for i:=1 to nombre_precipites_p0 do nombre_moles_equilibre_precipites_p0[i-1]:= nombre_moles_equilibre_precipites[i-1]; setlength(nombre_moles_equilibre_solutes,nombre_solutes); setlength(activites_solutes,nombre_solutes); setlength(nombre_moles_equilibre_precipites,nombre_precipites); setlength(potentiels_chimiques_solutes,nombre_solutes); setlength(potentiels_chimiques_precipites,nombre_precipites); for i:=1 to nombre_solutes do nombre_moles_equilibre_solutes[i-1]:=tableau_nombre_initial_moles_solutes[i-1]; for i:=1 to nombre_solutes_p0 do nombre_moles_equilibre_solutes[ correspondance_solutes[i-1]-1]:= nombre_moles_equilibre_solutes_p0[i-1]; for i:=1 to nombre_precipites do nombre_moles_equilibre_precipites[i-1]:=tableau_nombre_initial_moles_precipites[i-1]; for i:=1 to nombre_precipites_p0 do nombre_moles_equilibre_precipites[ correspondance_precipites[i-1]-1]:= nombre_moles_equilibre_precipites_p0[i-1]; enthalpie_libre:=nombre_moles_equilibre_solvant*potentiel_chimique_solvant; if nombre_precipites>0 then for i:=1 to nombre_precipites do if nombre_moles_equilibre_precipites[i-1]>0 then enthalpie_libre:=enthalpie_libre+ nombre_moles_equilibre_precipites[i-1]*potentiels_chimiques_precipites[i-1]; if nombre_solutes>0 then for j:=1 to nombre_solutes do if nombre_moles_equilibre_solutes[j-1]>0 then begin potentiels_chimiques_solutes[j-1]:= potentiels_chimiques_standards_solutes[j-1]+ constante_gaz_parfaits*temperature*ln(nombre_moles_equilibre_solutes[j-1]/volume); activites_solutes[j-1]:=nombre_moles_equilibre_solutes[j-1]/volume; enthalpie_libre:=enthalpie_libre+ nombre_moles_equilibre_solutes[j-1]*potentiels_chimiques_solutes[j-1]; end else activites_solutes[j-1]:=0; end else begin {si on tient compte de Debye-Huckel} iter:=0; REPEAT inc(iter); force_ionique:=force_ionique_partie_constante; if nombre_solutes_p0>0 then for i:=1 to nombre_solutes_p0 do force_ionique:=force_ionique+0.5*sqr(charges_solutes_p0[i-1])* nombre_moles_equilibre_solutes[i-1]/volume; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do potentiels_chimiques_solutes[j-1]:= potentiels_chimiques_standards_solutes_p0[j-1]+ constante_gaz_parfaits*temperature*( ln(nombre_moles_equilibre_solutes[j-1]/volume)- ln(10)*a_debye*sqr(charges_solutes_p0[j-1])*sqrt(force_ionique)/ (1+b_debye*rayons_solutes_p0[j-1]*sqrt(force_ionique))); for k:=1 to rang do begin {calcul du seond membre des equations issues de la conservation de la matiere} inter1:=0; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do inter1:=inter1+t_n_a_p_e_solutes[k-1,j-1]*nombre_moles_equilibre_solutes[j-1]* (potentiels_chimiques_solutes[j-1]/constante_gaz_parfaits/temperature-1); inter1:=inter1-t_n_a_p_e_solvant[k-1]*nombre_moles_equilibre_solvant; if nombre_precipites_p0>0 then for j:=1 to nombre_precipites_p0 do inter1:=inter1-t_n_a_p_e_precipites[k-1,j-1]*nombre_moles_equilibre_precipites[j-1]; mat[k-1,rang+2+nombre_precipites_p0-1]:=t_n_a[k-1]+inter1; {calcul du coefficient de Pi(i) dans le premier membre des equations issues de la conservation de la matiere} for i:=1 to rang do begin inter2:=0; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do inter2:=inter2+ t_n_a_p_e_solutes[k-1,j-1]*t_n_a_p_e_solutes[i-1,j-1]* nombre_moles_equilibre_solutes[j-1]; mat[k-1,i-1]:=inter2; end; {coefficient de delta P(i) dans le premier membre des equations issues de la conservation de la matiere} inter2:=0; if nombre_precipites_p0>0 then for i:=1 to nombre_precipites_p0 do mat[k-1,rang+1+i-1]:=t_n_a_p_e_precipites[k-1,i-1]; {coefficient de delta Nsolvant dans le premier membre des equations issues de la conservation de la matiere} mat[k-1,rang]:=t_n_a_p_e_solvant[k-1]; end; {equation issue du potentiel chimique de l'eau} for i:=1 to rang do mat[rang,i-1]:=t_n_a_p_e_solvant[i-1]; mat[rang,rang]:=0; if nombre_precipites_p0>0 then for i:=1 to nombre_precipites_p0 do mat[rang,rang+i]:=0; mat[rang,rang+2+nombre_precipites_p0-1]:= potentiel_chimique_solvant/constante_gaz_parfaits/temperature; {equations issues des potnetiels chimiques des precipites} if nombre_precipites_p0>0 then for k:=1 to nombre_precipites_p0 do begin for i:=1 to rang do mat[rang+1+k-1,i-1]:=t_n_a_p_e_precipites[i-1,k-1]; mat[rang+1+k-1,rang+1-1]:=0; if nombre_precipites_p0>0 then for i:=1 to nombre_precipites_p0 do mat[rang+1+k-1,rang+1+i-1]:=0; mat[rang+1+k-1,rang+2+nombre_precipites_p0-1]:= potentiels_chimiques_precipites[k-1]/constante_gaz_parfaits/temperature; end; ResoudLineaire(mat,rang+1+nombre_precipites_p0,delt); if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do begin inter1:=0; for i:=1 to rang do inter1:=inter1+ t_n_a_p_e_solutes[i-1,j-1]*delt[i-1]; delta_ln_solutes[j-1]:=inter1-potentiels_chimiques_solutes[j-1]/constante_gaz_parfaits/temperature; end; delta_solvant:=delt[rang+1-1]; if nombre_precipites_p0>0 then for j:=1 to nombre_precipites_p0 do delta_precipites[j-1]:=delt[rang+1+j-1]; fac1:=0; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do if abs(delta_ln_solutes[j-1])>fac1 then fac1:=abs(delta_ln_solutes[j-1]); if fac1<>0 then fac1:=2/fac1 else fac1:=1; nombre_total_moles_solutes:=0; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do nombre_total_moles_solutes:=nombre_total_moles_solutes+nombre_moles_equilibre_solutes[j-1] else nombre_total_moles_solutes:=0.1; fac2:=1; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do if ((nombre_moles_equilibre_solutes[j-1]<1e-8*nombre_total_moles_solutes) and (delta_ln_solutes[j-1]>0) and (abs((-ln(nombre_moles_equilibre_solutes[j-1]/nombre_total_moles_solutes)-9.2103404)/ (delta_ln_solutes[j-1]))<fac2)) then fac2:=abs((-ln(nombre_moles_equilibre_solutes[j-1]/nombre_total_moles_solutes)-9.2103404)/ (delta_ln_solutes[j-1])); fac:=1; if fac1<fac then fac:=fac1; if fac2<fac then fac:=fac2; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do nombre_moles_equilibre_solutes[j-1]:= nombre_moles_equilibre_solutes[j-1]*exp(fac*delta_ln_solutes[j-1]); nombre_moles_equilibre_solvant:=nombre_moles_equilibre_solvant+ fac*delta_solvant; if nombre_precipites_p0>0 then for j:=1 to nombre_precipites_p0 do nombre_moles_equilibre_precipites[j-1]:= nombre_moles_equilibre_precipites[j-1]+ fac*delta_precipites[j-1]; for i:=1 to rang do delt_old[i-1]:=delt[i-1]; setlength(residuconservation,rang); setlength(residuconservationrelatif,rang); {calcul du residu relatif max des equations de conservation} for i:=1 to rang do begin setlength(tata,1+nombre_solutes_p0+nombre_precipites_p0+1); tata[0]:=a[i-1,0]*nombre_moles_equilibre_solvant; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do tata[j]:=a[i-1,j]*nombre_moles_equilibre_solutes[j-1]; if nombre_precipites_p0>0 then for j:=1 to nombre_precipites_p0 do tata[j+nombre_solutes_p0]:=a[i-1,j+nombre_solutes_p0]* nombre_moles_equilibre_precipites[j-1]; tata[1+nombre_solutes_p0+nombre_precipites_p0]:=b[i-1]; plusgrandelement:=maxabstableau(tata,1+nombre_solutes_p0+nombre_precipites_p0+1); residuconservation[i-1]:=0; for j:=1 to 1+nombre_solutes_p0+nombre_precipites_p0 do residuconservation[i-1]:=residuconservation[i-1]+tata[j-1]; residuconservation[i-1]:=residuconservation[i-1] -tata[1+nombre_solutes_p0+nombre_precipites_p0]; {on cherche si il n'y a pas un unique terme non nul} un_seul_non_nul:=false; j:=0; repeat inc(j); until ((tata[j-1]<>0) or (j=1+nombre_solutes_p0+nombre_precipites_p0+1)); un_seul_non_nul:=true; if j<1+nombre_solutes_p0+nombre_precipites_p0+1 then for kkk:=j+1 to 1+nombre_solutes_p0+nombre_precipites_p0+1 do if (tata[kkk-1]<>0) then un_seul_non_nul:=false; {on cherche s'ils ne sont pas tous nuls} tous_nuls:=true; for j:=1 to 1+nombre_solutes_p0+nombre_precipites_p0+1 do tous_nuls:=tous_nuls and (tata[j-1]=0); if (not(tous_nuls) and not ( un_seul_non_nul)) then if ((plusgrandelement>0) and (abs(residuconservation[i-1])> pluspetiteconcentrationsignificative)) then residuconservationrelatif[i-1]:=abs(abs(residuconservation[i-1])/plusgrandelement) else residuconservationrelatif[i-1]:=0; if un_seul_non_nul then if ((abs(residuconservation[i-1])< pluspetiteconcentrationsignificative)) then residuconservationrelatif[i-1]:=0 else residuconservationrelatif[i-1]:=maxresiduconservationrelatif*10; if tous_nuls then residuconservationrelatif[i-1]:=0; finalize(tata); end; plusgrandresiduconservationrelatif:=maxabstableau(residuconservationrelatif,rang); {fin du calcul des residus des equations de conservation} {calcul du residu des equations de ln K} setlength(residuactionmasse,reac); setlength(residuactionmasserelatif,reac); for i:=1 to reac do begin setlength(tata,nombre_solutes_p0+1); for j:=1 to nombre_solutes_p0 do if nombre_moles_equilibre_solutes[j-1]>0 then tata[j-1]:=coeff_stoechio[i-1,j]*( ln(nombre_moles_equilibre_solutes[j-1]/volume)- ln(10)*a_debye*sqr(charges_solutes_p0[j-1])*sqrt(force_ionique)/ (1+b_debye*rayons_solutes_p0[j-1]*sqrt(force_ionique))) else tata[j-1]:=0; tata[nombre_solutes_p0]:=-deltarg0[i-1]/constante_gaz_parfaits/temperature; plusgrandelement:=maxabstableau(tata,1+nombre_solutes_p0); residuactionmasse[i-1]:=0; for j:=1 to nombre_solutes_p0 do residuactionmasse[i-1]:=residuactionmasse[i-1]+tata[j-1]; residuactionmasse[i-1]:=residuactionmasse[i-1] -tata[nombre_solutes_p0]; if ((plusgrandelement>0) and (abs(residuactionmasse[i-1])> pluspetitlnconcentrationsignificatif)) then residuactionmasserelatif[i-1]:=abs(abs(residuactionmasse[i-1])/ plusgrandelement) else residuactionmasserelatif[i-1]:=0; finalize(tata); end; plusgrandresiduactionmasserelatif:=maxabstableau(residuactionmasserelatif,reac); {fin du calcul des residus des lois d'action de masse} finalize(residuactionmasserelatif); finalize(residuactionmasse); finalize(residuconservationrelatif); finalize(residuconservation); UNTIL ( ((plusgrandresiduactionmasserelatif<=maxresiduactionmasserelatif) and (plusgrandresiduconservationrelatif<=maxresiduconservationrelatif)) or (iter>max_iter) ); result:=(iter<=max_iter); enthalpie_libre:=nombre_moles_equilibre_solvant*potentiel_chimique_solvant; if nombre_precipites_p0>0 then for i:=1 to nombre_precipites_p0 do if nombre_moles_equilibre_precipites[i-1]>0 then enthalpie_libre:=enthalpie_libre+ nombre_moles_equilibre_precipites[i-1]*potentiels_chimiques_precipites[i-1]; if nombre_solutes_p0>0 then for j:=1 to nombre_solutes_p0 do if nombre_moles_equilibre_solutes[j-1]>0 then begin potentiels_chimiques_solutes[j-1]:= potentiels_chimiques_standards_solutes_p0[j-1]+ constante_gaz_parfaits*temperature*( ln(nombre_moles_equilibre_solutes[j-1]/volume)- ln(10)*a_debye*sqr(charges_solutes_p0[j-1])*sqrt(force_ionique)/ (1+b_debye*rayons_solutes_p0[j-1]*sqrt(force_ionique))); enthalpie_libre:=enthalpie_libre+ nombre_moles_equilibre_solutes[j-1]*potentiels_chimiques_solutes[j-1]; end; setlength(nombre_moles_equilibre_solutes_p0,nombre_solutes_p0); setlength(nombre_moles_equilibre_precipites_p0,nombre_precipites_p0); for i:=1 to nombre_solutes_p0 do nombre_moles_equilibre_solutes_p0[i-1]:= nombre_moles_equilibre_solutes[i-1]; for i:=1 to nombre_precipites_p0 do nombre_moles_equilibre_precipites_p0[i-1]:= nombre_moles_equilibre_precipites[i-1]; setlength(nombre_moles_equilibre_solutes,nombre_solutes); setlength(activites_solutes,nombre_solutes); setlength(nombre_moles_equilibre_precipites,nombre_precipites); setlength(potentiels_chimiques_solutes,nombre_solutes); setlength(potentiels_chimiques_precipites,nombre_precipites); for i:=1 to nombre_solutes do nombre_moles_equilibre_solutes[i-1]:=tableau_nombre_initial_moles_solutes[i-1]; for i:=1 to nombre_solutes_p0 do nombre_moles_equilibre_solutes[ correspondance_solutes[i-1]-1]:= nombre_moles_equilibre_solutes_p0[i-1]; for i:=1 to nombre_precipites do nombre_moles_equilibre_precipites[i-1]:=tableau_nombre_initial_moles_precipites[i-1]; for i:=1 to nombre_precipites_p0 do nombre_moles_equilibre_precipites[ correspondance_precipites[i-1]-1]:= nombre_moles_equilibre_precipites_p0[i-1]; force_ionique:=0; for i:=1 to nombre_solutes do force_ionique:=force_ionique+0.5*sqr(charges_solutes_0[i-1])* nombre_moles_equilibre_solutes[i-1]/volume; enthalpie_libre:=nombre_moles_equilibre_solvant*potentiel_chimique_solvant; if nombre_precipites>0 then for i:=1 to nombre_precipites do if nombre_moles_equilibre_precipites[i-1]>0 then enthalpie_libre:=enthalpie_libre+ nombre_moles_equilibre_precipites[i-1]*potentiels_chimiques_precipites[i-1]; if nombre_solutes>0 then for j:=1 to nombre_solutes do if nombre_moles_equilibre_solutes[j-1]>0 then begin potentiels_chimiques_solutes[j-1]:= potentiels_chimiques_standards_solutes[j-1]+ constante_gaz_parfaits*temperature*( ln(nombre_moles_equilibre_solutes[j-1]/volume)- ln(10)*a_debye*sqr(charges_solutes_0[j-1])*sqrt(force_ionique)/ (1+b_debye*rayons_solutes_0[j-1]*sqrt(force_ionique))); activites_solutes[j-1]:=exp( ln(nombre_moles_equilibre_solutes[j-1]/volume)- ln(10)*a_debye*sqr(charges_solutes_0[j-1])*sqrt(force_ionique)/ (1+b_debye*rayons_solutes[j-1]*sqrt(force_ionique))); enthalpie_libre:=enthalpie_libre+ nombre_moles_equilibre_solutes[j-1]*potentiels_chimiques_solutes[j-1]; end else activites_solutes[j-1]:=0; end; {du cas ou on utilise Debye et Huckel} finalize(potentiels_chimiques_precipites); finalize(potentiels_chimiques_solutes); finalize(mat); finalize(delta_ln_solutes); finalize(delta_precipites); finalize(delt); finalize(delt_old); finalize(t_n_a); finalize(a); finalize(aa); finalize(coeff_stoechio); finalize(b); finalize(bb); finalize(potentiel_standard); finalize(deltarg0); finalize(noms_1); finalize(f_b_1); finalize(reactions); finalize(equations_conservation); finalize(equations_avancements); finalize( t_n_a_p_e_solvant); finalize(t_n_a_p_e_solutes); finalize(t_n_a_p_e_precipites); finalize(moles_initiales_atomes_0); finalize(correspondance_atomes); finalize(correspondance_solutes); finalize(correspondance_precipites); finalize(atomes_de_concentration_nulle); finalize(solutes_de_concentration_bloquee); finalize(precipites_de_concentration_bloquee); finalize(t_n_a_p_e_solvant_p0); finalize(t_n_a_p_e_solutes_p0); finalize(t_n_a_p_e_precipites_p0); finalize(tableau_nombre_initial_moles_solutes_p0); finalize(tableau_nombre_initial_moles_precipites_p0); finalize(noms_solutes_p0); finalize(potentiels_chimiques_standards_solutes_p0); finalize(potentiels_chimiques_standards_precipites_p0); finalize(noms_precipites_p0); finalize(moles_initiales_atomes_0_p0); finalize(reactions_bloquees); finalize(charges_solutes_p0); finalize(rayons_solutes_p0); finalize(nombre_moles_equilibre_solutes_p0); finalize(nombre_moles_equilibre_precipites_p0); end; function calcule_equilibre_solution_aqueuse_avec_precipites(nombre_solutes,nombre_precipites,nombre_type_atomes:integer; nombre_initial_moles_solvant:float; tableau_nombre_initial_moles_solutes,tableau_nombre_initial_moles_precipites:_tableau_nombres_atomes; t_n_a_p_e_solvant:tableaureel; t_n_a_p_e_solutes,t_n_a_p_e_precipites:matricereelle; nom_solvant:string; noms_solutes,noms_precipites:tableaustring; var nombre_moles_equilibre_solvant:float; var nombre_moles_equilibre_solutes,nombre_moles_equilibre_precipites, activites_solutes: _nombres_moles; potentiel_chimique_standard_solvant:float; potentiels_chimiques_standards_solutes,potentiels_chimiques_standards_precipites, rayons_solutes:_nombres_moles; volume,temperature,maxresiduconservationrelatif, maxresiduactionmasserelatif:float;max_iter:integer; var iter:integer; var enthalpie_libre:float; debye:boolean):boolean; var i,j,k,iii,jjj,kkk,nombre_precipites_actuel,iter_p,lili,jiji:integer; present:_tableau_presents; quotients_reactions:array of float; retenue1,retenue2,tentative,tous_positifs,une_solution_trouvee,quotient_ok:boolean; nombre_moles_equilibre_solvant_p,plusgrandelement:float; nombre_moles_equilibre_solutes_p,activites_solutes_p, nombre_moles_equilibre_precipites_p: _nombres_moles; enthalpie_libre_p,enthalpie_libre_provisoire,plusgrandresiduconservationrelatif:float; t_noms_precipites_p:tableaustring; t_n_a_p_e_precipites_p:matricereelle; potentiels_chimiques_standards_precipites_p,tableau_nombre_initial_moles_precipites_p:_nombres_moles; residuconservationrelatif,residuconservation,tata:tableaureel; moles_initiales_atomes_0,nombre_moles_equilibre_precipites_p_p:tableaureel; {modif version 2.5} var solide_exclu:array of boolean; un_des_constituants_est_O2,il_existe_un_solide_exclu,ne_fait_pas_partie_dun_couple_redox:boolean; indice_couple,indice_couple_correspondant:integer; label 9090,8080,7070; {modif version 2.5} begin setlength(moles_initiales_atomes_0,nombre_type_atomes); for i:=1 to nombre_type_atomes do begin moles_initiales_atomes_0[i-1]:= t_n_a_p_e_solvant[i-1]*nombre_initial_moles_solvant; if nombre_solutes>0 then for j:=1 to nombre_solutes do moles_initiales_atomes_0[i-1]:=moles_initiales_atomes_0[i-1]+ t_n_a_p_e_solutes[i-1,j-1]*tableau_nombre_initial_moles_solutes[j-1]; if nombre_precipites>0 then for j:=1 to nombre_precipites do moles_initiales_atomes_0[i-1]:=moles_initiales_atomes_0[i-1]+ t_n_a_p_e_precipites[i-1,j-1]*tableau_nombre_initial_moles_precipites[j-1]; end; {modif version 2.5} if empecher_redox_eau then begin {on regarde si, en l'absence de reaction redox, il y a un solide qui ne pourrait apparaitre que par reaction redox: celui-la ne voit pas son nombre de moles changer et on ne peut faire le test sans precipite} {on cherche les solides a exclure} il_existe_un_solide_exclu:=false; setlength(solide_exclu,nombre_precipites); if nombre_precipites>0 then for j:=1 to nombre_precipites do begin solide_exclu[j-1]:=(empecher_redox_eau and (tableau_nombre_initial_moles_precipites[j-1]>0)); jjj:=Unit2.indice_element_mineral(noms_precipites[j-1]); un_des_constituants_est_O2:=false; for kkk:=1 to unit2.tableau_elements_mineraux[jjj-1].nombre_composants do if unit2.tableau_elements_mineraux[jjj-1].composition[kkk-1].element='O2(aq)' then un_des_constituants_est_O2:=true; solide_exclu[j-1]:=solide_exclu[j-1] and un_des_constituants_est_O2; if solide_exclu[j-1] then il_existe_un_solide_exclu:=true; end; {fin recherche solides a exclure} end; {du cas ou reactions redox interdites} {si les reactions redox sont autorisees et qu'un solide ne peut se former que par reaction redox, on regarde s'il fait partie d'un des couple redox present ds le milieu et si la reactions avec un autre couple redox ne comprenant pas de solide est equilibrable } {modif version 2.5} if not(empecher_redox_eau) then begin {on cherche les solides a exclure} il_existe_un_solide_exclu:=false; setlength(solide_exclu,nombre_precipites); if nombre_precipites>0 then for j:=1 to nombre_precipites do begin solide_exclu[j-1]:=tableau_nombre_initial_moles_precipites[j-1]>0; jjj:=Unit2.indice_element_mineral(noms_precipites[j-1]); un_des_constituants_est_O2:=false; for kkk:=1 to unit2.tableau_elements_mineraux[jjj-1].nombre_composants do if unit2.tableau_elements_mineraux[jjj-1].composition[kkk-1].element='O2(aq)' then un_des_constituants_est_O2:=true; solide_exclu[j-1]:=solide_exclu[j-1] and un_des_constituants_est_O2; if not(solide_exclu[j-1]) then continue; {on verifie s'il fait partie d'un des couples redox} ne_fait_pas_partie_dun_couple_redox:=true; for kkk:=1 to nombre_couples_redox do ne_fait_pas_partie_dun_couple_redox:=ne_fait_pas_partie_dun_couple_redox and not((liste_couples_redox[kkk-1].espece1=noms_precipites[j-1]) or (liste_couples_redox[kkk-1].espece2=noms_precipites[j-1])); if ne_fait_pas_partie_dun_couple_redox then continue; {s'il ne fait partie d'aucun couple, il reste exclu, son nombre de moles ne peut varier; sinon, on va voir si on peut le remplacer par des constituants issus d'une reaction redox} for kkk:=1 to nombre_couples_redox do if ((liste_couples_redox[kkk-1].espece1=noms_precipites[j-1]) or (liste_couples_redox[kkk-1].espece2=noms_precipites[j-1])) then begin indice_couple:=kkk; break; end; indice_couple_correspondant:=0; for kkk:=1 to nombre_couples_redox do begin if kkk=indice_couple then continue; if ( (indice_element_mineral(liste_couples_redox[kkk-1].espece1)>0) or (indice_element_mineral(liste_couples_redox[kkk-1].espece2)>0)) then continue else begin nombre_especes_redox:=6; setlength(noms_especes_redox,nombre_especes_redox); setlength(formules_brutes_redox,nombre_especes_redox); setlength(tableau_moles_initiales_redox,nombre_especes_redox); setlength(potentiels_standards_redox,nombre_especes_redox); noms_especes_redox[0]:='H2O'; noms_especes_redox[1]:='H[+]'; noms_especes_redox[2]:=liste_couples_redox[kkk-1].espece1; noms_especes_redox[3]:=liste_couples_redox[kkk-1].espece2; noms_especes_redox[4]:=liste_couples_redox[indice_couple-1].espece1; noms_especes_redox[5]:=liste_couples_redox[indice_couple-1].espece2; formules_brutes_redox[0]:='H2O'; formules_brutes_redox[1]:='H[+]'; formules_brutes_redox[2]:=liste_couples_redox[kkk-1].formule_brute_espece1; formules_brutes_redox[3]:=liste_couples_redox[kkk-1].formule_brute_espece2; formules_brutes_redox[4]:=liste_couples_redox[indice_couple-1].formule_brute_espece1; formules_brutes_redox[5]:=liste_couples_redox[indice_couple-1].formule_brute_espece2; tableau_moles_initiales_redox[0]:=1; tableau_moles_initiales_redox[1]:=1; tableau_moles_initiales_redox[2]:=1; tableau_moles_initiales_redox[3]:=1; tableau_moles_initiales_redox[4]:=1; tableau_moles_initiales_redox[5]:=1; potentiels_standards_redox[0]:=0; potentiels_standards_redox[1]:=0; potentiels_standards_redox[2]:=0; potentiels_standards_redox[3]:=0; potentiels_standards_redox[4]:=0; potentiels_standards_redox[5]:=0; DonneMatriceCoefficients(formules_brutes_redox,matrice_redox, nombre_especes_redox,nombre_atomes_redox); DetermineReactions(matrice_redox, tableau_moles_initiales_redox, nombre_especes_redox,nombre_atomes_redox, noms_especes_redox,formules_brutes_redox, rang_redox,reac_redox, reactions_redox,equations_conservation_redox,equations_avancements_redox, aaa_redox, b_redox, coeff_stoechio_redox, potentiels_standards_redox, deltarG0_redox,logK_redox, temperature); if reac_redox<>1 then continue; {ca y est, on a trouve un couple accorde} if liste_couples_redox[indice_couple-1].espece1=noms_precipites[j-1] then begin nombre_initial_moles_solvant:=nombre_initial_moles_solvant- coeff_stoechio_redox[0,0] *tableau_nombre_initial_moles_precipites[j-1]/coeff_stoechio_redox[0,4]; for iii:=1 to nombre_solutes do begin if noms_solutes[iii-1]=liste_couples_redox[indice_couple-1].espece2 then tableau_nombre_initial_moles_solutes[iii-1]:=tableau_nombre_initial_moles_solutes[iii-1] -coeff_stoechio_redox[0,5] *tableau_nombre_initial_moles_precipites[j-1]/coeff_stoechio_redox[0,4]; if noms_solutes[iii-1]=liste_couples_redox[kkk-1].espece1 then tableau_nombre_initial_moles_solutes[iii-1]:=tableau_nombre_initial_moles_solutes[iii-1] -coeff_stoechio_redox[0,2] *tableau_nombre_initial_moles_precipites[j-1]/coeff_stoechio_redox[0,4]; if noms_solutes[iii-1]=liste_couples_redox[kkk-1].espece2 then tableau_nombre_initial_moles_solutes[iii-1]:=tableau_nombre_initial_moles_solutes[iii-1] -coeff_stoechio_redox[0,3] *tableau_nombre_initial_moles_precipites[j-1]/coeff_stoechio_redox[0,4]; if 'H[+]'=noms_solutes[iii-1] then tableau_nombre_initial_moles_solutes[iii-1]:=tableau_nombre_initial_moles_solutes[iii-1] -coeff_stoechio_redox[0,1] *tableau_nombre_initial_moles_precipites[j-1]/coeff_stoechio_redox[0,4]; end; end; if liste_couples_redox[indice_couple-1].espece2=noms_precipites[j-1] then begin nombre_initial_moles_solvant:=nombre_initial_moles_solvant- coeff_stoechio_redox[0,0] *tableau_nombre_initial_moles_precipites[j-1]/coeff_stoechio_redox[0,5]; for iii:=1 to nombre_solutes do begin if noms_solutes[iii-1]=liste_couples_redox[indice_couple-1].espece1 then tableau_nombre_initial_moles_solutes[iii-1]:=tableau_nombre_initial_moles_solutes[iii-1] -coeff_stoechio_redox[0,4] *tableau_nombre_initial_moles_precipites[j-1]/coeff_stoechio_redox[0,5]; if noms_solutes[iii-1]=liste_couples_redox[kkk-1].espece1 then tableau_nombre_initial_moles_solutes[iii-1]:=tableau_nombre_initial_moles_solutes[iii-1] -coeff_stoechio_redox[0,2] *tableau_nombre_initial_moles_precipites[j-1]/coeff_stoechio_redox[0,5]; if noms_solutes[iii-1]=liste_couples_redox[kkk-1].espece2 then tableau_nombre_initial_moles_solutes[iii-1]:=tableau_nombre_initial_moles_solutes[iii-1] -coeff_stoechio_redox[0,3] *tableau_nombre_initial_moles_precipites[j-1]/coeff_stoechio_redox[0,5]; if 'H[+]'=noms_solutes[iii-1] then tableau_nombre_initial_moles_solutes[iii-1]:=tableau_nombre_initial_moles_solutes[iii-1] -coeff_stoechio_redox[0,1] *tableau_nombre_initial_moles_precipites[j-1]/coeff_stoechio_redox[0,5]; end; end; tableau_nombre_initial_moles_precipites[j-1]:=0; indice_couple_correspondant:=kkk; solide_exclu[j-1]:=false; break; end; end; if solide_exclu[j-1] then il_existe_un_solide_exclu:=true; end; end; {fin recherche solides a exclure} {si il y a des precipites non exclus presents initialement, on les remplace par leurs elements constitutifs} if nombre_precipites>0 then for j:=1 to nombre_precipites do if ((tableau_nombre_initial_moles_precipites[j-1]>0) and not(solide_exclu[j-1])) then begin jjj:=Unit2.indice_element_mineral(noms_precipites[j-1]); for kkk:=1 to unit2.tableau_elements_mineraux[jjj-1].nombre_composants do begin if unit2.tableau_elements_mineraux[jjj-1].composition[kkk-1].element='H2O' then nombre_initial_moles_solvant:=nombre_initial_moles_solvant+ unit2.tableau_elements_mineraux[jjj-1].composition[kkk-1].coefficient* tableau_nombre_initial_moles_precipites[j-1] else begin i:=0; for iii:=1 to nombre_solutes do if noms_solutes[iii-1]=unit2.tableau_elements_mineraux[jjj-1].composition[kkk-1].element then i:=iii; if i=0 then begin application.messagebox(pchar('Probleme pour '+noms_precipites[j-1]+ ': un des éléments constitutifs n''est pas un soluté !'),'Attention !',mb_ok); exit; end; tableau_nombre_initial_moles_solutes[i-1]:=tableau_nombre_initial_moles_solutes[i-1]+ unit2.tableau_elements_mineraux[jjj-1].composition[kkk-1].coefficient* tableau_nombre_initial_moles_precipites[j-1]; end; end; tableau_nombre_initial_moles_precipites[j-1]:=0; end; {modif version 2.5} if il_existe_un_solide_exclu then begin enthalpie_libre :=1.1e4932 ; goto 9090; end; {modif version 2.5} {1er calcul sans precipites} une_solution_trouvee:=calcule_equilibre_phase_aqueuse_annexe(nombre_solutes,0,nombre_type_atomes, nombre_initial_moles_solvant,tableau_nombre_initial_moles_solutes,tableau_nombre_initial_moles_precipites, moles_initiales_atomes_0, t_n_a_p_e_solvant, t_n_a_p_e_solutes,t_n_a_p_e_precipites, nom_solvant,noms_solutes,noms_precipites, nombre_moles_equilibre_solvant, nombre_moles_equilibre_solutes,nombre_moles_equilibre_precipites,activites_solutes, potentiel_chimique_standard_solvant, potentiels_chimiques_standards_solutes,potentiels_chimiques_standards_precipites, rayons_solutes_0, volume,temperature,maxresiduconservationrelatif, maxresiduactionmasserelatif,max_iter,iter,enthalpie_libre,debye); {modif version 2.5} if not(une_solution_trouvee) then enthalpie_libre :=1.1e4932; {modif version 2.5} if une_solution_trouvee then begin tous_positifs:=true; for iii:=1 to nombre_solutes do tous_positifs:= (tous_positifs and (nombre_moles_equilibre_solutes[iii-1]>=0)); une_solution_trouvee:=une_solution_trouvee and tous_positifs; if nombre_precipites=0 then begin finalize(moles_initiales_atomes_0); result:= une_solution_trouvee; exit; end; quotient_ok:=true; {on verifie si, dans le cas ou il pourrait y avoir des precipites, les quotients de reaction sont tels que ces precipites n'existent effectivement pas} if nombre_precipites>0 then begin {calcul des quotients de reaction} setlength(quotients_reactions,unit1.reac_0); for iii:=1 to unit1.reac_0 do begin quotients_reactions[iii-1]:=0; for jjj:=1 to unit1.nombre_especes_0 do if unit1.liste_genre_espece[jjj-1]=solute then if activites_solutes[unit1.indices_solutes[jjj-1]-1]>0 then quotients_reactions[iii-1]:=quotients_reactions[iii-1]+unit1.coeff_stoechio_0[iii-1,jjj-1]* ln(activites_solutes[unit1.indices_solutes[jjj-1]-1])/ln(10); end; {du calcul des quotients de reactions} for iii:=1 to nombre_precipites do for jjj:=1 to unit1.reac_0 do if unit1.coeff_stoechio_0[jjj-1,unit1.indices_precipites_inverses[iii-1]-1]<>0 then begin quotient_ok:=quotient_ok and ( ((unit1.coeff_stoechio_0[jjj-1,unit1.indices_precipites_inverses[iii-1]-1]>0) and (quotients_reactions[jjj-1]>unit1.logk_0[jjj-1])) or ((unit1.coeff_stoechio_0[jjj-1,unit1.indices_precipites_inverses[iii-1]-1]<0) and (quotients_reactions[jjj-1]<unit1.logk_0[jjj-1])) ); end; {de la boucle des precipites} if quotient_ok then begin setlength(nombre_moles_equilibre_precipites,nombre_precipites); for iii:=1 to nombre_precipites do nombre_moles_equilibre_precipites[iii-1]:=0; end; une_solution_trouvee:=une_solution_trouvee and quotient_ok; end; {du cas ou nombre_precipites>0} end; {du cas ou une_solution_trouvee} if not(quotient_ok) then une_solution_trouvee:=false; {modif version 2.5} 9090: {modif version 2.5} setlength(nombre_moles_equilibre_precipites_p_p,nombre_precipites); setlength(residuconservation,nombre_type_atomes); setlength(residuconservationrelatif,nombre_type_atomes); setlength(present,nombre_precipites); setlength(nombre_moles_equilibre_solutes_p,nombre_solutes); setlength(nombre_moles_equilibre_solutes,nombre_solutes); setlength(activites_solutes_p,nombre_solutes); setlength(activites_solutes,nombre_solutes); setlength(nombre_moles_equilibre_precipites_p,nombre_precipites); setlength(tableau_nombre_initial_moles_precipites_p,nombre_precipites); setlength(t_n_a_p_e_precipites_p,nombre_type_atomes,nombre_precipites); setlength(potentiels_chimiques_standards_precipites_p,nombre_precipites); setlength(t_noms_precipites_p,nombre_precipites); setlength(nombre_moles_equilibre_precipites,nombre_precipites); for i:=1 to nombre_precipites do {modif version 2.5} if not(solide_exclu[i-1]) then nombre_moles_equilibre_precipites[i-1]:=0; {modif version 2.5} enthalpie_libre_provisoire:=enthalpie_libre; for i:=1 to nombre_precipites do present[i-1]:=false; {on entame la boucle des essais avec les divers precipites presents ou non Par exemple avec 3 precipites, on va essayer successivement: 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1} for i:=2 to puissance_entiere(2,nombre_precipites) do begin retenue1:=(present[0]=true); present[0]:=not(present[0]); if nombre_precipites>1 then for k:=2 to nombre_precipites do begin retenue2:=(present[k-1]=true) and retenue1; if retenue1 then present[k-1]:=not(present[k-1]); retenue1:=retenue2; end; {modif version 2.5} if nombre_precipites>1 then for k:=1 to nombre_precipites do if ((not(present[k-1])) and solide_exclu[k-1]) then goto 8080; goto 7070; 8080: continue; 7070: {modif version 2.5} { a ce stade, les precipites presents sont connus: on fait le calcul} nombre_precipites_actuel:=0; for kkk:=1 to nombre_precipites do if present[kkk-1] then inc(nombre_precipites_actuel); {on vient de compter le nbe actuel de precipites} jjj:=0; {on va reaffecter les t_n_a_p_e_precipites et les potentiels standards pour ne tenir compte que des precipites presents} for kkk:=1 to nombre_precipites do if present[kkk-1] then begin inc(jjj); for iii:=1 to nombre_type_atomes do t_n_a_p_e_precipites_p[iii-1,jjj-1]:=t_n_a_p_e_precipites[iii-1,kkk-1]; potentiels_chimiques_standards_precipites_p[jjj-1]:=potentiels_chimiques_standards_precipites[kkk-1]; t_noms_precipites_p[jjj-1]:=noms_precipites[kkk-1]; tableau_nombre_initial_moles_precipites_p[jjj-1]:=tableau_nombre_initial_moles_precipites[kkk-1]; end; {cest fait; maintenant on peut appeler le calcul ds nbes de moles} tentative:=calcule_equilibre_phase_aqueuse_annexe(nombre_solutes,nombre_precipites_actuel,nombre_type_atomes, nombre_initial_moles_solvant,tableau_nombre_initial_moles_solutes,tableau_nombre_initial_moles_precipites_p, moles_initiales_atomes_0, t_n_a_p_e_solvant, t_n_a_p_e_solutes,t_n_a_p_e_precipites_p, nom_solvant,noms_solutes,t_noms_precipites_p, nombre_moles_equilibre_solvant_p, nombre_moles_equilibre_solutes_p,nombre_moles_equilibre_precipites_p, activites_solutes_p, potentiel_chimique_standard_solvant, potentiels_chimiques_standards_solutes,potentiels_chimiques_standards_precipites_p, rayons_solutes_0, volume,temperature,maxresiduconservationrelatif, maxresiduactionmasserelatif,max_iter,iter_p,enthalpie_libre_p,debye); if tentative then begin {on teste le resultat} tous_positifs:=true; for iii:=1 to nombre_precipites_actuel do tous_positifs:= (tous_positifs and (nombre_moles_equilibre_precipites_p[iii-1]>=0)); for iii:=1 to nombre_solutes do tous_positifs:= (tous_positifs and (nombre_moles_equilibre_solutes_p[iii-1]>=0)); if tous_positifs then begin quotient_ok:=true; {on verifie si, dans le cas ou il pourrait y avoir d'autres precipites, les quotients de reaction sont tels que ces precipites n'existent effectivement pas; auquel cas c'est termine} if nombre_precipites>nombre_precipites_actuel then begin {calcul des quotients de reaction} setlength(quotients_reactions,unit1.reac_0); for iii:=1 to unit1.reac_0 do begin quotients_reactions[iii-1]:=0; for jjj:=1 to unit1.nombre_especes_0 do if unit1.liste_genre_espece[jjj-1]=solute then if activites_solutes_p[unit1.indices_solutes[jjj-1]-1]>0 then quotients_reactions[iii-1]:=quotients_reactions[iii-1]+unit1.coeff_stoechio_0[iii-1,jjj-1]* ln(activites_solutes_p[unit1.indices_solutes[jjj-1]-1])/ln(10); end; {du calcul des quotients de reactions} for iii:=1 to nombre_precipites do if not(present[iii-1]) then for jjj:=1 to unit1.reac_0 do if unit1.coeff_stoechio_0[jjj-1,unit1.indices_precipites_inverses[iii-1]-1]<>0 then begin quotient_ok:=quotient_ok and ( ((unit1.coeff_stoechio_0[jjj-1,unit1.indices_precipites_inverses[iii-1]-1]>0) and (quotients_reactions[jjj-1]>unit1.logk_0[jjj-1])) or ((unit1.coeff_stoechio_0[jjj-1,unit1.indices_precipites_inverses[iii-1]-1]<0) and (quotients_reactions[jjj-1]<unit1.logk_0[jjj-1])) ); end; {de la boucle des precipites} end {du cas ou nombre_precipites>0} else quotient_ok:=true; end; {de tolus positifs} end; {de tentative} jjj:=0; for kkk:=1 to nombre_precipites do begin if present[kkk-1] then begin inc(jjj); nombre_moles_equilibre_precipites_p_p[kkk-1]:=nombre_moles_equilibre_precipites_p[jjj-1]; end else nombre_moles_equilibre_precipites_p_p[kkk-1]:=0; end; if (tentative and tous_positifs and quotient_ok and ((enthalpie_libre_p<enthalpie_libre) or not (une_solution_trouvee))) then begin {on a trouve un resultat meilleur} une_solution_trouvee:=true; enthalpie_libre:=enthalpie_libre_p; iter:=iter_p; for iii:=1 to nombre_solutes do nombre_moles_equilibre_solutes[iii-1]:= nombre_moles_equilibre_solutes_p[iii-1]; for iii:=1 to nombre_solutes do activites_solutes[iii-1]:= activites_solutes_p[iii-1]; nombre_moles_equilibre_solvant:=nombre_moles_equilibre_solvant_p; jjj:=0; for kkk:=1 to nombre_precipites do begin if present[kkk-1] then begin inc(jjj); nombre_moles_equilibre_precipites[kkk-1]:=nombre_moles_equilibre_precipites_p[jjj-1]; end else nombre_moles_equilibre_precipites[kkk-1]:=0; end; {resultat affecte} end; {du cas ou le resultat est meilleur} end; finalize(present); finalize(nombre_moles_equilibre_solutes_p); finalize(activites_solutes_p); finalize(nombre_moles_equilibre_precipites_p); finalize(t_n_a_p_e_precipites_p); finalize(potentiels_chimiques_standards_precipites_p); finalize(t_noms_precipites_p); finalize(tableau_nombre_initial_moles_precipites_p); finalize(moles_initiales_atomes_0); finalize(nombre_moles_equilibre_precipites_p_p); result:=une_solution_trouvee; end; begin pluspetiteconcentrationsignificative:=1e-20; pluspetitlnconcentrationsignificatif:=1e-20; end. ������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/copying.fpc�������������������������������������������������������������������������0000750�0001750�0001750�00000002352�13147330070�016217� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������LGPL-2.1-FPC This is the file COPYING.FPC, it applies to the Free Pascal Run-Time Library (RTL) and packages (packages) distributed by members of the Free Pascal Development Team. The source code of the Free Pascal Runtime Libraries and packages are distributed under the Library GNU General Public License (see the file COPYING) with the following modification: As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. If you didn't receive a copy of the file COPYING, contact: Free Software Foundation 675 Mass Ave Cambridge, MA 02139 USA ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/charencstreams.pas������������������������������������������������������������������0000750�0001750�0001750�00000021777�13147330070�017600� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit charencstreams; {$MODE objfpc}{$H+} interface uses Classes, SysUtils, LCLVersion,LazUTF8; type TUniStreamTypes = (ufUtf8, ufANSI, ufUtf16be, ufUtf16le, ufUtf32be, ufUtf32le); TUArr = array of DWord; const UniStreamTypesStrings: array[0..5] of ShortString = ('UTF8', 'ANSI', 'UTF16BE', 'UTF16LE', 'UTF32BE', 'UTF32LE'); UTF8BOM: string = #$EF#$BB#$BF; UTF16BEBOM: string = #$FE#$FF; UTF16LEBOM: string = #$FF#$FE; UTF32BEBOM: string = #$00#$00#$FE#$FF; UTF32LEBOM: string = #$FF#$FE#$00#$00; type { TUniStream } TUniStream = class(TMemoryStream) private fForceType: Boolean; fHasBOM: Boolean; fHaveType: Boolean; fUniStreamType: TUniStreamTypes; function GetOffset: int64; function GetUniStreamType: TUniStreamTypes; procedure SetUniStreamType(const AValue: TUniStreamTypes); protected procedure CheckFileType; function GetUTF8Text: AnsiString; virtual; procedure SetUTF8Text(AString: AnsiString); virtual; public constructor Create; virtual; destructor Destroy; override; procedure Reset; property HasBOM: Boolean read fHasBOM write fHasBOM; property UniStreamType: TUniStreamTypes read GetUniStreamType write SetUniStreamType; property UTF8Text: AnsiString read GetUTF8Text write SetUTF8Text; property ForceType: Boolean read fForceType write fForceType; property HaveType: Boolean read fHaveType write fHaveType; property Offset: int64 read GetOffset; end; { TCharEncStream } TCharEncStream = class(TUniStream) private fANSIEnc: string; function GetANSIEnc: string; procedure SetANSIEnc(const AValue: string); protected function GetUTF8Text: AnsiString; override; procedure SetUTF8Text(AString: AnsiString); override; public constructor Create; override; destructor Destroy; override; property ANSIEnc: string read GetANSIEnc write SetANSIEnc; end; procedure GetSupportedANSIEncodings(List: TStrings); procedure GetSupportedUniStreamTypes(List: TStrings); function GetSystemEncoding: string; implementation uses LCLProc, LConvEncoding, Math; procedure GetSupportedANSIEncodings(List: TStrings); begin LConvEncoding.GetSupportedEncodings(List); end; procedure GetSupportedUniStreamTypes(List: TStrings); var i:integer; begin for i := 0 to High(UniStreamTypesStrings) do List.Add(UniStreamTypesStrings[i]); end; function GetSystemEncoding: string; begin {$if (lcl_major=0) and (lcl_minor=9) and (lcl_release<27)} Result := LConvEncoding.GetSystemEncoding; {$else} Result := LConvEncoding.GetDefaultTextEncoding; {$endif} if Result='ansi' then Result:='ANSI'; if Result='utf8' then Result:='UTF-8'; end; procedure WideSwapEndian(PWC: PWideChar;size:integer); begin while size >= sizeof(widechar) do begin PWC^ := WideChar(SwapEndian(Word(PWC^))); inc(PWC); dec(size,sizeof(widechar)); end; end; procedure UASwapEndian(var UC: TUArr); var i: integer; begin for i := 0 to High(UC) do UC[i] := SwapEndian(DWord(UC[i])); end; { TUniStream } function TUniStream.GetUniStreamType: TUniStreamTypes; begin if not fHaveType then CheckFileType; Result := fUniStreamType; end; procedure TUniStream.CheckFileType; var ASt: string[5]; Str: AnsiString; Posi, rd: integer; begin Ast := #0#0#0#0#0; if GetSystemEncoding = EncodingUTF8 then fUniStreamType := ufUTF8 else fUniStreamType := ufANSI; fHasBOM := False; Position := 0; rd := Read(ASt[1], 4); begin if (rd > 2) and (Copy(Ast, 1, 3) = UTF8BOM) then begin fUniStreamType := ufUtf8; fHasBOM := True; end else if (rd > 3) and (Copy(Ast, 1, 4) = UTF32LEBOM) then begin fUniStreamType := ufUtf32le; fHasBOM := True; end else if (rd > 3) and (Copy(Ast, 1, 4) = UTF32BEBOM) then begin fUniStreamType := ufUtf32be; fHasBOM := True; end else if (rd > 1) and (Copy(Ast, 1, 2) = UTF16LEBOM) then begin fUniStreamType := ufUtf16le; fHasBOM := True; end else if (rd > 1) and (Copy(Ast, 1, 2) = UTF16BEBOM) then begin fUniStreamType := ufUtf16be; fHasBOM := True; end; Position := 0; fHaveType := True; end; if not fHasBom then begin SetLength(Str, Min(2048, Size)); if Length(Str) = 0 then exit; Read(Str[1], Length(Str)); Posi := Pos(#0#0, Str); if Posi > 0 then begin if odd(Posi div 2) then fUniStreamType := ufUtf32le else fUniStreamType := ufUtf32be; end else begin Posi := Pos(#0, Str); if Posi > 0 then if odd(Posi) then fUniStreamType := ufUtf16be else fUniStreamType := ufUtf16le; end; end; end; function TUniStream.GetOffset: int64; begin if not fHaveType then CheckFileType; if not HasBom then begin Result := 0; exit; end; case fUniStreamType of ufUtf8: Result := 3; ufUtf16be, ufUtf16le: Result := 2; ufUtf32be, ufUtf32le: Result := 4; end; end; function TUniStream.GetUTF8Text: AnsiString; var PWC: PWideChar; PC: PChar; aPtr: PChar; UArr: TUArr; begin if (not fHaveType) and (not fForceType) then CheckFileType; Position := 0; case fUniStreamtype of ufANSI: begin PC := Memory; Result := Copy(PC, 1, (Size)); end; ufUtf8: begin PC := Memory; if fHasBom then Result := Copy(PC, 4, (Size - 3)) else Result := Copy(PC, 1, (Size)); end; ufUtf16be, ufUtf16le: begin PWC := Memory; if fUniStreamType = ufUtf16be then WideSwapEndian(PWC,size); if fHasBom then Result := UTF16ToUTF8(Copy(PWC, 2, (Size - 1) div 2)) else Result := UTF16ToUTF8(Copy(PWC, 1, (Size) div 2)) end; ufUtf32be, ufUtf32le: begin aPtr := Memory; if fHasBom then begin inc(aPtr, 4); SetLength(UArr, ((Size - 4) div 4)); Move(aPtr^, UArr[0], Size - 4); end else begin SetLength(UArr, ((Size) div 4)); Move(aPtr^, UArr[0], Size); end; if fUniStreamType = ufUtf32be then UASwapEndian(UArr); Result := UTF16ToUTF8(UCS4StringToWideString(UCS4String(UArr))); SetLength(UArr, 0); end; end; end; procedure TUniStream.SetUniStreamType(const AValue: TUniStreamTypes); begin fUniStreamType := AValue; fHaveType := true; if AValue = ufANSI then fHasBOM := false; end; procedure TUniStream.SetUTF8Text(AString: AnsiString); var WS: WideString; UArr: TUArr; begin Position := 0; case fUniStreamType of ufANSI: begin Size := Length(AString); Write(PChar(AString)^, Length(AString)); end; ufUtf8: begin Size := Length(AString) + GetOffset; if fHasBom then Write(PChar(UTF8BOM)^, GetOffset); if Size > GetOffset then Write(PChar(AString)^, Length(AString)); end; ufUtf16be, ufUtf16le: begin WS := UTF8ToUTF16(AString); Size := Length(WS) * 2 + GetOffset; if fHasBom then if fUniStreamType = ufUtf16be then Write(PChar(UTF16BEBOM)^, GetOffset) else Write(PChar(UTF16LEBOM)^, GetOffset); if Size > GetOffset then begin if fUniStreamType = ufUtf16be then WideSwapEndian(@WS[1],size); Write(PWideChar(WS)^, Length(WS) * 2); end; end; ufUtf32be, ufUtf32le: begin UArr := TUArr(WideStringToUCS4String(UTF8ToUTF16(AString))); Size := (Length(UArr) - 1) * 4 + GetOffset; if fHasBom then if fUniStreamType = ufUtf32be then Write(PChar(UTF32BEBOM)^, GetOffset) else Write(PChar(UTF32LEBOM)^, GetOffset); if Size > GetOffset then begin if fUniStreamType = ufUtf32be then UASwapEndian(UArr); Write(UArr[0], (Length(UArr) - 1) * 4); end; SetLength(UArr, 0); end; end; end; constructor TUniStream.Create; begin Reset; end; destructor TUniStream.Destroy; begin inherited Destroy; end; procedure TUniStream.Reset; begin fHaveType := false; fHasBOM := true; fForceType := false; if GetSystemEncoding = EncodingUTF8 then fUniStreamType := ufUTF8 else fUniStreamType := ufANSI; Position := 0; end; { TCharEncStream } function TCharEncStream.GetANSIEnc: string; begin Result := fANSIEnc; end; procedure TCharEncStream.SetANSIEnc(const AValue: string); begin fANSIEnc := AValue; end; function TCharEncStream.GetUTF8Text: AnsiString; begin Result := inherited GetUTF8Text; if (UniStreamType = ufANSI) or ((UniStreamType = ufUtf8) and (not HasBom)) then begin if not ForceType then ANSIEnc := LConvencoding.GuessEncoding(Result); if ANSIEnc <> EncodingUTF8 then begin UniStreamType := ufANSI; Result := ConvertEncoding(Result, ANSIEnc, EncodingUTF8); end; end; end; procedure TCharEncStream.SetUTF8Text(AString: AnsiString); begin if UniStreamType = ufANSI then begin AString := ConvertEncoding(AString, EncodingUTF8, ANSIEnc); HasBom := false; HaveType := True; end; inherited SetUTF8Text(AString); end; constructor TCharEncStream.Create; begin inherited Create; end; destructor TCharEncStream.Destroy; begin inherited Destroy; end; end. �dozzaqueux-3.51/unitcalculateurfonction.pas���������������������������������������������������������0000750�0001750�0001750�00000011531�13147330070�021525� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit UnitCalculateurFonction; {$mode objfpc}{$H+} interface uses Classes, SysUtils,Symbolic,Math; type tableauchaine=array of string; ECalculateurFonctionError = class(Exception); ECalculateurFonctionSyntaxError = class(ECalculateurFonctionError); ECalculateurFonctionListeVariablesError = class(ECalculateurFonctionError); TCalculateurFonction=class private _Expression:texpression; _ListeVariables:TStringList; _ListeValeursVariables:array of arbfloat; _Evaluator:TEvaluator; function CalcValue: float; function LitListeVariables:TStringList; function LitExpression:TExpression; public CONSTRUCTOR Create(Infix:String); overload; CONSTRUCTOR Create(Infix:String; ListeVariablesAutorisees:TStringList); overload; CONSTRUCTOR Create(Infix:String; ListeVariablesAutorisees:TableauChaine; NombreVariables:integer); overload; destructor Destroy; procedure SetVar(const VarName: string; const Value: float); function GetVariable(const VarName: string): arbfloat; property Variable[const VarName: string]: arbfloat read GetVariable write SetVar; published property Value: arbfloat read CalcValue stored false; property ListeVariables: tstringlist read LitListeVariables stored false; property Expression: texpression read LitExpression stored false; { property Expression: string read FExpression write SetExpression;} end; implementation CONSTRUCTOR TCalculateurFonction.Create(Infix:String); begin if _Evaluator<>nil then _Evaluator.Destroy; if _expression<>nil then _expression.Destroy; SetLength(_ListeValeursVariables,0); try _Expression:=texpression.Create(infix); except raise ECalculateurFonctionSyntaxError.Create('Syntaxe de fonction incorrecte'); exit; end; _ListeVariables:=_Expression.SymbolicValueNames; SetLength(_ListeValeursVariables,_ListeVariables.Count); _Evaluator:=TEvaluator.Create(_ListeVariables,_Expression); end; CONSTRUCTOR TCalculateurFonction.Create(Infix:String; ListeVariablesAutorisees:TableauChaine; NombreVariables:integer); overload; var i:integer; LVA:TStringlist; begin if _Evaluator<>nil then _Evaluator.Destroy; if _expression<>nil then _expression.Destroy; SetLength(_ListeValeursVariables,0); try _Expression:=texpression.Create(infix); except raise ECalculateurFonctionSyntaxError.Create('Syntaxe de fonction incorrecte'); exit; end; _ListeVariables:=_Expression.SymbolicValueNames; LVA:=TStringlist.Create; for i:=1 to NombreVariables do LVA.Add(ListeVariablesAutorisees[i-1]); for i:=1 to _ListeVariables.Count do if LVA.IndexOf(_ListeVariables[i-1])=-1 then begin LVA.Destroy; raise ECalculateurFonctionListeVariablesError.Create('Variables non autorisées'); exit; end; SetLength(_ListeValeursVariables,_ListeVariables.Count); _Evaluator:=TEvaluator.Create(_ListeVariables,_Expression); end; CONSTRUCTOR TCalculateurFonction.Create(Infix:String; ListeVariablesAutorisees:TStringList); overload; var i:integer; begin if _Evaluator<>nil then _Evaluator.Destroy; if _expression<>nil then _expression.Destroy; SetLength(_ListeValeursVariables,0); try _Expression:=texpression.Create(infix); except raise ECalculateurFonctionSyntaxError.Create('Syntaxe de fonction incorrecte'); exit; end; _ListeVariables:=_Expression.SymbolicValueNames; for i:=1 to _ListeVariables.Count do if ListeVariablesAutorisees.IndexOf(_ListeVariables[i-1])=-1 then begin raise ECalculateurFonctionListeVariablesError.Create('Variables non autorisées'); exit; end; SetLength(_ListeValeursVariables,_ListeVariables.Count); _Evaluator:=TEvaluator.Create(_ListeVariables,_Expression); end; destructor TCalculateurFonction.Destroy; begin if _Evaluator<>nil then _Evaluator.Destroy; if _Expression<>nil then _Expression.Destroy; inherited destroy; end; procedure TCalculateurFonction.SetVar(const VarName: string; const Value: float); var index:integer; begin index:=_ListeVariables.IndexOf(UpCase(VarName)); if index<>-1 then _ListeValeursVariables[index]:=Value; end; function TCalculateurFonction.GetVariable(const VarName: string): float; var index:integer; begin index:=_ListeVariables.IndexOf(UpCase(VarName)); if index<>-1 then result:=_ListeValeursVariables[index]; end; function TCalculateurFonction.CalcValue: arbfloat; var resultat:arbfloat; begin try resultat:=_Evaluator.Evaluate(_ListeValeursVariables); except result:=NAN; exit; end; result:=resultat; end; function TCalculateurFonction.LitListeVariables:TStringList; begin result:=_ListeVariables; end; function TCalculateurFonction.LitExpression:TExpression; begin result:=_Expression; end; end. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit11.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000002336�13147330070�015705� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit11; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,UChaines,UnitScaleFont; type { Tsaisietitre } Tsaisietitre = class(TForm) BitBtn1: TBitBtn; Edittitre: TEdit; FontDialog1: TFontDialog; Label1: TLabel; SpeedButton1: TSpeedButton; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisietitre: Tsaisietitre; fontetitre:tfont; implementation { Tsaisietitre } procedure Tsaisietitre.SpeedButton1Click(Sender: TObject); begin if fontdialog1.execute then fontetitre:=fontdialog1.Font; end; procedure Tsaisietitre.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsTitreDuGraph; Label1.Caption := rsTitreDuGraph2; SpeedButton1.Caption := rsPolice; BitBtn1.Caption := rsOK; end; procedure Tsaisietitre.FormShow(Sender: TObject); begin //if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit11.lrs} fontetitre:=tfont.Create; end. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit26.lrs��������������������������������������������������������������������������0000750�0001750�0001750�00000011673�13147330070�015734� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm26','FORMDATA',[ 'TPF0'#7'TForm26'#6'Form26'#4'Left'#3#201#2#6'Height'#3#183#1#3'Top'#3#194#0#5 +'Width'#3#129#2#13'ActiveControl'#7#16'Editformulebrute'#11'BorderIcons'#11 +#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6 +#22'Recherche dans la base'#12'ClientHeight'#3#183#1#11'ClientWidth'#3#129#2 +#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2' +'.2.0'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'Anchor' +'SideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3'Top'#2#10#5'Width' +#3'|'#1#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6 +'6Entrez tout ou partie de l''indentifiant ou du synonyme'#10'Font.Color'#7#7 +'clBlack'#10'Font.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#11'P' +'arentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label3'#22'AnchorSideLeft.Co' +'ntrol'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Si' +'de'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#2'('#5'Width'#3'U'#1 +#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6'4 Exemp' +'les: '#195#169'thano'#195#175'que Acide pentanedio'#195#175'que '#10 +'Font.Color'#7#7'clBlack'#10'Font.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6 +'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label2'#22'Anc' +'horSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#7'BitBtn1'#18'A' +'nchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#3#198#0 +#5'Width'#3#210#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'C' +'aption'#6'#Puis cliquez sur l''esp'#195#169'ce choisie:'#11'ParentColor'#8#0 +#0#5'TEdit'#16'Editformulebrute'#22'AnchorSideLeft.Control'#7#5'Owner'#21'An' +'chorSideTop.Control'#7#6'Label3'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'A' +'nchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 +'Left'#2#10#6'Height'#2#28#3'Top'#2'F'#5'Width'#3'm'#2#7'Anchors'#11#5'akTop' +#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2 +#10#19'BorderSpacing.Right'#2#10#8'TabOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn1'#22 +'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#16'Editformu' +'lebrute'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7 +#7'BitBtn2'#4'Left'#2#10#6'Height'#2'P'#3'Top'#2'l'#5'Width'#3#226#1#7'Ancho' +'rs'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#10#17'Borde' +'rSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#7'Caption'#6#8'Chercher'#7 +'Default'#9#10'Glyph.Data'#10#226#1#0#0#222#1#0#0'BM'#222#1#0#0#0#0#0#0'v'#0 +#0#0'('#0#0#0'$'#0#0#0#18#0#0#0#1#0#4#0#0#0#0#0'h'#1#0#0#18#11#0#0#18#11#0#0 +#16#0#0#0#16#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0#128#0 +#128#0#128#128#0#0#192#192#192#0#128#128#128#0#0#0#255#0#0#255#0#0#0#255#255 +#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0'333333333333333333'#0#0'3' +'33333333333'#243'33333'#0#0'334C33333338'#143'33333'#0#0'33B$3333333'#131'8' +#243'3333'#0#0'34""C33333833'#143'3333'#0#0'3B""$33333'#131'338'#243'333'#0#0 +'4"*""C3338'#243'8'#243'3'#143'333'#0#0'2"'#163#162'"C3338'#243#131#143'3' +#143'333'#0#0':*3:"$3338'#248'38'#243'8'#243'33'#0#0'3'#163'33'#162'"C333' +#131'33'#143'3'#143'33'#0#0'3333:"$3333338'#243'8'#243'3'#0#0'33333'#162'"C3' +'33333'#143'3'#143'3'#0#0'33333:"$3333338'#243'8'#243#0#0'333333'#162'"C3333' +'33'#143'3'#143#0#0'333333:"C3333338'#243#143#0#0'3333333'#162'#3333333'#143 +#131#0#0'3333333:3333333383'#0#0'333333333333333333'#0#0#9'NumGlyphs'#2#2#7 +'OnClick'#7#12'BitBtn1Click'#8'TabOrder'#2#1#0#0#11'TStringGrid'#10'sgreacti' +'fs'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Lab' +'el2'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5 +'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control' +#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#3 +#201#0#4'Hint'#6'DPour s'#195#169'lectionner un r'#195#169'actif, cliquez su' +'r la ligne correspondante.'#3'Top'#3#228#0#5'Width'#3'm'#2#7'Anchors'#11#5 +'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#17'Bo' +'rderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#20'BorderSpacing.Bottom' +#2#10#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#2#9'OnMouseUp'#7#17's' +'greactifsMouseUp'#0#0#7'TBitBtn'#7'BitBtn2'#21'AnchorSideTop.Control'#7#7'B' +'itBtn1'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7 +#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#246#1#6'Height'#2 +'P'#3'Top'#2'l'#5'Width'#3#129#0#7'Anchors'#11#5'akTop'#7'akRight'#0#19'Bord' +'erSpacing.Right'#2#10#6'Cancel'#9#7'Caption'#6#7'Annuler'#4'Kind'#7#8'bkCan' +'cel'#11'ModalResult'#2#2#8'TabOrder'#2#3#0#0#0 ]); ���������������������������������������������������������������������dozzaqueux-3.51/uscaleby.pas������������������������������������������������������������������������0000750�0001750�0001750�00000010707�13147330070�016374� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit uscaleby; {$mode objfpc}{$H+} interface uses Classes, SysUtils,Forms,Controls; const LAZYFOXSTRING=76; type TCustomClassScaler=tclass; TScaleProcedure=procedure(const AControl: TControl;const AOrigin,ATarget: SizeUint); TRegisteredScaler=record ClassToScale: TCustomClassScaler; ClassScaleProcedure: TScaleProcedure; end; procedure ScaleBy(const AControl: TControl;const AOrigin,ATarget: SizeUint); procedure ScaleByRecursive(const AControl: TControl;const AOrigin,ATarget: SizeUint); procedure ScaleRectBy(var ARect: TRect;const AOrigin,ATarget: SizeUint); procedure ScaleByRegisterScaler(const AScaleClass: tclass;const AScaler: TScaleProcedure); implementation var Scalers: array of TRegisteredScaler; function FindRegisteredScaler(const AControl: TControl): TScaleProcedure; forward; procedure ScaleBy(const AControl: TControl; const AOrigin, ATarget: SizeUint ); var NewOrigin: TPoint; NewSize: TPoint; TheRect: TRect; begin if AOrigin=ATarget then exit; //If control is aligned only some things should be chaned based in which //alignement it has. if AControl.Align=alClient then begin //Nothing to do, it has been autoresized when the parent has been resized. Exit; end; //First scale the constraints. TheRect.Left := AControl.Constraints.MinWidth; TheRect.Right := AControl.Constraints.MaxWidth; TheRect.Top := AControl.Constraints.MinHeight; TheRect.Bottom := AControl.Constraints.MaxHeight; ScaleRectBy(TheRect,AOrigin,ATarget); AControl.Constraints.MinWidth := TheRect.Left; AControl.Constraints.MaxWidth := TheRect.Right; AControl.Constraints.MinHeight := TheRect.Top; AControl.Constraints.MaxHeight := TheRect.Bottom; //Now scale the origin and size of the control. TheRect.Left := AControl.Left; TheRect.Right := AControl.Width; TheRect.Top := AControl.Top; TheRect.Bottom := AControl.Height; ScaleRectBy(TheRect,AOrigin,ATarget); if (AControl.Align=AlNone) or (AControl.Align=alCustom) then begin if (akLeft in AControl.Anchors) then begin AControl.Left := TheRect.Left; end; if not (akRight in AControl.Anchors) then begin AControl.Width := TheRect.Right; end; if (akTop in AControl.Anchors) then begin AControl.Top := TheRect.Top; end; if not (akBottom in AControl.Anchors) then begin AControl.Height := TheRect.Bottom; end; end else begin if ((AControl.Align=alTop) or (AControl.Align=alBottom)) and (not (akBottom in AControl.Anchors)) then begin //Only scale the height... AControl.Height := TheRect.Bottom; end else if ((AControl.Align=alLeft) or (AControl.Align=alRight)) and (not (akRight in AControl.Anchors)) then begin //Only scale the width... AControl.Width := TheRect.Right; end; end; TheRect.Left := AControl.Left; TheRect.Right := AControl.Width; TheRect.Top := AControl.Top; TheRect.Bottom := AControl.Height; end; procedure ScaleByRecursive(const AControl: TControl; const AOrigin, ATarget: SizeUint); var j: SizeUint; TheControl: TControl; TheWinControl: TWinControl; Scaler: TScaleProcedure; begin if AOrigin=ATarget then exit; Scaler:=FindRegisteredScaler(AControl); Scaler(AControl,AOrigin,ATarget); if AControl is TWinControl then begin TheWinControl:=TWinControl(AControl); if TheWinControl.ControlCount>0 then begin for j := 0 to TheWinControl.ControlCount-1 do begin TheControl:=TheWinControl.Controls[j]; if TheControl is TControl then begin ScaleByRecursive(TheWinControl.Controls[j],AOrigin,ATarget); end; end; end; end; end; procedure ScaleRectBy(var ARect: TRect; const AOrigin, ATarget: SizeUint); begin ARect.Top:=ARect.Top*ATarget div AOrigin; ARect.Left:=ARect.Left*ATarget div AOrigin; ARect.Right:=ARect.Right*ATarget div AOrigin; ARect.Bottom:=ARect.Bottom*ATarget div AOrigin; end; procedure ScaleByRegisterScaler(const AScaleClass: tclass; const AScaler: TScaleProcedure); begin SetLength(Scalers,Length(Scalers)+1); with Scalers[High(Scalers)] do begin ClassToScale:=AScaleClass; ClassScaleProcedure:=AScaler; end; end; function FindRegisteredScaler(const AControl: TControl): TScaleProcedure; var j: SizeInt; begin for j := 0 to High(Scalers) do begin if AControl.ClassType=Scalers[j].ClassToScale then begin Result:=Scalers[j].ClassScaleProcedure; Exit; end; end; //Default is the default ScaleBy Result:=@ScaleBy; end; end. ���������������������������������������������������������dozzaqueux-3.51/unitgpl.lfm�������������������������������������������������������������������������0000750�0001750�0001750�00000000716�13147330070�016241� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object Formgpl: TFormgpl Left = 292 Height = 300 Top = 195 Width = 400 ActiveControl = Memo1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'License GPL' ClientHeight = 300 ClientWidth = 400 OnCreate = FormCreate OnShow = FormShow LCLVersion = '0.9.29' object Memo1: TMemo Left = 0 Height = 300 Top = 0 Width = 400 Align = alClient ScrollBars = ssAutoBoth TabOrder = 0 end end ��������������������������������������������������dozzaqueux-3.51/atomes.ato��������������������������������������������������������������������������0000750�0001750�0001750�00000003416�13147330070�016054� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������47 Ag argent 13 Al aluminum 95 Am américium 18 Ar argon 79 Au or 5 B bore 56 Ba baryum 4 Be béryllium 35 Br brome 20 Ca calcium 48 Cd cadmium 58 Ce cérium 17 Cl chlore 27 Co cobalt 24 Cr chrome 55 Cs césium 29 Cu cuivre 66 Dy dysprosium 68 Er erbium 63 Eu europium 9 F fluor 26 Fe fer 31 Ga gallium 64 Gd gadolinium 1 H hydrogène 33 As arsenic 6 C carbone 15 P phosphore 2 He hélium 72 Hf hafnium 80 Hg mercure 67 Ho holmium 53 I iode 49 In indium 19 K potassium 36 Kr krypton 57 La lanthane 3 Li lithium 71 Lu lutécium 12 Mg magnésium 25 Mn manganèse 42 Mo molybdène 7 N azote 11 Na sodium 60 Nd néodyme 10 Ne néon 28 Ni nickel 93 Np neptunium 82 Pb plomb 46 Pd palladium 61 Pm prométhium 59 Pr praséodyme 94 Pu plutonium 88 Ra radium 37 Rb rubidium 75 Re rhénium 86 Rn radon 44 Ru ruthénium 16 S soufre 51 Sb antimoine 21 Sc scandium 34 Se sélénium 14 Si silicium 62 Sm samarium 50 Sn étain 38 Sr strontium 65 Tb terbium 43 Tc technétium 90 Th thorium 22 Ti titane 81 Tl thallium 69 Tm thulium 92 U uranium 23 V vanadium 74 W tungstène 54 Xe xénon 39 Y yttrium 70 Yb ytterbium 30 Zn zinc 40 Zr zirconium 8 O oxygène 32 Ge germanium 36 Kr krypton 41 Nb niobium 45 Rh rhodium 52 Te tellure 73 Ta tantale 76 Os osmium 77 Ir iridium 78 Pt platine 83 Bi bismuth 84 Po polonium 85 At astate 87 Fr francium 89 Ac actinium 91 Pa protactinium 96 Cm curium 97 Bk berkélium 98 Cf californium 99 Es einsteinium 100 Fm fermium 101 Md mendélévium 102 No nobélium 103 Lr lawrencium��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit1.lfm���������������������������������������������������������������������������0000750�0001750�0001750�00000263330�13147330070�015622� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object Form1: TForm1 Left = 441 Height = 660 Top = 157 Width = 1218 HorzScrollBar.Page = 940 VertScrollBar.Page = 615 Caption = 'Dozzzaqueux' ClientHeight = 635 ClientWidth = 1218 DesignTimePPI = 120 Menu = MainMenu1 OnActivate = FormActivate OnCreate = FormCreate OnDestroy = FormDestroy OnResize = FormResize OnShow = FormShow LCLVersion = '1.8.0.4' WindowState = wsMaximized object PageControl4: TPageControl Left = 0 Height = 635 Top = 0 Width = 1218 ActivePage = TabSheetchoisir Align = alClient TabIndex = 0 TabOrder = 0 OnChange = PageControl4Change OnChanging = PageControl4Changing object TabSheetchoisir: TTabSheet Caption = 'Choix des réactifs:bécher' ClientHeight = 602 ClientWidth = 1210 OnResize = TabSheetchoisirResize object Label14: TLabel AnchorSideLeft.Control = TabSheetchoisir AnchorSideTop.Control = TabSheetchoisir Left = 10 Height = 25 Top = 5 Width = 60 BorderSpacing.Left = 10 BorderSpacing.Top = 5 Caption = 'Bécher' Font.Color = clBlue Font.Height = -19 Font.Style = [fsBold, fsUnderline] ParentColor = False ParentFont = False end object SpeedButtonviderbecher: TSpeedButton AnchorSideLeft.Control = Label14 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label14 AnchorSideTop.Side = asrCenter Left = 90 Height = 25 Top = 5 Width = 65 BorderSpacing.Left = 20 Caption = 'Vider' Font.Color = clRed Font.Height = -11 Font.Style = [fsBold] OnClick = SpeedButtonviderbecherClick ParentFont = False end object SpeedButtonx10: TSpeedButton AnchorSideLeft.Control = TabSheetchoisir AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 30 Hint = 'Multiplier les concentrations par 10' Top = 122 Width = 41 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'x10' OnClick = SpeedButtonx10Click ShowHint = True ParentShowHint = False end object SpeedButton_10: TSpeedButton AnchorSideLeft.Control = SpeedButtonx10 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonx10 AnchorSideTop.Side = asrCenter Left = 61 Height = 30 Hint = 'Diviser les concentrations par 10' Top = 122 Width = 35 BorderSpacing.Left = 10 Caption = '/10' OnClick = SpeedButton_10Click ShowHint = True ParentShowHint = False end object Label5: TLabel AnchorSideLeft.Control = TabSheetchoisir AnchorSideTop.Control = Label14 AnchorSideTop.Side = asrBottom Left = 10 Height = 13 Top = 40 Width = 79 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Volume initial=' Font.Height = -11 Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label6: TLabel AnchorSideLeft.Control = Editvolume AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Editvolume AnchorSideTop.Side = asrCenter Left = 150 Height = 13 Top = 40 Width = 16 BorderSpacing.Left = 10 Caption = 'mL' Font.Height = -11 Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label7: TLabel AnchorSideLeft.Control = TabSheetchoisir AnchorSideTop.Control = Label5 AnchorSideTop.Side = asrBottom Left = 10 Height = 13 Top = 68 Width = 73 BorderSpacing.Left = 10 BorderSpacing.Top = 15 Caption = 'Température=' Font.Height = -11 Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label8: TLabel AnchorSideLeft.Control = Edittemperature AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Edittemperature AnchorSideTop.Side = asrCenter Left = 144 Height = 13 Top = 68 Width = 7 BorderSpacing.Left = 10 Caption = 'K' Font.Height = -11 Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label1: TLabel AnchorSideLeft.Control = TabSheetchoisir AnchorSideTop.Control = Label7 AnchorSideTop.Side = asrBottom Left = 30 Height = 21 Top = 91 Width = 120 BorderSpacing.Left = 30 BorderSpacing.Top = 10 Caption = 'Réactifs choisis:' Font.Color = clGreen Font.Height = -16 Font.Style = [fsBold, fsUnderline] ParentColor = False ParentFont = False end object Label11: TLabel AnchorSideLeft.Control = stringgridreactifs_becher AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TabSheetchoisir Left = 520 Height = 25 Top = 10 Width = 141 BorderSpacing.Left = 200 BorderSpacing.Top = 10 Caption = 'Base de réactifs:' Font.Color = clRed Font.Height = -19 Font.Style = [fsBold, fsUnderline] ParentColor = False ParentFont = False end object Editvolume: TEdit AnchorSideLeft.Control = Label5 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label5 AnchorSideTop.Side = asrCenter Left = 99 Height = 28 Hint = 'Changer cette valeur ne modifie pas les concentrations ! Utilisez le bouton "dilution" si vous voulez les modifier par dilution' Top = 32 Width = 41 BorderSpacing.Left = 10 OnChange = EditvolumeChange OnKeyPress = EditvolumeKeyPress ParentShowHint = False ShowHint = True TabOrder = 0 Text = '20' end object Edittemperature: TEdit AnchorSideLeft.Control = Label7 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label7 AnchorSideTop.Side = asrCenter Left = 93 Height = 28 Top = 60 Width = 41 BorderSpacing.Left = 10 OnKeyPress = EdittemperatureKeyPress TabOrder = 1 Text = '298' end object stringgridreactifs_becher: TStringGrid AnchorSideLeft.Control = TabSheetchoisir AnchorSideTop.Control = SpeedButtonx10 AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = BitBtn4 Left = 10 Height = 280 Top = 162 Width = 310 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Bottom = 10 ColCount = 3 Font.Height = -11 ParentFont = False RowCount = 2 TabOrder = 2 TitleFont.Height = -13 OnMouseDown = stringgridreactifs_bechermousedown end object BitBtn4: TBitBtn AnchorSideLeft.Control = TabSheetchoisir AnchorSideBottom.Control = BitBtn1 Left = 10 Height = 65 Top = 452 Width = 312 Anchors = [akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Bottom = 10 Caption = 'Rechercher une espéce' Kind = bkHelp OnClick = BitBtn4Click TabOrder = 3 end object PageControl1: TPageControl AnchorSideLeft.Control = stringgridreactifs_becher AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label11 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = TabSheetchoisir AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = TabSheetchoisir AnchorSideBottom.Side = asrBottom Left = 330 Height = 547 Hint = 'Pour sélectionner un réactif, faites un clic simple sur sa ligne.' Top = 45 Width = 870 ActivePage = TabSheetga Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 ParentShowHint = False ShowHint = True TabIndex = 3 TabOrder = 4 object TabSheetAqueux: TTabSheet Caption = 'Inorganiques' ClientHeight = 667 ClientWidth = 633 object PageControl3: TPageControl Left = 0 Height = 667 Top = 0 Width = 633 ActivePage = TabSheet14 Align = alClient TabIndex = 4 TabOrder = 0 object TabSheet10: TTabSheet Caption = 'Cations simples' ClientHeight = 634 ClientWidth = 625 object StringGridcationssimples: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridcationssimplesCompareCells OnMouseDown = StringGridcationssimplesmousedown end end object TabSheet11: TTabSheet Caption = 'Anions simples' ClientHeight = 634 ClientWidth = 625 object StringGridanionssimples: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridanionssimplesCompareCells OnMouseDown = StringGridanionssimplesmousedown end end object TabSheet12: TTabSheet Caption = 'Acides et bases' ClientHeight = 634 ClientWidth = 625 object StringGridaqueuxab: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True TabOrder = 0 OnCompareCells = StringGridaqueuxabCompareCells OnMouseDown = StringGridaqueuxabmousedown end end object TabSheet13: TTabSheet Caption = 'Complexes et divers' ClientHeight = 634 ClientWidth = 625 object StringGridaqueuxcomplexes: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridaqueuxcomplexesCompareCells OnMouseDown = StringGridaqueuxcomplexesmousedown end end object TabSheet14: TTabSheet Caption = 'Ions' ClientHeight = 634 ClientWidth = 625 object StringGridIons: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridIonsCompareCells OnMouseDown = StringGridIonsmousedown end end object TabSheet15: TTabSheet Caption = 'Atomes et molécules' ClientHeight = 647 ClientWidth = 631 object StringGridMolecules: TStringGrid Left = 0 Height = 647 Top = 0 Width = 631 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridMoleculesCompareCells OnMouseDown = StringGridMoleculesmousedown end end end end object TabSheetSolides: TTabSheet Caption = 'Solides' ClientHeight = 667 ClientWidth = 633 object stringgridmineraux: TStringGrid Left = 0 Height = 667 Top = 0 Width = 633 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = stringgridminerauxCompareCells OnMouseDown = stringgridminerauxmousedown end end object TabSheetorga: TTabSheet Caption = 'Organiques' ClientHeight = 667 ClientWidth = 633 object PageControl2: TPageControl Left = 0 Height = 667 Top = 0 Width = 633 ActivePage = TabSheet5 Align = alClient TabIndex = 3 TabOrder = 0 object TabSheet2: TTabSheet Caption = 'Acides et bases organiques' ClientHeight = 634 ClientWidth = 625 object StringGridorganiques_acide: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_acideCompareCells OnMouseDown = StringGridorganiques_acidemousedown end end object TabSheet3: TTabSheet Caption = 'Complexes à ligands organiques, et divers' ClientHeight = 634 ClientWidth = 625 object StringGridorganiques_complexe: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_complexeCompareCells OnMouseDown = StringGridorganiques_complexemousedown end end object TabSheet4: TTabSheet Caption = 'Benzéne et dérivés' ClientHeight = 634 ClientWidth = 625 object StringGridorganiques_benzene: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_benzeneCompareCells OnMouseDown = StringGridorganiques_benzenemousedown end end object TabSheet5: TTabSheet Caption = 'Amines et amides' ClientHeight = 634 ClientWidth = 625 object StringGridorganiques_amid_amin: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_amid_aminCompareCells OnMouseDown = StringGridorganiques_amid_aminmousedown end end object TabSheet6: TTabSheet Caption = 'Alcools' ClientHeight = 647 ClientWidth = 631 object StringGridorganiques_alcool: TStringGrid Left = 0 Height = 647 Top = 0 Width = 631 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_alcoolCompareCells OnMouseDown = StringGridorganiques_alcoolmousedown end end object TabSheet7: TTabSheet Caption = 'Alcanes, alcénes, alcynes' ClientHeight = 647 ClientWidth = 631 object StringGridorganiques_alc: TStringGrid Left = 0 Height = 647 Top = 0 Width = 631 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_alcCompareCells OnMouseDown = StringGridorganiques_alcmousedown end end object TabSheet8: TTabSheet Caption = 'Amminoacides' ClientHeight = 647 ClientWidth = 631 object StringGridorganiques_aminoacide: TStringGrid Left = 0 Height = 647 Top = 0 Width = 631 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_aminoacideCompareCells OnMouseDown = StringGridorganiques_aminoacidemousedown end end object TabSheet9: TTabSheet Caption = 'Aldéhydes et cétones' ClientHeight = 647 ClientWidth = 631 object StringGridorganiques_aldehyd_cetone: TStringGrid Left = 0 Height = 647 Top = 0 Width = 631 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_aldehyd_cetoneCompareCells OnMouseDown = StringGridorganiques_aldehyd_cetonemousedown end end end end object TabSheetga: TTabSheet ClientHeight = 514 ClientWidth = 862 Enabled = False TabVisible = False object stringgridgazeux: TStringGrid Left = 0 Height = 514 Top = 0 Width = 862 Align = alClient Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnMouseDown = stringgridgazeuxmousedown end end end object BitBtn1: TBitBtn AnchorSideLeft.Control = TabSheetchoisir AnchorSideBottom.Control = TabSheetchoisir AnchorSideBottom.Side = asrBottom Left = 10 Height = 65 Top = 527 Width = 310 Anchors = [akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Bottom = 10 Caption = 'Valider et passer à la burette >>>>>' Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 5 end object SpeedButton_dilution: TSpeedButton AnchorSideLeft.Control = SpeedButton_10 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonx10 AnchorSideTop.Side = asrCenter Left = 106 Height = 30 Top = 122 Width = 66 BorderSpacing.Left = 10 Caption = 'Dilution' OnClick = SpeedButton_dilutionClick end end object TabSheetChoisir_: TTabSheet Caption = 'Choix des réactifs:burette' ClientHeight = 598 ClientWidth = 1161 OnResize = TabSheetChoisir_Resize object Label14_: TLabel AnchorSideLeft.Control = TabSheetChoisir_ AnchorSideTop.Control = TabSheetChoisir_ Left = 10 Height = 25 Top = 5 Width = 66 BorderSpacing.Left = 10 BorderSpacing.Top = 5 Caption = 'Burette' Font.Color = clBlue Font.Height = -19 Font.Style = [fsBold, fsUnderline] ParentColor = False ParentFont = False end object SpeedButtonviderburette: TSpeedButton AnchorSideLeft.Control = Label14_ AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label14_ AnchorSideTop.Side = asrCenter Left = 96 Height = 25 Top = 5 Width = 65 BorderSpacing.Left = 20 Caption = 'Vider' Font.Color = clRed Font.Height = -11 Font.Style = [fsBold] OnClick = SpeedButtonviderburetteClick ParentFont = False end object SpeedButtonx10_: TSpeedButton AnchorSideLeft.Control = TabSheetChoisir_ AnchorSideTop.Control = Label1_ AnchorSideTop.Side = asrBottom Left = 10 Height = 30 Hint = 'Multiplier les concentrations par 10' Top = 104 Width = 49 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'x10' OnClick = SpeedButtonx10_Click ShowHint = True ParentShowHint = False end object SpeedButton_10_: TSpeedButton AnchorSideLeft.Control = SpeedButtonx10_ AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonx10_ AnchorSideTop.Side = asrCenter Left = 69 Height = 30 Hint = 'Diviser les concentrations par 10' Top = 104 Width = 45 BorderSpacing.Left = 10 Caption = '/10' OnClick = SpeedButton_10_Click ShowHint = True ParentShowHint = False end object Label16: TLabel AnchorSideLeft.Control = TabSheetChoisir_ AnchorSideTop.Control = Label14_ AnchorSideTop.Side = asrBottom Left = 10 Height = 13 Top = 50 Width = 138 BorderSpacing.Left = 10 BorderSpacing.Top = 20 Caption = 'Volume maximal à verser=' Font.Height = -11 Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label15: TLabel AnchorSideLeft.Control = Editvolume_burette AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Editvolume_burette AnchorSideTop.Side = asrCenter Left = 209 Height = 13 Top = 50 Width = 16 BorderSpacing.Left = 10 Caption = 'mL' Font.Height = -11 Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label1_: TLabel AnchorSideLeft.Control = TabSheetChoisir_ AnchorSideTop.Control = Label16 AnchorSideTop.Side = asrBottom Left = 30 Height = 21 Top = 73 Width = 120 BorderSpacing.Left = 30 BorderSpacing.Top = 10 Caption = 'Réactifs choisis:' Font.Color = clGreen Font.Height = -16 Font.Style = [fsBold, fsUnderline] ParentColor = False ParentFont = False end object Label11_: TLabel AnchorSideLeft.Control = stringgridreactifs_burette AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TabSheetChoisir_ Left = 537 Height = 25 Top = 10 Width = 141 BorderSpacing.Left = 200 BorderSpacing.Top = 10 Caption = 'Base de réactifs:' Font.Color = clRed Font.Height = -19 Font.Style = [fsBold, fsUnderline] ParentColor = False ParentFont = False end object Editvolume_burette: TEdit AnchorSideLeft.Control = Label16 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label16 AnchorSideTop.Side = asrCenter Left = 158 Height = 28 Hint = 'Changer cette valeur ne modifie pas les concentrations ! Utilisez le bouton "dilution" si vous voulez les modifier par dilution' Top = 42 Width = 41 BorderSpacing.Left = 10 OnKeyPress = Editvolume_buretteKeyPress ParentShowHint = False ShowHint = True TabOrder = 0 Text = '20' end object stringgridreactifs_burette: TStringGrid AnchorSideLeft.Control = TabSheetChoisir_ AnchorSideTop.Control = SpeedButtonx10_ AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = BitBtn4_ Left = 10 Height = 294 Top = 144 Width = 327 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Bottom = 10 Font.Height = -11 ParentFont = False TabOrder = 1 TitleFont.Height = -13 OnMouseDown = stringgridreactifs_burettemousedown end object BitBtn4_: TBitBtn AnchorSideLeft.Control = TabSheetChoisir_ AnchorSideBottom.Control = BitBtn1_ Left = 10 Height = 65 Top = 448 Width = 328 Anchors = [akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Bottom = 10 Caption = 'Rechercher une espéce' Kind = bkHelp OnClick = BitBtn4_Click TabOrder = 2 end object PageControl1_: TPageControl AnchorSideLeft.Control = stringgridreactifs_burette AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label11_ AnchorSideTop.Side = asrBottom AnchorSideRight.Control = TabSheetChoisir_ AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = TabSheetChoisir_ AnchorSideBottom.Side = asrBottom Left = 347 Height = 543 Hint = 'Pour sélectionner un réactif, faites un clic simple sur sa ligne.' Top = 45 Width = 804 ActivePage = TabSheetga_ Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 ParentShowHint = False ShowHint = True TabIndex = 3 TabOrder = 4 object TabSheetAqueux_: TTabSheet Caption = 'Inorganiques' ClientHeight = 667 ClientWidth = 633 object PageControl3_: TPageControl Left = 0 Height = 667 Top = 0 Width = 633 ActivePage = TabSheet14_ Align = alClient TabIndex = 4 TabOrder = 0 object TabSheet10_: TTabSheet Caption = 'Cations simples' ClientHeight = 634 ClientWidth = 625 object StringGridcationssimples_: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridcationssimples_CompareCells OnMouseDown = StringGridcationssimples_mousedown end end object TabSheet11_: TTabSheet Caption = 'Anions simples' ClientHeight = 634 ClientWidth = 625 object StringGridanionssimples_: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridanionssimples_CompareCells OnMouseDown = StringGridanionssimples_mousedown end end object TabSheet12_: TTabSheet Caption = 'Acides et bases' ClientHeight = 634 ClientWidth = 625 object StringGridaqueuxab_: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True TabOrder = 0 OnCompareCells = StringGridaqueuxab_CompareCells OnMouseDown = StringGridaqueuxab_mousedown end end object TabSheet13_: TTabSheet Caption = 'Complexes et divers' ClientHeight = 634 ClientWidth = 625 object StringGridaqueuxcomplexes_: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridaqueuxcomplexes_CompareCells OnMouseDown = StringGridaqueuxcomplexes_mousedown end end object TabSheet14_: TTabSheet Caption = 'Ions' ClientHeight = 634 ClientWidth = 625 object StringGridIons_: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridIons_CompareCells OnMouseDown = StringGridIons_mousedown end end object TabSheet15_: TTabSheet Caption = 'Atomes et molécules' ClientHeight = 647 ClientWidth = 631 object StringGridMolecules_: TStringGrid Left = 0 Height = 647 Top = 0 Width = 631 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridMolecules_CompareCells OnMouseDown = StringGridMolecules_mousedown end end end end object TabSheetSolides_: TTabSheet Caption = 'Solides' ClientHeight = 667 ClientWidth = 633 object stringgridmineraux_: TStringGrid Left = 0 Height = 667 Top = 0 Width = 633 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = stringgridmineraux_CompareCells OnMouseDown = stringgridmineraux_mousedown end end object TabSheetorga_: TTabSheet Caption = 'Organiques' ClientHeight = 667 ClientWidth = 633 object PageControl2_: TPageControl Left = 0 Height = 667 Top = 0 Width = 633 ActivePage = TabSheet5_ Align = alClient TabIndex = 3 TabOrder = 0 object TabSheet2_: TTabSheet Caption = 'Acides et bases organiques' ClientHeight = 634 ClientWidth = 625 object StringGridorganiques_acide_: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_acide_CompareCells OnMouseDown = StringGridorganiques_acide_mousedown end end object TabSheet3_: TTabSheet Caption = 'Complexes à ligands organiques, et divers' ClientHeight = 634 ClientWidth = 625 object StringGridorganiques_complexe_: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_complexe_CompareCells OnMouseDown = StringGridorganiques_complexe_mousedown end end object TabSheet4_: TTabSheet Caption = 'Benzéne et dérivés' ClientHeight = 634 ClientWidth = 625 object StringGridorganiques_benzene_: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_benzene_CompareCells OnMouseDown = StringGridorganiques_benzene_mousedown end end object TabSheet5_: TTabSheet Caption = 'Amines et amides' ClientHeight = 634 ClientWidth = 625 object StringGridorganiques_amid_amin_: TStringGrid Left = 0 Height = 634 Top = 0 Width = 625 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_amid_amin_CompareCells OnMouseDown = StringGridorganiques_amid_amin_mousedown end end object TabSheet6_: TTabSheet Caption = 'Alcools' ClientHeight = 647 ClientWidth = 631 object StringGridorganiques_alcool_: TStringGrid Left = 0 Height = 647 Top = 0 Width = 631 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_alcool_CompareCells OnMouseDown = StringGridorganiques_alcool_mousedown end end object TabSheet7_: TTabSheet Caption = 'Alcanes, alcénes, alcynes' ClientHeight = 647 ClientWidth = 631 object StringGridorganiques_alc_: TStringGrid Left = 0 Height = 647 Top = 0 Width = 631 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_alc_CompareCells OnMouseDown = StringGridorganiques_alc_mousedown end end object TabSheet8_: TTabSheet Caption = 'Amminoacides' ClientHeight = 647 ClientWidth = 631 object StringGridorganiques_aminoacide_: TStringGrid Left = 0 Height = 647 Top = 0 Width = 631 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_aminoacide_CompareCells OnMouseDown = StringGridorganiques_aminoacide_mousedown end end object TabSheet9_: TTabSheet Caption = 'Aldéhydes et cétones' ClientHeight = 647 ClientWidth = 631 object StringGridorganiques_aldehyd_cetone_: TStringGrid Left = 0 Height = 647 Top = 0 Width = 631 Align = alClient ColumnClickSorts = True Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnCompareCells = StringGridorganiques_aldehyd_cetone_CompareCells OnMouseDown = StringGridorganiques_aldehyd_cetone_mousedown end end end end object TabSheetga_: TTabSheet ClientHeight = 510 ClientWidth = 796 Enabled = False TabVisible = False object stringgridgazeux_: TStringGrid Left = 0 Height = 510 Top = 0 Width = 796 Align = alClient Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll] TabOrder = 0 OnMouseDown = stringgridgazeux_mousedown end end end object BitBtn1_: TBitBtn AnchorSideLeft.Control = TabSheetChoisir_ AnchorSideBottom.Control = TabSheetChoisir_ AnchorSideBottom.Side = asrBottom Left = 10 Height = 65 Top = 523 Width = 328 Anchors = [akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Bottom = 10 Caption = 'Valider et passer au recensement >>>>>' Kind = bkOK ModalResult = 1 OnClick = BitBtn1_Click TabOrder = 3 end object SpeedButton_dilution_: TSpeedButton AnchorSideLeft.Control = SpeedButton_10_ AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonx10_ AnchorSideTop.Side = asrCenter Left = 124 Height = 29 Top = 105 Width = 86 BorderSpacing.Left = 10 Caption = 'Dilution' OnClick = SpeedButton_dilution_Click end end object TabSheeteliminer: TTabSheet Caption = 'Espéces présentes' ClientHeight = 598 ClientWidth = 1161 OnResize = TabSheeteliminerResize object Label2: TLabel AnchorSideLeft.Control = TabSheeteliminer AnchorSideTop.Control = TabSheeteliminer Left = 10 Height = 20 Top = 10 Width = 464 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Voici la liste des espéces susceptibles d''être présentes à l''équilibre.' Font.Color = clBlue Font.Height = -15 Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideLeft.Control = TabSheeteliminer AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 40 Width = 769 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Si vous pensez que certaines ne seront pas présentes (blocage cinétique par exemple), il suffit de les décocher.' Font.Color = clRed Font.Height = -15 Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label4: TLabel AnchorSideLeft.Control = TabSheeteliminer AnchorSideTop.Control = SpeedButtontoutcocher AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 115 Width = 627 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Pour obtenir la formule brute d''une espéce, sélectionnez la puis cliquez sur le bouton ci-contre:' ParentColor = False ParentFont = False end object SpeedButton4: TSpeedButton AnchorSideLeft.Control = Label4 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label4 AnchorSideTop.Side = asrCenter Left = 647 Height = 30 Top = 110 Width = 153 BorderSpacing.Left = 10 Caption = 'Formule brute ?' Font.Color = clGreen Font.Style = [fsBold] OnClick = SpeedButton4Click ParentFont = False end object CheckListBox1: TCheckListBox AnchorSideLeft.Control = TabSheeteliminer AnchorSideTop.Control = SpeedButton4 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = TabSheeteliminer AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = BitBtn2 Left = 10 Height = 348 Top = 150 Width = 1141 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Columns = 3 Font.Height = -15 ItemHeight = 0 OnClick = CheckListBox1Click OnClickCheck = CheckListBox1ClickCheck OnItemClick = CheckListBox1ItemClick OnMouseDown = CheckListBox1MouseDown ParentFont = False TabOrder = 0 end object CheckListBoxSauve: TCheckListBox Left = 462 Height = 21 Top = 143 Width = 19 ItemHeight = 0 OnClickCheck = CheckListBoxSauveClickCheck TabOrder = 1 Visible = False end object BitBtn2: TBitBtn AnchorSideLeft.Control = TabSheeteliminer AnchorSideBottom.Control = TabSheeteliminer AnchorSideBottom.Side = asrBottom Left = 10 Height = 80 Top = 508 Width = 504 Anchors = [akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Bottom = 10 Caption = 'Valider et passer aux constantes de réaction >>>>>' Kind = bkOK ModalResult = 1 OnClick = BitBtn2Click TabOrder = 2 end object SpeedButtontoutcocher: TBitBtn AnchorSideLeft.Control = TabSheeteliminer AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrBottom Left = 10 Height = 35 Top = 70 Width = 150 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'SpeedButtontoutcocher' Font.Color = clMaroon Font.Style = [fsBold] OnClick = SpeedButtontoutcocherClick ParentFont = False TabOrder = 3 end object SpeedButtontoutdecocher: TBitBtn AnchorSideLeft.Control = SpeedButtontoutcocher AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtontoutcocher AnchorSideTop.Side = asrCenter Left = 180 Height = 35 Top = 70 Width = 135 BorderSpacing.Left = 20 Caption = 'SpeedButtontoutdecocher' Font.Color = clFuchsia Font.Style = [fsBold] OnClick = SpeedButtontoutdecocherClick ParentFont = False TabOrder = 4 end end object TabSheetverifier: TTabSheet Caption = 'Réactions et constantes' ClientHeight = 598 ClientWidth = 1161 OnResize = TabSheetverifierResize object Label9: TLabel AnchorSideLeft.Control = TabSheetverifier AnchorSideTop.Control = TabSheetverifier Left = 10 Height = 20 Top = 10 Width = 796 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Voici un ensemble d''équations de réactions linéairement indépendantes entre elles décrivant le système chimique.' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label10: TLabel AnchorSideLeft.Control = TabSheetverifier AnchorSideTop.Control = Label9 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 40 Width = 801 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Vous pouvez modifier les logarithmes des constantes d''équilibre si vous pensez en avoir de meilleures estimations.' Font.Color = clGreen Font.Style = [fsBold] ParentColor = False ParentFont = False end object StringGridReactions: TStringGrid AnchorSideLeft.Control = TabSheetverifier AnchorSideTop.Control = ProgressBar1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = TabSheetverifier AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = BitBtn3 Left = 10 Height = 438 Top = 75 Width = 1141 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 ColCount = 2 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing, goSmoothScroll] TabOrder = 0 OnKeyPress = StringGridReactionsKeyPress OnSetEditText = StringGridReactionsSetEditText end object Editpourcentage: TEdit AnchorSideLeft.Control = ProgressBar1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ProgressBar1 AnchorSideTop.Side = asrCenter Left = 955 Height = 28 Top = 36 Width = 56 BorderSpacing.Left = 10 OnKeyPress = EditpourcentageKeyPress TabOrder = 1 end object ProgressBar1: TProgressBar AnchorSideLeft.Control = Label10 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label10 AnchorSideTop.Side = asrCenter Left = 831 Height = 29 Top = 36 Width = 114 BorderSpacing.Left = 20 TabOrder = 2 end object BitBtn3: TBitBtn AnchorSideLeft.Control = TabSheetverifier AnchorSideBottom.Control = TabSheetverifier AnchorSideBottom.Side = asrBottom Left = 10 Height = 65 Top = 523 Width = 392 Anchors = [akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Bottom = 10 Caption = 'Valider et lancer les calculs>>>>>>' Kind = bkOK ModalResult = 1 OnClick = BitBtn3Click OnKeyPress = BitBtn3KeyPress TabOrder = 3 end end object TabSheetresultats: TTabSheet Caption = 'Résultats' ClientHeight = 598 ClientWidth = 1161 OnResize = TabSheetresultatsResize object StringGridResultats: TStringGrid AnchorSideLeft.Control = TabSheetresultats AnchorSideTop.Control = TabSheetresultats AnchorSideRight.Control = TabSheetresultats AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = BitBtn6 Left = 10 Height = 503 Top = 10 Width = 1151 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Bottom = 10 Options = [goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goSmoothScroll] TabOrder = 0 end object BitBtn6: TBitBtn AnchorSideLeft.Control = TabSheetresultats AnchorSideBottom.Control = TabSheetresultats AnchorSideBottom.Side = asrBottom Left = 10 Height = 65 Top = 523 Width = 358 Anchors = [akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Bottom = 10 Caption = 'Choisir les courbes à tracer >>>>>>>' Kind = bkOK ModalResult = 1 OnClick = BitBtn6Click TabOrder = 1 end object BitBtn5: TBitBtn AnchorSideLeft.Control = BitBtn6 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = BitBtn6 AnchorSideTop.Side = asrCenter Left = 388 Height = 65 Hint = 'Sauvegarder les résultats numériques pour une exploitation avec tableur ou avec Régressi' Top = 523 Width = 324 BorderSpacing.Left = 20 Caption = 'Export résultats bruts' Kind = bkIgnore ModalResult = 5 OnClick = BitBtn5Click ParentShowHint = False ShowHint = True TabOrder = 2 end end object TabSheetchoixcourbes: TTabSheet Caption = 'Choix des courbes' ClientHeight = 606 ClientWidth = 1161 OnResize = TabSheetchoixcourbesResize object Label12: TLabel AnchorSideLeft.Control = Radioechellehorizontale AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Radioechellehorizontale Left = 884 Height = 17 Top = 20 Width = 40 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Xmin=' ParentColor = False end object Label13: TLabel AnchorSideLeft.Control = Radioechellehorizontale AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label12 AnchorSideTop.Side = asrBottom Left = 884 Height = 17 Top = 47 Width = 45 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Xmax=' ParentColor = False end object Label19: TLabel AnchorSideLeft.Control = Radioechelleverticaledroite AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Radioechelleverticaledroite Left = 890 Height = 17 Top = 103 Width = 40 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Ymin=' ParentColor = False end object Label20: TLabel AnchorSideLeft.Control = Radioechelleverticaledroite AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label19 AnchorSideTop.Side = asrBottom Left = 890 Height = 17 Top = 130 Width = 45 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Ymax=' ParentColor = False end object Label17: TLabel AnchorSideLeft.Control = Radioechelleverticalegauche AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Radioechelleverticalegauche Left = 539 Height = 17 Top = 92 Width = 40 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Ymin=' ParentColor = False end object Label18: TLabel AnchorSideLeft.Control = Radioechelleverticalegauche AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label17 AnchorSideTop.Side = asrBottom Left = 539 Height = 17 Top = 119 Width = 45 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Ymax=' ParentColor = False end object Editabscisse: TEdit AnchorSideLeft.Control = BitBtn8 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = BitBtn8 AnchorSideTop.Side = asrCenter Left = 322 Height = 25 Top = 21 Width = 342 BorderSpacing.Left = 10 OnClick = EditabscisseClick OnKeyPress = EditabscisseKeyPress ReadOnly = True TabOrder = 0 end object Radioechellehorizontale: TRadioGroup AnchorSideLeft.Control = Editabscisse AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = TabSheetchoixcourbes Left = 674 Height = 75 Top = 10 Width = 200 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Echelle horizontale' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 50 ClientWidth = 196 ItemIndex = 0 Items.Strings = ( 'Automatique' 'Manuelle' ) OnClick = RadioechellehorizontaleClick TabOrder = 1 end object Radioechelleverticaledroite: TRadioGroup AnchorSideLeft.Control = Radioechellehorizontale AnchorSideBottom.Control = bitbtn9 AnchorSideBottom.Side = asrBottom Left = 674 Height = 82 Top = 93 Width = 206 Anchors = [akLeft, akBottom] AutoFill = True Caption = 'Echelle verticale droite' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 57 ClientWidth = 202 ItemIndex = 0 Items.Strings = ( 'Automatique' 'Manuelle' ) OnClick = RadioechelleverticaledroiteClick TabOrder = 2 end object Radioechelleverticalegauche: TRadioGroup AnchorSideLeft.Control = bitbtn9 AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = bitbtn9 AnchorSideBottom.Side = asrBottom Left = 322 Height = 93 Top = 82 Width = 207 Anchors = [akLeft, akBottom] AutoFill = True BorderSpacing.Left = 10 Caption = 'Echelle verticale gauche' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 68 ClientWidth = 203 ItemIndex = 0 Items.Strings = ( 'Automatique' 'Manuelle' ) OnClick = RadioechelleverticalegaucheClick TabOrder = 3 end object Editxmin: TEdit AnchorSideLeft.Control = Label12 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label12 AnchorSideTop.Side = asrCenter Left = 934 Height = 25 Top = 16 Width = 72 BorderSpacing.Left = 10 Enabled = False OnChange = EditxminChange OnKeyPress = EditxminKeyPress TabOrder = 4 end object editxmax: TEdit AnchorSideLeft.Control = Label13 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label13 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Editxmin AnchorSideRight.Side = asrBottom Left = 939 Height = 25 Top = 43 Width = 67 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 Enabled = False OnChange = editxmaxChange OnKeyPress = editxmaxKeyPress TabOrder = 5 end object Editymindroite: TEdit AnchorSideLeft.Control = Label19 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label19 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Editxmin AnchorSideRight.Side = asrBottom Left = 940 Height = 25 Top = 99 Width = 66 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 Enabled = False OnChange = EditymindroiteChange OnKeyPress = EditymindroiteKeyPress TabOrder = 6 end object Editymaxdroite: TEdit AnchorSideLeft.Control = Label20 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label20 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Editxmin AnchorSideRight.Side = asrBottom Left = 945 Height = 25 Top = 126 Width = 61 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 Enabled = False OnChange = EditymaxdroiteChange OnKeyPress = EditymaxdroiteKeyPress TabOrder = 7 end object editymingauche: TEdit AnchorSideLeft.Control = Label17 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label17 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Editabscisse AnchorSideRight.Side = asrBottom Left = 589 Height = 25 Top = 88 Width = 75 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 Enabled = False OnChange = editymingaucheChange OnKeyPress = editymingaucheKeyPress TabOrder = 8 end object Editymaxgauche: TEdit AnchorSideLeft.Control = Label18 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label18 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Editabscisse AnchorSideRight.Side = asrBottom Left = 594 Height = 25 Top = 115 Width = 70 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 Enabled = False OnChange = EditymaxgaucheChange OnKeyPress = EditymaxgaucheKeyPress TabOrder = 9 end object BitBtn7: TBitBtn AnchorSideLeft.Control = TabSheetchoixcourbes AnchorSideBottom.Control = TabSheetchoixcourbes AnchorSideBottom.Side = asrBottom Left = 10 Height = 65 Top = 531 Width = 424 Anchors = [akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Bottom = 10 Caption = 'Valider et tracer les courbes >>>>>' Default = True Kind = bkOK ModalResult = 1 OnClick = BitBtn7Click TabOrder = 10 end object StringGridordonnees: TStringGrid AnchorSideLeft.Control = TabSheetchoixcourbes AnchorSideTop.Control = bitbtn9 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = TabSheetchoixcourbes AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = BitBtn7 Left = 10 Height = 336 Top = 185 Width = 1141 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 ColCount = 9 TabOrder = 11 OnDrawCell = StringGridordonneesDrawCell OnMouseDown = StringGridordonneesmousedown end object BitBtn8: TBitBtn AnchorSideLeft.Control = TabSheetchoixcourbes AnchorSideTop.Control = TabSheetchoixcourbes Left = 10 Height = 46 Top = 10 Width = 302 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'BitBtn8' Font.Color = clGreen Font.Style = [fsBold] OnClick = bitbtn8Click ParentFont = False TabOrder = 12 end object SpeedButtontoutsupprimer: TBitBtn AnchorSideLeft.Control = BitBtn8 AnchorSideTop.Control = BitBtn8 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = BitBtn8 AnchorSideRight.Side = asrBottom Left = 10 Height = 49 Top = 66 Width = 302 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 10 Caption = 'SpeedButtontoutsupprimer' Font.Color = clBlue Font.Style = [fsBold] OnClick = SpeedButtontoutsupprimerClick ParentFont = False TabOrder = 13 end object bitbtn9: TBitBtn AnchorSideLeft.Control = BitBtn8 AnchorSideTop.Control = SpeedButtontoutsupprimer AnchorSideTop.Side = asrBottom AnchorSideRight.Control = BitBtn8 AnchorSideRight.Side = asrBottom Left = 10 Height = 50 Top = 125 Width = 302 Anchors = [akTop, akLeft, akRight] BorderSpacing.Top = 10 Caption = 'bitbtn9' Font.Color = clRed Font.Style = [fsBold] OnClick = bitbtn9Click ParentFont = False TabOrder = 14 end end object TabSheettracecourbes: TTabSheet Caption = 'Tracé des courbes' ClientHeight = 602 ClientWidth = 1210 ParentShowHint = False object Label21: TLabel AnchorSideLeft.Control = TabSheettracecourbes AnchorSideTop.Control = ToolBar2 AnchorSideTop.Side = asrBottom Left = 10 Height = 21 Top = 138 Width = 22 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'V=' Font.Height = -16 Font.Style = [fsBold] ParentColor = False ParentFont = False Visible = False end object Label22: TLabel AnchorSideLeft.Control = Editvolumepp AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Editvolumepp AnchorSideTop.Side = asrCenter Left = 119 Height = 20 Top = 138 Width = 22 BorderSpacing.Left = 10 Caption = 'mL' Font.Style = [fsBold] ParentColor = False ParentFont = False Visible = False end object ToolBar1: TToolBar Left = 0 Height = 66 Top = 0 Width = 1210 AutoSize = True ButtonHeight = 32 ButtonWidth = 200 Caption = 'ToolBar1' TabOrder = 0 object ToolButton1: TToolButton Left = 922 Height = 8 Top = 2 Caption = 'ToolButton1' Style = tbsSeparator end object ToolButton2: TToolButton Left = 127 Height = 8 Top = 34 Caption = 'ToolButton2' Style = tbsSeparator end object SpeedButton9: TSpeedButton Left = 135 Height = 32 Hint = 'Modifier couleurs' Top = 34 Width = 29 Glyph.Data = { F2060000424DF206000000000000360400002800000019000000190000000100 080000000000BC020000120B0000120B00000001000000010000000000000000 80000080000000808000800000008000800080800000C0C0C000C0DCC000F0CA A6000020400000206000002080000020A0000020C0000020E000004000000040 20000040400000406000004080000040A0000040C0000040E000006000000060 20000060400000606000006080000060A0000060C0000060E000008000000080 20000080400000806000008080000080A0000080C0000080E00000A0000000A0 200000A0400000A0600000A0800000A0A00000A0C00000A0E00000C0000000C0 200000C0400000C0600000C0800000C0A00000C0C00000C0E00000E0000000E0 200000E0400000E0600000E0800000E0A00000E0C00000E0E000400000004000 20004000400040006000400080004000A0004000C0004000E000402000004020 20004020400040206000402080004020A0004020C0004020E000404000004040 20004040400040406000404080004040A0004040C0004040E000406000004060 20004060400040606000406080004060A0004060C0004060E000408000004080 20004080400040806000408080004080A0004080C0004080E00040A0000040A0 200040A0400040A0600040A0800040A0A00040A0C00040A0E00040C0000040C0 200040C0400040C0600040C0800040C0A00040C0C00040C0E00040E0000040E0 200040E0400040E0600040E0800040E0A00040E0C00040E0E000800000008000 20008000400080006000800080008000A0008000C0008000E000802000008020 20008020400080206000802080008020A0008020C0008020E000804000008040 20008040400080406000804080008040A0008040C0008040E000806000008060 20008060400080606000806080008060A0008060C0008060E000808000008080 20008080400080806000808080008080A0008080C0008080E00080A0000080A0 200080A0400080A0600080A0800080A0A00080A0C00080A0E00080C0000080C0 200080C0400080C0600080C0800080C0A00080C0C00080C0E00080E0000080E0 200080E0400080E0600080E0800080E0A00080E0C00080E0E000C0000000C000 2000C0004000C0006000C0008000C000A000C000C000C000E000C0200000C020 2000C0204000C0206000C0208000C020A000C020C000C020E000C0400000C040 2000C0404000C0406000C0408000C040A000C040C000C040E000C0600000C060 2000C0604000C0606000C0608000C060A000C060C000C060E000C0800000C080 2000C0804000C0806000C0808000C080A000C080C000C080E000C0A00000C0A0 2000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0E000C0C00000C0C0 2000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0A000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FEFEFEFEFEA7 A7A7A7A70606060606B0B0B0B0B0ADADADADAD000000FEFEFEFEFEA7A7A7A7A7 0606060606B0B0B0B0B0ADADADADAD000000FEFEFEFEFEA7A7A7A7A706060606 06B0B0B0B0B0ADADADADAD000000FEFEFEFEFEA7A7A7A7A70606060606B0B0B0 B0B0ADADADADAD000000FEFEFEFEFEA7A7A7A7A70606060606B0B0B0B0B0ADAD ADADAD0000000E0E0E0E0E0303030303FBFBFBFBFB87878787875E5E5E5E5E00 00000E0E0E0E0E0303030303FBFBFBFBFB87878787875E5E5E5E5E0000000E0E 0E0E0E0303030303FBFBFBFBFB87878787875E5E5E5E5E0000000E0E0E0E0E03 03030303FBFBFBFBFB87878787875E5E5E5E5E0000000E0E0E0E0E0303030303 FBFBFBFBFB87878787875E5E5E5E5E0000003A3A3A3A3AA4A4A4A4A418181818 182E2E2E2E2E7A7A7A7A7A0000003A3A3A3A3AA4A4A4A4A418181818182E2E2E 2E2E7A7A7A7A7A0000003A3A3A3A3AA4A4A4A4A418181818182E2E2E2E2E7A7A 7A7A7A0000003A3A3A3A3AA4A4A4A4A418181818182E2E2E2E2E7A7A7A7A7A00 00003A3A3A3A3AA4A4A4A4A418181818182E2E2E2E2E7A7A7A7A7A0000008787 878787454545454587878787872A2A2A2A2A9393939393000000878787878745 4545454587878787872A2A2A2A2A939393939300000087878787874545454545 87878787872A2A2A2A2A93939393930000008787878787454545454587878787 872A2A2A2A2A93939393930000008787878787454545454587878787872A2A2A 2A2A9393939393000000FCFCFCFCFC40404040401D1D1D1D1D52525252528686 868686000000FCFCFCFCFC40404040401D1D1D1D1D5252525252868686868600 0000FCFCFCFCFC40404040401D1D1D1D1D52525252528686868686000000FCFC FCFCFC40404040401D1D1D1D1D52525252528686868686000000FCFCFCFCFC40 404040401D1D1D1D1D52525252528686868686000000 } OnClick = SpeedButton9Click ShowHint = True ParentShowHint = False end object CheckBoxgrillegauche: TCheckBox Left = 1 Height = 24 Top = 2 Width = 162 Caption = 'Grille échelle gauche' Checked = True OnClick = CheckBoxgrillegaucheClick State = cbChecked TabOrder = 0 end object CheckBoxgrilledroite: TCheckBox Left = 163 Height = 24 Top = 2 Width = 154 Caption = 'Grille échelle droite' Checked = True OnClick = CheckBoxgrilledroiteClick State = cbChecked TabOrder = 1 end object CheckBoxgraduations: TCheckBox Left = 317 Height = 24 Top = 2 Width = 104 Caption = 'Graduations' Checked = True OnClick = CheckBoxgraduationsClick State = cbChecked TabOrder = 2 end object CheckBoxaxes: TCheckBox Left = 421 Height = 24 Top = 2 Width = 55 Caption = 'Axes' Checked = True OnChange = CheckBoxaxesChange OnClick = CheckBoxaxesClick State = cbChecked TabOrder = 3 end object CheckBoxlegende: TCheckBox Left = 476 Height = 24 Top = 2 Width = 81 Caption = 'Légende' OnClick = CheckBoxlegendeClick TabOrder = 4 end object CheckBoxexp: TCheckBox Left = 797 Height = 24 Hint = 'Activer/désactiver l''affichage du fichier expérimental' Top = 2 Width = 51 Caption = 'Exp.' OnClick = CheckBoxexpClick ParentShowHint = False ShowHint = True TabOrder = 5 end object CheckBoxsuperposition: TCheckBox Left = 848 Height = 24 Hint = 'Activer/désactiver la superposition' Top = 2 Width = 74 Caption = 'Superp.' OnChange = CheckBoxsuperpositionChange OnClick = CheckBoxsuperpositionClick ParentShowHint = False ShowHint = True TabOrder = 6 end object SpeedButton5: TBitBtn Left = 1 Height = 30 Top = 34 Width = 126 AutoSize = True Caption = 'SpeedButton5' Font.Color = clBlue Font.Style = [fsBold] OnClick = SpeedButton5Click ParentFont = False TabOrder = 7 end object SpeedButtonunites: TBitBtn Left = 930 Height = 30 Top = 2 Width = 160 AutoSize = True Caption = 'SpeedButtonunites' Font.Color = clRed Font.Style = [fsBold] OnClick = SpeedButtonunitesClick ParentFont = False TabOrder = 8 end object CheckBoxlegendeapart: TCheckBox Left = 557 Height = 24 Top = 2 Width = 124 Caption = 'Légende à part' Checked = True OnClick = CheckBoxlegendeapartClick State = cbChecked TabOrder = 9 end object SpeedButton_deplace_legende: TBitBtn Left = 681 Height = 30 Top = 2 Width = 116 AutoSize = True Caption = 'Déplacer lég.' Font.Color = clBlue Font.Style = [fsBold] OnClick = SpeedButton_deplace_legendeClick ParentFont = False ParentShowHint = False ShowHint = True TabOrder = 10 end end object ToolBar2: TToolBar Left = 0 Height = 62 Top = 66 Width = 1210 AutoSize = True ButtonHeight = 32 ButtonWidth = 200 Caption = 'ToolBar2' TabOrder = 1 object ToolButton3: TToolButton Left = 541 Height = 8 Top = 2 Caption = 'ToolButton3' Style = tbsSeparator end object ToolButton4: TToolButton Left = 684 Height = 8 Top = 2 Caption = 'ToolButton4' Style = tbsSeparator end object ToolButton5: TToolButton Left = 827 Height = 8 Top = 2 Caption = 'ToolButton5' Style = tbsSeparator end object ToolButton6: TToolButton Left = 970 Height = 8 Top = 2 Caption = 'ToolButton6' Style = tbsSeparator end object ComboBox1: TComboBox Left = 1 Height = 28 Top = 34 Width = 273 ItemHeight = 20 OnChange = ComboBox1Change TabOrder = 0 Text = 'ComboBox1' end object SpeedButton10: TBitBtn Left = 1 Height = 30 Top = 2 Width = 135 AutoSize = True Caption = 'SpeedButton10' Font.Color = clGreen Font.Style = [fsBold] OnClick = SpeedButton10Click ParentFont = False TabOrder = 1 end object SpeedButton12: TBitBtn Left = 136 Height = 30 Top = 2 Width = 135 AutoSize = True Caption = 'SpeedButton12' Font.Color = clMaroon Font.Style = [fsBold] OnClick = SpeedButton12Click ParentFont = False TabOrder = 2 end object SpeedButton13: TBitBtn Left = 271 Height = 30 Top = 2 Width = 135 AutoSize = True Caption = 'SpeedButton13' Font.Color = clBlue Font.Style = [fsBold] OnClick = SpeedButton13Click ParentFont = False TabOrder = 3 end object SpeedButton14: TBitBtn Left = 406 Height = 30 Top = 2 Width = 135 AutoSize = True Caption = 'SpeedButton14' Font.Color = clRed Font.Style = [fsBold] OnClick = SpeedButton14Click ParentFont = False TabOrder = 4 end object SpeedButton15: TBitBtn Left = 549 Height = 30 Top = 2 Width = 135 AutoSize = True Caption = 'SpeedButton15' Font.Color = clPurple Font.Style = [fsBold] OnClick = SpeedButton15Click ParentFont = False TabOrder = 5 end object SpeedButton16: TBitBtn Left = 692 Height = 30 Top = 2 Width = 135 AutoSize = True Caption = 'SpeedButton16' Font.Color = clFuchsia Font.Style = [fsBold] OnClick = SpeedButton16Click ParentFont = False TabOrder = 6 end object SpeedButton17: TBitBtn Left = 835 Height = 30 Top = 2 Width = 135 AutoSize = True Caption = 'SpeedButton17' Font.Color = clMaroon Font.Style = [fsBold] OnClick = SpeedButton17Click ParentFont = False TabOrder = 7 end end object Editvolumepp: TEdit AnchorSideLeft.Control = Label21 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label21 AnchorSideTop.Side = asrCenter Left = 42 Height = 28 Top = 134 Width = 67 BorderSpacing.Left = 10 OnKeyPress = EditvolumeppKeyPress TabOrder = 2 Visible = False end object SpinEdit1pourcent: TUpDown AnchorSideLeft.Control = Label22 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Editvolumepp AnchorSideTop.Side = asrCenter Left = 151 Height = 24 Top = 136 Width = 17 BorderSpacing.Left = 10 Min = -100 OnClick = SpinEdit1pourcentClick Position = 0 TabOrder = 3 Wrap = False end object SpinEdit01pourcent: TUpDown AnchorSideLeft.Control = SpinEdit1pourcent AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Editvolumepp AnchorSideTop.Side = asrCenter Left = 168 Height = 24 Top = 136 Width = 17 Min = -100 OnClick = SpinEdit01pourcentClick Position = 0 TabOrder = 4 Wrap = False end object SpinEdit001pourcent: TUpDown AnchorSideLeft.Control = SpinEdit01pourcent AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Editvolumepp AnchorSideTop.Side = asrCenter Left = 185 Height = 24 Top = 136 Width = 17 Min = -100 OnClick = SpinEdit001pourcentClick Position = 0 TabOrder = 5 Wrap = False end object SpinEdit0001pourcent: TUpDown AnchorSideLeft.Control = SpinEdit001pourcent AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Editvolumepp AnchorSideTop.Side = asrCenter Left = 202 Height = 24 Top = 136 Width = 17 Min = -100 OnClick = SpinEdit0001pourcentClick Position = 0 TabOrder = 6 Wrap = False end object Image1: TImage AnchorSideLeft.Control = TabSheettracecourbes AnchorSideTop.Control = ToolBar2 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = TabSheettracecourbes AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = TabSheettracecourbes AnchorSideBottom.Side = asrBottom Left = 0 Height = 474 Top = 128 Width = 1210 Anchors = [akTop, akLeft, akRight, akBottom] OnMouseDown = Image1MouseDown OnMouseMove = Image1MouseMove OnMouseUp = Image1MouseUp OnResize = Image1Resize end object Memo_resultats_point_particulier: TMemo AnchorSideLeft.Control = TabSheettracecourbes AnchorSideTop.Control = SpeedButtonfermer AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = TabSheettracecourbes AnchorSideBottom.Side = asrBottom Left = 0 Height = 361 Top = 241 Width = 246 Anchors = [akTop, akLeft, akBottom] Lines.Strings = ( 'Memo_resultats_point_particulier' ) PopupMenu = PopupMenu_copie_resultats_1_point ReadOnly = True TabOrder = 7 Visible = False end object SpeedButtoncalculer: TBitBtn AnchorSideLeft.Control = TabSheettracecourbes AnchorSideTop.Control = Editvolumepp AnchorSideTop.Side = asrBottom Left = 0 Height = 33 Top = 172 Width = 248 BorderSpacing.Top = 10 Caption = 'SpeedButtoncalculer' Font.Color = clGreen Font.Style = [fsBold] OnClick = SpeedButtoncalculerClick ParentFont = False TabOrder = 8 end object SpeedButtonfermer: TBitBtn AnchorSideLeft.Control = TabSheettracecourbes AnchorSideTop.Control = SpeedButtoncalculer AnchorSideTop.Side = asrBottom Left = 0 Height = 36 Top = 205 Width = 248 Caption = 'SpeedButtonfermer' Font.Color = clBlue Font.Style = [fsBold] OnClick = SpeedButtonfermerClick ParentFont = False TabOrder = 9 end end end object Memo1: TMemo Left = 472 Height = 35 Top = 227 Width = 35 Lines.Strings = ( 'Me' 'm' 'o' '1' ) TabOrder = 1 Visible = False end object Memo2: TMemo Left = 520 Height = 38 Top = 328 Width = 54 Lines.Strings = ( 'Mem' 'o2' ) TabOrder = 2 Visible = False end object MainMenu1: TMainMenu left = 856 top = 112 object Fichier1: TMenuItem Caption = 'Fichier' object Nouvellesimulation1: TMenuItem Caption = 'Nouvelle simulation' OnClick = Nouvellesimulation1Click end object N2: TMenuItem Caption = '-' end object Enregistrerlefilmdelasimulation1: TMenuItem Caption = 'Enregistrer le film de la simulation' OnClick = Enregistrerlefilmdelasimulation1Click end object Jouerunfilmdesimulation1: TMenuItem Caption = 'Jouer un film de simulation' OnClick = Jouerunfilmdesimulation1Click object MenuItem_charger_exemples: TMenuItem Caption = 'du répertoire "exemples"' OnClick = MenuItem_charger_exemplesClick end object MenuItem_charger_personnel: TMenuItem Caption = 'de mon répertoire personnel' OnClick = MenuItem_charger_personnelClick end end end object Options1: TMenuItem Caption = 'Options' object Nombredepointsdecalcul1: TMenuItem Caption = 'Nombre de points de calcul' OnClick = Nombredepointsdecalcul1Click end object Autoriserractionsredox1: TMenuItem Caption = 'Autoriser réactions redox' OnClick = Autoriserractionsredox1Click end object UtiliserDebyeetHckel1: TMenuItem Caption = 'Utiliser Debye et Hückel' OnClick = UtiliserDebyeetHckel1Click end object MenuItem2: TMenuItem Caption = '-' end object Calculdesdrives1: TMenuItem Caption = 'Calcul des dérivées' OnClick = Calculdesdrives1Click end object MenuItem1: TMenuItem Caption = '-' end object Exporttableurtexte1: TMenuItem Caption = 'Export tableur texte' OnClick = Exporttableurtexte1Click end object MenuItem4: TMenuItem Caption = '-' end object Temporisationfilm1: TMenuItem Caption = 'Temporisation film' OnClick = Temporisationfilm1Click end object MenuItem8: TMenuItem Caption = '-' OnClick = MenuItem8Click end object Chiffressignificatifs1: TMenuItem Caption = 'Chiffres significatifs' OnClick = Chiffressignificatifs1Click end object MenuItem3: TMenuItem Caption = '-' end object MenuItem11: TMenuItem Caption = 'Indicateur coloré' OnClick = MenuItem11Click end object MenuItem10: TMenuItem Caption = '-' end object MenuItem9: TMenuItem Caption = 'Langue' OnClick = MenuItem9Click end end object Aide1: TMenuItem Caption = 'Aide' object AideDozzzaqueux1: TMenuItem Caption = 'Aide Dozzzaqueux' OnClick = AideDozzzaqueux1Click end object MenuItem5: TMenuItem Caption = '-' end object LicenseGPL1: TMenuItem Caption = 'License GPL' OnClick = LicenseGPL1Click end object MenuItem6: TMenuItem Caption = '-' end object MenuItem12: TMenuItem Caption = 'Site web' OnClick = MenuItem12Click end object MenuItem14: TMenuItem Caption = 'Historique des versions' OnClick = MenuItem14Click end object MenuItem13: TMenuItem Caption = '-' end object Versiondelabase1: TMenuItem Caption = 'Version de la base' OnClick = Versiondelabase1Click end object MenuItem7: TMenuItem Caption = '-' end object Apropos1: TMenuItem Caption = 'A propos...' OnClick = Apropos1Click end end end object OpenDialog1: TOpenDialog left = 320 top = 256 end object OpenDialog2: TOpenDialog Filter = 'Film simulation Dozzzaqueux|*.doz' FilterIndex = 0 left = 312 top = 232 end object OpenDialog3: TOpenDialog Filter = 'Tableur texte (*.txt;*.csv)|*.txt;*.csv|Régressi (*.rw3)|*.rw3' FilterIndex = 0 left = 371 top = 193 end object ColorDialog1: TColorDialog Color = clBlack CustomColors.Strings = ( 'ColorA=000000' 'ColorB=000080' 'ColorC=008000' 'ColorD=008080' 'ColorE=800000' 'ColorF=800080' 'ColorG=808000' 'ColorH=808080' 'ColorI=C0C0C0' 'ColorJ=0000FF' 'ColorK=00FF00' 'ColorL=00FFFF' 'ColorM=FF0000' 'ColorN=FF00FF' 'ColorO=FFFF00' 'ColorP=FFFFFF' 'ColorQ=C0DCC0' 'ColorR=F0CAA6' 'ColorS=F0FBFF' 'ColorT=A4A0A0' ) left = 369 top = 242 end object SaveDialog1: TSaveDialog Title = 'Enregistrer' DefaultExt = '.csv' Filter = 'Tableur texte (*.csv;*.txt)|*.csv;*.txt|Régressi (*.rw3)|*.rw3' FilterIndex = 0 left = 365 top = 287 end object SaveDialog2: TSaveDialog Title = 'Enregistrer' FilterIndex = 0 left = 346 top = 341 end object SaveDialog3: TSaveDialog Title = 'Enregistrer' DefaultExt = '.doz' Filter = 'Film simulation Dozzzaqueux|*.doz' FilterIndex = 0 left = 350 top = 382 end object PopupMenu1: TPopupMenu left = 362 top = 435 object Parfomulebrute1: TMenuItem Caption = 'Par fomule brute' OnClick = Parfomulebrute1Click end object Paridentifiantousynonyme1: TMenuItem Caption = 'Par identifiant ou synonyme' OnClick = Paridentifiantousynonyme1Click end end object PopupMenu2: TPopupMenu left = 402 top = 429 object Parformulebrute1: TMenuItem Caption = 'Par formule brute' OnClick = Parformulebrute1Click end object Paridentifiantousynonyme2: TMenuItem Caption = 'Par identifiant ou synonyme' OnClick = Paridentifiantousynonyme2Click end end object PopupMenuSuperposer: TPopupMenu left = 360 top = 478 object Expriencefichierformattableautexte1: TMenuItem Caption = 'Expérience (fichier format tableau texte ou Regressi)' OnClick = Expriencefichierformattableautexte1Click end object UneouplusieursdessimulationsfaitesdepuisledernierlancementdeDoz: TMenuItem Caption = 'Une ou plusieurs des simulations faites depuis le dernier lancement de Dozzzaqueux' OnClick = UneouplusieursdessimulationsfaitesdepuisledernierlancementdeDozClick end end object PrintDialog1: TPrintDialog left = 368 top = 104 end object PrinterSetupDialog1: TPrinterSetupDialog left = 432 top = 64 end object PopupMenu_image: TPopupMenu left = 1088 top = 224 object MenuItem_png: TMenuItem Caption = 'PNG' OnClick = MenuItem_pngClick end object MenuItem_jpg: TMenuItem Caption = 'JPEG' OnClick = MenuItem_jpgClick end end object HTMLHelpDatabase1: THTMLHelpDatabase BaseURL = './Aide' AutoRegister = False KeywordPrefix = 'htkeyword' left = 82 top = 439 end object PopupMenu_copie_resultats_1_point: TPopupMenu left = 505 top = 464 object MenuItem15: TMenuItem Caption = 'Tout copier dans presse-papier' OnClick = MenuItem15Click end object MenuItem16: TMenuItem Caption = 'Copier texte sélectionné dans le presse-papier' OnClick = MenuItem16Click end end object PopupMenubrut: TPopupMenu left = 712 top = 352 object MenuItem_sauve_brut_csv: TMenuItem Caption = 'Format tableur texte (.csv, .txt)' OnClick = MenuItem_sauve_brut_csvClick end object MenuItem_save_brut_rw3: TMenuItem Caption = 'Format Régressi (.rw3)' OnClick = MenuItem_save_brut_rw3Click end end object PopupMenuRaffine: TPopupMenu left = 825 top = 479 object MenuItemRaffineCSV: TMenuItem Caption = 'Format tableur texte (.csv, .txt)' OnClick = MenuItemRaffineCSVClick end object MenuItemRaffineRW3: TMenuItem Caption = 'Format Regressi (.rw3)' OnClick = MenuItemRaffineRW3Click end end end ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit23.lfm��������������������������������������������������������������������������0000750�0001750�0001750�00000005003�13147330070�015675� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object saisieregressi: Tsaisieregressi Left = 292 Height = 312 Top = 195 Width = 478 ActiveControl = Memo1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Chargement fichier expérience' ClientHeight = 312 ClientWidth = 478 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 250 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Grandeurs présentes dans le fichier:' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Memo1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 228 Width = 354 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Indice de la ligne de la grandeur qui sera l''abscisse:' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Memo1: TMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 178 Top = 40 Width = 214 BorderSpacing.Left = 10 BorderSpacing.Top = 10 TabOrder = 0 end object SpinEdit1: TSpinEdit AnchorSideLeft.Control = Label2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrCenter Left = 374 Height = 28 Top = 224 Width = 39 BorderSpacing.Left = 10 MinValue = 1 TabOrder = 1 Value = 1 end object CheckBoxrecalculechelles: TCheckBox AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom Left = 10 Height = 24 Top = 258 Width = 378 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Recalculer automatiquement les échelles verticales' Checked = True Font.Style = [fsBold] ParentFont = False State = cbChecked TabOrder = 2 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Memo1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Memo1 AnchorSideBottom.Control = Memo1 AnchorSideBottom.Side = asrBottom Left = 234 Height = 178 Top = 40 Width = 190 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 3 end end �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unitsaisielegende.lfm���������������������������������������������������������������0000750�0001750�0001750�00000003311�13147330070�020252� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object Form_saisie_legende: TForm_saisie_legende Left = 389 Height = 155 Top = 549 Width = 638 BorderStyle = bsDialog Caption = 'Form_saisie_legende' ClientHeight = 155 ClientWidth = 638 OnCreate = FormCreate LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 17 Top = 10 Width = 402 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Légende qui apparaîtra sur le graphe pour cette grandeur:' Font.Color = clBlue Font.Style = [fsBold] ParentColor = False ParentFont = False end object Edit1: TEdit AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 10 Height = 25 Top = 37 Width = 618 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 TabOrder = 0 Text = 'Edit1' end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = Edit1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Edit1 AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 73 Top = 72 Width = 608 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Default = True DefaultCaption = True Kind = bkOK ModalResult = 1 TabOrder = 1 end end �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit2.pas���������������������������������������������������������������������������0000750�0001750�0001750�00000347442�13147330070�015637� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit2; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,Unit_commune, LazUTF8, FileUtil, Buttons, ComCtrls, Menus, ExtCtrls, StdCtrls,Grids,pivotgauss,gibbs,Strings,UnitScaleFont,math,charencstreams ,LCLType; const nombre_atomes_classification=103; type {modif 2.5} couple_redox=object espece1,espece2,formule_brute_espece1,formule_brute_espece2:string; coef_1, coef_2, coef_e, coef_Hp,potentiel_standard_redox:float; end; type_liste_couples_redox=array of couple_redox; {modif 2.5} comparaison_entre_formules_brutes=(egal,inf,sup,parmi); atome=object symbole:string[2]; nom:string; numero_atomique:integer; end; nature_composant=(inconnu,debase,aqueux,gaz,solide,organique); genre_organique=(acide,aminoacide,amid_amin,alcool,alc,benzene,complexe,aldehyd_cetone,non_defini_o); sous_type=(complexe_i,acide_i,cation_simple,anion_simple,molecule,ion,non_defini); composeur=object coefficient:float; element:string; nature:nature_composant; indice_dans_sa_base:longint; end; composeur_atomique=object coefficient:float; numero_atomique:integer; end; array_periodique=array of atome; array_composeurs_atomiques=array of composeur_atomique; array_composeurs=array of composeur; tableau_composeurs_atomiques=object ensemble_composeurs:array_composeurs_atomiques; function nombre_atomes(numero_atomique:integer):float; end; element_base=object identifiant,synonyme,representant_de:string; masse_molaire,rayon,mu0_25:float; charge:integer; conductivite:float; nombre_composants:integer; composition_atomique:array_composeurs_atomiques; st:sous_type; end; element_mineral=object identifiant,synonyme:string; masse_molaire,masse_volumique:float; logk_25,enthalpie,mu0_25:float; enthalpie_connue,identifie:boolean; formule:string; nombre_composants:integer; composition:array_composeurs; nombre_composants_atomiques:integer; composition_atomique:array_composeurs_atomiques; end; element_gazeux=object identifiant,synonyme:string; masse_molaire:float; logk_25,enthalpie,mu0_25:float; enthalpie_connue,identifie:boolean; formule:string; nombre_composants:integer; composition:array_composeurs; nombre_composants_atomiques:integer; composition_atomique:array_composeurs_atomiques; end; element_aqueux=object identifiant,synonyme:string; masse_molaire,rayon:float; logk_25,enthalpie,mu0_25:float; enthalpie_connue,identifie:boolean; formule:string; conductivite:float; nombre_composants,charge:integer; composition:array_composeurs; nombre_composants_atomiques:integer; composition_atomique:array_composeurs_atomiques; st:sous_type; end; element_organique=object identifiant,synonyme:string; genre:genre_organique; masse_molaire,rayon:float; logk_25,enthalpie,mu0_25:float; enthalpie_connue,identifie:boolean; formule:string; conductivite:float; nombre_composants,charge:integer; composition:array_composeurs; nombre_composants_atomiques:integer; composition_atomique:array_composeurs_atomiques; end; array_base=array of element_base; array_mineraux=array of element_mineral; array_gazeux=array of element_gazeux; array_aqueux=array of element_aqueux; array_organiques=array of element_organique; {modif 2.5} var liste_couples_redox:type_liste_couples_redox; {modif 2.5} var tableau_elements_base:array_base; tableau_elements_mineraux:array_mineraux; tableau_elements_gazeux:array_gazeux; tableau_elements_aqueux:array_aqueux; tableau_elements_organiques:array_organiques; tableau_periodique:array_periodique; {et des tableaux destines uniquement a l'affichage:} tableau_anions_simples,tableau_cations_simples, tableau_complexes,tableau_ab,tableau_ions,tableau_molecules:array_aqueux; nb_anions_simples,nb_cations_simples, nb_complexes,nb_ab,nb_ions,nb_molecules:longint; nombre_elements_base:longint; nombre_elements_mineraux:longint; nombre_elements_gazeux:longint; nombre_elements_aqueux:longint; nombre_elements_organiques,nombre_elements_organiques_acide, nombre_elements_organiques_aminoacide, nombre_elements_organiques_alc,nombre_elements_organiques_alcool, nombre_elements_organiques_benzene,nombre_elements_organiques_complexe, nombre_elements_organiques_amid_amin,nombre_elements_organiques_aldehyd_cetone:longint; blocage_gaz,blocage_redox,blocage_solide,blocage_organique:boolean; var elements_base_presents:array of boolean; var elements_gazeux_presents:array of boolean; var elements_aqueux_presents:array of boolean; var elements_solides_presents:array of boolean; var elements_organiques_presents:array of boolean; version_base:integer; date_base:string; procedure lecture_base; function indice_tableau_anions_simples(s:string):longint; function indice_tableau_cations_simples(s:string):longint; function indice_tableau_complexes(s:string):longint; function indice_tableau_ab(s:string):longint; function indice_tableau_ions(s:string):longint; function indice_tableau_molecules(s:string):longint; function indice_element_base(s:string):longint; function indice_element_gazeux(s:string):longint; function indice_element_aqueux(s:string):longint; function indice_element_mineral(s:string):longint; function indice_element_organique(s:string):longint; procedure trouve_tous_les_elements(liste:tstrings;exclus:tstringlist); function Donne_Numero_Atomique(s:string):integer; procedure ajoute_xfois_composeur_atomique_a_composition_atomique(x:float; var compo:array_composeurs_atomiques; com:composeur_atomique); procedure ajoute_xfois_composition_atomique_a_composition_atomique (x:float; var somme:array_composeurs_atomiques; terme:array_composeurs_atomiques); {dit si un element est present dans un cmposeur atomique} function IsAtomePresent(numeroatomique:integer; compo:array_composeurs_atomiques):boolean; {donne la composition atomique a partir de la formule brute} function CompositionAtomiqueDeFormuleBruteExacte(formulebrute:string; var compo:array_composeurs_atomiques):boolean; {dit si 2 compositions aotrmiques sont identiques} function IsCompositionAtomiqueEqualTo(compo1,compo2:array_composeurs_atomiques):boolean; function IsCompositionAtomiqueSupTo(compo1,compo2:array_composeurs_atomiques):boolean; function IsCompositionAtomiqueInfTo(compo1,compo2:array_composeurs_atomiques):boolean; function IsCompositionAtomiqueParmi(compo1,compo2:array_composeurs_atomiques):boolean; {trie le comoseur par ordr de numero atomique} procedure TrieArrayComposeurAtomique(var compo:array_composeurs_atomiques); {fournit la liste des identifiants des reactifs de formule brute proposee} function ReactifsDeFormuleBrute(formulebrute:string; var liste:tstringlist; exclus_gaz:boolean; type_comparaison:comparaison_entre_formules_brutes):boolean; {dit si un element est de base, aqueux, gazeux, minral ou organique} function DonneNatureReactif(identifiant:string; var indice:longint):nature_composant; {renvoie la matrice des coefficients des nombres d'atomes par elements pour un ensemble de forumles brutes} procedure DonneMatriceCoefficients(formules_brutes:tableaustring; var a:matricereelle; nombre_especes:integer; var nombre_atomes:integer); implementation uses Unit1; function tableau_composeurs_atomiques.nombre_atomes(numero_atomique:integer):float; var i:integer; begin if length(self.ensemble_composeurs)=0 then begin result:=0; exit; end; for i:=1 to length(self.ensemble_composeurs) do if ensemble_composeurs[i-1].numero_atomique=numero_atomique then begin result:=ensemble_composeurs[i-1].coefficient; exit; end; result:=0; end; procedure DonneMatriceCoefficients(formules_brutes:tableaustring; var a:matricereelle; nombre_especes:integer; var nombre_atomes:integer); var tableau_comp:array of tableau_composeurs_atomiques; i,j,k:integer; elements_la:tableaubooleen; liste_elements:tableauentier; label 512,513; begin setlength(elements_la,nombre_atomes_classification+1); for i:=0 to nombre_atomes_classification do elements_la[i]:=false; {o correspondra a la charge} setlength(tableau_comp,nombre_especes); nombre_atomes:=0; for i:=1 to nombre_especes do begin CompositionAtomiqueDeFormuleBruteExacte(formules_brutes[i-1], tableau_comp[i-1].ensemble_composeurs); TrieArrayComposeurAtomique(tableau_comp[i-1].ensemble_composeurs); end; for i:=1 to nombre_atomes_classification do begin for j:=1 to nombre_especes do if tableau_comp[j-1].nombre_atomes(i)<>0 then begin elements_la[i]:=true; inc(nombre_atomes); setlength(liste_elements,nombre_atomes); liste_elements[nombre_atomes-1]:=i; goto 512; end; 512: end; for j:=1 to nombre_especes do if tableau_comp[j-1].nombre_atomes(-1)<>0 then begin elements_la[0]:=true; inc(nombre_atomes); setlength(liste_elements,nombre_atomes); liste_elements[nombre_atomes-1]:=-1; goto 513; end; 513: if nombre_atomes=0 then begin setlength(a,0,nombre_especes); exit end; setlength(a,nombre_atomes,nombre_especes); for i:=1 to nombre_especes do for j:=1 to nombre_atomes do a[j-1,i-1]:=tableau_comp[i-1].nombre_atomes(liste_elements[j-1]); finalize(tableau_comp); finalize(liste_elements); finalize(elements_la); end; function DonneNatureReactif(identifiant:string; var indice:longint):nature_composant; var k:longint; begin k:=indice_element_base(identifiant); if k<>0 then begin indice:=k; DonneNatureReactif:=debase; exit; end; k:=indice_element_aqueux(identifiant); if k<>0 then begin indice:=k; DonneNatureReactif:=aqueux; exit; end; {k:=indice_element_gazeux(identifiant); if k<>0 then begin indice:=k; DonneNatureReactif:=gaz; exit; end; } k:=indice_element_mineral(identifiant); if k<>0 then begin indice:=k; DonneNatureReactif:=solide; exit; end; k:=indice_element_organique(identifiant); if k<>0 then begin indice:=k; DonneNatureReactif:=organique; exit; end; DonneNatureReactif:=inconnu; indice:=0; end; function ReactifsDeFormuleBrute(formulebrute:string; var liste:tstringlist; exclus_gaz:boolean; type_comparaison:comparaison_entre_formules_brutes):boolean; var compo:array_composeurs_atomiques; i:integer; begin setlength(compo,0); liste.Clear; result:=CompositionAtomiqueDeFormuleBruteExacte(formulebrute,compo); case type_comparaison of egal: begin for i:=1 to nombre_elements_base do if IsCompositionAtomiqueEqualTo(compo,tableau_elements_base[i-1].composition_atomique) then liste.Add(tableau_elements_base[i-1].identifiant); for i:=1 to nombre_elements_mineraux do if IsCompositionAtomiqueEqualTo(compo,tableau_elements_mineraux[i-1].composition_atomique) then liste.Add(tableau_elements_mineraux[i-1].identifiant); for i:=1 to nombre_elements_aqueux do if IsCompositionAtomiqueEqualTo(compo,tableau_elements_aqueux[i-1].composition_atomique) then liste.Add(tableau_elements_aqueux[i-1].identifiant); if not(exclus_gaz) then for i:=1 to nombre_elements_gazeux do if IsCompositionAtomiqueEqualTo(compo,tableau_elements_gazeux[i-1].composition_atomique) then liste.Add(tableau_elements_gazeux[i-1].identifiant); for i:=1 to nombre_elements_organiques do if IsCompositionAtomiqueEqualTo(compo,tableau_elements_organiques[i-1].composition_atomique) then liste.Add(tableau_elements_organiques[i-1].identifiant); end; sup: begin for i:=1 to nombre_elements_base do if IsCompositionAtomiqueInfTo(compo,tableau_elements_base[i-1].composition_atomique) then liste.Add(tableau_elements_base[i-1].identifiant); for i:=1 to nombre_elements_mineraux do if IsCompositionAtomiqueInfTo(compo,tableau_elements_mineraux[i-1].composition_atomique) then liste.Add(tableau_elements_mineraux[i-1].identifiant); for i:=1 to nombre_elements_aqueux do if IsCompositionAtomiqueInfTo(compo,tableau_elements_aqueux[i-1].composition_atomique) then liste.Add(tableau_elements_aqueux[i-1].identifiant); if not(exclus_gaz) then for i:=1 to nombre_elements_gazeux do if IsCompositionAtomiqueInfTo(compo,tableau_elements_gazeux[i-1].composition_atomique) then liste.Add(tableau_elements_gazeux[i-1].identifiant); for i:=1 to nombre_elements_organiques do if IsCompositionAtomiqueInfTo(compo,tableau_elements_organiques[i-1].composition_atomique) then liste.Add(tableau_elements_organiques[i-1].identifiant); end; inf: begin for i:=1 to nombre_elements_base do if IsCompositionAtomiqueSupTo(compo,tableau_elements_base[i-1].composition_atomique) then liste.Add(tableau_elements_base[i-1].identifiant); for i:=1 to nombre_elements_mineraux do if IsCompositionAtomiqueSupTo(compo,tableau_elements_mineraux[i-1].composition_atomique) then liste.Add(tableau_elements_mineraux[i-1].identifiant); for i:=1 to nombre_elements_aqueux do if IsCompositionAtomiqueSupTo(compo,tableau_elements_aqueux[i-1].composition_atomique) then liste.Add(tableau_elements_aqueux[i-1].identifiant); if not(exclus_gaz) then for i:=1 to nombre_elements_gazeux do if IsCompositionAtomiqueSupTo(compo,tableau_elements_gazeux[i-1].composition_atomique) then liste.Add(tableau_elements_gazeux[i-1].identifiant); for i:=1 to nombre_elements_organiques do if IsCompositionAtomiqueSupTo(compo,tableau_elements_organiques[i-1].composition_atomique) then liste.Add(tableau_elements_organiques[i-1].identifiant); end; parmi: begin for i:=1 to nombre_elements_base do if IsCompositionAtomiqueParmi(compo,tableau_elements_base[i-1].composition_atomique) then liste.Add(tableau_elements_base[i-1].identifiant); for i:=1 to nombre_elements_mineraux do if IsCompositionAtomiqueParmi(compo,tableau_elements_mineraux[i-1].composition_atomique) then liste.Add(tableau_elements_mineraux[i-1].identifiant); for i:=1 to nombre_elements_aqueux do if IsCompositionAtomiqueParmi(compo,tableau_elements_aqueux[i-1].composition_atomique) then liste.Add(tableau_elements_aqueux[i-1].identifiant); if not(exclus_gaz) then for i:=1 to nombre_elements_gazeux do if IsCompositionAtomiqueParmi(compo,tableau_elements_gazeux[i-1].composition_atomique) then liste.Add(tableau_elements_gazeux[i-1].identifiant); for i:=1 to nombre_elements_organiques do if IsCompositionAtomiqueParmi(compo,tableau_elements_organiques[i-1].composition_atomique) then liste.Add(tableau_elements_organiques[i-1].identifiant); end; end; finalize(compo); end; procedure TrieArrayComposeurAtomique(var compo:array_composeurs_atomiques); var templiste:tstringlist; i:integer; tt:string; begin if length(compo)=0 then exit; templiste:=TStringList.Create; templiste.Sorted:=false; try for i:=1 to length(compo) do begin tt:=inttostr(compo[i-1].numero_atomique); if tt='-1' then tt:='000' else if length(tt)=1 then tt:='00'+tt else if length(tt)=2 then tt:='0'+tt; templiste.Add(tt+floattostr(compo[i-1].coefficient)); end; templiste.sort; for i:=1 to length(compo) do begin if (copy(templiste[i-1],1,3)='000') then compo[i-1].numero_atomique:=-1 else compo[i-1].numero_atomique:=strtoint(copy(templiste[i-1],1,3)); compo[i-1].coefficient:=mystrtofloat(copy(templiste[i-1],4,length(templiste[i-1])-3)); end; finally templiste.Free; end; end; function IsCompositionAtomiqueEqualTo(compo1,compo2:array_composeurs_atomiques):boolean; var i:integer; begin if length(compo1)<>length(compo2) then begin IsCompositionAtomiqueEqualTo:=false; exit; end; for i:=1 to length(compo1) do if ((compo1[i-1].numero_atomique<>compo2[i-1].numero_atomique) or (compo1[i-1].coefficient<>compo2[i-1].coefficient)) then begin IsCompositionAtomiqueEqualTo:=false; exit; end; IsCompositionAtomiqueEqualTo:=true; end; function IsCompositionAtomiqueInfTo(compo1,compo2:array_composeurs_atomiques):boolean; var i:integer; coco1,coco2:array_composeurs_atomiques; begin if ((length(compo1)=0) or (length(compo2)=0)) then begin IsCompositionAtomiqueInfTo:=false; exit; end; if compo1[0].numero_atomique=-1 then begin setlength(coco1,length(compo1)-1); for i:=1 to length(coco1) do coco1[i-1]:=compo1[i]; end else begin setlength(coco1,length(compo1)); for i:=1 to length(coco1) do coco1[i-1]:=compo1[i-1]; end; if compo2[0].numero_atomique=-1 then begin setlength(coco2,length(compo2)-1); for i:=1 to length(coco2) do coco2[i-1]:=compo2[i]; end else begin setlength(coco2,length(compo2)); for i:=1 to length(coco2) do coco2[i-1]:=compo2[i-1]; end; if length(coco1)<>length(coco2) then begin IsCompositionAtomiqueInfTo:=false; finalize(coco1); finalize(coco2); exit; end; for i:=1 to length(coco1) do if ((coco1[i-1].numero_atomique<>coco2[i-1].numero_atomique) or ((coco1[i-1].numero_atomique=coco2[i-1].numero_atomique) and (coco1[i-1].coefficient>coco2[i-1].coefficient))) then begin IsCompositionAtomiqueInfTo:=false; finalize(coco1); finalize(coco2); exit; end; finalize(coco1); finalize(coco2); IsCompositionAtomiqueInfTo:=true; end; function IsCompositionAtomiqueSupTo(compo1,compo2:array_composeurs_atomiques):boolean; var i:integer; coco1,coco2:array_composeurs_atomiques; begin if ((length(compo1)=0) or (length(compo2)=0)) then begin IsCompositionAtomiqueSupTo:=false; exit; end; if compo1[0].numero_atomique=-1 then begin setlength(coco1,length(compo1)-1); for i:=1 to length(coco1) do coco1[i-1]:=compo1[i]; end else begin setlength(coco1,length(compo1)); for i:=1 to length(coco1) do coco1[i-1]:=compo1[i-1]; end; if compo2[0].numero_atomique=-1 then begin setlength(coco2,length(compo2)-1); for i:=1 to length(coco2) do coco2[i-1]:=compo2[i]; end else begin setlength(coco2,length(compo2)); for i:=1 to length(coco2) do coco2[i-1]:=compo2[i-1]; end; if length(coco1)<>length(coco2) then begin finalize(coco1); finalize(coco2); IsCompositionAtomiqueSupTo:=false; exit; end; for i:=1 to length(coco1) do if ((coco1[i-1].numero_atomique<>coco2[i-1].numero_atomique) or ((coco1[i-1].numero_atomique=coco2[i-1].numero_atomique) and (coco1[i-1].coefficient<coco2[i-1].coefficient))) then begin IsCompositionAtomiqueSupTo:=false; finalize(coco1); finalize(coco2); exit; end; finalize(coco1); finalize(coco2); IsCompositionAtomiqueSupTo:=true; end; function IsCompositionAtomiqueParmi(compo1,compo2:array_composeurs_atomiques):boolean; var i:integer; coco1,coco2:array_composeurs_atomiques; begin if ((length(compo1)=0) or (length(compo2)=0)) then begin IsCompositionAtomiqueParmi:=false; exit; end; if compo1[0].numero_atomique=-1 then begin setlength(coco1,length(compo1)-1); for i:=1 to length(coco1) do coco1[i-1]:=compo1[i]; end else begin setlength(coco1,length(compo1)); for i:=1 to length(coco1) do coco1[i-1]:=compo1[i-1]; end; if compo2[0].numero_atomique=-1 then begin setlength(coco2,length(compo2)-1); for i:=1 to length(coco2) do coco2[i-1]:=compo2[i]; end else begin setlength(coco2,length(compo2)); for i:=1 to length(coco2) do coco2[i-1]:=compo2[i-1]; end; if length(coco1)<>length(coco2) then begin finalize(coco1); finalize(coco2); IsCompositionAtomiqueParmi:=false; exit; end; for i:=1 to length(coco1) do if ((coco1[i-1].numero_atomique<>coco2[i-1].numero_atomique)) then begin finalize(coco1); finalize(coco2); IsCompositionAtomiqueParmi:=false; exit; end; finalize(coco1); finalize(coco2); IsCompositionAtomiqueParmi:=true; end; function IsAtomePresent(numeroatomique:integer; compo:array_composeurs_atomiques):boolean; var i:integer; bibi:boolean; begin bibi:=false; for i:=1 to length(compo) do bibi:=bibi or (compo[i-1].numero_atomique=numeroatomique); result:=bibi; end; function CompositionAtomiqueDeFormuleBruteExacte(formulebrute:string; var compo:array_composeurs_atomiques):boolean; var riri:string; i,j:integer; essai:float; coco:composeur_atomique; label 111,444; begin CompositionAtomiqueDeFormuleBruteExacte:=true; setlength(compo,0); if formulebrute='' then begin CompositionAtomiqueDeFormuleBruteExacte:=false; exit; end; i:=1; 111: if not( (formulebrute[i] in ['A'..'Z']) or (formulebrute[i]='[')) then begin CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit; end; if ((formulebrute[i] in ['A'..'Z']) and (i=length(formulebrute))) then begin if Donne_Numero_Atomique(formulebrute[i])=0 then begin CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit; end; coco.coefficient:=1; coco.numero_atomique:=Donne_Numero_Atomique(formulebrute[i]); ajoute_xfois_composeur_atomique_a_composition_atomique(1,compo,coco); goto 444; end; if ((formulebrute[i] in ['A'..'Z']) and (i+1=length(formulebrute)) and (formulebrute[i+1] in ['a'..'z']) ) then begin if Donne_Numero_Atomique(formulebrute[i]+formulebrute[i+1])=0 then begin CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit; end; coco.coefficient:=1; coco.numero_atomique:=Donne_Numero_Atomique(formulebrute[i]+formulebrute[i+1]); ajoute_xfois_composeur_atomique_a_composition_atomique(1,compo,coco); goto 444; end; if ((formulebrute[i] in ['A'..'Z']) and ((formulebrute[i+1] in ['A'..'Z']) or (formulebrute[i+1]='['))) then begin if Donne_Numero_Atomique(formulebrute[i])=0 then begin CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit; end; coco.coefficient:=1; coco.numero_atomique:=Donne_Numero_Atomique(formulebrute[i]); ajoute_xfois_composeur_atomique_a_composition_atomique(1,compo,coco); inc(i); goto 111; end; if ((formulebrute[i] in ['A'..'Z']) and (formulebrute[i+1] in ['a'..'z']) and ( (formulebrute[i+2] in ['A'..'Z']) or (formulebrute[i+2]='['))) then begin if Donne_Numero_Atomique(formulebrute[i]+formulebrute[i+1])=0 then begin CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit; end; coco.coefficient:=1; coco.numero_atomique:=Donne_Numero_Atomique(formulebrute[i]+formulebrute[i+1]); ajoute_xfois_composeur_atomique_a_composition_atomique(1,compo,coco); inc(i,2); goto 111; end; if ((formulebrute[i] in ['A'..'Z']) and (formulebrute[i+1] in ['a'..'z']) and not( (formulebrute[i+2] in ['A'..'Z']) or (formulebrute[i+2] in ['0'..'9']) or (formulebrute[i+2]='[')) ) then begin CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit; end; if ((formulebrute[i] in ['A'..'Z']) and not( (formulebrute[i+1] in ['a'..'z']) or (formulebrute[i+1] in ['0'..'9']) or (formulebrute[i+1]='['))) then begin CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit; end; {indication de la charge: doit etre de la forme: [-], [2-], [+], [2+], etc...et doit etre placee a la fin} if formulebrute[i]='[' then begin if formulebrute[length(formulebrute)]<>']' then begin CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit; end; {cas d'une charge negative} if formulebrute[length(formulebrute)-1]='-' then begin if length(formulebrute)=i+2 then begin {charge du type [-]} coco.coefficient:=-1; coco.numero_atomique:=-1; ajoute_xfois_composeur_atomique_a_composition_atomique(1,compo,coco); goto 444; end; {charge du type [n-]} riri:=copy(formulebrute,i+1,length(formulebrute)-i-2); try strtoint(riri); except CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit; end; coco.coefficient:=-strtoint(riri); coco.numero_atomique:=-1; ajoute_xfois_composeur_atomique_a_composition_atomique(1,compo,coco); goto 444; end; {cas d'une charge positive} if formulebrute[length(formulebrute)-1]='+' then begin if length(formulebrute)=i+2 then begin {charge du type [-]} coco.coefficient:=1; coco.numero_atomique:=-1; ajoute_xfois_composeur_atomique_a_composition_atomique(1,compo,coco); goto 444; end; {charge du type [n+]} riri:=copy(formulebrute,i+1,length(formulebrute)-i-2); try strtoint(riri); except CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit; end; coco.coefficient:=strtoint(riri); coco.numero_atomique:=-1; ajoute_xfois_composeur_atomique_a_composition_atomique(1,compo,coco); goto 444; end; end; {fin analyze charge} {cas ou le nom de l'element fait 1 seul caractere} if ((formulebrute[i] in ['A'..'Z']) and (formulebrute[i+1] in ['0'..'9'])) then begin if Donne_Numero_Atomique(formulebrute[i])=0 then begin CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit; end; {element existant, on cherche le coefficient} {si la chaine finit juste apres:} if (i+1=length(formulebrute))then begin if (mystrtofloat(formulebrute[i+1])>0) then begin coco.coefficient:=mystrtofloat(formulebrute[i+1]); coco.numero_atomique:=Donne_Numero_Atomique(formulebrute[i]); ajoute_xfois_composeur_atomique_a_composition_atomique(1,compo,coco); end; goto 444; end; j:=1; while((i+1+j<=length(formulebrute)) and not ((formulebrute[i+1+j] in ['A'..'Z']) or (formulebrute[i+j+1]='['))) do inc(j); try essai:=mystrtofloat(copy(formulebrute,i+1,j)); except CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit end; if essai>0 then begin coco.coefficient:=essai; coco.numero_atomique:=Donne_Numero_Atomique(formulebrute[i]); ajoute_xfois_composeur_atomique_a_composition_atomique(1,compo,coco); end; i:=i+j+1; if i>length(formulebrute) then goto 444; goto 111; end; {cas ou le nom de l'element fait 2 caracteres} if ((formulebrute[i] in ['A'..'Z']) and (formulebrute[i+2] in ['0'..'9']) and (formulebrute[i+1] in ['a'..'z'])) then begin if Donne_Numero_Atomique(formulebrute[i]+formulebrute[i+1])=0 then begin CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit; end; {element existant, on cherche le coefficient} {si la chaine finit juste apres:} if i+2=length(formulebrute) then begin if mystrtofloat(formulebrute[i+2])>0 then begin coco.coefficient:=mystrtofloat(formulebrute[i+2]); coco.numero_atomique:=Donne_Numero_Atomique(formulebrute[i]+formulebrute[i+1]); ajoute_xfois_composeur_atomique_a_composition_atomique(1,compo,coco); end; goto 444; end; j:=1; while((i+2+j<=length(formulebrute)) and not( (formulebrute[i+2+j] in ['A'..'Z']) or (formulebrute[i+2+j]='['))) do inc(j); try essai:=mystrtofloat(copy(formulebrute,i+2,j)); except CompositionAtomiqueDeFormuleBruteExacte:=false; setlength(compo,0); exit end; if essai>0 then begin coco.coefficient:=essai; coco.numero_atomique:=Donne_Numero_Atomique(formulebrute[i]+formulebrute[i+1]); ajoute_xfois_composeur_atomique_a_composition_atomique(1,compo,coco); end; i:=i+j+2; if i>length(formulebrute) then goto 444; goto 111; end; 444: TrieArrayComposeurAtomique(compo); end; procedure ajoute_xfois_composeur_atomique_a_composition_atomique(x:float; var compo:array_composeurs_atomiques; com:composeur_atomique); var i:integer; label 110; begin for i:=1 to length(compo) do if compo[i-1].numero_atomique=com.numero_atomique then begin compo[i-1].coefficient:=compo[i-1].coefficient+com.coefficient*x; if compo[i-1].coefficient=0 then goto 110; exit; end; setlength(compo,length(compo)+1); compo[length(compo)-1].coefficient:=com.coefficient*x; compo[length(compo)-1].numero_atomique:=com.numero_atomique; exit; {cas ou un element disparait de la composition} 110: if i=length(compo) then begin setlength(compo, length(compo)-1); exit; end else begin compo[i-1].coefficient:=compo[length(compo)-1].coefficient; compo[i-1].numero_atomique:=compo[length(compo)-1].numero_atomique; setlength(compo, length(compo)-1); end; end; procedure ajoute_xfois_composition_atomique_a_composition_atomique (x:float; var somme:array_composeurs_atomiques; terme:array_composeurs_atomiques); {somme contient le 1er terme de la somme en entree, et la somme en sortie; terme est le second terme de la somme} var i:integer; begin for i:=1 to length(terme) do ajoute_xfois_composeur_atomique_a_composition_atomique(x,somme,terme[i-1]); end; function Donne_Numero_Atomique(s:string):integer; var i:integer; begin for i:=1 to nombre_atomes_classification do if s=tableau_periodique[i-1].symbole then begin Donne_Numero_Atomique:=i; exit; end; Donne_Numero_Atomique:=0; end; procedure trouve_tous_les_elements(liste:tstrings;exclus:tstringlist); var i,j,k:longint; nini:integer; nombre_reactifs,nombre_produits:integer; nouveau_trouve,tous_reactifs_presents,tous_produits_presents,a_exclure:boolean; label 999,888; begin for i:=1 to nombre_elements_base do elements_base_presents[i-1]:=false; for i:=1 to nombre_elements_gazeux do elements_gazeux_presents[i-1]:=false; for i:=1 to nombre_elements_aqueux do elements_aqueux_presents[i-1]:=false; for i:=1 to nombre_elements_mineraux do elements_solides_presents[i-1]:=false; for i:=1 to nombre_elements_organiques do elements_organiques_presents[i-1]:=false; {il y a au moins toujours H2O, H+ et OH-} elements_base_presents[indice_element_base('H2O')-1]:=true; elements_base_presents[indice_element_base('H[+]')-1]:=true; {on inclue ceux fournis} if liste.Count>0 then for i:=1 to liste.Count do begin j:=indice_element_base(liste.Strings[i-1]); if j<>0 then begin elements_base_presents[j-1]:=true; goto 888; end; { j:=indice_element_gazeux(liste.Strings[i-1]); if j<>0 then begin elements_gazeux_presents[j-1]:=true; goto 888; end;} j:=indice_element_aqueux(liste.Strings[i-1]); if j<>0 then begin elements_aqueux_presents[j-1]:=true; goto 888; end; j:=indice_element_mineral(liste.Strings[i-1]); if j<>0 then begin elements_solides_presents[j-1]:=true; goto 888; end; j:=indice_element_organique(liste.Strings[i-1]); if j<>0 then begin elements_organiques_presents[j-1]:=true; goto 888; end; 888: end; {recherche des nouveaux elements presents par balayage} repeat nouveau_trouve:=false; if not(blocage_redox) then for i:=1 to nombre_elements_aqueux do begin tous_reactifs_presents:=elements_aqueux_presents[i-1]; tous_produits_presents:=true; for j:=1 to tableau_elements_aqueux[i-1].nombre_composants do begin if tableau_elements_aqueux[i-1].composition[j-1].coefficient<0 then case tableau_elements_aqueux[i-1].composition[j-1].nature of debase: tous_reactifs_presents:=(tous_reactifs_presents AND elements_base_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]); aqueux: tous_reactifs_presents:=(tous_reactifs_presents AND elements_aqueux_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]); gaz: tous_reactifs_presents:=(tous_reactifs_presents AND elements_gazeux_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]); solide: tous_reactifs_presents:=(tous_reactifs_presents AND elements_solides_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]); organique: tous_reactifs_presents:=(tous_reactifs_presents AND elements_organiques_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]); end; { du case} if tableau_elements_aqueux[i-1].composition[j-1].coefficient>0 then case tableau_elements_aqueux[i-1].composition[j-1].nature of debase: tous_produits_presents:=(tous_produits_presents AND elements_base_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]); aqueux: tous_produits_presents:=(tous_produits_presents AND elements_aqueux_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]); gaz: tous_produits_presents:=(tous_produits_presents AND elements_gazeux_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]); solide: tous_produits_presents:=(tous_produits_presents AND elements_solides_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]); organique: tous_produits_presents:=(tous_produits_presents AND elements_organiques_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]); end; { du case} end; {de la boucle en j} if (tous_reactifs_presents and not(tous_produits_presents)) then begin a_exclure:=false; for j:=1 to tableau_elements_aqueux[i-1].nombre_composants do if tableau_elements_aqueux[i-1].composition[j-1].coefficient>0 then a_exclure:=a_exclure or ((exclus.indexof(tableau_elements_aqueux[i-1].composition[j-1].element)<>-1)); end; if (tous_reactifs_presents and not(tous_produits_presents) and not(a_exclure)) then begin for j:=1 to tableau_elements_aqueux[i-1].nombre_composants do if tableau_elements_aqueux[i-1].composition[j-1].coefficient>0 then case tableau_elements_aqueux[i-1].composition[j-1].nature of debase: elements_base_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; aqueux: elements_aqueux_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; gaz: elements_gazeux_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; solide: elements_solides_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; organique: elements_organiques_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; end; nouveau_trouve:=true; goto 999; end; if (not(tous_reactifs_presents) and (tous_produits_presents)) then begin a_exclure:=false; for j:=1 to tableau_elements_aqueux[i-1].nombre_composants do if tableau_elements_aqueux[i-1].composition[j-1].coefficient<0 then a_exclure:=a_exclure or ((exclus.indexof(tableau_elements_aqueux[i-1].composition[j-1].element)<>-1)); end; if (not(tous_reactifs_presents) and (tous_produits_presents) and not(a_exclure)) then begin for j:=1 to tableau_elements_aqueux[i-1].nombre_composants do if tableau_elements_aqueux[i-1].composition[j-1].coefficient<0 then case tableau_elements_aqueux[i-1].composition[j-1].nature of debase: elements_base_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; aqueux: elements_aqueux_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; gaz: elements_gazeux_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; solide: elements_solides_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; organique: elements_organiques_presents[tableau_elements_aqueux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; end; elements_aqueux_presents[i-1]:=true; nouveau_trouve:=true; goto 999; end; end; {de la boucle en i des elements aqueux} {boucle sur les gazeux} if not (blocage_gaz) then for i:=1 to nombre_elements_gazeux do begin tous_reactifs_presents:=elements_gazeux_presents[i-1]; tous_produits_presents:=true; for j:=1 to tableau_elements_gazeux[i-1].nombre_composants do begin if tableau_elements_gazeux[i-1].composition[j-1].coefficient<0 then case tableau_elements_gazeux[i-1].composition[j-1].nature of debase: tous_reactifs_presents:=(tous_reactifs_presents AND elements_base_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]); aqueux: tous_reactifs_presents:=(tous_reactifs_presents AND elements_aqueux_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]); gaz: tous_reactifs_presents:=(tous_reactifs_presents AND elements_gazeux_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]); solide: tous_reactifs_presents:=(tous_reactifs_presents AND elements_solides_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]); organique: tous_reactifs_presents:=(tous_reactifs_presents AND elements_organiques_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]); end; { du case} if tableau_elements_gazeux[i-1].composition[j-1].coefficient>0 then case tableau_elements_gazeux[i-1].composition[j-1].nature of debase: tous_produits_presents:=(tous_produits_presents AND elements_base_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]); aqueux: tous_produits_presents:=(tous_produits_presents AND elements_aqueux_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]); gaz: tous_produits_presents:=(tous_produits_presents AND elements_gazeux_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]); solide: tous_produits_presents:=(tous_produits_presents AND elements_solides_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]); organique: tous_produits_presents:=(tous_produits_presents AND elements_organiques_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]); end; { du case} end; {de la boucle en j} if (tous_reactifs_presents and not(tous_produits_presents)) then begin a_exclure:=false; for j:=1 to tableau_elements_gazeux[i-1].nombre_composants do if tableau_elements_gazeux[i-1].composition[j-1].coefficient>0 then a_exclure:=a_exclure or ((exclus.indexof(tableau_elements_gazeux[i-1].composition[j-1].element)<>-1)); end; if (tous_reactifs_presents and not(tous_produits_presents) and not(a_exclure)) then begin for j:=1 to tableau_elements_gazeux[i-1].nombre_composants do if tableau_elements_gazeux[i-1].composition[j-1].coefficient>0 then case tableau_elements_gazeux[i-1].composition[j-1].nature of debase: elements_base_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; aqueux: elements_aqueux_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; gaz: elements_gazeux_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; solide: elements_solides_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; organique: elements_organiques_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; end; nouveau_trouve:=true; goto 999; end; if (not(tous_reactifs_presents) and (tous_produits_presents)) then begin a_exclure:=false; for j:=1 to tableau_elements_gazeux[i-1].nombre_composants do if tableau_elements_gazeux[i-1].composition[j-1].coefficient<0 then a_exclure:=a_exclure or ((exclus.indexof(tableau_elements_gazeux[i-1].composition[j-1].element)<>-1)); end; if (not(tous_reactifs_presents) and (tous_produits_presents) and not(a_exclure)) then begin for j:=1 to tableau_elements_gazeux[i-1].nombre_composants do if tableau_elements_gazeux[i-1].composition[j-1].coefficient<0 then case tableau_elements_gazeux[i-1].composition[j-1].nature of debase: elements_base_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; aqueux: elements_aqueux_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; gaz: elements_gazeux_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; solide: elements_solides_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; organique: elements_organiques_presents[tableau_elements_gazeux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; end; elements_gazeux_presents[i-1]:=true; nouveau_trouve:=true; goto 999; end; end; {de la boucle en i des elements gazeux} {boucle sur les solides} if not(blocage_solide) then for i:=1 to nombre_elements_mineraux do begin tous_reactifs_presents:=elements_solides_presents[i-1]; tous_produits_presents:=true; for j:=1 to tableau_elements_mineraux[i-1].nombre_composants do begin if tableau_elements_mineraux[i-1].composition[j-1].coefficient<0 then case tableau_elements_mineraux[i-1].composition[j-1].nature of debase: tous_reactifs_presents:=(tous_reactifs_presents AND elements_base_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]); aqueux: tous_reactifs_presents:=(tous_reactifs_presents AND elements_aqueux_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]); gaz: tous_reactifs_presents:=(tous_reactifs_presents AND elements_gazeux_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]); solide: tous_reactifs_presents:=(tous_reactifs_presents AND elements_solides_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]); organique: tous_reactifs_presents:=(tous_reactifs_presents AND elements_organiques_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]); end; { du case} if tableau_elements_mineraux[i-1].composition[j-1].coefficient>0 then case tableau_elements_mineraux[i-1].composition[j-1].nature of debase: tous_produits_presents:=(tous_produits_presents AND elements_base_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]); aqueux: tous_produits_presents:=(tous_produits_presents AND elements_aqueux_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]); gaz: tous_produits_presents:=(tous_produits_presents AND elements_gazeux_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]); solide: tous_produits_presents:=(tous_produits_presents AND elements_solides_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]); organique: tous_produits_presents:=(tous_produits_presents AND elements_organiques_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]); end; { du case} end; {de la boucle en j} if (tous_reactifs_presents and not(tous_produits_presents)) then begin a_exclure:=false; for j:=1 to tableau_elements_mineraux[i-1].nombre_composants do if tableau_elements_mineraux[i-1].composition[j-1].coefficient>0 then a_exclure:=a_exclure or ((exclus.indexof(tableau_elements_mineraux[i-1].composition[j-1].element)<>-1)); end; if (tous_reactifs_presents and not(tous_produits_presents)and not(a_exclure)) then begin for j:=1 to tableau_elements_mineraux[i-1].nombre_composants do if tableau_elements_mineraux[i-1].composition[j-1].coefficient>0 then case tableau_elements_mineraux[i-1].composition[j-1].nature of debase: elements_base_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; aqueux: elements_aqueux_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; gaz: elements_gazeux_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; solide: elements_solides_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; organique: elements_organiques_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; end; nouveau_trouve:=true; goto 999; end; if (not(tous_reactifs_presents) and (tous_produits_presents)) then begin a_exclure:=false; for j:=1 to tableau_elements_mineraux[i-1].nombre_composants do if tableau_elements_mineraux[i-1].composition[j-1].coefficient<0 then a_exclure:=a_exclure or ((exclus.indexof(tableau_elements_mineraux[i-1].composition[j-1].element)<>-1)); end; if (not(tous_reactifs_presents) and (tous_produits_presents) and not(a_exclure)) then begin for j:=1 to tableau_elements_mineraux[i-1].nombre_composants do if tableau_elements_mineraux[i-1].composition[j-1].coefficient<0 then case tableau_elements_mineraux[i-1].composition[j-1].nature of debase: elements_base_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; aqueux: elements_aqueux_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; gaz: elements_gazeux_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; solide: elements_solides_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; organique: elements_organiques_presents[tableau_elements_mineraux[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; end; elements_solides_presents[i-1]:=true; nouveau_trouve:=true; goto 999; end; end; {de la boucle en i des elements solides} {boucle sur les organiques} if not(blocage_organique) then for i:=1 to nombre_elements_organiques do begin tous_reactifs_presents:=elements_organiques_presents[i-1]; tous_produits_presents:=true; for j:=1 to tableau_elements_organiques[i-1].nombre_composants do begin if tableau_elements_organiques[i-1].composition[j-1].coefficient<0 then case tableau_elements_organiques[i-1].composition[j-1].nature of debase: tous_reactifs_presents:=(tous_reactifs_presents AND elements_base_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]); aqueux: tous_reactifs_presents:=(tous_reactifs_presents AND elements_aqueux_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]); gaz: tous_reactifs_presents:=(tous_reactifs_presents AND elements_gazeux_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]); solide: tous_reactifs_presents:=(tous_reactifs_presents AND elements_solides_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]); organique: tous_reactifs_presents:=(tous_reactifs_presents AND elements_organiques_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]); end; { du case} if tableau_elements_organiques[i-1].composition[j-1].coefficient>0 then case tableau_elements_organiques[i-1].composition[j-1].nature of debase: tous_produits_presents:=(tous_produits_presents AND elements_base_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]); aqueux: tous_produits_presents:=(tous_produits_presents AND elements_aqueux_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]); gaz: tous_produits_presents:=(tous_produits_presents AND elements_gazeux_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]); solide: tous_produits_presents:=(tous_produits_presents AND elements_solides_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]); organique: tous_produits_presents:=(tous_produits_presents AND elements_organiques_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]); end; { du case} end; {de la boucle en j} if (tous_reactifs_presents and not(tous_produits_presents)) then begin a_exclure:=false; for j:=1 to tableau_elements_organiques[i-1].nombre_composants do if tableau_elements_organiques[i-1].composition[j-1].coefficient>0 then a_exclure:=a_exclure or ((exclus.indexof(tableau_elements_organiques[i-1].composition[j-1].element)<>-1)); end; if (tous_reactifs_presents and not(tous_produits_presents) and not(a_exclure)) then begin for j:=1 to tableau_elements_organiques[i-1].nombre_composants do if tableau_elements_organiques[i-1].composition[j-1].coefficient>0 then case tableau_elements_organiques[i-1].composition[j-1].nature of debase: elements_base_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; aqueux: elements_aqueux_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; gaz: elements_gazeux_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; solide: elements_solides_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; organique: elements_organiques_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; end; nouveau_trouve:=true; goto 999; end; if (not(tous_reactifs_presents) and (tous_produits_presents)) then begin a_exclure:=false; for j:=1 to tableau_elements_organiques[i-1].nombre_composants do if tableau_elements_organiques[i-1].composition[j-1].coefficient<0 then a_exclure:=a_exclure or ((exclus.indexof(tableau_elements_organiques[i-1].composition[j-1].element)<>-1)); end; if (not(tous_reactifs_presents) and (tous_produits_presents) and not(a_exclure)) then begin for j:=1 to tableau_elements_organiques[i-1].nombre_composants do if tableau_elements_organiques[i-1].composition[j-1].coefficient<0 then case tableau_elements_organiques[i-1].composition[j-1].nature of debase: elements_base_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; aqueux: elements_aqueux_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; gaz: elements_gazeux_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; solide: elements_solides_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; organique: elements_organiques_presents[tableau_elements_organiques[i-1].composition[j-1]. indice_dans_sa_base-1]:=true; end; elements_organiques_presents[i-1]:=true; nouveau_trouve:=true; goto 999; end; end; {de la boucle en i des elements organiques} 999: until not(nouveau_trouve); end; function indice_tableau_anions_simples(s:string):longint; var i:longint; begin if s='' then begin result:=0; exit; end; i:=0; while( ((s<>tableau_anions_simples[i].identifiant)) and (i<nb_anions_simples-1)) do inc(i); if ((i<nb_anions_simples-1) or (tableau_anions_simples[nb_anions_simples-1].identifiant=s)) then result:=i+1 else result:=0; end; function indice_tableau_cations_simples(s:string):longint; var i:longint; begin if s='' then begin result:=0; exit; end; i:=0; while( ((s<>tableau_cations_simples[i].identifiant)) and (i<nb_cations_simples-1)) do inc(i); if ((i<nb_cations_simples-1) or (tableau_cations_simples[nb_cations_simples-1].identifiant=s)) then result:=i+1 else result:=0; end; function indice_tableau_complexes(s:string):longint; var i:longint; begin if s='' then begin result:=0; exit; end; i:=0; while( ((s<>tableau_complexes[i].identifiant)) and (i<nb_complexes-1)) do inc(i); if ((i<nb_complexes-1) or (tableau_complexes[nb_complexes-1].identifiant=s)) then result:=i+1 else result:=0; end; function indice_tableau_ab(s:string):longint; var i:longint; begin if s='' then begin result:=0; exit; end; i:=0; while( ((s<>tableau_ab[i].identifiant)) and (i<nb_ab-1)) do inc(i); if ((i<nb_ab-1) or (tableau_ab[nb_ab-1].identifiant=s)) then result:=i+1 else result:=0; end; function indice_tableau_ions(s:string):longint; var i:longint; begin if s='' then begin result:=0; exit; end; i:=0; while( ((s<>tableau_ions[i].identifiant)) and (i<nb_ions-1)) do inc(i); if ((i<nb_ions-1) or (tableau_ions[nb_ions-1].identifiant=s)) then result:=i+1 else result:=0; end; function indice_tableau_molecules(s:string):longint; var i:longint; begin if s='' then begin result:=0; exit; end; i:=0; while( ((s<>tableau_molecules[i].identifiant)) and (i<nb_molecules-1)) do inc(i); if ((i<nb_molecules-1) or (tableau_molecules[nb_molecules-1].identifiant=s)) then result:=i+1 else result:=0; end; function indice_element_base(s:string):longint; var i:longint; begin if s='' then begin indice_element_base:=0; exit; end; i:=0; while( ((s<>tableau_elements_base[i].identifiant)) and (i<nombre_elements_base-1)) do inc(i); if ((i<nombre_elements_base-1) or (tableau_elements_base[nombre_elements_base-1].identifiant=s)) then indice_element_base:=i+1 else indice_element_base:=0; end; function indice_element_gazeux(s:string):longint; var i:longint; begin if s='' then begin indice_element_gazeux:=0; exit; end; i:=0; while( (s<>tableau_elements_gazeux[i].identifiant) and (s<>tableau_elements_gazeux[i].formule) and (i<nombre_elements_gazeux-1)) do inc(i); if ((i<nombre_elements_gazeux-1) or (tableau_elements_gazeux[nombre_elements_gazeux-1].identifiant=s) or (tableau_elements_gazeux[nombre_elements_gazeux-1].formule=s)) then indice_element_gazeux:=i+1 else indice_element_gazeux:=0; end; function indice_element_aqueux(s:string):longint; var i:longint; begin if s='' then begin indice_element_aqueux:=0; exit; end; i:=0; while( (s<>tableau_elements_aqueux[i].identifiant) and (s<>tableau_elements_aqueux[i].formule) and (i<nombre_elements_aqueux-1)) do inc(i); if ((i<nombre_elements_aqueux-1) or (tableau_elements_aqueux[nombre_elements_aqueux-1].identifiant=s) or (tableau_elements_aqueux[nombre_elements_aqueux-1].formule=s)) then indice_element_aqueux:=i+1 else indice_element_aqueux:=0; end; function indice_element_mineral(s:string):longint; var i:longint; begin if s='' then begin indice_element_mineral:=0; exit; end; i:=0; while( (s<>tableau_elements_mineraux[i].identifiant) and (s<>tableau_elements_mineraux[i].formule) and (i<nombre_elements_mineraux-1)) do inc(i); if ((i<nombre_elements_mineraux-1) or (tableau_elements_mineraux[nombre_elements_mineraux-1].identifiant=s) or (tableau_elements_mineraux[nombre_elements_mineraux-1].formule=s)) then indice_element_mineral:=i+1 else indice_element_mineral:=0; end; function indice_element_organique(s:string):longint; var i:longint; begin if s='' then begin indice_element_organique:=0; exit; end; i:=0; while( (s<>tableau_elements_organiques[i].identifiant) and (s<>tableau_elements_organiques[i].formule) and (i<nombre_elements_organiques-1)) do inc(i); if ((i<nombre_elements_organiques-1) or (tableau_elements_organiques[nombre_elements_organiques-1].identifiant=s) or (tableau_elements_organiques[nombre_elements_organiques-1].formule=s)) then indice_element_organique:=i+1 else indice_element_organique:=0; end; procedure lecture_base; var f:textfile; s,s1,s2,s3,s4,s11,s12,s000:string; i,j,k,compteur:longint; tous_identifies,yaduo2:boolean; toto:TCharEncStream; liste_lignes_fichier_base:tstringlist; label 145,156,167,189,1234,2345,3456,5678; procedure myreadln(var s:string); begin s:=liste_lignes_fichier_base[compteur]; inc(compteur); end; procedure myreadln1(var i:integer); begin i:=strtoint(liste_lignes_fichier_base[compteur]); inc(compteur); end; procedure myreadln2(var x:extended); begin x:=mystrtofloat(liste_lignes_fichier_base[compteur]); inc(compteur); end; begin {<modif version 1.10} {lecture de la base des atomes} if not(fileexists(repertoire_executable+'atomes.ato')) then begin application.messagebox('Fichier des atomes non trouvé...','Hélas !',mb_ok); halt; end; assignfile(f,(repertoire_executable+'atomes.ato')); reset(f); {modif version 1.10>} while not(eof(f)) do begin readln(f,j); tableau_periodique[j-1].numero_atomique:=j; readln(f,tableau_periodique[j-1].symbole); readln(f,tableau_periodique[j-1].nom); end; closefile(f); {fin lecture base atomes} nombre_elements_base:=-1; nombre_elements_gazeux:=-1; nombre_elements_aqueux:=-1; nombre_elements_mineraux:=-1; nombre_elements_organiques:=-1; nombre_elements_organiques_acide:=0; nombre_elements_organiques_aminoacide:=0; nombre_elements_organiques_alc:=0; nombre_elements_organiques_alcool:=0; nombre_elements_organiques_benzene:=0; nombre_elements_organiques_amid_amin:=0; nombre_elements_organiques_complexe:=0; nombre_elements_organiques_aldehyd_cetone:=0; nb_cations_simples:=0; nb_anions_simples:=0; nb_complexes:=0; nb_ions:=0; nb_molecules:=0; nb_ab:=0; {<modif version 1.10} {lecture de la base des especes} if not(fileexists(repertoire_executable+'base.equ')) then begin application.messagebox('Fichier de la base non trouvé...','Hélas !',mb_ok); halt; end; toto:=TCharEncStream.create; try toto.LoadFromFile((repertoire_executable+'base.equ')); except application.MessageBox(pchar('Impossible de charger '+repertoire_executable+'base.equ'), 'Hélas...',mb_ok); exit; end; liste_lignes_fichier_base:=tstringlist.Create; liste_lignes_fichier_base.Text:=toto.UTF8Text; toto.Free; compteur:=0; //assignfile(f,repertoire_executable+'base.equ'); //reset(f); {modif version 1.10>} //reset(f); repeat myreadln(s); until (pos('<Version>',s)<>0); myreadln1(version_base); repeat myreadln(s); until (pos('<Date>',s)<>0); myreadln(date_base); repeat myreadln(s); until (pos('<Base>',s)<>0); myreadln(s11); {doit contenir <Element>} while(pos('</Base>',s11)=0) do begin myreadln(s12); {doit contenir <Identifiant>} myreadln(s2); {doit contenir l'identifiant} myreadln(s12); {doit contenir </Identifiant>} myreadln(s12); {doit contenir <Typegenerique>} myreadln(s4); {doit contenir le type generique} myreadln(s12); {doit contenir </Typegenerique>} if s4='de_base' then begin inc(nombre_elements_base); if nombre_elements_base>=length(tableau_elements_base) then setlength(tableau_elements_base,length(tableau_elements_base)+1); tableau_elements_base[nombre_elements_base].identifiant:=s2; myreadln(s); if pos('<Synonyme>',s)<> 0 then begin myreadln(s); tableau_elements_base[nombre_elements_base].synonyme:=s; myreadln(s); myreadln(s); end else tableau_elements_base[nombre_elements_base].synonyme:=''; tableau_elements_base[nombre_elements_base].st:=non_defini; if pos('<Soustype>',s)<>0 then begin myreadln(s); if s='complexe' then tableau_elements_base[nombre_elements_base].st:=complexe_i; if s='acide' then tableau_elements_base[nombre_elements_base].st:=acide_i; if s='cation_simple' then tableau_elements_base[nombre_elements_base].st:=cation_simple; if s='anion_simple' then tableau_elements_base[nombre_elements_base].st:=anion_simple; if s='ion' then tableau_elements_base[nombre_elements_base].st:=ion; if s='molecule' then tableau_elements_base[nombre_elements_base].st:=molecule; myreadln(s); {s doit contenir </Soustype>} myreadln(s); end; if pos('<Charge>',s)<>0 then begin myreadln1(tableau_elements_base[nombre_elements_base].charge); myreadln(s); {doit contenir </Charge>} myreadln(s); end else tableau_elements_base[nombre_elements_base].charge:=0; if pos('<Conductivite>',s)<>0 then begin myreadln2(tableau_elements_base[nombre_elements_base].conductivite); myreadln(s); {doit contenir </Conductivite>} myreadln(s); end else tableau_elements_base[nombre_elements_base].conductivite:=0; tableau_elements_base[nombre_elements_base].mu0_25:=0; tableau_elements_base[nombre_elements_base].nombre_composants:=0; if ((pos('<Atomes constitutifs>',s)<>0) or (pos('<Formulebrute>',s)<>0)) then begin tableau_elements_base[nombre_elements_base].nombre_composants:=0; setlength(tableau_elements_base[nombre_elements_base].composition_atomique, tableau_elements_base[nombre_elements_base].nombre_composants); myreadln(s); repeat inc(tableau_elements_base[nombre_elements_base].nombre_composants); setlength(tableau_elements_base[nombre_elements_base].composition_atomique, tableau_elements_base[nombre_elements_base].nombre_composants); tableau_elements_base[nombre_elements_base].composition_atomique[ tableau_elements_base[nombre_elements_base].nombre_composants-1].coefficient:= mystrtofloat(s); myreadln(s); tableau_elements_base[nombre_elements_base].composition_atomique[ tableau_elements_base[nombre_elements_base].nombre_composants-1].numero_atomique:= Donne_Numero_Atomique(s); myreadln(s); until ((pos('</Atomes constitutifs>',s)<>0) or (pos('</Formulebrute>',s)<>0)); myreadln(s); end; if pos('<Massemolaire>',s)<>0 then begin myreadln2(tableau_elements_base[nombre_elements_base].masse_molaire); myreadln(s); {doit contenir </Massemolaire>} myreadln(s); end; if pos('<Representant de l''element>',s)<>0 then begin if tableau_elements_base[nombre_elements_base].nombre_composants=0 then begin tableau_elements_base[nombre_elements_base].nombre_composants:=1; setlength(tableau_elements_base[nombre_elements_base].composition_atomique, tableau_elements_base[nombre_elements_base].nombre_composants); tableau_elements_base[nombre_elements_base].composition_atomique[ tableau_elements_base[nombre_elements_base].nombre_composants-1].coefficient:=1; myreadln(s); tableau_elements_base[nombre_elements_base].composition_atomique[ tableau_elements_base[nombre_elements_base].nombre_composants-1].numero_atomique:= Donne_Numero_Atomique(s); end else myreadln(s); myreadln(s); {doit contenir </Representant de l'element>} myreadln(s); {doit contenir 'rayon'} end; if pos('<Rayon>',s)<>0 then begin myreadln2(tableau_elements_base[nombre_elements_base].rayon); myreadln(s); {doit contenir </Rayon>} myreadln(s); end else tableau_elements_base[nombre_elements_base].rayon:=0; if tableau_elements_base[nombre_elements_base].st=cation_simple then begin inc(nb_cations_simples); if nb_cations_simples>=length(tableau_cations_simples) then setlength(tableau_cations_simples,length(tableau_cations_simples)+10); tableau_cations_simples[nb_cations_simples-1].identifiant:= tableau_elements_base[nombre_elements_base].identifiant; end; if tableau_elements_base[nombre_elements_base].st=anion_simple then begin inc(nb_anions_simples); if nb_anions_simples>=length(tableau_anions_simples) then setlength(tableau_anions_simples,length(tableau_anions_simples)+10); tableau_anions_simples[nb_anions_simples-1].identifiant:= tableau_elements_base[nombre_elements_base].identifiant; end; if tableau_elements_base[nombre_elements_base].st=ion then begin inc(nb_ions); if nb_ions>=length(tableau_ions) then setlength(tableau_ions,length(tableau_ions)+10); tableau_ions[nb_ions-1].identifiant:= tableau_elements_base[nombre_elements_base].identifiant; end; if tableau_elements_base[nombre_elements_base].st=molecule then begin inc(nb_molecules); if nb_molecules>=length(tableau_molecules) then setlength(tableau_molecules,length(tableau_molecules)+10); tableau_molecules[nb_molecules-1].identifiant:= tableau_elements_base[nombre_elements_base].identifiant; end; if tableau_elements_base[nombre_elements_base].st=acide_i then begin inc(nb_ab); if nb_ab>=length(tableau_ab) then setlength(tableau_ab,length(tableau_ab)+10); tableau_ab[nb_ab-1].identifiant:= tableau_elements_base[nombre_elements_base].identifiant; end; if tableau_elements_base[nombre_elements_base].charge<>0 then begin inc(tableau_elements_base[nombre_elements_base].nombre_composants); setlength(tableau_elements_base[nombre_elements_base].composition_atomique, tableau_elements_base[nombre_elements_base].nombre_composants); tableau_elements_base[nombre_elements_base].composition_atomique[ tableau_elements_base[nombre_elements_base].nombre_composants-1].coefficient:= tableau_elements_base[nombre_elements_base].charge; tableau_elements_base[nombre_elements_base].composition_atomique[ tableau_elements_base[nombre_elements_base].nombre_composants-1].numero_atomique:= -1; end; end; if s4='gazeux' then begin inc(nombre_elements_gazeux); if nombre_elements_gazeux>=length(tableau_elements_gazeux) then setlength(tableau_elements_gazeux,length(tableau_elements_gazeux)+10); tableau_elements_gazeux[nombre_elements_gazeux].identifiant:=s2; myreadln(s); if pos('<Synonyme>',s)<> 0 then begin myreadln(s); tableau_elements_gazeux[nombre_elements_gazeux].synonyme:=s; myreadln(s); myreadln(s); end else tableau_elements_gazeux[nombre_elements_gazeux].synonyme:=''; if pos('<Formule brute>',s)<>0 then begin myreadln(tableau_elements_gazeux[nombre_elements_gazeux].formule); myreadln(s); {doit contenir </Formule brute> } end else tableau_elements_gazeux[nombre_elements_gazeux].formule:=''; {doit contenir "composition"} tableau_elements_gazeux[nombre_elements_gazeux].nombre_composants:=0; if pos('<Composition>',s)<>0 then begin myreadln(s); tableau_elements_gazeux[nombre_elements_gazeux].identifie:=false; while pos('</Composition>',s)=0 do begin inc(tableau_elements_gazeux[nombre_elements_gazeux].nombre_composants); setlength(tableau_elements_gazeux[nombre_elements_gazeux].composition, tableau_elements_gazeux[nombre_elements_gazeux].nombre_composants); tableau_elements_gazeux[nombre_elements_gazeux].composition[ tableau_elements_gazeux[nombre_elements_gazeux].nombre_composants-1]. coefficient:=mystrtofloat(s); myreadln(tableau_elements_gazeux[nombre_elements_gazeux].composition[ tableau_elements_gazeux[nombre_elements_gazeux].nombre_composants-1]. element); myreadln(s); end; end; myreadln(s); {doit contenir <Thermo>} myreadln(s); {doit contenir <Log K>} if pos('<Log K>',s)<>0 then begin myreadln(s); while ((pos('</Log K>',s)=0) and (s<>'')) do begin myreadln(s1); if s1='25' then tableau_elements_gazeux[nombre_elements_gazeux].logk_25:= mystrtofloat(s); myreadln(s); end; myreadln(s); end; {s doit contenir "enthalpy"} if pos('<Enthalpie>',s)<>0 then begin myreadln2(tableau_elements_gazeux[nombre_elements_gazeux].enthalpie); tableau_elements_gazeux[nombre_elements_gazeux].enthalpie_connue:=true; myreadln(s); {doit contenir </Enthalpie>} myreadln(s); {doit contenir </Thermo>} end else begin tableau_elements_gazeux[nombre_elements_gazeux].enthalpie:=0; tableau_elements_gazeux[nombre_elements_gazeux].enthalpie_connue:=false; end; myreadln(s); {doit contenir </Element>} end; if s4='aqueux' then begin inc(nombre_elements_aqueux); if nombre_elements_aqueux>=length(tableau_elements_aqueux) then setlength(tableau_elements_aqueux,length(tableau_elements_aqueux)+10); tableau_elements_aqueux[nombre_elements_aqueux].identifiant:=s2; myreadln(s); if pos('<Synonyme>',s)<> 0 then begin myreadln(s); tableau_elements_aqueux[nombre_elements_aqueux].synonyme:=s; myreadln(s); myreadln(s); end else tableau_elements_aqueux[nombre_elements_aqueux].synonyme:=''; tableau_elements_aqueux[nombre_elements_aqueux].st:=non_defini; if pos('<Soustype>',s)<>0 then begin myreadln(s); if s='complexe' then tableau_elements_aqueux[nombre_elements_aqueux].st:=complexe_i; if s='acide' then tableau_elements_aqueux[nombre_elements_aqueux].st:=acide_i; if s='cation_simple' then tableau_elements_aqueux[nombre_elements_aqueux].st:=cation_simple; if s='anion_simple' then tableau_elements_aqueux[nombre_elements_aqueux].st:=anion_simple; if s='ion' then tableau_elements_aqueux[nombre_elements_aqueux].st:=ion; if s='molecule' then tableau_elements_aqueux[nombre_elements_aqueux].st:=molecule; myreadln(s); {contient </Soustype>} myreadln(s); end; if pos('<Charge>',s)<>0 then begin myreadln1(tableau_elements_aqueux[nombre_elements_aqueux].charge); myreadln(s); {</Charge>} myreadln(s); end else tableau_elements_aqueux[nombre_elements_aqueux].charge:=0; if pos('<Conductivite>',s)<>0 then begin myreadln2(tableau_elements_aqueux[nombre_elements_aqueux].conductivite); myreadln(s); {</Conductivite>} myreadln(s); end else tableau_elements_aqueux[nombre_elements_aqueux].conductivite:=0; if pos('<Formulebrute>',s)<>0 then begin myreadln(tableau_elements_aqueux[nombre_elements_aqueux].formule); myreadln(s); {</Formulebrute>} myreadln(s); end else tableau_elements_aqueux[nombre_elements_aqueux].formule:=''; if (tableau_elements_aqueux[nombre_elements_aqueux].st=acide_i) then begin inc(nb_ab); if nb_ab>=length(tableau_ab) then setlength(tableau_ab,length(tableau_ab)+10); tableau_ab[nb_ab-1].identifiant:= tableau_elements_aqueux[nombre_elements_aqueux].identifiant; tableau_ab[nb_ab-1].formule := tableau_elements_aqueux[nombre_elements_aqueux].formule; end; if ( (tableau_elements_aqueux[nombre_elements_aqueux].st=non_defini) or (tableau_elements_aqueux[nombre_elements_aqueux].st=complexe_i)) then begin inc(nb_complexes); if nb_complexes>=length(tableau_complexes) then setlength(tableau_complexes,length(tableau_complexes)+10); tableau_complexes[nb_complexes-1].identifiant:= tableau_elements_aqueux[nombre_elements_aqueux].identifiant; tableau_complexes[nb_complexes-1].formule := tableau_elements_aqueux[nombre_elements_aqueux].formule; end; if tableau_elements_aqueux[nombre_elements_aqueux].st=cation_simple then begin inc(nb_cations_simples); if nb_cations_simples>=length(tableau_cations_simples) then setlength(tableau_cations_simples,length(tableau_cations_simples)+10); tableau_cations_simples[nb_cations_simples-1].identifiant:= tableau_elements_aqueux[nombre_elements_aqueux].identifiant; tableau_cations_simples[nb_cations_simples-1].formule := tableau_elements_aqueux[nombre_elements_aqueux].formule; end; if tableau_elements_aqueux[nombre_elements_aqueux].st=anion_simple then begin inc(nb_anions_simples); if nb_anions_simples>=length(tableau_anions_simples) then setlength(tableau_anions_simples,length(tableau_anions_simples)+10); tableau_anions_simples[nb_anions_simples-1].identifiant:= tableau_elements_aqueux[nombre_elements_aqueux].identifiant; tableau_anions_simples[nb_anions_simples-1].formule := tableau_elements_aqueux[nombre_elements_aqueux].formule; end; if tableau_elements_aqueux[nombre_elements_aqueux].st=ion then begin inc(nb_ions); if nb_ions>=length(tableau_ions) then setlength(tableau_ions,length(tableau_ions)+10); tableau_ions[nb_ions-1].identifiant:= tableau_elements_aqueux[nombre_elements_aqueux].identifiant; tableau_ions[nb_ions-1].formule := tableau_elements_aqueux[nombre_elements_aqueux].formule; end; if pos('<Rayon>',s)<>0 then begin myreadln2(tableau_elements_aqueux[nombre_elements_aqueux].rayon); myreadln(s); {</Rayon>} myreadln(s); end else tableau_elements_aqueux[nombre_elements_aqueux].rayon:=0; tableau_elements_aqueux[nombre_elements_aqueux].identifie:=false; if pos('<Composition>',s)<>0 then begin {doit contenir "composition"} tableau_elements_aqueux[nombre_elements_aqueux].nombre_composants:=0; myreadln(s); while pos('</Composition>',s)=0 do begin inc(tableau_elements_aqueux[nombre_elements_aqueux].nombre_composants); setlength(tableau_elements_aqueux[nombre_elements_aqueux].composition, tableau_elements_aqueux[nombre_elements_aqueux].nombre_composants); tableau_elements_aqueux[nombre_elements_aqueux].composition[ tableau_elements_aqueux[nombre_elements_aqueux].nombre_composants-1]. coefficient:=mystrtofloat(s); myreadln(tableau_elements_aqueux[nombre_elements_aqueux].composition[ tableau_elements_aqueux[nombre_elements_aqueux].nombre_composants-1]. element); myreadln(s); end; myreadln(s); end; if pos('<Thermo>',s)<>0 then begin myreadln(s); {doit contenir "logK="} if pos('<Log K>',s)<>0 then begin myreadln(s); while ((pos('</Log K>',s)=0) and (s<>'')) do begin myreadln(s1); if s1='25' then tableau_elements_aqueux[nombre_elements_aqueux].logk_25:= mystrtofloat(s); myreadln(s); end; myreadln(s); end; {s doit contenir "enthalpy"} if pos('<Enthalpie>',s)<>0 then begin myreadln2(tableau_elements_aqueux[nombre_elements_aqueux].enthalpie); tableau_elements_aqueux[nombre_elements_aqueux].enthalpie_connue:=true; myreadln(s); {</Enthalpie>} myreadln(s); {doit contenir </Thermo>} end else begin tableau_elements_aqueux[nombre_elements_aqueux].enthalpie:=0; tableau_elements_aqueux[nombre_elements_aqueux].enthalpie_connue:=false; end; end; {de thermo} myreadln(s); {</Element>} end; if s4='mineral' then begin inc(nombre_elements_mineraux); if nombre_elements_mineraux>=length(tableau_elements_mineraux) then setlength(tableau_elements_mineraux,length(tableau_elements_mineraux)+10); tableau_elements_mineraux[nombre_elements_mineraux].identifiant:=s2; myreadln(s); if pos('<Synonyme>',s)<> 0 then begin myreadln(s); tableau_elements_mineraux[nombre_elements_mineraux].synonyme:=s; myreadln(s); myreadln(s); end else tableau_elements_mineraux[nombre_elements_mineraux].synonyme:=''; if pos('<Formulebrute>',s)<>0 then begin myreadln(tableau_elements_mineraux[nombre_elements_mineraux].formule); myreadln(s); {</Formulebrute>} myreadln(s); end else tableau_elements_mineraux[nombre_elements_mineraux].formule:=''; if pos('<Massevolumique>',s)<>0 then begin myreadln2(tableau_elements_mineraux[nombre_elements_mineraux].masse_volumique); myreadln(s); {doit contenir </Massevolumique>} myreadln(s); {<Composition>} end; tableau_elements_mineraux[nombre_elements_mineraux].nombre_composants:=0; if pos('<Composition>',s)<>0 then begin tableau_elements_mineraux[nombre_elements_mineraux].identifie:=false; myreadln(s); while pos('</Composition>',s)=0 do begin inc(tableau_elements_mineraux[nombre_elements_mineraux].nombre_composants); setlength(tableau_elements_mineraux[nombre_elements_mineraux].composition, tableau_elements_mineraux[nombre_elements_mineraux].nombre_composants); tableau_elements_mineraux[nombre_elements_mineraux].composition[ tableau_elements_mineraux[nombre_elements_mineraux].nombre_composants-1]. coefficient:=mystrtofloat(s); myreadln(tableau_elements_mineraux[nombre_elements_mineraux].composition[ tableau_elements_mineraux[nombre_elements_mineraux].nombre_composants-1]. element); myreadln(s); end; myreadln(s); end; if pos('<Thermo>',s)<>0 then begin myreadln(s); {doit contenir "logK="} if pos('<Log K>',s)<>0 then begin myreadln(s); while ((pos('</Log K>',s)=0) and (s<>'')) do begin myreadln(s1); if s1='25' then tableau_elements_mineraux[nombre_elements_mineraux].logk_25:= mystrtofloat(s); myreadln(s); end; myreadln(s); end; { de log k } {s doit contenir "enthalpy"} if pos('<Enthalpie>',s)<>0 then begin myreadln2(tableau_elements_mineraux[nombre_elements_mineraux].enthalpie); tableau_elements_mineraux[nombre_elements_mineraux].enthalpie_connue:=true; myreadln(s); {</Enthalpie>} myreadln(s); {doit contenir </Thermo>} end else begin tableau_elements_mineraux[nombre_elements_mineraux].enthalpie:=0; tableau_elements_mineraux[nombre_elements_mineraux].enthalpie_connue:=false; end; end; {de thermo} myreadln(s); {</Element>} end; if s4='organique' then begin inc(nombre_elements_organiques); if nombre_elements_organiques>=length(tableau_elements_organiques) then setlength(tableau_elements_organiques,length(tableau_elements_organiques)+10); tableau_elements_organiques[nombre_elements_organiques].identifiant:=s2; myreadln(s); if pos('<Synonyme>',s)<> 0 then begin myreadln(s); tableau_elements_organiques[nombre_elements_organiques].synonyme:=s; myreadln(s); myreadln(s); end else tableau_elements_organiques[nombre_elements_organiques].synonyme:=''; if pos('<Genre>',s)<>0 then begin myreadln(s2); if s2='acide' then tableau_elements_organiques[nombre_elements_organiques].genre:=acide; if s2='aminoacide' then tableau_elements_organiques[nombre_elements_organiques].genre:=aminoacide; if s2='amid_amin' then tableau_elements_organiques[nombre_elements_organiques].genre:=amid_amin; if s2='alcool' then tableau_elements_organiques[nombre_elements_organiques].genre:=alcool; if s2='alc' then tableau_elements_organiques[nombre_elements_organiques].genre:=alc; if s2='benzene' then tableau_elements_organiques[nombre_elements_organiques].genre:=benzene; if s2='aldehyd_cetone' then tableau_elements_organiques[nombre_elements_organiques].genre:=aldehyd_cetone; if s2='complexe' then tableau_elements_organiques[nombre_elements_organiques].genre:=complexe; myreadln(s); myreadln(s); end else tableau_elements_organiques[nombre_elements_organiques].genre:=complexe; case tableau_elements_organiques[nombre_elements_organiques].genre of acide: inc(nombre_elements_organiques_acide); aminoacide: inc(nombre_elements_organiques_aminoacide); alc: inc(nombre_elements_organiques_alc); alcool: inc(nombre_elements_organiques_alcool); benzene: inc(nombre_elements_organiques_benzene); complexe: inc(nombre_elements_organiques_complexe); amid_amin: inc(nombre_elements_organiques_amid_amin); aldehyd_cetone: inc(nombre_elements_organiques_aldehyd_cetone); end; if pos('<Charge>',s)<>0 then begin myreadln1(tableau_elements_organiques[nombre_elements_organiques].charge); myreadln(s); myreadln(s); end else tableau_elements_organiques[nombre_elements_organiques].charge:=0; if pos('<Conductivite>',s)<>0 then begin myreadln2(tableau_elements_organiques[nombre_elements_organiques].conductivite); myreadln(s); myreadln(s); end else tableau_elements_organiques[nombre_elements_organiques].conductivite:=0; if pos('<Formulebrute>',s)<>0 then begin myreadln(tableau_elements_organiques[nombre_elements_organiques].formule); myreadln(s); myreadln(s); end else tableau_elements_organiques[nombre_elements_organiques].formule:=''; if pos('<Rayon>',s)<>0 then begin myreadln2(tableau_elements_organiques[nombre_elements_organiques].rayon); myreadln(s); myreadln(s); end else tableau_elements_organiques[nombre_elements_organiques].rayon:=0; if pos('<Composition>',s)<>0 then begin tableau_elements_organiques[nombre_elements_organiques].identifie:=false; tableau_elements_organiques[nombre_elements_organiques].nombre_composants:=0; myreadln(s); yaduo2:=false; while pos('</Composition>',s)=0 do begin inc(tableau_elements_organiques[nombre_elements_organiques].nombre_composants); setlength(tableau_elements_organiques[nombre_elements_organiques].composition, tableau_elements_organiques[nombre_elements_organiques].nombre_composants); tableau_elements_organiques[nombre_elements_organiques].composition[ tableau_elements_organiques[nombre_elements_organiques].nombre_composants-1]. coefficient:=mystrtofloat(s); myreadln(tableau_elements_organiques[nombre_elements_organiques].composition[ tableau_elements_organiques[nombre_elements_organiques].nombre_composants-1]. element); yaduo2:=yaduo2 or (tableau_elements_organiques[nombre_elements_organiques].composition[ tableau_elements_organiques[nombre_elements_organiques].nombre_composants-1]. element='O2(aq)'); myreadln(s); end; myreadln(s); end; if pos('<Thermo>',s)<>0 then begin myreadln(s); {doit contenir "logK="} if pos('<Log K>',s)<>0 then begin myreadln(s); while ((pos('</Log K>',s)=0) and (s<>'')) do begin myreadln(s1); if s1='25' then tableau_elements_organiques[nombre_elements_organiques].logk_25:= mystrtofloat(s); myreadln(s); end; myreadln(s); end; {s doit contenir "enthalpy"} if pos('<Enthalpie>',s)<>0 then begin myreadln2(tableau_elements_organiques[nombre_elements_organiques].enthalpie); tableau_elements_organiques[nombre_elements_organiques].enthalpie_connue:=true; myreadln(s); {</Enthalpie>} myreadln(s); {doit contenir </Thermo>} end else begin tableau_elements_organiques[nombre_elements_organiques].enthalpie:=0; tableau_elements_organiques[nombre_elements_organiques].enthalpie_connue:=false; end; end; {de thermo} myreadln(s); {</Element>} end; myreadln(s11); end; // closefile(f); liste_lignes_fichier_base.Free; inc(nombre_elements_base); inc(nombre_elements_gazeux); inc(nombre_elements_aqueux); inc(nombre_elements_mineraux); inc(nombre_elements_organiques); {base lue en entier; maintenant, il faut determiner la nature et la place des elements composants} for i:=1 to nombre_elements_gazeux do for j:=1 to tableau_elements_gazeux[i-1].nombre_composants do begin k:=indice_element_base(tableau_elements_gazeux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_gazeux[i-1].composition[j-1].nature:=debase; tableau_elements_gazeux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 145; end; { k:=indice_element_gazeux(tableau_elements_gazeux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_gazeux[i-1].composition[j-1].nature:=gaz; tableau_elements_gazeux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 145; end; } k:=indice_element_aqueux(tableau_elements_gazeux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_gazeux[i-1].composition[j-1].nature:=aqueux; tableau_elements_gazeux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 145; end; k:=indice_element_mineral(tableau_elements_gazeux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_gazeux[i-1].composition[j-1].nature:=solide; tableau_elements_gazeux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 145; end; k:=indice_element_organique(tableau_elements_gazeux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_gazeux[i-1].composition[j-1].nature:=organique; tableau_elements_gazeux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 145; end; application.messagebox('element non trouve','attention',mb_ok); 145: end; for i:=1 to nombre_elements_aqueux do for j:=1 to tableau_elements_aqueux[i-1].nombre_composants do begin k:=indice_element_base(tableau_elements_aqueux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_aqueux[i-1].composition[j-1].nature:=debase; tableau_elements_aqueux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 156; end; {k:=indice_element_gazeux(tableau_elements_aqueux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_aqueux[i-1].composition[j-1].nature:=gaz; tableau_elements_aqueux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 156; end; } k:=indice_element_aqueux(tableau_elements_aqueux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_aqueux[i-1].composition[j-1].nature:=aqueux; tableau_elements_aqueux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 156; end; k:=indice_element_mineral(tableau_elements_aqueux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_aqueux[i-1].composition[j-1].nature:=solide; tableau_elements_aqueux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 156; end; k:=indice_element_organique(tableau_elements_aqueux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_aqueux[i-1].composition[j-1].nature:=organique; tableau_elements_aqueux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 156; end; application.messagebox('element non trouve','attention',mb_ok); 156: end; for i:=1 to nombre_elements_mineraux do for j:=1 to tableau_elements_mineraux[i-1].nombre_composants do begin k:=indice_element_base(tableau_elements_mineraux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_mineraux[i-1].composition[j-1].nature:=debase; tableau_elements_mineraux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 167; end; {k:=indice_element_gazeux(tableau_elements_mineraux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_mineraux[i-1].composition[j-1].nature:=gaz; tableau_elements_mineraux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 167; end; } k:=indice_element_aqueux(tableau_elements_mineraux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_mineraux[i-1].composition[j-1].nature:=aqueux; tableau_elements_mineraux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 167; end; k:=indice_element_mineral(tableau_elements_mineraux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_mineraux[i-1].composition[j-1].nature:=solide; tableau_elements_mineraux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 167; end; k:=indice_element_organique(tableau_elements_mineraux[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_mineraux[i-1].composition[j-1].nature:=organique; tableau_elements_mineraux[i-1].composition[j-1].indice_dans_sa_base:=k; goto 167; end; application.messagebox('element non trouve','attention',mb_ok); 167: end; for i:=1 to nombre_elements_organiques do for j:=1 to tableau_elements_organiques[i-1].nombre_composants do begin k:=indice_element_base(tableau_elements_organiques[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_organiques[i-1].composition[j-1].nature:=debase; tableau_elements_organiques[i-1].composition[j-1].indice_dans_sa_base:=k; goto 189; end; {k:=indice_element_gazeux(tableau_elements_organiques[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_organiques[i-1].composition[j-1].nature:=gaz; tableau_elements_organiques[i-1].composition[j-1].indice_dans_sa_base:=k; goto 189; end; } k:=indice_element_aqueux(tableau_elements_organiques[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_organiques[i-1].composition[j-1].nature:=aqueux; tableau_elements_organiques[i-1].composition[j-1].indice_dans_sa_base:=k; goto 189; end; k:=indice_element_mineral(tableau_elements_organiques[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_organiques[i-1].composition[j-1].nature:=solide; tableau_elements_organiques[i-1].composition[j-1].indice_dans_sa_base:=k; goto 189; end; k:=indice_element_organique(tableau_elements_organiques[i-1].composition[j-1].element); if k<>0 then begin tableau_elements_organiques[i-1].composition[j-1].nature:=organique; tableau_elements_organiques[i-1].composition[j-1].indice_dans_sa_base:=k; goto 189; end; application.messagebox('element non trouve','attention',mb_ok); 189: end; {identificaton des dependances, calcul des masses molaires et potentiels chimiques} repeat tous_identifies:=true; {les gaz} for i:=1 to nombre_elements_gazeux do if tableau_elements_gazeux[i-1].identifie=false then begin tableau_elements_gazeux[i-1].identifie:=true; tableau_elements_gazeux[i-1].masse_molaire:=0; tableau_elements_gazeux[i-1].mu0_25:=-constante_gaz_parfaits*298.15*ln(10)* tableau_elements_gazeux[i-1].logk_25; setlength(tableau_elements_gazeux[i-1].composition_atomique,0); for j:=1 to tableau_elements_gazeux[i-1].nombre_composants do begin if tableau_elements_gazeux[i-1].composition[j-1].nature=debase then begin tableau_elements_gazeux[i-1].masse_molaire:= tableau_elements_gazeux[i-1].masse_molaire+ tableau_elements_gazeux[i-1].composition[j-1].coefficient* tableau_elements_base[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_gazeux[i-1].mu0_25:= tableau_elements_gazeux[i-1].mu0_25+ tableau_elements_gazeux[i-1].composition[j-1].coefficient* tableau_elements_base[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_gazeux[i-1].composition[j-1].coefficient, tableau_elements_gazeux[i-1].composition_atomique, tableau_elements_base[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 1234; end; if tableau_elements_gazeux[i-1].composition[j-1].nature=gaz then if tableau_elements_gazeux[tableau_elements_gazeux[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_gazeux[i-1].masse_molaire:= tableau_elements_gazeux[i-1].masse_molaire+ tableau_elements_gazeux[i-1].composition[j-1].coefficient* tableau_elements_gazeux[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_gazeux[i-1].mu0_25:= tableau_elements_gazeux[i-1].mu0_25+ tableau_elements_gazeux[i-1].composition[j-1].coefficient* tableau_elements_gazeux[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_gazeux[i-1].composition[j-1].coefficient, tableau_elements_gazeux[i-1].composition_atomique, tableau_elements_gazeux[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 1234; end; if tableau_elements_gazeux[i-1].composition[j-1].nature=aqueux then if tableau_elements_aqueux[tableau_elements_gazeux[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_gazeux[i-1].masse_molaire:= tableau_elements_gazeux[i-1].masse_molaire+ tableau_elements_gazeux[i-1].composition[j-1].coefficient* tableau_elements_aqueux[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_gazeux[i-1].mu0_25:= tableau_elements_gazeux[i-1].mu0_25+ tableau_elements_gazeux[i-1].composition[j-1].coefficient* tableau_elements_aqueux[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_gazeux[i-1].composition[j-1].coefficient, tableau_elements_gazeux[i-1].composition_atomique, tableau_elements_aqueux[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 1234; end; if tableau_elements_gazeux[i-1].composition[j-1].nature=solide then if tableau_elements_mineraux[tableau_elements_gazeux[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_gazeux[i-1].masse_molaire:= tableau_elements_gazeux[i-1].masse_molaire+ tableau_elements_gazeux[i-1].composition[j-1].coefficient* tableau_elements_mineraux[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_gazeux[i-1].mu0_25:= tableau_elements_gazeux[i-1].mu0_25+ tableau_elements_gazeux[i-1].composition[j-1].coefficient* tableau_elements_mineraux[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_gazeux[i-1].composition[j-1].coefficient, tableau_elements_gazeux[i-1].composition_atomique, tableau_elements_mineraux[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 1234; end; if tableau_elements_gazeux[i-1].composition[j-1].nature=organique then if tableau_elements_organiques[tableau_elements_gazeux[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_gazeux[i-1].masse_molaire:= tableau_elements_gazeux[i-1].masse_molaire+ tableau_elements_gazeux[i-1].composition[j-1].coefficient* tableau_elements_organiques[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_gazeux[i-1].mu0_25:= tableau_elements_gazeux[i-1].mu0_25+ tableau_elements_gazeux[i-1].composition[j-1].coefficient* tableau_elements_organiques[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_gazeux[i-1].composition[j-1].coefficient, tableau_elements_gazeux[i-1].composition_atomique, tableau_elements_organiques[tableau_elements_gazeux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 1234; end; tableau_elements_gazeux[i-1].identifie:=false; tous_identifies:=false; 1234: end; end; {les aqueux} for i:=1 to nombre_elements_aqueux do if tableau_elements_aqueux[i-1].identifie=false then begin tableau_elements_aqueux[i-1].identifie:=true; tableau_elements_aqueux[i-1].masse_molaire:=0; tableau_elements_aqueux[i-1].mu0_25:=-constante_gaz_parfaits*298.15*ln(10)* tableau_elements_aqueux[i-1].logk_25; setlength(tableau_elements_aqueux[i-1].composition_atomique,0); for j:=1 to tableau_elements_aqueux[i-1].nombre_composants do begin if tableau_elements_aqueux[i-1].composition[j-1].nature=debase then begin tableau_elements_aqueux[i-1].masse_molaire:= tableau_elements_aqueux[i-1].masse_molaire+ tableau_elements_aqueux[i-1].composition[j-1].coefficient* tableau_elements_base[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_aqueux[i-1].mu0_25:= tableau_elements_aqueux[i-1].mu0_25+ tableau_elements_aqueux[i-1].composition[j-1].coefficient* tableau_elements_base[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_aqueux[i-1].composition[j-1].coefficient, tableau_elements_aqueux[i-1].composition_atomique, tableau_elements_base[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 2345; end; if tableau_elements_aqueux[i-1].composition[j-1].nature=gaz then if tableau_elements_gazeux[tableau_elements_aqueux[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_aqueux[i-1].masse_molaire:= tableau_elements_aqueux[i-1].masse_molaire+ tableau_elements_aqueux[i-1].composition[j-1].coefficient* tableau_elements_gazeux[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_aqueux[i-1].mu0_25:= tableau_elements_aqueux[i-1].mu0_25+ tableau_elements_aqueux[i-1].composition[j-1].coefficient* tableau_elements_gazeux[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_aqueux[i-1].composition[j-1].coefficient, tableau_elements_aqueux[i-1].composition_atomique, tableau_elements_gazeux[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 2345; end; if tableau_elements_aqueux[i-1].composition[j-1].nature=aqueux then if tableau_elements_aqueux[tableau_elements_aqueux[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_aqueux[i-1].masse_molaire:= tableau_elements_aqueux[i-1].masse_molaire+ tableau_elements_aqueux[i-1].composition[j-1].coefficient* tableau_elements_aqueux[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_aqueux[i-1].mu0_25:= tableau_elements_aqueux[i-1].mu0_25+ tableau_elements_aqueux[i-1].composition[j-1].coefficient* tableau_elements_aqueux[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_aqueux[i-1].composition[j-1].coefficient, tableau_elements_aqueux[i-1].composition_atomique, tableau_elements_aqueux[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 2345; end; if tableau_elements_aqueux[i-1].composition[j-1].nature=solide then if tableau_elements_mineraux[tableau_elements_aqueux[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_aqueux[i-1].masse_molaire:= tableau_elements_aqueux[i-1].masse_molaire+ tableau_elements_aqueux[i-1].composition[j-1].coefficient* tableau_elements_mineraux[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_aqueux[i-1].mu0_25:= tableau_elements_aqueux[i-1].mu0_25+ tableau_elements_aqueux[i-1].composition[j-1].coefficient* tableau_elements_mineraux[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_aqueux[i-1].composition[j-1].coefficient, tableau_elements_aqueux[i-1].composition_atomique, tableau_elements_mineraux[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 2345; end; if tableau_elements_aqueux[i-1].composition[j-1].nature=organique then if tableau_elements_organiques[tableau_elements_aqueux[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_aqueux[i-1].masse_molaire:= tableau_elements_aqueux[i-1].masse_molaire+ tableau_elements_aqueux[i-1].composition[j-1].coefficient* tableau_elements_organiques[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_aqueux[i-1].mu0_25:= tableau_elements_aqueux[i-1].mu0_25+ tableau_elements_aqueux[i-1].composition[j-1].coefficient* tableau_elements_organiques[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_aqueux[i-1].composition[j-1].coefficient, tableau_elements_aqueux[i-1].composition_atomique, tableau_elements_organiques[tableau_elements_aqueux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 2345; end; tableau_elements_aqueux[i-1].identifie:=false; tous_identifies:=false; 2345: end; end; {les solides} for i:=1 to nombre_elements_mineraux do if tableau_elements_mineraux[i-1].identifie=false then begin tableau_elements_mineraux[i-1].identifie:=true; tableau_elements_mineraux[i-1].masse_molaire:=0; tableau_elements_mineraux[i-1].mu0_25:=-constante_gaz_parfaits*298.15*ln(10)* tableau_elements_mineraux[i-1].logk_25; setlength(tableau_elements_mineraux[i-1].composition_atomique,0); for j:=1 to tableau_elements_mineraux[i-1].nombre_composants do begin if tableau_elements_mineraux[i-1].composition[j-1].nature=debase then begin tableau_elements_mineraux[i-1].masse_molaire:= tableau_elements_mineraux[i-1].masse_molaire+ tableau_elements_mineraux[i-1].composition[j-1].coefficient* tableau_elements_base[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_mineraux[i-1].mu0_25:= tableau_elements_mineraux[i-1].mu0_25+ tableau_elements_mineraux[i-1].composition[j-1].coefficient* tableau_elements_base[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_mineraux[i-1].composition[j-1].coefficient, tableau_elements_mineraux[i-1].composition_atomique, tableau_elements_base[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 3456; end; if tableau_elements_mineraux[i-1].composition[j-1].nature=gaz then if tableau_elements_gazeux[tableau_elements_mineraux[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_mineraux[i-1].masse_molaire:= tableau_elements_mineraux[i-1].masse_molaire+ tableau_elements_mineraux[i-1].composition[j-1].coefficient* tableau_elements_gazeux[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_mineraux[i-1].mu0_25:= tableau_elements_mineraux[i-1].mu0_25+ tableau_elements_mineraux[i-1].composition[j-1].coefficient* tableau_elements_gazeux[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_mineraux[i-1].composition[j-1].coefficient, tableau_elements_mineraux[i-1].composition_atomique, tableau_elements_gazeux[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 3456; end; if tableau_elements_mineraux[i-1].composition[j-1].nature=aqueux then if tableau_elements_aqueux[tableau_elements_mineraux[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_mineraux[i-1].masse_molaire:= tableau_elements_mineraux[i-1].masse_molaire+ tableau_elements_mineraux[i-1].composition[j-1].coefficient* tableau_elements_aqueux[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_mineraux[i-1].mu0_25:= tableau_elements_mineraux[i-1].mu0_25+ tableau_elements_mineraux[i-1].composition[j-1].coefficient* tableau_elements_aqueux[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_mineraux[i-1].composition[j-1].coefficient, tableau_elements_mineraux[i-1].composition_atomique, tableau_elements_aqueux[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 3456; end; if tableau_elements_mineraux[i-1].composition[j-1].nature=solide then if tableau_elements_mineraux[tableau_elements_mineraux[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_mineraux[i-1].masse_molaire:= tableau_elements_mineraux[i-1].masse_molaire+ tableau_elements_mineraux[i-1].composition[j-1].coefficient* tableau_elements_mineraux[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_mineraux[i-1].mu0_25:= tableau_elements_mineraux[i-1].mu0_25+ tableau_elements_mineraux[i-1].composition[j-1].coefficient* tableau_elements_mineraux[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_mineraux[i-1].composition[j-1].coefficient, tableau_elements_mineraux[i-1].composition_atomique, tableau_elements_mineraux[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 3456; end; if tableau_elements_mineraux[i-1].composition[j-1].nature=organique then if tableau_elements_organiques[tableau_elements_mineraux[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_mineraux[i-1].masse_molaire:= tableau_elements_mineraux[i-1].masse_molaire+ tableau_elements_mineraux[i-1].composition[j-1].coefficient* tableau_elements_organiques[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_mineraux[i-1].mu0_25:= tableau_elements_mineraux[i-1].mu0_25+ tableau_elements_mineraux[i-1].composition[j-1].coefficient* tableau_elements_organiques[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_mineraux[i-1].composition[j-1].coefficient, tableau_elements_mineraux[i-1].composition_atomique, tableau_elements_organiques[tableau_elements_mineraux[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 3456; end; tableau_elements_mineraux[i-1].identifie:=false; tous_identifies:=false; 3456: end; end; {les organiques} for i:=1 to nombre_elements_organiques do if tableau_elements_organiques[i-1].identifie=false then begin tableau_elements_organiques[i-1].identifie:=true; tableau_elements_organiques[i-1].masse_molaire:=0; tableau_elements_organiques[i-1].mu0_25:=-constante_gaz_parfaits*298.15*ln(10)* tableau_elements_organiques[i-1].logk_25; setlength(tableau_elements_organiques[i-1].composition_atomique,0); for j:=1 to tableau_elements_organiques[i-1].nombre_composants do begin if tableau_elements_organiques[i-1].composition[j-1].nature=debase then begin tableau_elements_organiques[i-1].masse_molaire:= tableau_elements_organiques[i-1].masse_molaire+ tableau_elements_organiques[i-1].composition[j-1].coefficient* tableau_elements_base[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_organiques[i-1].mu0_25:= tableau_elements_organiques[i-1].mu0_25+ tableau_elements_organiques[i-1].composition[j-1].coefficient* tableau_elements_base[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_organiques[i-1].composition[j-1].coefficient, tableau_elements_organiques[i-1].composition_atomique, tableau_elements_base[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 5678; end; if tableau_elements_organiques[i-1].composition[j-1].nature=gaz then if tableau_elements_gazeux[tableau_elements_organiques[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_organiques[i-1].masse_molaire:= tableau_elements_organiques[i-1].masse_molaire+ tableau_elements_organiques[i-1].composition[j-1].coefficient* tableau_elements_gazeux[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_organiques[i-1].mu0_25:= tableau_elements_organiques[i-1].mu0_25+ tableau_elements_organiques[i-1].composition[j-1].coefficient* tableau_elements_gazeux[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_organiques[i-1].composition[j-1].coefficient, tableau_elements_organiques[i-1].composition_atomique, tableau_elements_gazeux[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 5678; end; if tableau_elements_organiques[i-1].composition[j-1].nature=aqueux then if tableau_elements_aqueux[tableau_elements_organiques[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_organiques[i-1].masse_molaire:= tableau_elements_organiques[i-1].masse_molaire+ tableau_elements_organiques[i-1].composition[j-1].coefficient* tableau_elements_aqueux[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_organiques[i-1].mu0_25:= tableau_elements_organiques[i-1].mu0_25+ tableau_elements_organiques[i-1].composition[j-1].coefficient* tableau_elements_aqueux[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_organiques[i-1].composition[j-1].coefficient, tableau_elements_organiques[i-1].composition_atomique, tableau_elements_aqueux[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 5678; end; if tableau_elements_organiques[i-1].composition[j-1].nature=solide then if tableau_elements_mineraux[tableau_elements_organiques[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_organiques[i-1].masse_molaire:= tableau_elements_organiques[i-1].masse_molaire+ tableau_elements_organiques[i-1].composition[j-1].coefficient* tableau_elements_mineraux[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_organiques[i-1].mu0_25:= tableau_elements_organiques[i-1].mu0_25+ tableau_elements_organiques[i-1].composition[j-1].coefficient* tableau_elements_mineraux[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_organiques[i-1].composition[j-1].coefficient, tableau_elements_organiques[i-1].composition_atomique, tableau_elements_mineraux[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 5678; end; if tableau_elements_organiques[i-1].composition[j-1].nature=organique then if tableau_elements_organiques[tableau_elements_organiques[i-1].composition[j-1] .indice_dans_sa_base-1].identifie=true then begin tableau_elements_organiques[i-1].masse_molaire:= tableau_elements_organiques[i-1].masse_molaire+ tableau_elements_organiques[i-1].composition[j-1].coefficient* tableau_elements_organiques[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].masse_molaire; tableau_elements_organiques[i-1].mu0_25:= tableau_elements_organiques[i-1].mu0_25+ tableau_elements_organiques[i-1].composition[j-1].coefficient* tableau_elements_organiques[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].mu0_25; ajoute_xfois_composition_atomique_a_composition_atomique (tableau_elements_organiques[i-1].composition[j-1].coefficient, tableau_elements_organiques[i-1].composition_atomique, tableau_elements_organiques[tableau_elements_organiques[i-1]. composition[j-1].indice_dans_sa_base-1].composition_atomique); goto 5678; end; tableau_elements_organiques[i-1].identifie:=false; tous_identifies:=false; 5678: end; end; until tous_identifies=true; for i:=1 to nombre_elements_base do begin TrieArrayComposeurAtomique(tableau_elements_base[i-1].composition_atomique); tableau_elements_base[i-1].nombre_composants:= length(tableau_elements_base[i-1].composition_atomique); end; for i:=1 to nombre_elements_gazeux do begin TrieArrayComposeurAtomique(tableau_elements_gazeux[i-1].composition_atomique); tableau_elements_gazeux[i-1].nombre_composants_atomiques:= length(tableau_elements_gazeux[i-1].composition_atomique); end; for i:=1 to nombre_elements_aqueux do begin TrieArrayComposeurAtomique(tableau_elements_aqueux[i-1].composition_atomique); tableau_elements_aqueux[i-1].nombre_composants_atomiques:= length(tableau_elements_aqueux[i-1].composition_atomique); end; for i:=1 to nombre_elements_mineraux do begin TrieArrayComposeurAtomique(tableau_elements_mineraux[i-1].composition_atomique); tableau_elements_mineraux[i-1].nombre_composants_atomiques:= length(tableau_elements_mineraux[i-1].composition_atomique); end; for i:=1 to nombre_elements_organiques do begin TrieArrayComposeurAtomique(tableau_elements_organiques[i-1].composition_atomique); tableau_elements_organiques[i-1].nombre_composants_atomiques:= length(tableau_elements_organiques[i-1].composition_atomique); end; setlength(elements_base_presents,length(tableau_elements_base)); setlength(elements_gazeux_presents,length(tableau_elements_gazeux)); setlength(elements_aqueux_presents,length(tableau_elements_aqueux)); setlength(elements_solides_presents,length(tableau_elements_mineraux)); setlength(elements_organiques_presents,length(tableau_elements_organiques)); {on complete les tableaux destines a une partie de l'affichage} for i:=1 to nb_ab do case donnenaturereactif(tableau_ab[i-1].identifiant,k) of debase: begin tableau_ab[i-1].masse_molaire:=tableau_elements_base[k-1].masse_molaire; tableau_ab[i-1].synonyme:=tableau_elements_base[k-1].synonyme; tableau_ab[i-1].conductivite:=tableau_elements_base[k-1].conductivite; tableau_ab[i-1].charge:=tableau_elements_base[k-1].charge; end; aqueux: begin tableau_ab[i-1].masse_molaire:=tableau_elements_aqueux[k-1].masse_molaire; tableau_ab[i-1].synonyme:=tableau_elements_aqueux[k-1].synonyme; tableau_ab[i-1].conductivite:=tableau_elements_aqueux[k-1].conductivite; tableau_ab[i-1].charge:=tableau_elements_aqueux[k-1].charge; end; end; for i:=1 to nb_anions_simples do case donnenaturereactif(tableau_anions_simples[i-1].identifiant,k) of debase: begin tableau_anions_simples[i-1].masse_molaire:=tableau_elements_base[k-1].masse_molaire; tableau_anions_simples[i-1].synonyme:=tableau_elements_base[k-1].synonyme; tableau_anions_simples[i-1].conductivite:=tableau_elements_base[k-1].conductivite; tableau_anions_simples[i-1].charge:=tableau_elements_base[k-1].charge; end; aqueux: begin tableau_anions_simples[i-1].masse_molaire:=tableau_elements_aqueux[k-1].masse_molaire; tableau_anions_simples[i-1].synonyme:=tableau_elements_aqueux[k-1].synonyme; tableau_anions_simples[i-1].conductivite:=tableau_elements_aqueux[k-1].conductivite; tableau_anions_simples[i-1].charge:=tableau_elements_aqueux[k-1].charge; end; end; for i:=1 to nb_cations_simples do case donnenaturereactif(tableau_cations_simples[i-1].identifiant,k) of debase: begin tableau_cations_simples[i-1].masse_molaire:=tableau_elements_base[k-1].masse_molaire; tableau_cations_simples[i-1].synonyme:=tableau_elements_base[k-1].synonyme; tableau_cations_simples[i-1].conductivite:=tableau_elements_base[k-1].conductivite; tableau_cations_simples[i-1].charge:=tableau_elements_base[k-1].charge; end; aqueux: begin tableau_cations_simples[i-1].masse_molaire:=tableau_elements_aqueux[k-1].masse_molaire; tableau_cations_simples[i-1].synonyme:=tableau_elements_aqueux[k-1].synonyme; tableau_cations_simples[i-1].conductivite:=tableau_elements_aqueux[k-1].conductivite; tableau_cations_simples[i-1].charge:=tableau_elements_aqueux[k-1].charge; end; end; for i:=1 to nb_complexes do case donnenaturereactif(tableau_complexes[i-1].identifiant,k) of debase: begin tableau_complexes[i-1].masse_molaire:=tableau_elements_base[k-1].masse_molaire; tableau_complexes[i-1].synonyme:=tableau_elements_base[k-1].synonyme; tableau_complexes[i-1].conductivite:=tableau_elements_base[k-1].conductivite; tableau_complexes[i-1].charge:=tableau_elements_base[k-1].charge; end; aqueux: begin tableau_complexes[i-1].masse_molaire:=tableau_elements_aqueux[k-1].masse_molaire; tableau_complexes[i-1].synonyme:=tableau_elements_aqueux[k-1].synonyme; tableau_complexes[i-1].conductivite:=tableau_elements_aqueux[k-1].conductivite; tableau_complexes[i-1].charge:=tableau_elements_aqueux[k-1].charge; end; end; for i:=1 to nb_ions do case donnenaturereactif(tableau_ions[i-1].identifiant,k) of debase: begin tableau_ions[i-1].masse_molaire:=tableau_elements_base[k-1].masse_molaire; tableau_ions[i-1].synonyme:=tableau_elements_base[k-1].synonyme; tableau_ions[i-1].conductivite:=tableau_elements_base[k-1].conductivite; tableau_ions[i-1].charge:=tableau_elements_base[k-1].charge; end; aqueux: begin tableau_ions[i-1].masse_molaire:=tableau_elements_aqueux[k-1].masse_molaire; tableau_ions[i-1].synonyme:=tableau_elements_aqueux[k-1].synonyme; tableau_ions[i-1].conductivite:=tableau_elements_aqueux[k-1].conductivite; tableau_ions[i-1].charge:=tableau_elements_aqueux[k-1].charge; end; end; for i:=1 to nb_molecules do case donnenaturereactif(tableau_molecules[i-1].identifiant,k) of debase: begin tableau_molecules[i-1].masse_molaire:=tableau_elements_base[k-1].masse_molaire; tableau_molecules[i-1].synonyme:=tableau_elements_base[k-1].synonyme; tableau_molecules[i-1].conductivite:=tableau_elements_base[k-1].conductivite; tableau_molecules[i-1].charge:=tableau_elements_base[k-1].charge; end; aqueux: begin tableau_molecules[i-1].masse_molaire:=tableau_elements_aqueux[k-1].masse_molaire; tableau_molecules[i-1].synonyme:=tableau_elements_aqueux[k-1].synonyme; tableau_molecules[i-1].conductivite:=tableau_elements_aqueux[k-1].conductivite; tableau_molecules[i-1].charge:=tableau_elements_aqueux[k-1].charge; end; end; end; begin {<ajout version 1.10} //repertoire_executable:=extractfilepath(application.ExeName); {ajout version 1.10>} decimalseparator:='.'; setlength(tableau_elements_base,87); setlength(tableau_elements_mineraux,1140); setlength(tableau_elements_gazeux,119); setlength(tableau_elements_aqueux,1333); setlength(tableau_elements_organiques,638); setlength(tableau_cations_simples,0); setlength(tableau_anions_simples,0); setlength(tableau_complexes,0); setlength(tableau_ions,0); setlength(tableau_molecules,0); setlength(tableau_ab,0); setlength(tableau_periodique,nombre_atomes_classification); lecture_base; end. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit26b.lrs�������������������������������������������������������������������������0000750�0001750�0001750�00000011576�13147330070�016100� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm26b','FORMDATA',[ 'TPF0'#8'TForm26b'#7'Form26b'#4'Left'#3#218#2#6'Height'#3#182#1#3'Top'#3#183#0 +#5'Width'#3'v'#2#13'ActiveControl'#7#16'Editformulebrute'#11'BorderIcons'#11 +#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6 +#22'Recherche dans la base'#12'ClientHeight'#3#182#1#11'ClientWidth'#3'v'#2#8 +'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2' +'.0'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSi' +'deTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3'Top'#2#10#5'Width'#3 +'|'#1#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6'6E' +'ntrez tout ou partie de l''indentifiant ou du synonyme'#10'Font.Color'#7#7 +'clBlack'#10'Font.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#11'P' +'arentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label3'#22'AnchorSideLeft.Co' +'ntrol'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Si' +'de'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#2'('#5'Width'#3'U'#1 +#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6'4 Exemp' +'les: '#195#169'thano'#195#175'que Acide pentanedio'#195#175'que '#10 +'Font.Color'#7#7'clBlack'#10'Font.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6 +'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label2'#22'Anc' +'horSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#7'BitBtn1'#18'A' +'nchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#3#199#0 +#5'Width'#3#210#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'C' +'aption'#6'#Puis cliquez sur l''esp'#195#169'ce choisie:'#11'ParentColor'#8#0 +#0#5'TEdit'#16'Editformulebrute'#22'AnchorSideLeft.Control'#7#5'Owner'#21'An' +'chorSideTop.Control'#7#6'Label3'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'A' +'nchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 +'Left'#2#10#6'Height'#2#28#3'Top'#2'F'#5'Width'#3'l'#2#7'Anchors'#11#5'akTop' +#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2 +#10#8'TabOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLeft.Control'#7#5 +'Owner'#21'AnchorSideTop.Control'#7#16'Editformulebrute'#18'AnchorSideTop.Si' +'de'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#7'BitBtn2'#4'Left'#2#10#6 +'Height'#2'Q'#3'Top'#2'l'#5'Width'#3#207#1#7'Anchors'#11#5'akTop'#6'akLeft'#7 +'akRight'#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#19'Border' +'Spacing.Right'#2#10#7'Caption'#6#8'Chercher'#7'Default'#9#10'Glyph.Data'#10 +#226#1#0#0#222#1#0#0'BM'#222#1#0#0#0#0#0#0'v'#0#0#0'('#0#0#0'$'#0#0#0#18#0#0 +#0#1#0#4#0#0#0#0#0'h'#1#0#0#18#11#0#0#18#11#0#0#16#0#0#0#16#0#0#0#0#0#0#0#0#0 +#128#0#0#128#0#0#0#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0#192#192#192#0 +#128#128#128#0#0#0#255#0#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0#255#255 +#0#0#255#255#255#0'333333333333333333'#0#0'333333333333'#243'33333'#0#0'334C' +'33333338'#143'33333'#0#0'33B$3333333'#131'8'#243'3333'#0#0'34""C33333833' +#143'3333'#0#0'3B""$33333'#131'338'#243'333'#0#0'4"*""C3338'#243'8'#243'3' +#143'333'#0#0'2"'#163#162'"C3338'#243#131#143'3'#143'333'#0#0':*3:"$3338'#248 +'38'#243'8'#243'33'#0#0'3'#163'33'#162'"C333'#131'33'#143'3'#143'33'#0#0'333' +'3:"$3333338'#243'8'#243'3'#0#0'33333'#162'"C333333'#143'3'#143'3'#0#0'33333' +':"$3333338'#243'8'#243#0#0'333333'#162'"C333333'#143'3'#143#0#0'333333:"C33' +'33338'#243#143#0#0'3333333'#162'#3333333'#143#131#0#0'3333333:3333333383'#0 +#0'333333333333333333'#0#0#9'NumGlyphs'#2#2#7'OnClick'#7#12'BitBtn1Click'#8 +'TabOrder'#2#1#0#0#11'TStringGrid'#10'sgreactifs'#22'AnchorSideLeft.Control' +#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7 +#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Si' +'de'#7#9'asrBottom'#4'Left'#2#10#6'Height'#3#209#0#4'Hint'#6'DPour s'#195#169 +'lectionner un r'#195#169'actif, cliquez sur la ligne correspondante.'#3'Top' +#3#229#0#5'Width'#3'b'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBot' +'tom'#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpac' +'ing.Right'#2#10#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#2#9'OnMous' +'eUp'#7#17'sgreactifsMouseUp'#0#0#7'TBitBtn'#7'BitBtn2'#21'AnchorSideTop.Con' +'trol'#7#7'BitBtn1'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight' +'.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#227#1 +#6'Height'#2'Q'#3'Top'#2'l'#5'Width'#3#137#0#7'Anchors'#11#5'akTop'#7'akRigh' +'t'#0#19'BorderSpacing.Right'#2#10#6'Cancel'#9#7'Caption'#6#7'Annuler'#4'Kin' +'d'#7#8'bkCancel'#11'ModalResult'#2#2#8'TabOrder'#2#3#0#0#0 ]); ����������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit26.lfm��������������������������������������������������������������������������0000750�0001750�0001750�00000011217�13147330070�015704� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������object Form26: TForm26 Left = 713 Height = 439 Top = 194 Width = 641 ActiveControl = Editformulebrute BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Recherche dans la base' ClientHeight = 439 ClientWidth = 641 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 380 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Entrez tout ou partie de l''indentifiant ou du synonyme' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 40 Width = 341 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = ' Exemples: éthanoïque Acide pentanedioïque ' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = BitBtn1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 198 Width = 210 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Puis cliquez sur l''espéce choisie:' ParentColor = False end object Editformulebrute: TEdit AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 10 Height = 28 Top = 70 Width = 621 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = Editformulebrute AnchorSideTop.Side = asrBottom AnchorSideRight.Control = BitBtn2 Left = 10 Height = 80 Top = 108 Width = 482 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 Caption = 'Chercher' Default = True Glyph.Data = { DE010000424DDE01000000000000760000002800000024000000120000000100 04000000000068010000120B0000120B00001000000010000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333 3333333333333333333333330000333333333333333333333333F33333333333 00003333344333333333333333388F3333333333000033334224333333333333 338338F3333333330000333422224333333333333833338F3333333300003342 222224333333333383333338F3333333000034222A22224333333338F338F333 8F33333300003222A3A2224333333338F3838F338F33333300003A2A333A2224 33333338F83338F338F33333000033A33333A222433333338333338F338F3333 0000333333333A222433333333333338F338F33300003333333333A222433333 333333338F338F33000033333333333A222433333333333338F338F300003333 33333333A222433333333333338F338F00003333333333333A22433333333333 3338F38F000033333333333333A223333333333333338F830000333333333333 333A333333333333333338330000333333333333333333333333333333333333 0000 } NumGlyphs = 2 OnClick = BitBtn1Click TabOrder = 1 end object sgreactifs: TStringGrid AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 201 Hint = 'Pour sélectionner un réactif, cliquez sur la ligne correspondante.' Top = 228 Width = 621 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 ParentShowHint = False ShowHint = True TabOrder = 2 OnMouseUp = sgreactifsMouseUp end object BitBtn2: TBitBtn AnchorSideTop.Control = BitBtn1 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 502 Height = 80 Top = 108 Width = 129 Anchors = [akTop, akRight] BorderSpacing.Right = 10 Cancel = True Caption = 'Annuler' Kind = bkCancel ModalResult = 2 TabOrder = 3 end end ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit21.pas��������������������������������������������������������������������������0000750�0001750�0001750�00000010571�13147330070�015706� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Unit21; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, Spin, Buttons,Unit22,UChaines,UnitScaleFont; type { Tsaisiefichiertableur } Tsaisiefichiertableur = class(TForm) BitBtn1: TBitBtn; CheckBoxrecalculechelles: TCheckBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Memo1: TMemo; RadioGroupseparateur: TRadioGroup; SpinEditindiceabscisse: TSpinEdit; SpinEditnombredonneesparligne: TSpinEdit; SpinEditlignedebut: TSpinEdit; procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisiefichiertableur: Tsaisiefichiertableur; implementation uses Unit1; { Tsaisiefichiertableur } procedure Tsaisiefichiertableur.BitBtn1Click(Sender: TObject); var i:integer; begin premiere_ligne_e:=SpinEditlignedebut.Value; nombre_valeurs_par_ligne_e:=SpinEditnombredonneesparligne.value; separateur_espace_e:=(RadioGroupseparateur.ItemIndex=0); indice_abscisse_e:=spineditindiceabscisse.Value; recalcul_echelles_e:=CheckBoxrecalculechelles.checked; setlength(liste_noms_e,nombre_valeurs_par_ligne_e-1); setlength(liste_couleurs_ordonnees_e,nombre_valeurs_par_ligne_e-1); setlength(liste_echelles_e,nombre_valeurs_par_ligne_e-1); setlength(liste_styles_ordonnees_e,nombre_valeurs_par_ligne_e-1); setlength(liste_tailles_ordonnees_e,nombre_valeurs_par_ligne_e-1); setlength(liste_epaisseurs_ordonnees_e,nombre_valeurs_par_ligne_e-1); setlength(liste_tracerok_ordonnees_e,nombre_valeurs_par_ligne_e-1); setlength(liste_nepastracer_e,nombre_valeurs_par_ligne_e-1); for i:=1 to nombre_valeurs_par_ligne_e do if i<>indice_abscisse_e then begin saisietypedonnee:=tsaisietypedonnee.create(self); with saisietypedonnee do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; label1.Caption:=Format(rsTypeDeLaDonn, [inttostr(i)]); showmodal; if i<indice_abscisse_e then begin liste_noms_e[i-1]:=Edit_nom_e.Text; if RadioGroupechelle_e.ItemIndex=0 then liste_echelles_e[i-1]:=e_gauche else liste_echelles_e[i-1]:=e_droite; case RadioGrouptype_e.ItemIndex of 0: liste_styles_ordonnees_e[i-1]:=disque; 1: liste_styles_ordonnees_e[i-1]:=croix; 2: liste_styles_ordonnees_e[i-1]:=cercle; 3: liste_styles_ordonnees_e[i-1]:=plus; end; liste_tailles_ordonnees_e[i-1]:=SpinEdittaille_e.Value; liste_epaisseurs_ordonnees_e[i-1]:=SpinEditepaisseur_e.Value; liste_tracerok_ordonnees_e[i-1]:=RadioGroupjoindre_e.ItemIndex=1; liste_nepastracer_e[i-1]:=checkboxrepresente.Checked; liste_couleurs_ordonnees_e[i-1]:=ma_couleur; end else begin liste_noms_e[i-2]:=Edit_nom_e.Text; if RadioGroupechelle_e.ItemIndex=0 then liste_echelles_e[i-2]:=e_gauche else liste_echelles_e[i-2]:=e_droite; case RadioGrouptype_e.ItemIndex of 0: liste_styles_ordonnees_e[i-2]:=disque; 1: liste_styles_ordonnees_e[i-2]:=croix; 2: liste_styles_ordonnees_e[i-2]:=cercle; 3: liste_styles_ordonnees_e[i-2]:=plus; end; liste_tailles_ordonnees_e[i-2]:=SpinEdittaille_e.Value; liste_epaisseurs_ordonnees_e[i-2]:=SpinEditepaisseur_e.Value; liste_tracerok_ordonnees_e[i-2]:=RadioGroupjoindre_e.ItemIndex=1; liste_nepastracer_e[i-2]:=checkboxrepresente.Checked; liste_couleurs_ordonnees_e[i-2]:=ma_couleur; end; end; end; end; procedure Tsaisiefichiertableur.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsChargementFi; Label1.Caption := rsVoiciLes4Pre; Label2.Caption := rsVeuillezComp ; Label3.Caption := rsLigneLaquell ; Label4.Caption := rsNombreDeDonn ; Label5.Caption := rsColonneDontL; RadioGroupseparateur.Caption := rsValeursNumRi ; // RadioGroupseparateur.Items.clear; RadioGroupseparateur.Items[0]:=(rsUnOuPlusieur); RadioGroupseparateur.Items[1]:=(rsPointVirgule); CheckBoxrecalculechelles.Caption := rsRecalculerAu ; BitBtn1.Caption := rsOK; end; procedure Tsaisiefichiertableur.FormShow(Sender: TObject); begin //if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit21.lrs} end. ���������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/parsexpr.inc������������������������������������������������������������������������0000750�0001750�0001750�00000067177�13147330070�016434� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ $ id: $ Copyright (c) 2000 by Marco van de Voort(marco@freepascal.org) member of the Free Pascal development team See the file COPYING.FPC, included in this distribution, for details about the copyright. (LGPL) Implementation of Infix to parsetree/RPN converter based on principles copied from a RPN constant expression evaluator by Trai Tran (PD, from SWAG.) Parsetree to infix and parsetree to RPN/infix conversion by Marco v/d Voort OOP interface and vast improvements by Marco v/d Voort Modified by JM Biansan: - variables names can start by A..Z, _, and can contain A..Z,0..9,_ - accept real numbers in scientific notation like 1.23e-45 - right associativity for exponentiation : 2^3^4 is 2^(3^4) - priority highest for exponentiation: -2^2=-4 - expression can start by minus - functions added: log (same as log10), abs, trunc, heav, sign, min, max, inf, sup, infe, supe, naninf, nansup, nanin, nanout This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ********************************************************************** Problems: - -x^12 is -(x^12) or (-x)^12 ? (FIXED: Chose to do it as in FPC) - No errorhandling. (will be rewritten to use classes and exceptions first) Original comments: --------------------------------------------------------------------------- THAI TRAN I've netmailed you the full-featured version (800 lines!) that will do Functions, exponentiation, factorials, and has all the bells and whistles, but I thought you might want to take a look at a simple version so you can understand the algorithm. This one only works With +, -, *, /, (, and ). I wrote it quickly, so it makes extensive use of global Variables and has no error checking; Use at your own risk. Algorithm to convert infix to postfix (RPN) notation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Parse through the entire expression getting each token (number, arithmetic operation, left or right parenthesis). For each token, if it is: 1. an operand (number) Send it to the RPN calculator 2. a left parenthesis Push it onto the operation stack 3. a right parenthesis Pop operators off stack and send to RPN calculator Until the a left parenthesis is on top of the stack. Pop it also, but don't send it to the calculator. 4. an operator While the stack is not empty, pop operators off the stack and send them to the RPN calculator Until you reach one With a higher precedence than the current operator (Note: a left parenthesis has the least precendence). Then push the current operator onto the stack. This will convert (4+5)*6/(2-3) to 4 5 + 6 * 2 3 - / Algorithm For RPN calculator ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Note: this Uses a different stack from the one described above. In RPN, if an operand (a number) is entered, it is just pushed onto the stack. For binary arithmetic operators (+, -, *, /, and ^), the top two operands are popped off the stack, operated on, and the result pushed back onto the stack. if everything has gone correctly, at the end, the answer should be at the top of the stack. Released to Public Domain by Thai Tran (if that matters). --------------------------------------------------------------------------- MvdV: It does for me. My routines might end up in either FPC or Jedi, and anything except LGPL and PD is unacceptable. :-) Modifications: (starting to get so big that the original is hardly recognisable) - OOP. Mainly to allow symbolic TExpression class to have custom parsers. - Working with pnode stack instead of reals. Pnodes can be any expression, see inteface unit symbolic. (creating a parsetree) - Support for functions(one or two parameter arguments), which weren't in the short Swag version. Most MATH functions are supported. - Can make a difference between the minus of (-x) and the one in (x-y). The first is converted to function minus(x); - power operator - Faculty operator - Conversions back to RPN and infix. - Removing of excess parentheses. } type {Tokens generated by the parser. Anything else is a constant or variable} ParseOperation=(padd,psub,pmul,pdvd,ppow,pfacul,pleft,pright,pminus, pabs,psign,pheav,pzero,ptrunc,pceil,pfloor,pcos,psin,ptan,psqr,psqrt,pexp,pln,pinv, pcotan,parcsin,parccos,parctan,psinh,pcosh,ptanh, parcsinh,parccosh,parctanh,plog10,plog, plog2,plnxpi,parctan2,pstep,ppower,phypot, plogn,parg,pmin,pmax,pinf,pinfe,psup,psupe,pnaninf,pnansup, pnanin,pnanout,pnothing); CONST ParserFunctionNamesUpper : array[padd..pnothing] of string[7]= ('+','-','*','/','^','!','(',')','-', 'ABS','SIGN','HEAV','ZERO','TRUNC','CEIL','FLOOR','COS','SIN','TAN','SQR','SQRT','EXP','LN','INV', 'COTAN','ARCSIN','ARCCOS','ARCTAN','SINH','COSH','TANH', 'ARCSINH','ARCCOSH','ARCTANH','LOG10','LOG', 'LOG2','LNXP1','ARCTAN2','STEP','POWER','HYPOT', 'LOGN','ARG','MIN','MAX','INF','INFE','SUP','SUPE','NANINF','NANSUP','NANIN','NANOUT','NOTHING'); {Operator or function-} Priority : array[padd..pnothing] of ArbInt= (1,1,2,2,5,0,0,0,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4, 4,4,4,4,4, 4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,6); OppsXlat='+-*/^!()'; {Must match the first entries of ParseOperation. Pos(OppsXlat,c)-1+ord(Padd) is typecast!} Const RPNMax = 20; { I think you only need 4-8, but just to be safe } OpMax = 25; Procedure ParserInternalError(const Msg:String;A,B:ArbInt); VAR S,S2 : String; begin Str(A,S); {Usually a identification number for the occurance} Str(B,S2); {Usually the value that tripped the IE} Raise EParserIE.Create(SParsIE+Msg+S+' '+S2); end; function TBaseExprParser.InFixToParseTree(Expr : String;VAR RPNexpr: String):pnode; Var RPNStack : Array[1..RPNMax] of PNode; { Stack For RPN calculator } RPNTop, OpTop : ArbInt; OpStack : Array[1..OpMax] of ParseOperation; { Operator stack For conversion } Procedure RPNPush(Num : PNode); { Add an operand to the top of the RPN stack } begin if RPNTop < RPNMax then begin Inc(RPNTop); RPNStack[RPNTop] := Num; end else RAISE EParserStack.Create(SParseRPNOverflow); end; Function RPNPop : pnode; { Get the operand at the top of the RPN stack } begin if RPNTop > 0 then begin RPNPop := RPNStack[RPNTop]; Dec(RPNTop); end else RAISE EParserStack.Create(SParseRPNUnderflow); end; Procedure RPNCalc(Token : String); { RPN Calculator } Var treal : ArbFloat; tint : ArbInt; tyty:integer; Error : ArbInt; variable_ok,real_ok,integer_ok:boolean; begin RPNExpr:=RPNExpr+token+' '; {Added by Jean-Marie Biansan: variable names can now start by and contain _ Predefined variable: Pi, ECS (électrode calomel saturé), ESM (électrode sulfate mercureux)} variable_ok:=(token[1] in ['A'..'Z','_']); for tyty:=2 to length(token) do variable_ok:=variable_ok and (token[tyty] in ['A'..'Z','0'..'9','_']); if variable_ok then begin if token='PI' then RPNPush(NewConst(Pi)) else if token='ECS' then RPNPush(NewConst(0.2444)) else if token='ESM' then RPNPush(NewConst(0.6513)) else RPNPush(NewVar(Token)); exit; end; integer_ok:=true; try tint:=strtoint(token); except integer_ok:=false; end; if integer_ok then begin RpnPush(Newiconst(tint)); exit; end; real_ok:=true; try treal:=strtofloat(token); except real_ok:=false; end; if real_ok then begin RPNPush(NewConst(Treal)); exit; end; EParserStack.Create(SParseRPNUnderflow); end; Procedure RPNOperation(Operation:ParseOperation); {The workhorse. Creates the tree, and associates a parseoperation with the TExpression enumerations. Avoids some ugly (and shaky) typecasts between operations like in earlier versions.} var Temp: pnode; begin RPNExpr:=RPNExpr+ParserFunctionNamesUpper[Operation]+' '; Case Operation of { Handle operators } padd : RPNPush(newcalc(addo,RPNPop,RPNPop)); psub : begin Temp:=RPNPOP; RPNPush(NewCalc(subo,RPNPOP,Temp)); end; pmul : RPNPush(newcalc(mulo,RPNPOP,RPNPop)); pdvd : begin Temp := RPNPop; if Temp <> NIL then RPNPush(newcalc(dvdo,RPNPop,Temp)) else Raise EDiv0.Create(SParsDiv0); { Handle divide by 0 error } end; ppow,ppower : {are only different in parsing x^y and power(x,y)} begin Temp:=RpnPop; RpnPush(NewCalc(powo,RpnPop,Temp)); end; pfacul : RPNPush(NewFunc(faculx,RPNPOP)); psin : RPNPush(NewFunc(sinx,RPNPop)); pabs : RPNPush(NewFunc(absx,RPNPop)); psign : RPNPush(NewFunc(signx,RPNPop)); pheav : RPNPush(NewFunc(heavx,RPNPop)); pzero : RPNPush(NewFunc(zerox,RPNPop)); ptrunc : RPNPush(NewFunc(truncx,RPNPop)); pceil : RPNPush(NewFunc(ceilx,RPNPop)); pfloor : RPNPush(NewFunc(floorx,RPNPop)); pcos : RPNPush(NewFunc(cosx,RPNPop)); ptan : RPNPush(NewFunc(tanx,RPNPop)); psqr : RPNPush(NewFunc(sqrx,RPNPop)); psqrt : RPNPush(NewFunc(sqrtx,RPNPop)); pexp : RPNPush(NewFunc(expx,RPNPop)); pln : RPNPush(NewFunc(lnx,RPNPop)); pinv : RPNPush(NewFunc(invx,RPNPop)); Pminus : RPNPush(newFunc(minus,RPNPop)); pcotan : RPNPush(NewFunc(cotanx,rpnpop)); parcsin : RPNPush(NewFunc(arcsinx,rpnpop)); parccos : RPNPush(NewFunc(arccosx,rpnpop)); parctan : RPNPush(NewFunc(arctanx,rpnpop)); psinh : RPNPush(NewFunc(sinhx,rpnpop)); pcosh : RPNPush(NewFunc(coshx,rpnpop)); ptanh : RPNPush(NewFunc(tanhx,rpnpop)); parcsinh : RPNPush(NewFunc(arcsinhx,rpnpop)); parccosh : RPNPush(NewFunc(arccoshx,rpnpop)); parctanh : RPNPush(NewFunc(arctanhx,rpnpop)); plog10 : RPNPush(NewFunc(log10x,rpnpop)); plog : RPNPush(NewFunc(logx,rpnpop)); plog2 : RPNPush(NewFunc(log2x,rpnpop)); plnxpi : RPNPush(NewFunc(lnxpix,rpnpop)); parctan2 : begin Temp:=RpnPop; RpnPush(Newfunc(arctan2x,RpnPop,temp)); end; pstep : begin Temp:=RpnPop; RpnPush(Newfunc(stepx,RpnPop,temp)); end; phypot: begin Temp:=RpnPop; RpnPush(Newfunc(hypotx,RpnPop,temp)); end; plogn : begin Temp:=RpnPop; RpnPush(Newfunc(lognx,RpnPop,Temp)); end; parg : begin Temp:=RpnPop; RpnPush(Newfunc(argx,RpnPop,Temp)); end; pmin : begin Temp:=RpnPop; RpnPush(Newfunc(minx,RpnPop,Temp)); end; pmax : begin Temp:=RpnPop; RpnPush(Newfunc(maxx,RpnPop,Temp)); end; pinf : begin Temp:=RpnPop; RpnPush(Newfunc(infx,RpnPop,Temp)); end; pinfe : begin Temp:=RpnPop; RpnPush(Newfunc(infex,RpnPop,Temp)); end; psup : begin Temp:=RpnPop; RpnPush(Newfunc(supx,RpnPop,Temp)); end; psupe : begin Temp:=RpnPop; RpnPush(Newfunc(supex,RpnPop,Temp)); end; pnaninf : begin Temp:=RpnPop; RpnPush(Newfunc(naninfx,RpnPop,Temp)); end; pnansup : begin Temp:=RpnPop; RpnPush(Newfunc(nansupx,RpnPop,Temp)); end; pnanin : begin Temp:=RpnPop; RpnPush(Newfunc(naninx,RpnPop,Temp)); end; pnanout : begin Temp:=RpnPop; RpnPush(Newfunc(nanoutx,RpnPop,Temp)); end; else ParserInternalError('Unknown function',1,ORD(Operation)); end; end; Function IsFunction(S:String):ParseOperation; var Count:ParseOperation; begin IsFunction:=pnothing; for Count:=pabs to pnanout do begin If S=ParserFunctionNamesUpper[Count] then IsFunction:=Count; end; end; Procedure OpPush(operation : ParseOperation); { Add an operation onto top of the stack } begin if OpTop < OpMax then begin Inc(OpTop); OpStack[OpTop] := operation; end else RAISE EParserStack.Create(SParsOpOverflow); end; Function OpPop : ParseOperation; { Get operation at the top of the stack } begin if OpTop > 0 then begin OpPop := OpStack[OpTop]; Dec(OpTop); end else RAISE EParserStack.Create(SParsOpUnderflow); end; Var I,len : ArbInt; Token : String; OperationNr : ParseOperation; FunctionNr : ArbInt; isminus,e_trouve : boolean; label fin_analyse_nombre; begin {Procedure modified by JM Biansan to follow exactly Shunting-Yard algorithm: While there are tokens to be read: Read a token. If the token is a number, then add it to the output queue. If the token is a function token, then push it onto the stack. If the token is a function argument separator (e.g., a comma): Until the token at the top of the stack is a left parenthesis, pop operators off the stack onto the output queue. If no left parentheses are encountered, either the separator was misplaced or parentheses were mismatched. If the token is an operator, o1, then: while there is an operator token, o2, at the top of the stack, and either o1 is left-associative and its precedence is less than or equal to that of o2, or o1 is right-associative and its precedence is less than that of o2, pop o2 off the stack, onto the output queue; push o1 onto the stack. If the token is a left parenthesis, then push it onto the stack. If the token is a right parenthesis: Until the token at the top of the stack is a left parenthesis, pop operators off the stack onto the output queue. Pop the left parenthesis from the stack, but not onto the output queue. If the token at the top of the stack is a function token, pop it onto the output queue. If the stack runs out without finding a left parenthesis, then there are mismatched parentheses. When there are no more tokens to read: While there are still operator tokens in the stack: If the operator token on the top of the stack is a parenthesis, then there are mismatched parentheses. Pop the operator onto the output queue. Exit. } RPNExpr:=''; OpTop := 0; { Reset stacks } RPNTop := 0; Token := ''; Expr:=Upcase(Expr); i:=1; len:=Length(Expr); while I<=Len do begin {Flush token, if we feel an infix operator coming} FunctionNr:=Pos(expr[I],OppsXlat); {modified by JM Biansan: should never arise} // If (FunctionNr<>0) and (Token<>'') THEN // begin { Send last built number to calc. } // RPNCalc(Token); // Token := ''; // end; If (FunctionNr>0) and (FunctionNr<7) then begin OperationNr:=ParseOperation(FunctionNr-1+ORD(padd)); If (OperationNr=psub) then {Minus(x) or x-y?} begin IsMinus:=False; if I=1 then IsMinus:=true else If Expr[I-1] IN ['+','(','*','/','-','^'] then IsMinus:=true; If IsMinus then OperationNr:=PMinus; end; While (OpTop > 0) AND {modified by JM Biansan : only pop off operators} ((OpStack[OpTop]<=pfacul) or (OpStack[OpTop]=pminus)) AND ( ((expr[I]<>'^') and (Priority[OperationNr] <= Priority[OpStack[OpTop]])) or {modified by JM Biansan because exponentiation is right-associative} ((expr[I]='^') and (Priority[OperationNr] < Priority[OpStack[OpTop]])) ) DO RPNOperation(OpPop); OpPush(OperationNr); end else {modified by JM Biansan to take in account number in scientific notation} case Expr[I] of '0'..'9' : begin e_trouve:=false; While ((Expr[I] in ['0'..'9']) and (I<=len)) do begin Token:=Token+Expr[I]; inc(i); end; dec(i); if i=len then goto fin_analyse_nombre; {jusque la, on n'a rencontre que des chiffres} {maintenant, on ne peut rencontrer que le point decimal ., le E ou e des reels en notation scientifique, un operateur +-*/^!, la virgule si 1er argument d'une fonction de 2 variables ou la )} inc(i); if expr[i] in ['e','E']then e_trouve:=true; if not(expr[I] in ['.',',','+','-','*','/','^','!',')','e','E']) then begin RAISE EParserStack.Create(SExprNotFloat); exit; end; if expr[I] in [',','+','-','*','/','^','!',')'] then {c'est un entier, analyse terminee} begin dec(i); goto fin_analyse_nombre; end; if expr[i]='.' then begin Token:=Token+Expr[I]; if i=len then goto fin_analyse_nombre; {apres le point decimal on peut rencontrer des chiffres, le E ou e, les operateurs, la ), la ,} if not(expr[I+1] in ['0'..'9',',','+','-','*','/','^',')','e','E']) then begin RAISE EParserStack.Create(SExprNotFloat); exit; end; if expr[I+1] in [',','+','-','*','/',')','^'] then {c'est un entier avec un point decimal fictif, analyse terminee} begin goto fin_analyse_nombre; end; {si chiffre apres point decimal, on lit tous les chiffres} if expr[I+1] in ['0'..'9'] then begin inc(i); while ((expr[I] in ['0'..'9']) and (i<=len)) do begin Token:=Token+Expr[I]; inc(i); end; dec(i); if i=len then goto fin_analyse_nombre; {apres les chiffres decimaux on peut rencontrer le E ou e, les operateurs, la ), la ,} if not(expr[I+1] in [',','+','-','*','/','^',')','e','E']) then begin RAISE EParserStack.Create(SExprNotFloat); exit; end; if expr[I+1] in [',','+','-','*','^','/',')'] then {c'est un reel sans la notation scientifique, analyse terminee} begin goto fin_analyse_nombre; end; {le caractere suivant est donc E ou e} end; {du cas ou c'est un chiffre apres le point decimal} end; {du cas ou point decimal} {cas ou on tombe sur e ou E} inc(i); if e_trouve then dec(i); if i=len then begin {pas possible que ce soit le derniere caractere...} RAISE EParserStack.Create(SExprNotFloat); exit; end; Token:=Token+Expr[I]; inc(i); {apres le e, il ne peut y avoir que +,- ou 1 chiffre} if not(expr[i] in['0'..'9','+','-']) then begin RAISE EParserStack.Create(SExprNotFloat); exit; end; if (expr[i] in ['0'..'9']) then begin {de la forme xxxxxEyyyy: c'est ok, le rpncalc verifiera plus tard si c'est un nombre ds la bonne etendue} while ((expr[i] in ['0'..'9']) and (i<=len)) do begin Token:=Token+Expr[I]; inc(i); end; dec(i); goto fin_analyse_nombre; end; if expr[i] in ['+','-'] then begin {+ ne peut terminer la chaine} if i=len then begin RAISE EParserStack.Create(SExprNotFloat); exit; end; Token:=Token+Expr[I]; {apres le +, il ne peut y avoir qu'un chiffre} if not(expr[i+1] in['0'..'9']) then begin RAISE EParserStack.Create(SExprNotFloat); exit; end; inc(i); {de la forme xxxxxE+yyyy: c'est ok, le rpncalc verifiera plus tard si c'est un nombre ds la bonne etendue} while ((expr[i] in ['0'..'9']) and (i<=len)) do begin Token:=Token+Expr[I]; inc(i); end; dec(i); goto fin_analyse_nombre; end; {du cas e ou E} fin_analyse_nombre: RpnCalc(Token); Token:=''; end; ',' : //if Token <> '' then {Two parameter functions} // begin { Send last built number to calc. } // RPNCalc(Token); // Token := ''; // end; While OpStack[OpTop] <> pleft DO RPNOperation(OpPop); '(' : OpPush(pleft); ')' : begin While OpStack[OpTop] <> pleft DO RPNOperation(OpPop); OpPop;{ Pop off and ignore the '(' } {added by JM Biansan see http://en.wikipedia.org/wiki/Shunting-yard_algorithm} if (optop>0) and (OpStack[OpTop]>pright) then rpnoperation(oppop); end; 'A'..'Z','_' : begin {modified by JM Biansan: should never arise} // if Token <> '' then // begin { Send last built number to calc. } // RPNCalc(Token); // Token := ''; // end; {modified by JM Biansan to permit variable name with 0..9 and _ } While (Expr[I] IN ['0'..'9','A'..'Z','_']) AND (I<=Len) DO begin Token:=Token+Expr[I]; Inc(I); end; Dec(i); OperationNr:=IsFunction(Token); if ( (OperationNr=pnothing) and (i<len) and not(expr[i+1] in [')','*','/','+','-','^','!',',']) ) then begin RAISE EParserStack.Create(SExprNotAfterVar); exit; end; if OperationNr<>pnothing then begin Token:=''; {modified by JM Biansan: si c'est une fonction, on l'empile see http://en.wikipedia.org/wiki/Shunting-yard_algorithm} { While (OpTop > 0) AND (Priority[OperationNr] <= Priority[OpStack[OpTop]]) DO RPNOperation(OpPop);} OpPush(OperationNr); {modified by JM Biansan: si c'est une fonction, on l'empile} end else begin RpnCalc(Token); Token:=''; end; end; end; { Case } inc(i); end; If Token<>'' Then RpnCalc(Token); While OpTop > 0 do { Pop off the remaining operations } RPNOperation(OpPop); InFixToParseTree:=RpnPop; end; function TBaseExprParser.ParseTreeToInfix(expr:pnode):string; var S,right,left : string; IsSimpleExpr : boolean; begin IF expr=nil then ParserInternalError(SNILDeref,5,0); case expr^.nodetype of VarNode : S:=expr^.variable; iconstnode: str(expr^.ivalue,S); ConstNode: str(expr^.value,s); CalcNode : begin right:=ParseTreeToInfix(expr^.right); left:=ParseTreeToInfix(expr^.left); S:=left+InfixOperatorName[Expr^.op]+right; if (expr^.op=addo) or (expr^.op=subo) then S:='('+S+')'; end; FuncNode : begin left:=functionnames[expr^.fun]; right:=ParseTreeToInfix(expr^.son); issimpleExpr:=false; If ((Expr^.fun=minus) or (Expr^.fun=faculx)) and (expr^.son^.nodetype in [varnode,iconstnode,constnode]) then issimpleExpr:=true; if expr^.fun<>faculx then begin If IsSimpleExpr then S:=Left+Right else S:=Left+'('+Right+')'; end else If IsSimpleExpr then S:=Right+Left else S:='('+Right+')'+Left; end; Func2Node : begin S:=functionnames[expr^.fun]; Left:=ParseTreeToInfix(Expr^.son2right); right:=ParseTreeToInfix(expr^.son2left); S:=S+'('+Left+','+Right+')'; end; end; ParseTreeToInfix:=S; end; function TBaseExprParser.ParseTreeToRPN(expr:pnode):string; {not fast because of the prepending. Creating an array of pnode would maybe be faster} procedure SearchTree(Tree:pnode;var s:string); var temp:string; begin if tree<>nil then case Tree^.nodetype of VarNode : s:=Tree^.Variable +' '+s; ConstNode: begin str(Tree^.value:5:9,temp); {should be configurable} s:=temp+' '+s; end; iconstnode: begin str(Tree^.ivalue,temp); s:=temp+' '+s; end; CalcNode : begin s:=InfixOperatorName[Tree^.op]+' '+s; SearchTree(tree^.right,s); SearchTree(tree^.left,s); end; FuncNode: begin s:=functionnames[tree^.fun]+' '+s; SearchTree(tree^.son,s); end; Func2Node: begin s:=functionnames[tree^.fun]+' '+s; SearchTree(tree^.son2right,s); SearchTree(Tree^.son2left,s); end; end; end; var s : String; begin s:=''; searchTree(expr,s); ParseTreeToRPN:=S; end; { $Log: $ }  �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/unit9.lrs���������������������������������������������������������������������������0000750�0001750�0001750�00000003616�13147330070�015653� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisieepaisseur','FORMDATA',[ 'TPF0'#16'Tsaisieepaisseur'#15'saisieepaisseur'#4'Left'#3'P'#1#6'Height'#2'D' +#3'Top'#3#179#0#5'Width'#3#7#2#13'ActiveControl'#7#9'SpinEdit1'#11'BorderIco' +'ns'#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Ca' +'ption'#6#15'Epaisseur trait'#12'ClientHeight'#2'D'#11'ClientWidth'#3#7#2#8 +'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2' +'.0'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSi' +'deTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3'Top'#2#10#5'Width'#3 +'.'#1#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6'-E' +'paisseur du trait devant joindre les points:'#10'Font.Color'#7#7'clGreen'#10 +'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#9'TSpinEd' +'it'#9'SpinEdit1'#22'AnchorSideLeft.Control'#7#6'Label1'#19'AnchorSideLeft.S' +'ide'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.' +'Side'#7#9'asrCenter'#4'Left'#3'B'#1#6'Height'#2#28#3'Top'#2#6#5'Width'#2'<' +#18'BorderSpacing.Left'#2#10#8'MaxValue'#2#20#8'MinValue'#2#1#8'TabOrder'#2#0 +#5'Value'#2#1#0#0#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLeft.Control'#7#9'SpinE' +'dit1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#5 +'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side' +#7#9'asrBottom'#4'Left'#3#136#1#6'Height'#2'0'#3'Top'#2#10#5'Width'#2'u'#7'A' +'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Lef' +'t'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#20'BorderSp' +'acing.Bottom'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK'#11'Mo' +'dalResult'#2#1#8'TabOrder'#2#1#0#0#0 ]); ������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/symbolic.pas������������������������������������������������������������������������0000750�0001750�0001750�00000041717�13147330070�016413� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������unit Symbolic; { $ id: $ Copyright (c) 2000 by Marco van de Voort(marco@freepascal.org) member of the Free Pascal development team See the file COPYING.FPC, included in this distribution, for details about the copyright. (LGPL) Base types for expression trees, and some small procs to create them. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Seems not to have memory leaks atm. If you experience them, check procedure newcalc first. } interface {$ifdef FPC} {$Mode ObjFpc} {$ENDIF} Uses Math,Classes,Sysutils; Const VLIWIncr = 40; { Initial size and increment of VLIW array} DelphiMaxOps = 5000; { Unused for FPC. Max records in VLIW array FPC: 2 Gb/sizeof(vliwevalword).} Type {Should be somewhere in the JCLMath or even in JCLtypes unit} ArbFloat = float; {Float is set to mathtype used by FPC Math unit} ArbInt = longint; calcop=(addo,subo,mulo,dvdo,powo); {real operators} FuncOp=(absx,signx,heavx,zerox,truncx,ceilx,floorx,cosx,sinx,tanx,sqrx,sqrtx,expx,lnx,invx,minus,cotanx,arcsinx,arccosx, arctanx,sinhx,coshx,tanhx,arcsinhx,arccoshx,arctanhx,log10x,logx, log2x,lnxpix,faculx,arctan2x,stepx,powerx,hypotx,lognx,argx,minx,maxx, infx,infex,supx,supex,naninfx,nansupx,naninx,nanoutx,unknown0, unknown1,unknown2,unknown3,unknown4); {functions, both one and two parameter ones. Including pseudo function minus} CONST UnknownTokens : array[0..4] OF FuncOp =(unknown0,unknown1,unknown2, unknown3,unknown4); TYPE Operation=(VarNode,ConstNode,iconstnode,CalcNode,FuncNode,func2node,VLIWVar,CustomNode); TFlagsEnum=(ExprIsConstant); {ExprIsConstant signals that this node of the tree and deeper can evaluate to a single float constant} TFlags = SET OF TFlagsEnum; pnode =^treenode; treenode=record Flags : TFlags; case nodetype:operation of iconstnode: (ivalue:ArbInt); VarNode: (variable:string[255]); VLIWVar: (vliwindex:ArbInt); {^float?} ConstNode: (value:ArbFloat); CalcNode: (op:calcop;left,right:pnode); FuncNode: (fun:funcop;son:pnode); Func2Node: (fun2:funcop;son2left,son2right:pnode); CustomNode: (Indent:Longint); end; ERPNStack = Class(Exception); {All RPN stack problems category} EIError = Class(Exception); {All internal errors. Most often these are raised when unknown function enumerations are found} EDiv0 = Class(Exception); {Division by zero, but RPN, not processor!} TBaseExpression = class protected ExprTree : pnode; function NewConst(value:ArbFloat):pnode; function NewiConst(value:ArbInt):pnode; function NewCalc(op:calcop;left,right:pnode):pnode; function CopyTree(p :pnode):pnode; function NewFunc(fun:funcop;son:pnode):pnode; overload; function NewFunc(fun:funcop;son,son2:pnode):pnode; overload; function NewVar(variable:string):pnode; procedure DisposeExpr(p:pnode); end; EParserStack = class(ERPNStack); {RPN stack under/overflow.} EParserIE = class(EIError); {Internal error} TBaseExprParser= class(TBaseExpression) public function InFixToParseTree(Expr : String;VAR RPNexpr: String):pnode; virtual; function ParseTreeToRPN (expr:pnode):string; virtual; function ParseTreeToInfix(expr:pnode):string; virtual; end; TEvaluator= CLASS; EFaculNotInt = Class(exception); {Faculty on a real value deviating from an integer value by more than 0.01} EExprIE = Class(EIerror); ENotInt = Class(exception); ENotFloat = Class(Exception); TExpression = class(TBaseExprParser) protected InfixClean : Boolean; InfixCache : String; Evaluator : TEvaluator; EvaluatorUpToDate : Boolean; function GetInfix:String; function GetRPN:String; procedure Simpleop(expr:TExpression;oper:calcop); function Simpleopwithresult(expr:TExpression;oper:calcop):TExpression; Function IntDerive(const derivvariable:String;theexpr:pnode):pnode; Function GetIntValue:LongInt; Procedure SetIntValue(val:Longint); Function GetFloatValue:ArbFloat; Procedure SetFloatValue(val:ArbFloat); Procedure UpdateConstants; {Kind of integrity check} public SimplificationLevel : Longint; CONSTRUCTOR Create(Infix:String); CONSTRUCTOR EmptyCreate; DESTRUCTOR Destroy; override; Procedure SetNewInfix(Infix:String); Function Derive(derivvariable:String):TExpression; procedure SymbolSubst(ToSubst,SubstWith:String); function SymbolicValueNames:TStringList; function Taylor(Degree:ArbInt;const x,x0:String):TExpression; function Newton(x:String):TExpression; procedure SimplifyConstants; function add(Expr:TExpression):TExpression; function dvd(Expr:TExpression):TExpression; function mul(Expr:TExpression):TExpression; function power(Expr:TExpression):TExpression; function sub(Expr:TExpression):TExpression; procedure Addto(Expr:TExpression); procedure Divby(Expr:TExpression); procedure RaiseTo(Expr:TExpression); procedure SubFrom(Expr:TExpression); procedure Times(Expr:texpression); property InfixExpr: string read GetInfix write SetNewInfix; property RpnExpr: string read GetRPN; property ValueAsInteger:longint read GetIntValue write SetIntvalue; {Default?} property ValueAsFloat:arbfloat read GetFloatValue write SetFloatValue; end; VLIWWordtype= (avariable,anoperation, afunction, afconstant, aiconstant,placeholder); { RPN operators or functions with two arguments are the same.} vliwop2=(addv,subv,mulv,dvdv,powv,arctan2v,stepv,hypotv,lognv,argv,minv,maxv,infv,infev,supv,supev, naninfv,nansupv,naninv,nanoutv); pArbFloat = ^ArbFloat; {$ifdef FPC} pVliwArr = ^VLIWEvalWord; {$else} {Delphi doesn't allow referencing of ^simpletype as array, but does allow it for ^ array of VLIWEvalWord} TVLIWArr = array[0..DelphiMaxOps] of VLiwEvalWord; pVliwArr = ^TVliwArr; {$ENDIF} pVLIWEvalWord = ^VLIWEvalWord; VLIWEvalword = record case VLIWEntity : VLIWWordType OF AVariable : (IndexOfVar : ArbInt); AnOperation: (op:vliwop2); {2 arguments} AFunction : (fun1:funcop); {functions with one argument} AiConstant : (ivalue:ArbInt); AfConstant : (value:ArbFloat); placeholder: (IndexOfConstant:ArbInt) ; end; TEvaluatorNotEnoughVariables=class(Exception); {Not enough variables passed to Evaluate} TEvaluatorStackException =class(ERPNStack); {RPN Stack over/under flow} TEvaluatorBadConstant =class(Exception); {Constant value not specified} TEvaluatorIE =class(Exception); {Internal error. Probably something out of sync.} {Added by JM Biansan} TEvaluatorError =class(Exception); {real overflow or NAN} TEvaluator = Class {Only needs the notion of a pnode } Private VariableName : TStringList; ConstantValue : TList; ConstantNames : TStringList; MaxStack, VLIWCount, VLIWAlloc : ArbInt; VLIWRPNExpr : pVLIWArr; public function Evaldepth:longint; PROCEDURE SetConstant(Name:String;Value:ArbFloat); CONSTRUCTOR Create(VariableList:TStringList;Expression:pnode); CONSTRUCTOR Create(VariableList:TStringList;Expression:TExpression); DESTRUCTOR Destroy; override; Procedure TreeToVLIWRPN(expr:pnode); function Evaluate(const variables:Array of ArbFloat):ArbFloat; {$IFDEF DebugDump} procedure debugger; procedure WriteVliw(p:VLIWEvalWord); {$ENDIF} end; { Structures used to index a pnode tree to identify terms. PTerms = ^TTerms; PtermNode=^TTermNode; TtermNode= record NrTerms :ArbInt; Terms : Array[0..499] of PNode; end; TTerms = record NrTerms : ArbInt; Terms: Array[0..499] of PtermNode; end; } const InfixOperatorName : array[addo..powo] of char= ('+','-','*','/','^'); FunctionNames : array[absx..nanoutx] of string[8]=( 'abs','sign','heav','zero','trunc','ceil','floor','cos','sin','tan','sqr','sqrt','exp','ln','inv','-', 'cotan','arcsin','arccos','arctan','sinh', 'cosh','tanh','arcsinh','arccosh','arctanh', 'log10','log','log2','lnxp1','!','arctan2', 'step','power','hypot','logn','arg','min','max','inf','infe','sup','supe','naninf', 'nansup','nanin','nanout'); FunctionNamesUpper: array[absx..nanoutx] of string[8]=( 'ABS','SIGN','HEAV','ZERO','TRUNC','CEIL','FLOOR','COS','SIN','TAN','SQR','SQRT','EXP','LN','INV','-', 'COTAN','ARCSIN','ARCCOS','ARCTAN','SINH', 'COSH','TANH','ARCSINH','ARCCOSH','ARCTANH', 'LOG10','LOG','LOG2','LNXP1','!','ARCTAN2', 'STEP','POWER','HYPOT','LOGN','ARG','MIN','MAX','INF','INFE','SUP','SUPE', 'NANINF','NANSUP','NANIN','NANOUT'); LenFunctionNames : array[absx..nanoutx] of longint= (3,4,4,4,5,4,5,3,3,3,3,3,3,2,3,1,5,6,6,6,4,4,4,7,7,7,5,3,4,5,1,7,4,5,5,4, 3,3,3,3,4,3,4,6,6,5,6); {$I exprstrs.inc} implementation {newconst and newiconst are overloaded in FPC} function TBaseExpression.NewConst(value:ArbFloat):pnode; {Generate a new node for a floating point constant} var t : pnode; begin new(t); t^.nodetype:=constnode; t^.value:=value; t^.Flags:=[ExprIsConstant]; NewConst:=T; end; function TBaseExpression.NewiConst(value:ArbInt):pnode; {Generate a new node for integer constant} var t : pnode; begin new(t); t^.nodetype:=iconstnode; t^.ivalue:=value; t^.Flags:=[ExprIsConstant]; NewiConst:=T; end; procedure TBaseExpression.DisposeExpr(p:pnode); {Recursively kill expression tree} begin IF p<>NIL THEN begin case p^.nodetype of CalcNode : begin DisposeExpr(p^.right); DisposeExpr(p^.left); end; FuncNode : DisposeExpr(p^.son); end; Dispose(p); end; end; function TBaseExpression.NewCalc(op:calcop;left,right:pnode):pnode; {Create NewCalc node. Left and Right may be nil because to avoid introducing empty nodes, the deriv() function may return NIL's, which are to be treated as newiconst(0); Also one of the functions most likely to have memory leaks } function isintegerone(testme:pnode) : boolean; begin Isintegerone:=(testme^.nodetype=iconstnode) and (testme^.ivalue=1); end; var t : pnode; begin if op=powo then begin if right=NIL then {x^0 =1 for every X} begin DisposeExpr(left); newcalc:=newiconst(1); exit; end; if left=NIL THEN { 0^y = 0 except for y=0, but that is} begin { covered above} DisposeExpr(right); NewCalc:=NIL; exit; end; {modified by JM Biansan} if IsIntegerone(left) then {1^x =1} begin DisposeExpr(right); NewCalc:=left; exit; end; If IsIntegerone(right) then { y^1=y} begin DisposeExpr(right); NewCalc:=left; exit; end; {end modified by JM Biansan} end; {generate a plain power node for all other cases} if left=NIL then begin if (right=nil) or (op=mulo) or (op=dvdo) then { 0*0, 0*t or 0/t =0} begin { We have no way to check T for nul} IF Right<>NIL then DisposeExpr(Right); NewCalc:=NIL; exit; end; if op=addo then { Don't generate a calc node for 0+x, but return x} begin NewCalc:=right; exit; end; new(t); t^.nodetype:=funcnode; { 0-x = minus(x) } t^.fun:=minus; t^.son:=right; t^.flags:=[]; if ExprIsConstant in t^.son^.flags then include(t^.flags,ExprIsConstant); NewCalc:=T; exit; end; if right=NIL then begin if (left=nil) or (op=mulo) or (op=dvdo) then { 0*0, 0*t or 0/t =0} begin IF left<>NIL then disposeExpr(Left); NewCalc:=Nil; exit; end; NewCalc:=Left; { for x-0 or x+0, simply return 0} exit; end; If ((op=mulo) or (op=dvdo)) and isintegerone(right) then { simplify t*1 and t/1} begin DisposeExpr(right); NewCalc:=Left; exit; end; if (op=mulo) and isintegerone(left) then { simplify 1*t} begin DisposeExpr(left); NewCalc:=right; exit; end; new(t); t^.nodetype:=calcnode; t^.op:=op; t^.left:=left; t^.right:=right; t^.Flags:=[]; if (ExprIsConstant In T^.Left^.Flags) and (ExprIsConstant In T^.Right^.Flags) then include(t^.flags,ExprIsConstant); newcalc:=t; end; function TBaseExpression.CopyTree(p :pnode):pnode; var newtree : pnode; begin new(newtree); move(p^,Newtree^,sizeof(treenode)); if newtree^.nodetype=CalcNode then begin newtree^.left:=CopyTree(p^.left); newtree^.right:=CopyTree(p^.right); end else if newtree^.nodetype=FuncNode then newtree^.son:=CopyTree(p^.son); CopyTree:=NewTree; end; function TBaseExpression.NewFunc(fun:funcop;son:pnode):pnode; var t : pnode; begin IF son<>nil then begin new(t); t^.nodetype:=funcnode; t^.fun:=fun; t^.son:=son; t^.flags:=[]; if ExprIsConstant IN son^.flags then Include(t^.flags,ExprIsConstant); NewFunc:=T; end else NewFunc:=NIL; end; function TBaseExpression.NewFunc(fun:funcop;son,son2:pnode):pnode; var t : pnode; begin new(t); t^.nodetype:=func2node; t^.fun:=fun; t^.son2Left:=son; t^.son2Right:=son2; t^.flags:=[]; if(ExprIsConstant IN son^.flags) and (ExprIsConstant IN son2^.flags) then Include(t^.flags,ExprIsConstant); NewFunc:=T; end; {function TBaseExpression.NewFunc(fun:funcop;unknownIdent:longint):pnode; var t : pnode; begin new(t); t^.nodetype:=func2node; t^.fun:=fun; t^.son2Left:=son; t^.son2Right:=son2; t^.flags:=[]; if(ExprIsConstant IN son^.flags) and (ExprIsConstant IN son2^.flags) then Include(t^.flags,ExprIsConstant); NewFunc:=T; end;} function TBaseExpression.NewVar(variable:string):pnode; var p :pnode; begin new(p); p^.nodetype:=varnode; p^.variable:=variable; p^.Flags:=[]; newvar:=p; end; {$I parsexpr.inc} {Parser categories} {$I symbexpr.inc} {standard symbolic manip} {$I teval.inc} {$I rearrang.inc} end. { $Log$ Revision 1.1 2002/12/15 21:01:26 marco Initial revision } �������������������������������������������������dozzaqueux-3.51/Aide/�������������������������������������������������������������������������������0000750�0001750�0001750�00000000000�13155277271�014726� 5����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/Aide/1.jpg��������������������������������������������������������������������������0000750�0001750�0001750�00000000573�11223144407�015564� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������JFIF��H�H���C�  !"$"$� ��������������������#����������1!Q���?�[͔c(Aru((v ؀;?$[p-g1ay[K BH )?gϪV6uK-e#.)}l,+jTVFOT; h(ZZYsw/)*$ebhcŋ<盋/`qv,f<S~GՖ;2F&#Y=8` )�������������������������������������������������������������������������������������������������������������������������������������dozzaqueux-3.51/Aide/buts_et_limites.html�����������������������������������������������������������0000750�0001750�0001750�00000006556�11237512115�021012� 0����������������������������������������������������������������������������������������������������ustar �georgesk������������������������georgesk���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head> <meta http-equiv="CONTENT-TYPE" content="text/html; charset=UTF-8"> <title>buts_et_limites

Dozzzaqueux: but et limites

- Dozzzaqueux est un logiciel de simulation de courbes de dosage en solution aqueuse.
- L'utilisateur sélectionne les réactifs présents dans le bécher et dans la burette. Dozzzaqueux calcule, pour diverses valeurs du volume versé, les nombre de moles des espéces présentes à l'équilibre.
- Les réactions chimiques peuvent être de type acide-base, précipitation, complexation, redox.
- Une fois les calculs faits, Dozzzaqueux permet de tracer toute fonction des concentrations et volumes.

- Les prévisions sont de nature thermodynamique: Dozzzaqueux calcule la composition qui rend minimale l'enthalpie libre du système global, à la température de 25°C et sous la pression atmosphérique. Les constantes de réaction peuvent être modifiées par l'utilisateur.

- Les éventuels blocages cinétiques ne sont donc pas pris en compte par Dozzzaqueux. C'est à l'utilisateur qu'il incombe d'éliminer éventuellement des espéces dont il a des raisons de penser qu'elles ne seront pas présentes à l'équilibre: ceci se faut à la troisième étape de la simulation par simple décochage des espéces. Cette remarque prend tout son sens si on autorise les réactions redox (menu Options, cocher "Autoriser réactions redox"): il peut alors se former un grand nombre d'espéces, et le "sens chimique" de l'utilisateur ainsi que ses connaissances sont alors sollicités à plein.

- Activité d'un soluté: par défaut, elle est prise égale au rapport de sa concentration molaire à la concentration de référence de 1mol/L (coefficient d'activité égal à l'unité).

Si on coche l'option "Utiliser Debye et Hückel" dans le menu "Options", Dozzzaqueux utilise la formule de Debye et Hückel étendue pour calculer les coefficients d'activité des ions:où est le coefficient d'activité de l'espèce i, A et B des coefficients fonctions de la température (et égaux respectivement à 0.5114 et 0.3288 à 25°C), le nombre de charge de l'espèce, un paramètre lié à la taille de l'ion, et I la force ionique: .

Il convient cependant d'être prudent lorsque les solutions sont trop concentrées: les résultats donnés par Dozzzaqueux ne seront alors au mieux qu'approximatifs (même avec Debye et Hückel si la force ionique dépasse 0,1).

dozzaqueux-3.51/Aide/5.jpg0000750000175000017500000000247711223144707015600 0ustar georgeskgeorgeskJFIFHHC  !"$"$ (a2 !"1A2g#'(Xabq?fËL%*Wo-hc !]Y_ Ga6\NZ ^hԶy%JH;4NG5l=͆Ûbwe+sb$Cb(ӊF]i5=4ԟƮY,/{M-ruԈ"bYxRv=*feUfE^WۘY2r.+<&mP􌩔LH sIC? fzu>yS?3e+g˹`5ߒ`F=Ŵv*T#۷qvvƶz>\uhA?~<܎ ʁGYu_ZK2ن& 2W~<2ƶWgTc'ZW,Ho<}}X$F.x>X;p|"71Rױ[Fʇq9c7&lr{rX'!%\OhEH† ^@@1{ ܋/ر^RƖa%v XRʼ O`=4\ɄP֪;_DYn΍?ՃGےTt>AI+^7lo: experience Comparaison à une courbe expérimentale

Cliquez sur le bouton "Superposer expérience ou autre sim. ".

 Vous pourrez alors superposer aux courbes tracées celles issues d'une expérience. Les fichiers d'expérience peuvent être au format tableur texte (*.csv, *.txt) ou régressi windows (*.rw3). Vous pouvez par exemple faire l'acquisition avec mon logiciel "Acquichimie" qui permet d'interfacer des appareils Tacussel (pHmètres et conductimètres).

Remarque: ce bouton permet aussi de superposer le résultat d'une simulation précédente sauvegardée par le bouton "Export résultats" de l'onglet "Tracé des courbes".

Remarque: La case à cocher "Exp." permet d'activer/désactiver l'affichage de la courbe superposée. dozzaqueux-3.51/Aide/resultats_bruts.html0000750000175000017500000000344111237512543021057 0ustar georgeskgeorgesk resultats bruts Affichage des résultats bruts

Vous êtes sur l'onglet "Résultats".

Export des résultats bruts
Vous pouvez exporter ces résultats soit au format tableur texte (*.csv, *.txt), soit au format Régressi Windows (.rw3), en cliquant sur le bouton "Export résultats bruts".

Pour l'export au format tableur texte
On peut paramétrer les paramètres d'exportation en allant dans le menu "Options", "Export tableur texte", pour les adapter au tableur que l'on utilise.


Validation
On clique (simple clic) sur le bouton en bas à gauche "Choisir les courbes à tracer".
dozzaqueux-3.51/Aide/film.html0000750000175000017500000000235111237512460016536 0ustar georgeskgeorgesk film Sauvegarde et chargement de simulations et des courbes

Vous pouvez enregistrer le déroulement d'une simulation via le menu "Fichier", "Enregistrer le film de la simulation".

Vous pouvez ensuite le rejouer
via le menu "Fichier", "Jouer un film de  simulation".

Option de visualisation d'une simulation
Menu "Options", "Temporisation film": on choisit le temps (en ms) pendant lequel chaque onglet est affiché.
dozzaqueux-3.51/Aide/3.jpg0000750000175000017500000000060411223144605015561 0ustar georgeskgeorgeskJFIFHHC  !"$"$ $!"1?Z͌6Uk#9(Ljfi,#@0L 6e..ߐ7~OVQ?"8"aj޿cs,ѯaMPt31́H Ԋ9_.xB.di/PbJIs,Ckj`6!Ը .Y=S T!uiz2QQV/DĆ(( dozzaqueux-3.51/Aide/superposition.html0000750000175000017500000000107211237512572020535 0ustar georgeskgeorgesk superposition Superposition de courbes

Pour superposer des simulations effectuées depuis le dernier lancement de Dozzzaqueux, passez par le bouton "Superposer", puis "une ou plusieurs simulations..." et laissez vous guider.
dozzaqueux-3.51/Aide/burette.html0000750000175000017500000000336611237512244017270 0ustar georgeskgeorgesk burette Remplissage de la burette

-Vous êtes donc maintenant sur l'onglet "Choix des réactifs: burette".

Ajout d'un réactif
- Pour rajouter une des espéces présentes dans le tableau de droite, il suffit de faire un simple clic sur le nom de l'espéce.
- Dozzzaqueux vous propose alors de choisir la quantité de matière que vous voulez introduire: au choix: nombre de moles, masse, nombre de moles par L de solution, masse par L de solution.

Suppression d'un réactif
- Il suffit de cliquer (simple clic) sur la case "Supprimer'" située à droite du réactif déjà choisi.

Modification d'une concentration
- Clic sur la concentration (simple clic), et une fenêtre s'ouvre, invitant à modifier la concentration.

Volume total qui sera versé à partur de la burette
- A vous d'indiquer la valeur, en mL.


Validation
On clique (simple clic) sur le bouton en bas à gauche "Valider et passer au recensement". dozzaqueux-3.51/Aide/1.png0000750000175000017500000000204611223145406015565 0ustar georgeskgeorgeskPNG  IHDRq >PLTE  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~]}tIME:)C-IDATx= D1jjRdS2x® XGB\7 eY "܃T(N5(82{ZoRn N~/65ZrO.pjFŠHK|vJoP<8ۚ'm*dQX}!Qr$dKɠXǬ3b_DJIENDB`dozzaqueux-3.51/Aide/affichage_courbes.html0000750000175000017500000000330311237512206021222 0ustar georgeskgeorgesk affichage courbes Affichage des courbes

Pas grand chose à dire: les boutons "Titre" et "Unités labels" permettent de modifier le titre, les unités sur les axes, les noms des grandeurs portées sur les axes.
Les divers boutons à cocher  parlent d'eux même...

Point particulier
Si vous voulez avoir les coordonnées d'un point particulier, cliquez (simple clic) sur le bouton "Point particulier".

Export des résultats et du graphe
Vous pouvez  copier le graphe dans le presse-papier (bouton "Copier"), exporter le graphe sous forme d'image PNG ou BMP (ou JPEG pour la version Linux) (bouton "Export graphe"), imprimer le graphe (bouton "Imprimer"). Vous pouvez aussi exporter les résultats numériques au format tabelur texte ou Régressi.
dozzaqueux-3.51/Aide/faisceau_courbes.html0000750000175000017500000000142411237512442021111 0ustar georgeskgeorgesk faisceau courbes Faisceau de courbes

Vous êtes sur l'onglet "Tracé des courbes", et vous désirez voir l'influence de la variation d'un paramètre (concentration initiale, volume, constante de réaction) sur vos courbes. Cliquez (simple clic) sur le bouton "Faisceau", et laissez vous guider.

Sortir du mode "faisceau"
Revenez sur l'onglet "Choix des courbes" et validez.
dozzaqueux-3.51/Aide/choix_courbes.html0000750000175000017500000000462311237512271020447 0ustar georgeskgeorgesk choix courbes Choix des courbes à tracer

Vous êtes sur l'onglet "Choix des courbes".

Choix de l'abscisse
Cliquez (simple clic) sur le bouton "Définir la grandeur portée en abscisse", puis laissez vous guider...

Choix des ordonnées
Cliquez (simple clic) sur le bouton "Ajouter une grandeur en ordonnée", puis laissez vous guider

Paramètres de tracé
Une fois une grandeur d'ordonnée choisie, vous pouvez modifier ses paramètres d'affichage en cliquant directement sur le paramètres concerné dans le tableau. Attention en particulier au fait qu'une grandeur peut utiliser l'échelle verticale droite ou la gauche. Mettez sur le même coté des grandeurs de même nature, sinon vous aurez des surprises avec les échelles...

Echelles
Vous pouvez imposer les échelles, ou (recommandé) laisser Dozzzaqueux déterminer les plus adaptées.

Validation
On clique (simple clic) sur le bouton en bas à gauche "Valider et tracer les courbes".
dozzaqueux-3.51/Aide/.directory0000750000175000017500000000006211341570061016720 0ustar georgeskgeorgesk[Dolphin] Timestamp=2010,2,25,22,48,33 ViewMode=1 dozzaqueux-3.51/Aide/3.png0000750000175000017500000000207711223145422015571 0ustar georgeskgeorgeskPNG  IHDR86OPLTE  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~]}tIME:3IDATxQkO0 t;`?sAqb8'ebfElc B~i aide dozzzaqueux Dozzzaqueux

Logiciel libre et gratuit de simulation de courbes de dosage en solution aqueuse.

Ce logiciel est utilisable et copiable librement selon les termes de la licence GPL.


I But et limites du logiciel

II Construction pas à pas du dosage

III Sauvegarde et chargement de simulations et des courbes

IV Comparaison d'une simulation à une courbe expérimentale


dozzaqueux-3.51/Aide/2.jpg0000750000175000017500000000501711223145023015556 0ustar georgeskgeorgeskJFIFHHC  !"$"$ 13!"#1$ABQV%&2?/M4M4MQ/w9@^91$C(y!>E1]ܤ*xݯ:6Gr8e(yC?Խрa r yfKv;C{²gYz7<7Sxn|/{[[+?7+V#:pXNCme !FI>f7uN@(G~Z'#~nP_.w އ3{sϸχ>Oꙝjz&CK6J8V+Y+7R%J$>^c(]ўKY!1r7#+ߨ˻أm̱Vgf d dif]۸LL\<,UX=ujrE^Hʰ{ MwsE4{-=͑BC: 9<$OӭWn^O+*fdbK$"hV~>ORIюVA}sik*(A©wfNX&=W#IFE4 U݋l߽ RSKM[R4j̑YۦЩVhֆJ,0A a#p>@>[Lm7B*Cmn|[JLPUlsD~#TfiK*b>b\"Sj2ZCx#G{/v^ĕ ^slUJѸqĿ$yuCOmee&TWQD<%禚ijCb;}]_Vȕ]'^d! -)d*zbT)GC!snYMm݇S "yw?iͱ×KYU~zr/@㔖E#cΪY` D )ɼQчeUVں}&i6dhѱNfb&a*C#|2AVv[WlJLU|\|^*0\ @0<0B@!YAgqs8[޵ GAPʹ*d}>;CsY+ ,%CqSEv- especes presentes Recensement des espéces

Vous êtes sur l'onglet "Espéces présentes".

Espéces présentées
Elles résultent de la recherche dans la base de données des espéces susceptibles de se former à partir des espéces que vous avez sélectionnées pour le bécher et la burette.

Prise en compte des réactions redox
Elles ne sont prises en compte que si dans le menu "Options" vous avez coché "Autoriser réactions redox". Si vous ne l'aviez pas fait, faites le maintenant, revenez ensuite sur l'onglet "Choix des réactifs: burette", et validez le.

Attention
Certaines réactions, et en particulier des réactions redox, peuvent être bloquées cinétiquement: si donc vous pensez que certaines espéces ne peuvent pas être présentes à l'équilibre, il faut impérativement les décocher du tableau des espéces susceptibles d'être présentes. Dozzzaqueux ne fait que des prévisions de nature thermodynamique, il ne fera pas d'analyse à votre place de la validité de la prise en compte des espéces.

Validation
On clique (simple clic) sur le bouton en bas à gauche "Valider et passer aux constantes de réactions".

dozzaqueux-3.51/Aide/becher.html0000750000175000017500000000353511237512227017045 0ustar georgeskgeorgesk becher Remplissage du bécher

- Au lancement de Dozzzaqueux, on se retrouve sur l'onglet "Choix des réactifs: bécher".

Ajout d'un réactif
- Pour rajouter une des espéces présentes dans le tableau de droite, il suffit de faire un simple clic sur le nom de l'espéce.
- Dozzzaqueux vous propose alors de choisir la quantité de matière que vous voulez introduire: au choix: nombre de moles, masse, nombre de moles par L de solution, masse par L de solution.

Suppression d'un réactif
- Il suffit de cliquer (simple clic) sur la case "Supprimer'" située à droite du réactif déjà choisi.

Modification d'une concentration
- Clic sur la concentration (simple clic), et une fenêtre s'ouvre, invitant à modifier la concentration.

Volume de solution présent initialement dans le bécher
- A vous d'indiquer la valeur, en mL.
Remarque: la température est affichée pour information, mais ne peut être modifiée.

Validation
On clique (simple clic) sur le bouton en bas à gauche "Valider et passer à la burette".
dozzaqueux-3.51/Aide/construction_pas_a_pas.html0000750000175000017500000000507711237512331022354 0ustar georgeskgeorgesk construction pas à pas Construction pas à pas du dosage

La construction se fait par validation des onglets successifs. La validation se fait par simple clic sur le bouton situé en bas à gauche.
Vous pouvez toujours revenir sur un onglet antérieur, en cliquant sur l'onglet voulu; si vous y faites des modifications, il faudra les revalider; si vous n'en faites pas, vous pouvez revenir à l'onglet de départ en cliquant sur celui-ci.

I Remplissage du bécher

II Remplissage de la burette

III Choix des espéces susceptibles d'être présentes à l'équilibre

IV Modification des constantes de réaction

V Affichage des résultats bruts

VI Choix des courbes à tracer

VII Affichage des courbes

VIII Faisceau de courbes


IX Comparaison à une courbe expérimentale

X Superposition de courbes
dozzaqueux-3.51/Aide/reactions_et_constantes.html0000750000175000017500000000412711237512516022534 0ustar georgeskgeorgesk reactions et constantes Réactions et constantes

Vous êtes maintenant sur l'onglet "Réactions et constantes"

Réactions proposées
Vous avez choisi à l'étape précédente les espéces susceptibles d'être présentes à l'équilibre. Dozzaqueux détermine alors le plus petit ensemble d'équations de  réaction liant ces espéces (ce n'est pas forcément le seul possible, mais tout autre ensemble s'obtient par combinaison linéaire des équations de celui-là). Ce ne sont pas forcément les équations les plus "classiques" !


Modification des logarithmes des constantes de réaction
Vous pouvez changer les valeurs directement dans le tableau.
Ces modifications perdureront tant que vous n'aurez pas quitté Dozzzaqueux. Au prochain lancement de Dozzzaqueux, elles retrouveront les valeurs résultantes de la base de données de Dozzzaqueux.

Paramètrage des calculs
Dozzzaqueux va calculer les concentrations à l'équilibre pour un certain nombre de valeurs du volume versé. Il peut utiliser soit un pas "fixe" (point réguliérement espéces en volume), soit un pas adaptatif (il diminue alors le pas lorsque les concentrations varient trop fortement). Le paramétrage se fait par le menu "Options", "Nombre de points de calcul".

Validation
On clique (simple clic) sur le bouton en bas à gauche "Valider et lancer les calculs". dozzaqueux-3.51/Aide/4.jpg0000750000175000017500000000066011223144654015570 0ustar georgeskgeorgeskJFIFHHC  !"$"$ !AQ?~)uRqZ'ܡ=6;mC'mmEzNHZ$[Y/sl.֢,TlMDUPvKaωiYC]o Fcei-!_["@‰8؊8D%Ӭ^k7-"T&mq`4zd-<(ˌzu|z:u?* :Sدm"Wcا,,Y49Aī"Ytm#$PeyN7 ;NQ G?dozzaqueux-3.51/Aide/4.png0000750000175000017500000000213211223145436015567 0ustar georgeskgeorgeskPNG  IHDR`yPLTE  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~]}tIME:&RIDATxEr0Di7?1msnt儑GxA˨4X$-@\ '_ەxP7#YL3sh|䠷>M!Q.?*;7#=rrB*9_ģ/S ~QnSWBh}*}.z,5oº;Z]lV~-' KfM^p\ci xZyp,>aǾc);#b;? '2֭X)Sּгߏ IENDB`dozzaqueux-3.51/Aide/2.png0000750000175000017500000000614311223145371015571 0ustar georgeskgeorgeskPNG  IHDR1,SPLTE  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~]}tIME:09 IDATxX=,Gٽ/YB@B O @ 3H@$OrA'8 p;_]S=3;{ѽ;===UNU9?zY$6IDG֢ȑbuyBɉĐo?fqaWd%m;LQ *VLB:*DM-l`ܩ/@9ۚv2g)FBo톝;<#XuZy"j5ؤh+3Ff'M #bkdE,jv' mGeG0ep+`I`Zw fa5 }[uGhjbjS:DW9HKGBp7ŞQo#/>1)ZD@4233 ySZR:XiJqYc߽UAJ [=̬6L:y89@ @%j")3E+ӧG.=h(l{pR [=1UHCI5@*@O#0!]u 2oQi>t[y &PE bLb s&1! GB6@",Wi/.Eyk2P뛐&KdV< i3ܲO=DMкÔ9;>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~]}tIME 9.IDATxW;Eٽ]Wv`3? !H 1A$H E R^ݙ.y-vz|UG KfKQB$ v,I}y[<2`j'&b!4AG /7h;;(&{&[]~K \ L)sc믓qnd!Mm13r,~x.2޳Z2Cx .]PZ=xN{Kcȼhڥgq |e4C=J ɏ#̈́Z%+' sH̸5ArFM+iX*_߂l"~1y5vkxr0T6۹;$s6o9=s7i!; ؋DUP˦x!団y+EqDy̝H3U#MV@46BKs(F3vJjmF(<̰9K]#|Z}zu=^R\hun[Vw4ZeZAZjK҄RխEႸ pd\Sع0N9ewQP ]q٪Y,almi\ulޒo냊:eDH*9@RkBqksugWD}PI7A[ɟO4oW).8vFRG2R`4 eҚݮ L6AK)=F].!ھMâC7@왍?B/z- JF :*nZ'́-vQPo%|eӠ.\,"KaXF+fupMv>c @eLZ04D?`8(Y!D$NI6ևS`>]֍S"ε %U+Tұ,ZwuC܆ =Ǣe@/! s7FpSQN-حNAݚKGSuױ#rH.dH+9|Lv.QV1FY8M&k"MW? Ů-g\rz#Zc4yeS+a--g#B Zi\'f|1&ly÷hqlzVznC[=ُ`6=IP^tx6/q&SOEIENDB`dozzaqueux-3.51/unit4b.lrs0000750000175000017500000003163113147330070016006 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm4b','FORMDATA',[ 'TPF0'#7'TForm4b'#6'Form4b'#4'Left'#3#190#2#6'Height'#3#29#2#3'Top'#3#227#0#5 +'Width'#3#3#3#13'ActiveControl'#7#16'Editformulebrute'#11'BorderIcons'#11#12 +'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#22 +'Recherche dans la base'#12'ClientHeight'#3#29#2#11'ClientWidth'#3#3#3#8'OnC' +'reate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2.0' +#0#12'TSpeedButton'#12'SpeedButtonC'#22'AnchorSideLeft.Control'#7#5'Owner'#21 +'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrBottom'#4 +'Left'#2#10#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'BorderSpacing.Left'#2 +#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#1'C'#10'Font.Color'#7#7'clBlack' +#10'Font.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7 +#17'SpeedButtonCClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButtonO' +#22'AnchorSideLeft.Control'#7#12'SpeedButtonC'#19'AnchorSideLeft.Side'#7#9'a' +'srBottom'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Sid' +'e'#7#9'asrCenter'#4'Left'#2'-'#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18 +'BorderSpacing.Left'#2#10#7'Caption'#6#1'O'#10'Font.Color'#7#7'clBlack'#10'F' +'ont.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'S' +'peedButtonOClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButtonH'#22 +'AnchorSideLeft.Control'#7#12'SpeedButtonO'#19'AnchorSideLeft.Side'#7#9'asrB' +'ottom'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7 +#9'asrCenter'#4'Left'#2'P'#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'Borde' +'rSpacing.Left'#2#10#7'Caption'#6#1'H'#10'Font.Color'#7#7'clBlack'#10'Font.P' +'itch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'SpeedB' +'uttonHClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButtonN'#22'Anch' +'orSideLeft.Control'#7#12'SpeedButtonH'#19'AnchorSideLeft.Side'#7#9'asrBotto' +'m'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#2's'#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'BorderS' +'pacing.Left'#2#10#7'Caption'#6#1'N'#10'Font.Color'#7#7'clBlack'#10'Font.Pit' +'ch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'SpeedBut' +'tonNClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButtonP'#22'Anchor' +'SideLeft.Control'#7#12'SpeedButtonN'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9'asr' +'Center'#4'Left'#3#150#0#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'BorderS' +'pacing.Left'#2#10#7'Caption'#6#1'P'#10'Font.Color'#7#7'clBlack'#10'Font.Pit' +'ch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'SpeedBut' +'tonPClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButtonS'#22'Anchor' +'SideLeft.Control'#7#12'SpeedButtonP'#19'AnchorSideLeft.Side'#7#9'asrBottom' +#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9'asr' +'Center'#4'Left'#3#185#0#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'BorderS' +'pacing.Left'#2#10#7'Caption'#6#1'S'#10'Font.Color'#7#7'clBlack'#10'Font.Pit' +'ch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'SpeedBut' +'tonSClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#16'SpeedButton1plus'#22'An' +'chorSideLeft.Control'#7#12'SpeedButton3'#19'AnchorSideLeft.Side'#7#9'asrBot' +'tom'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#3'"'#1#6'Height'#2#25#3'Top'#2'd'#5'Width'#2'!'#18'Borde' +'rSpacing.Left'#2#10#7'Caption'#6#3'[+]'#10'Font.Color'#7#7'clBlack'#10'Font' +'.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#21'Spee' +'dButton1plusClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#16'SpeedButton2plu' +'s'#22'AnchorSideLeft.Control'#7#16'SpeedButton1plus'#19'AnchorSideLeft.Side' +#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTo' +'p.Side'#7#9'asrCenter'#4'Left'#3'M'#1#6'Height'#2#25#3'Top'#2'd'#5'Width'#2 +'!'#18'BorderSpacing.Left'#2#10#7'Caption'#6#4'[2+]'#10'Font.Color'#7#7'clBl' +'ack'#10'Font.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClic' +'k'#7#21'SpeedButton2plusClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#16'Spe' +'edButton3plus'#22'AnchorSideLeft.Control'#7#16'SpeedButton2plus'#19'AnchorS' +'ideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18 +'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3'x'#1#6'Height'#2#25#3'Top'#2'd' +#5'Width'#2'!'#18'BorderSpacing.Left'#2#10#7'Caption'#6#4'[3+]'#10'Font.Colo' +'r'#7#7'clBlack'#10'Font.Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold' +#0#7'OnClick'#7#21'SpeedButton3plusClick'#10'ParentFont'#8#0#0#12'TSpeedButt' +'on'#17'SpeedButton3moins'#22'AnchorSideLeft.Control'#7#16'SpeedButton3plus' +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'Speed' +'ButtonC'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#163#1#6'Height'#2 +#25#3'Top'#2'd'#5'Width'#2'!'#18'BorderSpacing.Left'#2#10#7'Caption'#6#4'[3-' +']'#10'Font.Color'#7#7'clBlack'#10'Font.Pitch'#7#10'fpVariable'#10'Font.Styl' ,'e'#11#6'fsBold'#0#7'OnClick'#7#22'SpeedButton3moinsClick'#10'ParentFont'#8#0 +#0#12'TSpeedButton'#17'SpeedButton2moins'#22'AnchorSideLeft.Control'#7#17'Sp' +'eedButton3moins'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Co' +'ntrol'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3 +#206#1#6'Height'#2#25#3'Top'#2'd'#5'Width'#2'!'#18'BorderSpacing.Left'#2#10#7 +'Caption'#6#4'[2-]'#10'Font.Color'#7#7'clBlack'#10'Font.Pitch'#7#10'fpVariab' +'le'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#22'SpeedButton2moinsClick'#10 +'ParentFont'#8#0#0#12'TSpeedButton'#17'SpeedButton1moins'#22'AnchorSideLeft.' +'Control'#7#17'SpeedButton2moins'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21 +'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9'asrCen' +'ter'#4'Left'#3#249#1#6'Height'#2#25#3'Top'#2'd'#5'Width'#2'!'#18'BorderSpac' +'ing.Left'#2#10#7'Caption'#6#3'[-]'#10'Font.Color'#7#7'clBlack'#10'Font.Pitc' +'h'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#22'SpeedButt' +'on1moinsClick'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButton2'#22'An' +'chorSideLeft.Control'#7#12'SpeedButtonS'#19'AnchorSideLeft.Side'#7#9'asrBot' +'tom'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#3#220#0#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'Bord' +'erSpacing.Left'#2#10#7'Caption'#6#1'2'#10'Font.Color'#7#7'clBlack'#10'Font.' +'Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'Speed' +'Button2Click'#10'ParentFont'#8#0#0#12'TSpeedButton'#12'SpeedButton3'#22'Anc' +'horSideLeft.Control'#7#12'SpeedButton2'#19'AnchorSideLeft.Side'#7#9'asrBott' +'om'#21'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#3#255#0#6'Height'#2#25#3'Top'#2'd'#5'Width'#2#25#18'Bord' +'erSpacing.Left'#2#10#7'Caption'#6#1'3'#10'Font.Color'#7#7'clBlack'#10'Font.' +'Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#17'Speed' +'Button3Click'#10'ParentFont'#8#0#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Co' +'ntrol'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Heigh' +'t'#2#20#3'Top'#2#10#5'Width'#3#163#2#18'BorderSpacing.Left'#2#10#17'BorderS' +'pacing.Top'#2#10#7'Caption'#6'hEntrez la formule brute. Puis cliquez sur "O' +'K". Puis s'#195#169'lectionnez le r'#195#169'actif dans la liste ci-dessous' +'.'#10'Font.Color'#7#7'clBlack'#10'Font.Pitch'#7#10'fpVariable'#10'Font.Styl' +'e'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label2' +#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label3' +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#2 +'F'#5'Width'#3'V'#2#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7 +'Caption'#6'R mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (p' +'as de parenth'#195#169'ses)'#10'Font.Color'#7#7'clBlack'#10'Font.Pitch'#7#10 +'fpVariable'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8 +#0#0#6'TLabel'#6'Label3'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSide' +'Top.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10 +#6'Height'#2#20#3'Top'#2'('#5'Width'#3#157#1#18'BorderSpacing.Left'#2#10#17 +'BorderSpacing.Top'#2#10#7'Caption'#6'? Exemples: BaSO4 Ag[+] ' +'CrO4[2-] FeO3H3[3+] '#10'Font.Color'#7#7'clBlack'#10'Font.Pitch'#7#10 +'fpVariable'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8 +#0#0#5'TEdit'#16'Editformulebrute'#22'AnchorSideLeft.Control'#7#5'Owner'#21 +'AnchorSideTop.Control'#7#12'SpeedButtonC'#18'AnchorSideTop.Side'#7#9'asrBot' +'tom'#4'Left'#2#10#6'Height'#2#28#3'Top'#3#135#0#5'Width'#3'i'#2#18'BorderSp' +'acing.Left'#2#10#17'BorderSpacing.Top'#2#10#8'OnChange'#7#22'Editformulebru' +'teChange'#7'OnKeyUp'#7#21'EditformulebruteKeyUp'#9'OnMouseUp'#7#23'Editform' +'ulebruteMouseUp'#8'TabOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLef' +'t.Control'#7#10'sgreactifs'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Ancho' +'rSideTop.Control'#7#11'RadioGroup1'#18'AnchorSideTop.Side'#7#9'asrBottom'#24 +'AnchorSideBottom.Control'#7#7'BitBtn2'#4'Left'#3#205#1#6'Height'#3#149#0#3 +'Top'#3'@'#1#5'Width'#3#251#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0 +#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#20'BorderSpacing.Bot' +'tom'#2#10#7'Caption'#6#2'OK'#7'Default'#9#10'Glyph.Data'#10#226#1#0#0#222#1 +#0#0'BM'#222#1#0#0#0#0#0#0'v'#0#0#0'('#0#0#0'$'#0#0#0#18#0#0#0#1#0#4#0#0#0#0 +#0'h'#1#0#0#18#11#0#0#18#11#0#0#16#0#0#0#16#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0 +#0#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0#192#192#192#0#128#128#128#0#0 +#0#255#0#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255 +#0'333333333333333333'#0#0'333333333333'#243'33333'#0#0'334C33333338'#143'33' +'333'#0#0'33B$3333333'#131'8'#243'3333'#0#0'34""C33333833'#143'3333'#0#0'3B"' +'"$33333'#131'338'#243'333'#0#0'4"*""C3338'#243'8'#243'3'#143'333'#0#0'2"' +#163#162'"C3338'#243#131#143'3'#143'333'#0#0':*3:"$3338'#248'38'#243'8'#243 ,'33'#0#0'3'#163'33'#162'"C333'#131'33'#143'3'#143'33'#0#0'3333:"$3333338'#243 +'8'#243'3'#0#0'33333'#162'"C333333'#143'3'#143'3'#0#0'33333:"$3333338'#243'8' +#243#0#0'333333'#162'"C333333'#143'3'#143#0#0'333333:"C3333338'#243#143#0#0 +'3333333'#162'#3333333'#143#131#0#0'3333333:3333333383'#0#0'3333333333333333' +'33'#0#0#9'NumGlyphs'#2#2#7'OnClick'#7#12'BitBtn1Click'#8'TabOrder'#2#1#0#0 +#11'TStringGrid'#10'sgreactifs'#22'AnchorSideLeft.Control'#7#5'Owner'#21'Anc' +'horSideTop.Control'#7#11'RadioGroup1'#18'AnchorSideTop.Side'#7#9'asrBottom' +#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBo' +'ttom'#4'Left'#2#10#6'Height'#3#211#0#4'Hint'#6'DPour s'#195#169'lectionner ' +'un r'#195#169'actif, cliquez sur la ligne correspondante.'#3'Top'#3'@'#1#5 +'Width'#3#185#1#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#18'BorderSpac' +'ing.Left'#2#10#17'BorderSpacing.Top'#2#10#20'BorderSpacing.Bottom'#2#10#14 +'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#3#9'OnMouseUp'#7#17'sgreactif' +'sMouseUp'#0#0#11'TRadioGroup'#11'RadioGroup1'#22'AnchorSideLeft.Control'#7#5 +'Owner'#21'AnchorSideTop.Control'#7#16'Editformulebrute'#18'AnchorSideTop.Si' +'de'#7#9'asrBottom'#4'Left'#2#10#6'Height'#3#137#0#3'Top'#3#173#0#5'Width'#3 +'i'#2#8'AutoFill'#9#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7 +'Caption'#6#19'Type de comparaison'#28'ChildSizing.LeftRightSpacing'#2#6#28 +'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'cr' +'sHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousC' +'hildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildS' +'izing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclL' +'eftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHei' +'ght'#2's'#11'ClientWidth'#3'e'#2#9'ItemIndex'#2#0#13'Items.Strings'#1#6#6'E' +'xacte'#6'/M'#195#170'mes atomes, en nombres inf'#195#169'rieurs ou '#195#169 +'gaux'#6'.M'#195#170'mes atomes, en nombre sup'#195#169'rieurs ou '#195#169 +'gaux'#6'$M'#195#170'mes atomes, en nombre quelconques'#0#8'TabOrder'#2#2#0#0 +#7'TBitBtn'#7'BitBtn2'#22'AnchorSideLeft.Control'#7#10'sgreactifs'#19'Anchor' +'SideLeft.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'An' +'chorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#205#1#6'Height'#2'4'#3'Top'#3 +#223#1#5'Width'#3#249#0#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpaci' +'ng.Left'#2#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6#7'&Fermer'#4'Kind' +#7#7'bkClose'#8'TabOrder'#2#4#0#0#0 ]); dozzaqueux-3.51/unit_dilution.lfm0000750000175000017500000000653613147330070017453 0ustar georgeskgeorgeskobject Form_dilution: TForm_dilution Left = 787 Height = 441 Top = 166 Width = 843 BorderStyle = bsDialog Caption = 'Form_dilution' ClientHeight = 441 ClientWidth = 843 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 155 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Vous pouvez au choix:' Font.Color = clBlue Font.Style = [fsBold] ParentColor = False ParentFont = False end object RadioGroup1: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 202 Top = 40 Width = 389 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 180 ClientWidth = 385 Items.Strings = ( 'Multiplier toutes les concentrations par le facteur:' 'Ajouter le volume d''eau suivant:' 'Porter le volume total à la valeur:' ) OnSelectionChanged = RadioGroup1SelectionChanged TabOrder = 0 end object Edit1: TEdit AnchorSideLeft.Control = RadioGroup1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RadioGroup1 AnchorSideTop.Side = asrCenter Left = 409 Height = 28 Top = 127 Width = 92 BorderSpacing.Left = 10 OnKeyPress = Edit1KeyPress TabOrder = 1 end object Label2: TLabel AnchorSideLeft.Control = Edit1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Edit1 AnchorSideTop.Side = asrCenter Left = 511 Height = 20 Top = 131 Width = 44 BorderSpacing.Left = 10 Caption = 'Label2' ParentColor = False end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = RadioGroup1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = BitBtn2 Left = 10 Height = 109 Top = 252 Width = 823 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Default = True DefaultCaption = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 2 end object BitBtn2: TBitBtn AnchorSideLeft.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 60 Top = 371 Width = 823 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Cancel = True DefaultCaption = True Kind = bkCancel ModalResult = 2 TabOrder = 3 end end dozzaqueux-3.51/unit13.lrs0000750000175000017500000001376613147330070015735 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisieunites','FORMDATA',[ 'TPF0'#13'Tsaisieunites'#12'saisieunites'#4'Left'#3'P'#1#6'Height'#3#240#0#3 +'Top'#3#195#0#5'Width'#3#127#2#13'ActiveControl'#7#10'Editunitex'#11'BorderI' +'cons'#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7 +'Caption'#6#27'Unit'#195#169's et labels des axes:'#12'ClientHeight'#3#240#0 +#11'ClientWidth'#3#127#2#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow' +#10'LCLVersion'#6#7'1.2.2.0'#0#6'TLabel'#6'Label1'#21'AnchorSideTop.Control' +#7#10'Editunitex'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.C' +'ontrol'#7#10'Editunitex'#4'Left'#2'R'#6'Height'#2#20#3'Top'#2#14#5'Width'#3 +#14#1#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#10#7'Cap' +'tion'#6'+Unit'#195#169' '#195#160' afficher sur l''axe des abscisses:'#10'F' +'ont.Color'#7#8'clMaroon'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10 +'ParentFont'#8#0#0#6'TLabel'#6'Label2'#21'AnchorSideTop.Control'#7#10'Editla' +'belx'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#10 +'Editlabelx'#4'Left'#2'U'#6'Height'#2#20#3'Top'#2'4'#5'Width'#3#13#1#7'Ancho' +'rs'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Right'#2#10#7'Caption'#6'*Lab' +'el '#195#160' afficher sur l''axe des abscisses:'#10'Font.Color'#7#7'clOliv' +'e'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'T' +'Label'#6'Label3'#22'AnchorSideLeft.Control'#7#11'Editunitey1'#21'AnchorSide' +'Top.Control'#7#11'Editunitey1'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'Anc' +'horSideRight.Control'#7#11'Editunitey1'#4'Left'#2#20#6'Height'#2#20#3'Top'#2 +'Z'#5'Width'#3'N'#1#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderSpacing.Rig' +'ht'#2#10#7'Caption'#6'3Unit'#195#169' '#195#160' afficher sur l''axe gauche' +' des ordonn'#195#169'es:'#10'Font.Color'#7#7'clGreen'#10'Font.Style'#11#6'f' +'sBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label4'#21'Anch' +'orSideTop.Control'#7#11'Editlabely1'#18'AnchorSideTop.Side'#7#9'asrCenter' +#23'AnchorSideRight.Control'#7#11'Editlabely1'#4'Left'#2#19#6'Height'#2#20#3 +'Top'#3#128#0#5'Width'#3'M'#1#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderS' +'pacing.Right'#2#10#7'Caption'#6'2Label '#195#160' afficher sur l''axe gauch' +'e des ordonn'#195#169'es:'#10'Font.Color'#7#9'clFuchsia'#10'Font.Style'#11#6 +'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label5'#21'Anc' +'horSideTop.Control'#7#11'Editunitey2'#18'AnchorSideTop.Side'#7#9'asrCenter' +#23'AnchorSideRight.Control'#7#11'Editunitey2'#4'Left'#2'#'#6'Height'#2#20#3 +'Top'#3#166#0#5'Width'#3'>'#1#7'Anchors'#11#5'akTop'#7'akRight'#0#19'BorderS' +'pacing.Right'#2#10#7'Caption'#6'2Unit'#195#169' '#195#160' afficher sur l''' +'axe droit des ordonn'#195#169'es:'#10'Font.Color'#7#6'clBlue'#10'Font.Style' +#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label6'#21 +'AnchorSideTop.Control'#7#11'Editlabely2'#18'AnchorSideTop.Side'#7#9'asrCent' +'er'#23'AnchorSideRight.Control'#7#11'Editlabely2'#4'Left'#2'#'#6'Height'#2 +#20#3'Top'#3#204#0#5'Width'#3'='#1#7'Anchors'#11#5'akTop'#7'akRight'#0#19'Bo' +'rderSpacing.Right'#2#10#7'Caption'#6'1Label '#195#160' afficher sur l''axe ' +'droit des ordonn'#195#169'es:'#10'Font.Color'#7#6'clBlue'#10'Font.Style'#11 +#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#5'TEdit'#10'Editunitex' +#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#7'BitBtn' +'1'#4'Left'#3'j'#1#6'Height'#2#28#3'Top'#2#10#5'Width'#3#165#0#7'Anchors'#11 +#5'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2 +#20#8'TabOrder'#2#0#0#0#5'TEdit'#10'Editlabelx'#21'AnchorSideTop.Control'#7 +#10'Editunitex'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Con' +'trol'#7#7'BitBtn1'#4'Left'#3'l'#1#6'Height'#2#28#3'Top'#2'0'#5'Width'#3#163 +#0#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2#10#19'BorderS' +'pacing.Right'#2#20#8'TabOrder'#2#1#0#0#5'TEdit'#11'Editunitey1'#21'AnchorSi' +'deTop.Control'#7#10'Editlabelx'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'An' +'chorSideRight.Control'#7#7'BitBtn1'#4'Left'#3'l'#1#6'Height'#2#28#3'Top'#2 +'V'#5'Width'#3#163#0#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing.To' +'p'#2#10#19'BorderSpacing.Right'#2#20#8'TabOrder'#2#2#0#0#5'TEdit'#11'Editla' +'bely1'#21'AnchorSideTop.Control'#7#11'Editunitey1'#18'AnchorSideTop.Side'#7 +#9'asrBottom'#23'AnchorSideRight.Control'#7#7'BitBtn1'#24'AnchorSideBottom.C' +'ontrol'#7#7'BitBtn1'#4'Left'#3'j'#1#6'Height'#2#28#3'Top'#2'|'#5'Width'#3 +#165#0#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2#10#19'Bor' +'derSpacing.Right'#2#20#8'TabOrder'#2#3#0#0#5'TEdit'#11'Editunitey2'#21'Anch' +'orSideTop.Control'#7#11'Editlabely1'#18'AnchorSideTop.Side'#7#9'asrBottom' +#23'AnchorSideRight.Control'#7#7'BitBtn1'#4'Left'#3'k'#1#6'Height'#2#28#3'To' +'p'#3#162#0#5'Width'#3#164#0#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSp' +'acing.Top'#2#10#19'BorderSpacing.Right'#2#20#8'TabOrder'#2#4#0#0#5'TEdit'#11 +'Editlabely2'#21'AnchorSideTop.Control'#7#11'Editunitey2'#18'AnchorSideTop.S' ,'ide'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#7'BitBtn1'#4'Left'#3'j'#1 +#6'Height'#2#28#3'Top'#3#200#0#5'Width'#3#165#0#7'Anchors'#11#5'akTop'#7'akR' +'ight'#0#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#20#8'TabOrder' +#2#5#0#0#7'TBitBtn'#7'BitBtn1'#21'AnchorSideTop.Control'#7#5'Owner'#23'Ancho' +'rSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'A' +'nchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom' +#4'Left'#3'#'#2#6'Height'#3#220#0#3'Top'#2#10#5'Width'#2'R'#7'Anchors'#11#5 +'akTop'#7'akRight'#8'akBottom'#0#17'BorderSpacing.Top'#2#10#19'BorderSpacing' +'.Right'#2#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6#3'&OK'#7'Default'#9 +#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#8'TabOrder'#2#6#0#0#0 ]); dozzaqueux-3.51/unit_electroneutralite.pas0000750000175000017500000000222213147330070021347 0ustar georgeskgeorgeskunit Unit_electroneutralite; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, Buttons,UChaines,UnitScaleFont; type { Tsaisie_electroneutralite } Tsaisie_electroneutralite = class(TForm) BitBtn1: TBitBtn; Label1: TLabel; RadioGroup1: TRadioGroup; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisie_electroneutralite: Tsaisie_electroneutralite; implementation { Tsaisie_electroneutralite } procedure Tsaisie_electroneutralite.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsElectroneutr; Label1.Caption := rsLaChargeLect; RadioGroup1.Caption := rsAuChoix; RadioGroup1.Items.clear; RadioGroup1.Items.add(rsAjouterOuEnl); RadioGroup1.Items.add(rsPasserOutreA); end; procedure Tsaisie_electroneutralite.FormShow(Sender: TObject); begin //if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit_electroneutralite.lrs} end. dozzaqueux-3.51/unit28.pas0000750000175000017500000000367613147330070015725 0ustar georgeskgeorgeskunit Unit28; {$mode objfpc}{$H+} interface uses Classes, SysUtils,Graphics,LCLType,UnitScaleFont; type arraycouleurs=array of tcolor; procedure Degrade(couleurdepart,couleurarrivee:tcolor; nombrecouleurs:integer; var tableaucouleurs:arraycouleurs); implementation FUNCTION RGB(CONST r,g,b: BYTE): TColor; BEGIN RESULT := (r OR (g SHL 8) OR (b SHL 16)) END {RGB}; function GetRValue(Color: TColor): Byte; begin Result := Byte(Color); end; function GetGValue(Color: TColor): Byte; begin Result := Byte(Color shr 8); end; function GetBValue(Color: TColor): Byte; begin Result := Byte(Color shr 16); end; procedure Degrade(couleurdepart,couleurarrivee:tcolor; nombrecouleurs:integer; var tableaucouleurs:arraycouleurs); var couleurdepartRGB : Array[0..2] Of Byte; couleuractuelleRGB : Array[0..2] Of Byte; incrementcouleurRGB : Array[0..2] Of Integer; i:integer; Begin if nombrecouleurs<=1 then exit; couleurdepartRGB[0] := GetRValue( ColorToRGB( couleurdepart ) ); couleurdepartRGB[1] := GetGValue( ColorToRGB( couleurdepart ) ); couleurdepartRGB[2] := GetBValue( ColorToRGB( couleurdepart ) ); incrementcouleurRGB[0] := GetRValue( ColorToRGB( couleurarrivee )) - couleurdepartRGB[0]; incrementcouleurRGB[1] := GetgValue( ColorToRGB( couleurarrivee )) - couleurdepartRGB[1]; incrementcouleurRGB[2] := GetbValue( ColorToRGB( couleurarrivee )) - couleurdepartRGB[2]; setlength(tableaucouleurs,nombrecouleurs); for i:=1 to nombrecouleurs do begin couleuractuelleRGB[0] := (couleurdepartRGB[0] + MulDiv( i-1 , incrementcouleurRGB[0] , nombrecouleurs-1 )); couleuractuelleRGB[1] := (couleurdepartRGB[1] + MulDiv( i-1 , incrementcouleurRGB[1] , nombrecouleurs-1 )); couleuractuelleRGB[2] := (couleurdepartRGB[2] + MulDiv( i-1 , incrementcouleurRGB[2] , nombrecouleurs-1 )); tableaucouleurs[i-1]:=RGB(couleuractuelleRGB[0],couleuractuelleRGB[1],couleuractuelleRGB[2]); end; end; end. dozzaqueux-3.51/unit8.pas0000750000175000017500000000243513147330070015633 0ustar georgeskgeorgeskunit Unit8; {$mode objfpc}{$H+} interface uses Classes, SysUtils,FileUtil, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, Buttons,UChaines,UnitScaleFont; type { Tsasiestyleordonnees } Tsasiestyleordonnees = class(TForm) BitBtn1: TBitBtn; RadioGroupstyle: TRadioGroup; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure RadioGroupstyleClick(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var sasiestyleordonnees: Tsasiestyleordonnees; implementation uses Unit1; { Tsasiestyleordonnees } procedure Tsasiestyleordonnees.RadioGroupstyleClick(Sender: TObject); begin etape:=choisir_courbes; end; procedure Tsasiestyleordonnees.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsStyleDesPoin; RadioGroupstyle.Caption := rsStyle; //RadioGroupstyle.Items.Clear; RadioGroupstyle.Items[0]:=rsDisque; RadioGroupstyle.Items[1]:=rsCroixX; RadioGroupstyle.Items[2]:=rsCercle; RadioGroupstyle.Items[3]:=rsCroix; end; procedure Tsasiestyleordonnees.FormShow(Sender: TObject); begin //if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit8.lrs} end. dozzaqueux-3.51/unit9.pas0000750000175000017500000000166513147330070015640 0ustar georgeskgeorgeskunit Unit9; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin, Buttons,UChaines,UnitScaleFont; type { Tsaisieepaisseur } Tsaisieepaisseur = class(TForm) BitBtn1: TBitBtn; Label1: TLabel; SpinEdit1: TSpinEdit; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisieepaisseur: Tsaisieepaisseur; implementation { Tsaisieepaisseur } procedure Tsaisieepaisseur.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsEpaisseurTra; Label1.Caption := rsEpaisseurDuT; BitBtn1.Caption := rsOK; end; procedure Tsaisieepaisseur.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit9.lrs} end. dozzaqueux-3.51/unit25.lrs0000750000175000017500000000770413147330070015733 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisie_conductivite','FORMDATA',[ 'TPF0'#20'Tsaisie_conductivite'#19'saisie_conductivite'#4'Left'#3'B'#2#6'Heig' +'ht'#3#254#0#3'Top'#3#249#0#5'Width'#3#156#2#13'ActiveControl'#7#5'Edit1'#11 +'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSin' +'gle'#7'Caption'#6#20'Saisie conductivit'#195#169#12'ClientHeight'#3#254#0#11 +'ClientWidth'#3#156#2#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10 +'LCLVersion'#6#7'1.2.2.0'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7 +#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3 +'Top'#2#10#5'Width'#3#186#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top' +#2#10#7'Caption'#6#29'La conductivit'#195#169' de l''esp'#195#168'ce'#10'Fon' +'t.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6 +'Label2'#22'AnchorSideLeft.Control'#7#6'Label1'#19'AnchorSideLeft.Side'#7#9 +'asrBottom'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9 +'asrCenter'#4'Left'#3#206#0#6'Height'#2#20#3'Top'#2#10#5'Width'#2'.'#18'Bord' +'erSpacing.Left'#2#10#7'Caption'#6#6'Label2'#10'Font.Color'#7#6'clBlue'#10'F' +'ont.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6 +'Label3'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6 +'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3 +'Top'#2'('#5'Width'#3'+'#2#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top' +#2#10#7'Caption'#6'Pne figure pas dans ma base de donn'#195#169'es. Vous pou' +'vez saisir la valeur ci-dessous:'#10'Font.Style'#11#6'fsBold'#0#11'ParentCo' +'lor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label4'#22'AnchorSideLeft.Control'#7 +#5'Edit1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7 +#5'Edit1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'W'#6'Height'#2#20#3 +'Top'#2'J'#5'Width'#2'j'#18'BorderSpacing.Left'#2#10#7'Caption'#6#14'0,1 mS.' +'m'#194#178'/mol'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentF' +'ont'#8#0#0#6'TLabel'#6'Label5'#22'AnchorSideLeft.Control'#7#5'Owner'#21'Anc' +'horSideTop.Control'#7#5'Edit1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left' +#2#10#6'Height'#2#20#3'Top'#2'l'#5'Width'#3':'#2#18'BorderSpacing.Left'#2#10 +#17'BorderSpacing.Top'#2#10#7'Caption'#6'SRemarque: cette modification ne pe' +'rdurera que durant cette session de Dozzzaqueux..'#11'ParentColor'#8#0#0#6 +'TLabel'#6'Label6'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Co' +'ntrol'#7#6'Label5'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Hei' +'ght'#2#20#3'Top'#3#138#0#5'Width'#3'='#2#18'BorderSpacing.Left'#2#10#17'Bor' +'derSpacing.Top'#2#10#7'Caption'#6'YSi vous voulez la rendre d'#195#169'fini' +'tive, modifiez cette esp'#195#168'ce dans la base avec Modifbase.'#11'Paren' +'tColor'#8#0#0#5'TEdit'#5'Edit1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'An' +'chorSideTop.Control'#7#6'Label3'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Le' +'ft'#2#10#6'Height'#2#28#3'Top'#2'F'#5'Width'#2'C'#18'BorderSpacing.Left'#2 +#10#17'BorderSpacing.Top'#2#10#10'OnKeyPress'#7#13'Edit1KeyPress'#8'TabOrder' +#2#0#4'Text'#6#2'40'#0#0#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLeft.Control'#7#5 +'Owner'#21'AnchorSideTop.Control'#7#6'Label6'#18'AnchorSideTop.Side'#7#9'asr' +'Bottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9 +'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side' +#7#9'asrBottom'#4'Left'#2#10#6'Height'#2'L'#3'Top'#3#168#0#5'Width'#3#136#2#7 +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Le' +'ft'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#20'BorderS' +'pacing.Bottom'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK'#11'M' +'odalResult'#2#1#7'OnClick'#7#12'BitBtn1Click'#8'TabOrder'#2#1#0#0#0 ]); dozzaqueux-3.51/unit13.lfm0000750000175000017500000001230413147330070015676 0ustar georgeskgeorgeskobject saisieunites: Tsaisieunites Left = 336 Height = 240 Top = 195 Width = 639 ActiveControl = Editunitex BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Unités et labels des axes:' ClientHeight = 240 ClientWidth = 639 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideTop.Control = Editunitex AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Editunitex Left = 82 Height = 20 Top = 14 Width = 270 Anchors = [akTop, akRight] BorderSpacing.Right = 10 Caption = 'Unité à afficher sur l''axe des abscisses:' Font.Color = clMaroon Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideTop.Control = Editlabelx AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Editlabelx Left = 85 Height = 20 Top = 52 Width = 269 Anchors = [akTop, akRight] BorderSpacing.Right = 10 Caption = 'Label à afficher sur l''axe des abscisses:' Font.Color = clOlive Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideLeft.Control = Editunitey1 AnchorSideTop.Control = Editunitey1 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Editunitey1 Left = 20 Height = 20 Top = 90 Width = 334 Anchors = [akTop, akRight] BorderSpacing.Right = 10 Caption = 'Unité à afficher sur l''axe gauche des ordonnées:' Font.Color = clGreen Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label4: TLabel AnchorSideTop.Control = Editlabely1 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Editlabely1 Left = 19 Height = 20 Top = 128 Width = 333 Anchors = [akTop, akRight] BorderSpacing.Right = 10 Caption = 'Label à afficher sur l''axe gauche des ordonnées:' Font.Color = clFuchsia Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label5: TLabel AnchorSideTop.Control = Editunitey2 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Editunitey2 Left = 35 Height = 20 Top = 166 Width = 318 Anchors = [akTop, akRight] BorderSpacing.Right = 10 Caption = 'Unité à afficher sur l''axe droit des ordonnées:' Font.Color = clBlue Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label6: TLabel AnchorSideTop.Control = Editlabely2 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Editlabely2 Left = 35 Height = 20 Top = 204 Width = 317 Anchors = [akTop, akRight] BorderSpacing.Right = 10 Caption = 'Label à afficher sur l''axe droit des ordonnées:' Font.Color = clBlue Font.Style = [fsBold] ParentColor = False ParentFont = False end object Editunitex: TEdit AnchorSideTop.Control = Owner AnchorSideRight.Control = BitBtn1 Left = 362 Height = 28 Top = 10 Width = 165 Anchors = [akTop, akRight] BorderSpacing.Top = 10 BorderSpacing.Right = 20 TabOrder = 0 end object Editlabelx: TEdit AnchorSideTop.Control = Editunitex AnchorSideTop.Side = asrBottom AnchorSideRight.Control = BitBtn1 Left = 364 Height = 28 Top = 48 Width = 163 Anchors = [akTop, akRight] BorderSpacing.Top = 10 BorderSpacing.Right = 20 TabOrder = 1 end object Editunitey1: TEdit AnchorSideTop.Control = Editlabelx AnchorSideTop.Side = asrBottom AnchorSideRight.Control = BitBtn1 Left = 364 Height = 28 Top = 86 Width = 163 Anchors = [akTop, akRight] BorderSpacing.Top = 10 BorderSpacing.Right = 20 TabOrder = 2 end object Editlabely1: TEdit AnchorSideTop.Control = Editunitey1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = BitBtn1 AnchorSideBottom.Control = BitBtn1 Left = 362 Height = 28 Top = 124 Width = 165 Anchors = [akTop, akRight] BorderSpacing.Top = 10 BorderSpacing.Right = 20 TabOrder = 3 end object Editunitey2: TEdit AnchorSideTop.Control = Editlabely1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = BitBtn1 Left = 363 Height = 28 Top = 162 Width = 164 Anchors = [akTop, akRight] BorderSpacing.Top = 10 BorderSpacing.Right = 20 TabOrder = 4 end object Editlabely2: TEdit AnchorSideTop.Control = Editunitey2 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = BitBtn1 Left = 362 Height = 28 Top = 200 Width = 165 Anchors = [akTop, akRight] BorderSpacing.Top = 10 BorderSpacing.Right = 20 TabOrder = 5 end object BitBtn1: TBitBtn AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 547 Height = 220 Top = 10 Width = 82 Anchors = [akTop, akRight, akBottom] BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 6 end end dozzaqueux-3.51/unit21.lrs0000750000175000017500000001453613147330070015730 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisiefichiertableur','FORMDATA',[ 'TPF0'#21'Tsaisiefichiertableur'#20'saisiefichiertableur'#4'Left'#3#245#1#6'H' +'eight'#3'?'#2#3'Top'#3#224#0#5'Width'#3#158#2#13'ActiveControl'#7#5'Memo1' +#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bs' +'Single'#7'Caption'#6#30'Chargement fichier exp'#195#169'rience'#12'ClientHe' +'ight'#3'?'#2#11'ClientWidth'#3#158#2#8'OnCreate'#7#10'FormCreate'#6'OnShow' +#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2.0'#0#6'TLabel'#6'Label1'#22'AnchorSi' +'deLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#10 +#6'Height'#2#20#3'Top'#2#10#5'Width'#3#7#1#18'BorderSpacing.Left'#2#10#17'Bo' +'rderSpacing.Top'#2#10#7'Caption'#6')Voici les 4 premi'#195#168'res lignes d' +'u fichier:'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8 +#0#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSide' +'Top.Control'#7#5'Memo1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6 +'Height'#2#20#3'Top'#3#163#0#5'Width'#3'A'#1#18'BorderSpacing.Left'#2#10#17 +'BorderSpacing.Top'#2#10#7'Caption'#6'/Veuillez compl'#195#169'ter les infor' +'mations suivantes:'#10'Font.Color'#7#7'clGreen'#10'Font.Style'#11#6'fsBold' +#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label3'#22'AnchorSideL' +'eft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#20'RadioGroupseparateur' +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#3 +'='#1#5'Width'#3'%'#1#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10 +#7'Caption'#6'*Ligne '#195#160' laquelle commencent les donn'#195#169'es:'#10 +'Font.Color'#7#5'clRed'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'P' +'arentFont'#8#0#0#6'TLabel'#6'Label4'#22'AnchorSideLeft.Control'#7#5'Owner' +#21'AnchorSideTop.Control'#7#6'Label3'#18'AnchorSideTop.Side'#7#9'asrBottom' +#4'Left'#2#10#6'Height'#2#20#3'Top'#3'['#1#5'Width'#3#211#0#18'BorderSpacing' +'.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#29'Nombre de donn'#195 +#169'es par ligne:'#10'Font.Color'#7#6'clNavy'#10'Font.Style'#11#6'fsBold'#0 +#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label5'#22'AnchorSideLef' +'t.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label4'#18'AnchorSideTo' +'p.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#3'y'#1#5'Width'#3 +#155#1#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6':' +'Colonne dont la grandeur sera consid'#195#169'r'#195#169'e comme abscisse:' +#10'Font.Color'#7#7'clGreen'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8 +#10'ParentFont'#8#0#0#5'TMemo'#5'Memo1'#22'AnchorSideLeft.Control'#7#5'Owner' +#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom' +#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBott' +'om'#4'Left'#2#10#6'Height'#2'q'#3'Top'#2'('#5'Width'#3#138#2#7'Anchors'#11#5 +'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.' +'Top'#2#10#19'BorderSpacing.Right'#2#10#8'TabOrder'#2#0#0#0#11'TRadioGroup' +#20'RadioGroupseparateur'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSid' +'eTop.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10 +#6'Height'#2'r'#3'Top'#3#193#0#5'Width'#3#10#1#8'AutoFill'#9#18'BorderSpacin' +'g.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6'#Valeurs num'#195#169 +'riques s'#195#169'par'#195#169'es par:'#28'ChildSizing.LeftRightSpacing'#2#6 +#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24 +'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenou' +'sChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'Chil' +'dSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cc' +'lLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientH' +'eight'#2'\'#11'ClientWidth'#3#6#1#9'ItemIndex'#2#1#13'Items.Strings'#1#6#23 +'Un ou plusieurs espaces'#6#13'Point virgule'#0#8'TabOrder'#2#1#0#0#9'TSpinE' +'dit'#18'SpinEditlignedebut'#22'AnchorSideLeft.Control'#7#6'Label3'#19'Ancho' +'rSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Label3'#18'Anc' +'horSideTop.Side'#7#9'asrCenter'#4'Left'#3'9'#1#6'Height'#2#28#3'Top'#3'9'#1 +#5'Width'#2'.'#18'BorderSpacing.Left'#2#10#8'MaxValue'#2#10#8'MinValue'#2#1#8 +'TabOrder'#2#2#5'Value'#2#2#0#0#9'TSpinEdit'#29'SpinEditnombredonneesparlign' +'e'#22'AnchorSideLeft.Control'#7#6'Label4'#19'AnchorSideLeft.Side'#7#9'asrBo' +'ttom'#21'AnchorSideTop.Control'#7#6'Label4'#18'AnchorSideTop.Side'#7#9'asrC' +'enter'#4'Left'#3#231#0#6'Height'#2#28#3'Top'#3'W'#1#5'Width'#2'1'#18'Border' +'Spacing.Left'#2#10#8'MinValue'#2#1#8'TabOrder'#2#3#5'Value'#2#2#0#0#9'TSpin' +'Edit'#22'SpinEditindiceabscisse'#22'AnchorSideLeft.Control'#7#6'Label5'#19 +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Label5'#18 +'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#175#1#6'Height'#2#28#3'Top'#3 +'u'#1#5'Width'#2'*'#18'BorderSpacing.Left'#2#10#8'MinValue'#2#1#8'TabOrder'#2 +#4#5'Value'#2#1#0#0#9'TCheckBox'#24'CheckBoxrecalculechelles'#22'AnchorSideL' ,'eft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label5'#18'AnchorSide' +'Top.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#24#3'Top'#3#151#1#5'Width' +#3'z'#1#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6 +'3Recalculer automatiquement les '#195#169'chelles verticales'#7'Checked'#9 +#10'Font.Style'#11#6'fsBold'#0#10'ParentFont'#8#5'State'#7#9'cbChecked'#8'Ta' +'bOrder'#2#5#0#0#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLeft.Control'#7#5'Owner' +#21'AnchorSideTop.Control'#7#24'CheckBoxrecalculechelles'#18'AnchorSideTop.S' +'ide'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRig' +'ht.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSi' +'deBottom.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2'|'#3'Top'#3#185#1#5 +'Width'#3#138#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18 +'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right' +#2#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'Kind' +#7#4'bkOK'#11'ModalResult'#2#1#7'OnClick'#7#12'BitBtn1Click'#8'TabOrder'#2#6 +#0#0#0 ]); dozzaqueux-3.51/rearrang.inc0000750000175000017500000000523013147330070016347 0ustar georgeskgeorgesk {$IFDEF DetectConstFlagCorruption} TYPE EConstCorruption=Class(Exception); {$ENDIF} PROCEDURE TExpression.UpdateConstants; function InternalUpdateConstants(expr:pnode):boolean; {Shouldn't be necessary. Detects both corruption of flags if DetectConstFlagCorruption is defined and rebuilds them.} begin if Expr<>NIL THEN case Expr^.NodeType of VarNode : begin {A symbol is not a constant} {$IFDEF DetectConstFlagCorruption} if (ExprIsConstant IN Expr^.Flags) then Raise EConstCorruption.Create('Corrupt Varnode'); {$ENDIF} Exclude(Expr^.flags,ExprIsConstant); Result:=false; end; IConstNode, ConstNode: begin {$IFDEF DetectConstFlagCorruption} if NOT (ExprIsConstant IN Expr^.Flags) then Raise EConstCorruption.Create('Corrupt (I)constnode'); {$ENDIF} Include(Expr^.flags,ExprIsConstant); Result:=TRUE; end; calcnode: begin Result:=InternalUpdateConstants(Expr^.Left) AND InternalUpdateConstants(Expr^.Right); {$IFDEF DetectConstFlagCorruption} if (ExprIsConstant IN Expr^.Flags)<>Result then Raise EConstCorruption.Create('Corrupt calcnode'); {$ENDIF} IF Result THEN Include(Expr^.flags,ExprIsConstant) else Exclude(Expr^.flags,ExprIsConstant) end; funcnode: begin Result:=InternalUpdateConstants(Expr^.Son); {$IFDEF DetectConstFlagCorruption} if (ExprIsConstant IN Expr^.Flags)<>Result then Raise EConstCorruption.Create('Corrupt funcnode'); {$ENDIF} IF Result THEN Include(Expr^.flags,ExprIsConstant) else Exclude(Expr^.flags,ExprIsConstant) end; func2node: begin Result:=InternalUpdateConstants(Expr^.Son2Left) and InternalUpdateConstants(Expr^.Son2Right); {$IFDEF DetectConstFlagCorruption} if (ExprIsConstant IN Expr^.Flags)<>Result then Raise EConstCorruption.Create('Corrupt func2node'); {$ENDIF} IF Result THEN Include(Expr^.flags,ExprIsConstant) else Exclude(Expr^.flags,ExprIsConstant) end; end; end; begin InternalUpdateConstants(ExprTree); end; { }dozzaqueux-3.51/unitgpl.lrs0000750000175000017500000000123013147330070016253 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('TFormgpl','FORMDATA',[ 'TPF0'#8'TFormgpl'#7'Formgpl'#4'Left'#3'$'#1#6'Height'#3','#1#3'Top'#3#195#0#5 +'Width'#3#144#1#13'ActiveControl'#7#5'Memo1'#11'BorderIcons'#11#12'biSystemM' +'enu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#11'License' +' GPL'#12'ClientHeight'#3','#1#11'ClientWidth'#3#144#1#8'OnCreate'#7#10'Form' +'Create'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#6'0.9.29'#0#5'TMemo'#5'Mem' +'o1'#4'Left'#2#0#6'Height'#3','#1#3'Top'#2#0#5'Width'#3#144#1#5'Align'#7#8'a' +'lClient'#10'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#0#0#0#0 ]); dozzaqueux-3.51/unit7.lrs0000750000175000017500000000356713147330070015656 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisietaillepoints','FORMDATA',[ 'TPF0'#19'Tsaisietaillepoints'#18'saisietaillepoints'#4'Left'#3'P'#1#6'Height' +#2'I'#3'Top'#3#179#0#5'Width'#3'm'#1#13'ActiveControl'#7#9'SpinEdit1'#11'Bor' +'derIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle' +#7'Caption'#6#17'Taille des points'#12'ClientHeight'#2'I'#11'ClientWidth'#3 +'m'#1#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7 +'1.2.2.0'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'Anc' +'horSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3'Top'#2#20#5'Wi' +'dth'#2'u'#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#20#7'Caption' +#6#18'Taille des points:'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10 +'ParentFont'#8#0#0#9'TSpinEdit'#9'SpinEdit1'#22'AnchorSideLeft.Control'#7#6 +'Label1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6 +'Label1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#137#0#6'Height'#2#28 +#3'Top'#2#16#5'Width'#2'I'#18'BorderSpacing.Left'#2#10#8'MaxValue'#2#20#8'Mi' +'nValue'#2#1#8'TabOrder'#2#0#5'Value'#2#1#0#0#7'TBitBtn'#7'BitBtn1'#22'Ancho' +'rSideLeft.Control'#7#9'SpinEdit1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21 +'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20 +'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner' +#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#220#0#6'Height'#2'5'#3'T' +'op'#2#10#5'Width'#3#135#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akB' +'ottom'#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSp' +'acing.Right'#2#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6#3'&OK'#7'Defau' +'lt'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#8'TabOrder'#2#1#0#0#0 ]); dozzaqueux-3.51/unit_electroneutralite.lfm0000750000175000017500000000447513147330070021356 0ustar georgeskgeorgeskobject saisie_electroneutralite: Tsaisie_electroneutralite Left = 551 Height = 361 Top = 300 Width = 573 ActiveControl = RadioGroup1.RadioButton0 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Electroneutralité' ClientHeight = 361 ClientWidth = 573 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 380 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'La charge électrique totale est non nulle. Vous pouvez:' Font.Style = [fsBold] ParentColor = False ParentFont = False end object RadioGroup1: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = BitBtn1 Left = 10 Height = 228 Top = 40 Width = 553 Anchors = [akTop, akLeft, akRight, akBottom] AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = 'au choix:' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 206 ClientWidth = 549 ItemIndex = 0 Items.Strings = ( 'ajouter ou enlever des espèces' 'passer outre (attention: calculs non garantis !!)' ) ParentColor = False TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 73 Top = 278 Width = 553 Anchors = [akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 1 end end dozzaqueux-3.51/unit_imp.pas0000750000175000017500000000667213147330070016417 0ustar georgeskgeorgeskunit Unit_imp; {$mode objfpc}{$H+} interface uses Classes, SysUtils,FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, Spin, Buttons,Printers,UChaines,UnitScaleFont; type { Tconfigimpression } tgraphehorizontal=(tgauche,tdroite,tcentreh); tgraphevertical=(thaut,tbas,tcentrev); Tconfigimpression = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; GroupBox1: TGroupBox; GroupBox2: TGroupBox; GroupBox3: TGroupBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; RadioGrouporientation: TRadioGroup; RadioGroupevertical: TRadioGroup; radiogroupehorizontal: TRadioGroup; spinpourcentagevertical: TSpinEdit; spinpourcentagehorizontal: TSpinEdit; Spinnombrecopies: TSpinEdit; procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var configimpression: Tconfigimpression; abandonimpression:boolean; graphehorizontal:tgraphehorizontal; graphevertical:tgraphevertical; taillegraphehorizontal,taillegraphevertical,nombrecopies:integer; orientation_impression:tprinterorientation; implementation { Tconfigimpression } procedure Tconfigimpression.BitBtn1Click(Sender: TObject); begin abandonimpression:=false; if radiogroupehorizontal.itemindex=1 then graphehorizontal:=tgauche; if radiogroupehorizontal.itemindex=0 then graphehorizontal:=tdroite; if radiogroupehorizontal.itemindex=2 then graphehorizontal:=tcentreh; if radiogroupevertical.itemindex=0 then graphevertical:=thaut; if radiogroupevertical.itemindex=1 then graphevertical:=tbas; if radiogroupevertical.itemindex=2 then graphevertical:=tcentrev; taillegraphehorizontal:=spinpourcentagehorizontal.value; taillegraphevertical:=spinpourcentagevertical.value; nombrecopies:=spinnombrecopies.value; if radiogrouporientation.ItemIndex=0 then orientation_impression:=poportrait else orientation_impression:=polandscape; end; procedure Tconfigimpression.FormCreate(Sender: TObject); begin encreation:=true; configimpression.Caption := rsConfiguratio; GroupBox1.Caption := rsPosition; radiogroupehorizontal.Caption := rsHorizontale; // radiogroupehorizontal.Items.clear; radiogroupehorizontal.Items[0]:=(rsDroite); radiogroupehorizontal.Items[1]:=(rsGauche); radiogroupehorizontal.Items[2]:=(rsCentr); RadioGroupevertical.Caption := rsVerticale; //RadioGroupevertical.Items.clear; RadioGroupevertical.Items[0]:=(rsHaut); RadioGroupevertical.Items[1]:=(rsBas); RadioGroupevertical.Items[2]:=(rsCentr); GroupBox2.Caption := rsNombreDeCopi; Label1.Caption := rsNombre; GroupBox3.Caption := rsTailleEnDeLa; Label2.Caption := rsHorizontalem; Label3.Caption := rsVerticalemen; RadioGrouporientation.Caption := rsOrientation; //RadioGrouporientation.Items.clear; RadioGrouporientation.Items[0]:=(rsPortrait); RadioGrouporientation.Items[1]:=(rsPaysage); BitBtn2.Caption := rsAnnuler; BitBtn1.Caption := rsOK; end; procedure Tconfigimpression.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit_imp.lrs} grapheHorizontal:=tcentreh; graphevertical:=tcentrev; taillegraphehorizontal:=90; taillegraphevertical:=90; nombrecopies:=1; orientation_impression:=polandscape; end. dozzaqueux-3.51/unit4.pas0000750000175000017500000003173613147330070015635 0ustar georgeskgeorgeskunit Unit4; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,Unit2, Grids, ExtCtrls,math,UChaines,UnitScaleFont,LCLType,Unit_commune; type { TForm4 } TForm4 = class(TForm) BitBtn2: TBitBtn; Label1: TLabel; Label2: TLabel; Editformulebrute: TEdit; BitBtn1: TBitBtn; sgreactifs: TStringGrid; Label3: TLabel; SpeedButtonC: TSpeedButton; SpeedButtonO: TSpeedButton; SpeedButtonH: TSpeedButton; SpeedButtonN: TSpeedButton; SpeedButtonP: TSpeedButton; SpeedButtonS: TSpeedButton; SpeedButton1plus: TSpeedButton; SpeedButton2plus: TSpeedButton; SpeedButton3plus: TSpeedButton; SpeedButton3moins: TSpeedButton; SpeedButton2moins: TSpeedButton; SpeedButton1moins: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; RadioGroup1: TRadioGroup; procedure BitBtn1Click(Sender: TObject); procedure EditformulebruteChange(Sender: TObject); procedure EditformulebruteKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure EditformulebruteMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure sgreactifsMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure SpeedButtonCClick(Sender: TObject); procedure SpeedButtonOClick(Sender: TObject); procedure SpeedButtonHClick(Sender: TObject); procedure SpeedButtonNClick(Sender: TObject); procedure SpeedButtonPClick(Sender: TObject); procedure SpeedButtonSClick(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton1plusClick(Sender: TObject); procedure SpeedButton2plusClick(Sender: TObject); procedure SpeedButton3plusClick(Sender: TObject); procedure SpeedButton3moinsClick(Sender: TObject); procedure SpeedButton2moinsClick(Sender: TObject); procedure SpeedButton1moinsClick(Sender: TObject); private { Dclarations prives } encreation:boolean; public { Dclarations publiques } end; var Form4: TForm4; mypos:integer; largeur_col1_reactifs,largeur_col2_reactifs,largeur_col3_reactifs,largeur_col4_reactifs:integer; implementation uses Unit3,Unit1; procedure TForm4.BitBtn1Click(Sender: TObject); var toto:tstringlist; i,didi:integer; tyty:comparaison_entre_formules_brutes; begin if editformulebrute.Text='' then exit; case radiogroup1.ItemIndex of 0: tyty:=egal; 1: tyty:=inf; 2: tyty:=sup; 3: tyty:=parmi; end; toto:=tstringlist.Create; if not(ReactifsDeFormuleBrute(editformulebrute.Text,toto,true,tyty)) then begin application.MessageBox(pchar(rsLaSyntaxeDeV), pchar(rsAttention2), mb_ok); exit end; if toto.Count=0 then begin sgreactifs.RowCount:=1; application.MessageBox(pchar(rsAucuneEspCeA3), pchar(rsAttention2), mb_ok); exit end; sgreactifs.Cells[0, 0]:=rsIdentifiant; sgreactifs.Cells[1, 0]:=rsSynonyme; sgreactifs.Cells[2, 0]:=rsFormuleBrute2; sgreactifs.Cells[3, 0]:=rsMGMol; sgreactifs.AutoSizeColumns; sgreactifs.RowCount:=1+toto.Count; for i:=1 to toto.Count do begin sgreactifs.Cells[0,i]:=toto[i-1]; case DonneNatureReactif(toto[i-1],didi) of debase: begin sgreactifs.Cells[3,i]:=floattostr( tableau_elements_base[didi-1].masse_molaire); sgreactifs.Cells[1,i]:= tableau_elements_base[didi-1].synonyme; sgreactifs.Cells[2,i]:=''; end; aqueux: begin sgreactifs.Cells[3,i]:=floattostr( tableau_elements_aqueux[didi-1].masse_molaire); sgreactifs.Cells[1,i]:= tableau_elements_aqueux[didi-1].synonyme; sgreactifs.Cells[2,i]:=tableau_elements_aqueux[didi-1].formule; end; gaz: sgreactifs.Cells[3,i]:=floattostr( tableau_elements_gazeux[didi-1].masse_molaire); solide: begin sgreactifs.Cells[3,i]:=floattostr( tableau_elements_mineraux[didi-1].masse_molaire); sgreactifs.Cells[1,i]:= tableau_elements_mineraux[didi-1].synonyme; sgreactifs.Cells[2,i]:=tableau_elements_mineraux[didi-1].formule; end; organique: begin sgreactifs.Cells[3,i]:=floattostr( tableau_elements_organiques[didi-1].masse_molaire); sgreactifs.Cells[1,i]:= tableau_elements_organiques[didi-1].synonyme; sgreactifs.Cells[2,i]:=tableau_elements_organiques[didi-1].formule; end; end; sgreactifs.AutoSizeColumns; end; toto.Free; end; procedure TForm4.EditformulebruteChange(Sender: TObject); begin // form4.Editformulebrute.SelStart:=length(form4.Editformulebrute.text)+1; end; procedure TForm4.EditformulebruteKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin mypos:=form4.Editformulebrute.SelStart; end; procedure TForm4.EditformulebruteMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin mypos:=form4.Editformulebrute.SelStart; end; procedure TForm4.FormCreate(Sender: TObject); begin encreation:=true; sgreactifs.ColCount:=4; sgreactifs.RowCount:=2; sgreactifs.Cells[0, 0]:=rsIdentifiant; sgreactifs.Cells[1, 0]:=rsSynonyme; sgreactifs.Cells[2, 0]:=rsFormuleBrute2; sgreactifs.Cells[3, 0]:=rsMGMol; sgreactifs.AutoSizeColumns; Caption := rsRechercheDan ; Label1.Caption := Format(rsEntrezLaForm2, ['"', '"']) ; Label2.Caption := rsMaisPasAGSO42 ; Label3.Caption := rsExemplesBaSO2 ; BitBtn1.Caption := rsOK2; sgreactifs.Hint := rsPourSLection6 ; RadioGroup1.Caption := rsTypeDeCompar; //RadioGroup1.Items.Clear; RadioGroup1.Items[0]:=(rsExacte); RadioGroup1.Items[1]:=(rsMMesAtomesEn); RadioGroup1.Items[2]:=(rsMMesAtomesEn2); RadioGroup1.Items[3]:=(rsMMesAtomesEn3); BitBtn2.Caption := rsFermer2 ; end; procedure TForm4.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; procedure TForm4.sgreactifsMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i,coco,roro:integer; deja_entre:boolean; repmode:integer; label 555,666; begin sgreactifs.MouseToCell(x,y,coco,roro); if ((roro>0) and (roro<=sgreactifs.rowcount-1) and (coco>=0) and (coco<=sgreactifs.ColCount-1) and( sgreactifs.Cells[0,roro]<>'') and (form1.stringgridreactifs_becher.cells[1,1]<>'')) then begin deja_entre:=false; for i:=1 to form1.stringgridreactifs_becher.RowCount-1 do deja_entre:=deja_entre or (form1.stringgridreactifs_becher.cells[1,i]=sgreactifs.Cells[0,roro]); if deja_entre then begin application.messagebox(pchar(rsVousAvezDJEn), pchar(rsQueNenni), mb_ok); exit; end; 666: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe70, [sgreactifs.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 666; form1.stringgridreactifs_becher.RowCount:= form1.stringgridreactifs_becher.RowCount+1; etape:=choisir_becher; form1.stringgridreactifs_becher.cells[1,form1.stringgridreactifs_becher.RowCount-1]:= sgreactifs.Cells[0,roro]; form1.stringgridreactifs_becher.cells[0,form1.stringgridreactifs_becher.RowCount-1]:= rsSupprimer; if Unit3.nono>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(sgreactifs.Cells[3,roro])/ volume_becher)else if unit3.nono1>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(sgreactifs.Cells[3,roro])); form1.stringgridreactifs_becher.AutoSizeColumns; modalresult:=mrok; close; end; if ((roro>0) and (roro<=sgreactifs.rowcount) and (sgreactifs.Cells[0,roro]<>'') and (form1.stringgridreactifs_becher.cells[1,1]='')) then begin 555: saisienombremole:=tsaisienombremole.create(self); with saisienombremole do begin if screen.width>width then left:=(screen.width-width) div 2 else left:=0; if screen.height>height then top:=(screen.height-height) div 2 else top:=0; end; saisienombremole.Label1.Caption:=Format(rsPourLEspCeVe71, [sgreactifs.Cells[0, roro]]); repmode:=saisienombremole.ShowModal; if repmode=mrcancel then exit; if repmode=mrretry then goto 555; form1.stringgridreactifs_becher.cells[1,1]:= sgreactifs.Cells[0,roro]; form1.stringgridreactifs_becher.cells[0,1]:= rsSupprimer; if Unit3.nono>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono/volume_becher) else if unit3.mama>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama/mystrtofloat(sgreactifs.Cells[3,roro])/ volume_becher)else if unit3.nono1>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(Unit3.nono1) else if unit3.mama1>0 then form1.stringgridreactifs_becher.cells[2,form1.stringgridreactifs_becher.RowCount-1]:= floattostr(unit3.mama1/mystrtofloat(sgreactifs.Cells[3,roro])); form1.stringgridreactifs_becher.AutoSizeColumns; modalresult:=mrok; close; end; end; procedure TForm4.SpeedButtonCClick(Sender: TObject); var s:string; p:integer; begin s:=Form4.editformulebrute.Text; p:=mypos; insert('C',s,p+1); Form4.editformulebrute.Text:=s; form4.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4.SpeedButtonOClick(Sender: TObject); var s:string; p:integer; begin s:=Form4.editformulebrute.Text; p:=mypos; insert('O',s,p+1); Form4.editformulebrute.Text:=s; form4.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4.SpeedButtonHClick(Sender: TObject); var s:string; p:integer; begin s:=Form4.editformulebrute.Text; p:=mypos; insert('H',s,p+1); Form4.editformulebrute.Text:=s; form4.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4.SpeedButtonNClick(Sender: TObject); var s:string; p:integer; begin s:=Form4.editformulebrute.Text; p:=mypos; insert('N',s,p+1); Form4.editformulebrute.Text:=s; form4.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4.SpeedButtonPClick(Sender: TObject); var s:string; p:integer; begin s:=Form4.editformulebrute.Text; p:=mypos; insert('P',s,p+1); Form4.editformulebrute.Text:=s; form4.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4.SpeedButtonSClick(Sender: TObject); var s:string; p:integer; begin s:=Form4.editformulebrute.Text; p:=mypos; insert('S',s,p+1); Form4.editformulebrute.Text:=s; form4.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4.SpeedButton2Click(Sender: TObject); var s:string; p:integer; begin s:=Form4.editformulebrute.Text; p:=mypos; insert('2',s,p+1); Form4.editformulebrute.Text:=s; form4.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4.SpeedButton3Click(Sender: TObject); var s:string; p:integer; begin s:=Form4.editformulebrute.Text; p:=mypos; insert('3',s,p+1); Form4.editformulebrute.Text:=s; form4.Editformulebrute.SelStart:=p+1; inc(mypos); end; procedure TForm4.SpeedButton1plusClick(Sender: TObject); begin editformulebrute.Text:=editformulebrute.Text+'[+]'; form4.Editformulebrute.SelStart:=length(editformulebrute.Text); mypos:=length(editformulebrute.Text); end; procedure TForm4.SpeedButton2plusClick(Sender: TObject); begin editformulebrute.Text:=editformulebrute.Text+'[2+]'; form4.Editformulebrute.SelStart:=length(editformulebrute.Text); mypos:=length(editformulebrute.Text); end; procedure TForm4.SpeedButton3plusClick(Sender: TObject); begin editformulebrute.Text:=editformulebrute.Text+'[3+]'; form4.Editformulebrute.SelStart:=length(editformulebrute.Text); mypos:=length(editformulebrute.Text); end; procedure TForm4.SpeedButton3moinsClick(Sender: TObject); begin editformulebrute.Text:=editformulebrute.Text+'[3-]'; form4.Editformulebrute.SelStart:=length(editformulebrute.Text); mypos:=length(editformulebrute.Text); end; procedure TForm4.SpeedButton2moinsClick(Sender: TObject); begin editformulebrute.Text:=editformulebrute.Text+'[2-]'; form4.Editformulebrute.SelStart:=length(editformulebrute.Text); mypos:=length(editformulebrute.Text); end; procedure TForm4.SpeedButton1moinsClick(Sender: TObject); begin editformulebrute.Text:=editformulebrute.Text+'[-]'; form4.Editformulebrute.SelStart:=length(editformulebrute.Text); mypos:=length(editformulebrute.Text); end; initialization {$I unit4.lrs} end. dozzaqueux-3.51/unit7.pas0000750000175000017500000000171613147330070015633 0ustar georgeskgeorgeskunit Unit7; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin, Buttons,UChaines,UnitScaleFont; type { Tsaisietaillepoints } Tsaisietaillepoints = class(TForm) BitBtn1: TBitBtn; Label1: TLabel; SpinEdit1: TSpinEdit; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisietaillepoints: Tsaisietaillepoints; implementation { Tsaisietaillepoints } procedure Tsaisietaillepoints.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsTailleDesPoi2 ; Label1.Caption := rsTailleDesPoi; BitBtn1.Caption := rsOK ; end; procedure Tsaisietaillepoints.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit7.lrs} end. dozzaqueux-3.51/unit6.lrs0000750000175000017500000001206213147330070015643 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisieexpression','FORMDATA',[ 'TPF0'#17'Tsaisieexpression'#16'saisieexpression'#4'Left'#3#189#1#6'Height'#3 +'0'#2#3'Top'#3#221#0#5'Width'#3#143#3#13'ActiveControl'#7#14'Editexpression' +#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bs' +'Single'#7'Caption'#6#22'Saisie de l''expression'#12'ClientHeight'#3'0'#2#11 +'ClientWidth'#3#143#3#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10 +'LCLVersion'#6#7'1.6.0.4'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7 +#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#17#3 +'Top'#2#10#5'Width'#3#29#3#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top' +#2#10#7'Caption'#6'|Saisissez l''expression de la grandeur . Les noms des va' +'riables (V,..., c1, c2,...,n1, n2...) et les noms de fonction ont les'#10'F' +'ont.Color'#7#6'clBlue'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'P' +'arentFont'#8#0#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.Control'#7#5'Owner' +#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom' +#4'Left'#2#10#6'Height'#2#17#3'Top'#2'%'#5'Width'#3#238#0#18'BorderSpacing.L' +'eft'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6'%significations indiqu' +#195#169'es ci-dessous:'#10'Font.Color'#7#6'clBlue'#10'Font.Style'#11#6'fsBo' +'ld'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label3'#21'AnchorS' +'ideTop.Control'#7#7'BitBtn1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2 +#6#6'Height'#2#17#3'Top'#3#198#0#5'Width'#3#137#0#17'BorderSpacing.Top'#2#10 +#7'Caption'#6#22'Variables utilisables:'#10'Font.Color'#7#5'clRed'#10'Font.S' +'tyle'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Lab' +'el4'#22'AnchorSideLeft.Control'#7#6'Label3'#19'AnchorSideLeft.Side'#7#9'asr' +'Bottom'#21'AnchorSideTop.Control'#7#6'Label3'#18'AnchorSideTop.Side'#7#9'as' +'rCenter'#4'Left'#3#187#1#6'Height'#2#17#3'Top'#3#198#0#5'Width'#3#239#0#18 +'BorderSpacing.Left'#3','#1#7'Caption'#6'%Op'#195#169'rateurs et fonctions u' +'tilisables:'#10'Font.Color'#7#7'clGreen'#10'Font.Style'#11#6'fsBold'#0#11'P' +'arentColor'#8#10'ParentFont'#8#0#0#5'TEdit'#14'Editexpression'#22'AnchorSid' +'eLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSi' +'deTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'Anchor' +'SideRight.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#25#3'Top'#2'@'#5'Wi' +'dth'#3'{'#3#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.' +'Left'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#7'OnKeyU' +'p'#7#19'EditexpressionKeyUp'#9'OnMouseUp'#7#21'EditexpressionMouseUp'#8'Tab' +'Order'#2#0#0#0#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLeft.Control'#7#5'Owner' +#21'AnchorSideTop.Control'#7#14'Editexpression'#18'AnchorSideTop.Side'#7#9'a' +'srBottom'#23'AnchorSideRight.Control'#7#7'BitBtn2'#4'Left'#2#10#6'Height'#2 +'Y'#3'Top'#2'c'#5'Width'#3'k'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0 +#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Rig' +'ht'#2#10#7'Caption'#6#7'Valider'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalRes' +'ult'#2#1#7'OnClick'#7#12'BitBtn1Click'#8'TabOrder'#2#1#0#0#8'TListBox'#16'L' +'istBoxvariables'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Con' +'trol'#7#6'Label3'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom' +'.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#10#6 +'Height'#3'E'#1#3'Top'#3#225#0#5'Width'#3#144#1#7'Anchors'#11#5'akTop'#6'akL' +'eft'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#20 +'BorderSpacing.Bottom'#2#10#16'ClickOnSelChange'#8#10'ItemHeight'#2#0#17'OnS' +'electionChange'#7#31'ListBoxvariablesSelectionChange'#8'TabOrder'#2#2#0#0#8 +'TListBox'#16'ListBoxfonctions'#22'AnchorSideLeft.Control'#7#16'ListBoxvaria' +'bles'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6 +'Label4'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7 +#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contro' +'l'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#184#1#6'He' +'ight'#3'E'#1#3'Top'#3#225#0#5'Width'#3#205#1#7'Anchors'#11#5'akTop'#6'akLef' +'t'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#30#17'BorderSpacing.To' +'p'#2#10#19'BorderSpacing.Right'#2#10#20'BorderSpacing.Bottom'#2#10#16'Click' +'OnSelChange'#8#10'ItemHeight'#2#0#17'OnSelectionChange'#7#31'ListBoxfonctio' +'nsSelectionChange'#8'TabOrder'#2#3#0#0#7'TBitBtn'#7'BitBtn2'#21'AnchorSideT' +'op.Control'#7#7'BitBtn1'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSid' +'eRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3 +#127#2#6'Height'#2'U'#3'Top'#2'e'#5'Width'#3#6#1#7'Anchors'#11#5'akTop'#7'ak' +'Right'#0#19'BorderSpacing.Right'#2#10#6'Cancel'#9#7'Caption'#6#7'Annuler'#4 +'Kind'#7#8'bkCancel'#11'ModalResult'#2#2#8'TabOrder'#2#4#0#0#0 ]); dozzaqueux-3.51/unit24.lfm0000750000175000017500000000450113147330070015700 0ustar georgeskgeorgeskobject saisiechiffressignificatifs: Tsaisiechiffressignificatifs Left = 336 Height = 163 Top = 186 Width = 741 ActiveControl = SpinEdit1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Chiffres significatifs' ClientHeight = 163 ClientWidth = 741 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 599 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Nombre de chiffres affichés et gardés pour les logarithmes de constantes de réaction:' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 8 Height = 20 Top = 40 Width = 328 BorderSpacing.Top = 10 Caption = 'Nombre de chiffres affichés pour les résultats:' Font.Style = [fsBold] ParentColor = False ParentFont = False end object SpinEdit1: TSpinEdit AnchorSideLeft.Control = Label1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrCenter Left = 619 Height = 28 Top = 6 Width = 47 BorderSpacing.Left = 10 MaxValue = 15 MinValue = 1 TabOrder = 0 Value = 1 end object SpinEdit2: TSpinEdit AnchorSideLeft.Control = Label2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrCenter Left = 346 Height = 28 Top = 36 Width = 43 BorderSpacing.Left = 10 MaxValue = 15 MinValue = 1 TabOrder = 1 Value = 1 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 73 Top = 80 Width = 721 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 20 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 2 end end dozzaqueux-3.51/unit5.pas0000750000175000017500000000601513147330070015626 0ustar georgeskgeorgeskunit Unit5; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, ExtCtrls, Spin,UChaines,UnitScaleFont,LCLType,Unit_commune; type { TForm5 } TForm5 = class(TForm) BitBtn1: TBitBtn; Label1: TLabel; Label3: TLabel; Label4: TLabel; RadioGroup1: TRadioGroup; SpinEdit1: TSpinEdit; Label2: TLabel; Label5: TLabel; Editvarmax: TEdit; Label6: TLabel; Editpasmin: TEdit; Label7: TLabel; procedure EditpasminKeyPress(Sender: TObject; var Key: char); procedure EditvarmaxKeyPress(Sender: TObject; var Key: char); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var Form5: TForm5; implementation uses Unit1; procedure TForm5.RadioGroup1Click(Sender: TObject); begin case radiogroup1.ItemIndex of 0: begin spinedit1.Enabled:=true; editvarmax.Enabled:=false; editpasmin.Enabled:=false; end; 1: begin spinedit1.Enabled:=false; editvarmax.Enabled:=true; editpasmin.Enabled:=true; end; end; end; procedure TForm5.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsNombreDePoin ; Label1.Caption := rsLesValeursDe ; Label3.Caption := Format(rsOnAppellePas, ['"', '"']); RadioGroup1.Caption := rsChoixDuPas; //RadioGroup1.Items.clear; RadioGroup1.Items[0]:=rsPasConstant; RadioGroup1.Items[1]:=rsPasAdaptatif; Label4.Caption := rsNombreDePoin2 ; Label2.Caption := rsLaVariationM ; Label5.Caption := rsEntreDeuxVol ; Label6.Caption := rsMaisLePasNeP ; Label7.Caption := rsML2; BitBtn1.Caption := rsOK ; spinedit1.MinValue:=2; spinedit1.MaxValue:=10000; end; procedure TForm5.EditvarmaxKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm5.EditpasminKeyPress(Sender: TObject; var Key: char); begin if key=',' then key:='.'; end; procedure TForm5.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; procedure TForm5.BitBtn1Click(Sender: TObject); begin if radiogroup1.ItemIndex=0 then begin pas_adaptatif:=false; nombre_points_calcul:=spinedit1.value; nombre_points_calcul_0:=spinedit1.value; exit; end; if radiogroup1.ItemIndex=1 then begin pas_adaptatif:=true; try var_log_max:=mystrtofloat(editvarmax.text); except application.MessageBox(pchar(rsSyntaxeIncor8), pchar(rsAttention2), mb_ok); var_log_max:=0.5; editvarmax.Text:='0.5'; end; try limite_inferieure_pas:=mystrtofloat(editpasmin.text); except application.MessageBox(pchar(rsSyntaxeIncor8), pchar(rsAttention2), mb_ok); limite_inferieure_pas:=0.01; end; end; end; initialization {$I unit5.lrs} end. dozzaqueux-3.51/std.inc0000750000175000017500000003337613147330070015354 0ustar georgeskgeorgesk(************************************************************************* DESCRIPTION : Standard definitions and options REQUIREMENTS : TP5-7, D1-D7/D9-D12/D14-D19, FPC, VP, (TPW1.0/1.5,BCB3/4) Version Date Author Modification ------- -------- ------- ------------------------------------------ 1.00 05.10.03 W.Ehrhardt Initial version 1.01 05.10.03 we X_OPT, removed TP4 1.02 30.10.03 we WINCRT 1.03 09.12.03 we {$R+,S+} {$ifdef debug} 1.04 26.12.03 we VP: {&Optimise+,SmartLink+,Speed+} ifndef debug 1.05 28.12.03 we DELPHI = Delphi32 (no Delphi 1!) 1.06 12.04.04 we Delphi 7 1.07 26.09.04 we Record starting values of important options 1.08 10.10.04 we RESULT for Result pseudo variable 1.09 02.01.05 we BIT16: default $F- 1.10 26.02.05 we StrictLong 1.11 05.05.05 we D9 aka Delphi 2005 1.12 22.05.05 we StrictLong for FPC 2.0 1.13 27.05.05 we {$goto on} for FPC 1.14 27.05.05 we moved {$goto on} to default settings 1.15 29.05.05 we HAS_INT64, HAS_MSG, _STD_INC_ 1.16 06.08.05 we J_OPT, N_OPT, HAS_INLINE 1.17 17.08.05 we HAS_ASSERT 1.18 08.11.05 we APPCONS, partial TMT,TPW15 support 1.19 20.11.05 we Default option {$B-} 1.20 08.01.06 we ABSTRACT/DEFAULT 1.21 08.02.06 we Fix Scanhelp quirk 1.22 11.02.06 we VER5X 1.23 15.04.06 we HAS_XTYPES 1.24 08.05.06 we D10 aka Delphi 2006 1.25 25.05.06 we Define RESULT if FPC_OBJFPC is defined 1.26 08.09.06 we Define RESULT/DEFAULT if FPC_DELPHI is defined 1.27 14.11.06 we HAS_ASSERT for FPC VER1 and VER2 1.28 28.11.06 we HAS_UNSAFE, $warn SYMBOL_../UNSAFE_.. OFF 1.29 25.05.07 we D11 aka Delphi 2007, FPC2.1.4 1.30 23.06.07 we FPC_ProcVar: Helper for procedure variables 1.31 18.09.07 we HAS_INLINE for FPC VER2 1.32 04.10.07 we FPC Intel ASMmode only if CPUI386 is defined 1.33 22.11.07 we Record value of $X option, undef RESULT if $X- 1.34 19.05.08 we HAS_UINT64 1.35 21.06.08 we V7PLUS, HAS_UINT64 for FPC VER2_2 1.36 07.09.08 we HAS_CARD32 1.37 21.11.08 we D12 aka D2009 1.38 19.02.09 we TPW 1.0 adjustments 1.39 05.07.09 we D12Plus 1.40 17.10.09 we BASM (BASM16 or Bit32) 1.41 21.10.09 we HAS_OVERLOAD 1.42 07.04.10 we HAS_DENORM_LIT (Denormalised extended literals, e.g. -1.23e-4942) 1.43 20.06.10 we D14 (VER210) 1.45 16.10.10 we WIN16 1.46 05.11.10 we FPC VER2_4 1.47 12.11.11 we FPC VER2_6 1.48 01.01.12 we HAS_UINT64 for FPC VER2_6 1.49 12.01.12 we BIT64, WIN32or64, Bit32or64 1.50 13.01.12 we EXT64 (64 bit extended = double) 1.51 19.01.12 we Define EXT64 if SIMULATE_EXT64 1.52 05.09.12 we Basic support for D14, D15(XE), D16(XE2), D17(XE3) 1.53 01.12.12 we Simplified FPC 2.X.Y definitions 1.54 17.12.12 we UNIT_SCOPE (D16/D17) 1.55 25.12.12 we J_OPT for BIT64 1.56 25.04.13 we D18/XE4 (VER250) 1.57 28.09.13 we Basic support for D19/XE5 (VER260) **************************************************************************) (*------------------------------------------------------------------------- (C) Copyright 2002-2013 Wolfgang Ehrhardt This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. ----------------------------------------------------------------------------*) {$ifndef _STD_INC_} {$define _STD_INC_} {include STD.INC only once} {.$undef BIT16} {16 Bit code, Pascal / D1} {.$undef BIT32} {32 Bit code} {.$undef BIT64} {64 Bit code} {.$undef DELPHI} {Delphi2+ and BCB++} {.$undef G_OPT} {G+ option support} {.$undef D4PLUS} {Delphi 4 or higher} {.$undef BASM16} {16 Bit BASM} {.$undef LoadArgs} {Register params} {.$undef WINCRT} {Use WinCRT for console} {.$undef WIN16} {Compiler for 16-bit windows} {.$undef WIN32or64} {Compiler for 32/64-bit windows} {.$undef RESULT} {Result pseudo variable} {.$undef StrictLong} {Warning for longint const with MS bit} {.$undef HAS_INT64} { int64 integer type available} {.$undef HAS_UINT64} {uint64 integer type available} {.$undef HAS_CARD32} {Has 32 bit cardinal} {.$undef HAS_MSG} {Has message directive} {.$undef HAS_INLINE} {Has inline procs/funcs (D9)} {.$undef ABSTRACT} {Has abstract methods} {.$undef DEFAULT} {Support default parameters} {.$undef VER5X} {TP5 or TP55} {.$undef HAS_XTYPES} {Xtra types in system: pByte, pLongint etc} {.$undef HAS_UNSAFE} {UNSAFE warnings} {.$undef APPCONS} {Needs "Apptype console" for console application} {.$undef FPC_ProcVar} {FPC handling of @ and proc variables} {.$undef D12PLUS} {Delphi 12 or higher} {.$undef HAS_OVERLOAD} {Overloading of procedures and functions} {.$undef HAS_DENORM_LIT} {Denormalised (extended) literals, e.g. -1.23e-4942} {.$undef EXT64} {64 bit extended = double} {.$undef UNIT_SCOPE} {Unit scope name, D16+} {$define CONST} {const in proc declaration} {$define Q_OPT} {Q- option support} {$define X_OPT} {X+ option support} {$define N_OPT} {N+ option support} {$define BASM} {BASM16 or BIT32} {$define V7PLUS} {TP7 or higher} {$ifdef VER10} {TPW 1.0} {$define BIT16} {$define BASM16} {$define WINCRT} {$define G_OPT} {$undef CONST} {$undef Q_OPT} {$undef V7PLUS} {$endif} {$ifdef VER15} {TPW 1.5} {$define BIT16} {$define BASM16} {$define WINCRT} {$define G_OPT} {$undef CONST} {$undef Q_OPT} {$undef V7PLUS} {$endif} {$ifdef VER50 } {$define BIT16} {$define VER5X} {$undef BASM} {$undef CONST} {$undef Q_OPT} {$undef X_OPT} {$undef V7PLUS} {$endif} {$ifdef VER55 } {$define BIT16} {$define VER5X} {$undef BASM} {$undef CONST} {$undef Q_OPT} {$undef X_OPT} {$undef V7PLUS} {$endif} {$ifdef VER60 } {$define BIT16} {$undef CONST} {$undef Q_OPT} {$define G_OPT} {$define BASM16} {$undef V7PLUS} {$endif} {$ifdef VER70 } {$define BIT16} {$define G_OPT} {$define BASM16} {$endif} {$ifdef VER80} {.$define DELPHI} {D1} {*we V1.05} {$define BIT16 } {$define G_OPT } {$define BASM16} {$define WINCRT} {$define RESULT} {$endif} {$ifdef VER90 } {$define DELPHI} {D2} {$endif} {$ifdef VER93 } {$define DELPHI} {BCB++1} {$endif} {$ifdef VER100} {$define DELPHI} {D3} {$define HAS_ASSERT} {$endif} {$ifdef VER110} {$define DELPHI} {BCB3} {$endif} {$ifdef VER120} {$define DELPHI} {D4} {$define D4PLUS} {$endif} {$ifdef VER125} {$define DELPHI} {BCB4} {$define D4PLUS} {$endif} {$ifdef VER130} {$define DELPHI} {D5} {$define D4PLUS} {$endif} {$ifdef VER140} {$define DELPHI} {D6} {$define D4PLUS} {$endif} {$ifdef VER150} {$define DELPHI} {D7} {$define D4PLUS} {$define HAS_UNSAFE} {$define HAS_UINT64} {$endif} {$ifdef VER170} {$define DELPHI} {D9} {$define D4PLUS} {$define HAS_INLINE} {$define HAS_UNSAFE} {$define HAS_UINT64} {$endif} {$ifdef VER180} {$define DELPHI} {D10, D11 ifdef VER185} {$define D4PLUS} {$define HAS_INLINE} {$define HAS_UNSAFE} {$define HAS_UINT64} {$endif} {$ifdef VER200} {$define DELPHI} {D12} {$define D12PLUS} {$endif} {$ifdef VER210} {$define DELPHI} {D14} {$define D12PLUS} {$endif} {$ifdef VER220} {$define DELPHI} {D15 - XE} {$define D12PLUS} {$endif} {$ifdef VER230} {$define DELPHI} {D16 - XE2} {$define D12PLUS} {$define UNIT_SCOPE} {$endif} {$ifdef VER240} {$define DELPHI} {D17 - XE3} {$define D12PLUS} {$define UNIT_SCOPE} {$endif} {$ifdef VER250} {$define DELPHI} {D18 - XE4} {$define D12PLUS} {$define UNIT_SCOPE} {$endif} {$ifdef VER260} {$define DELPHI} {D19 - XE5} {$define D12PLUS} {$define UNIT_SCOPE} {$endif} {$ifdef CONDITIONALEXPRESSIONS} {D6+} {$ifndef D4PLUS} {$define D4PLUS} {$endif} {$define HAS_MSG} {$define HAS_XTYPES} {$ifdef CPUX64} {$define BIT64} {$endif} {$endif} {$ifdef VER70} {$ifdef windows} {$define WINCRT} {$endif} {$endif} {$ifdef VirtualPascal} {$define G_OPT} {$define RESULT} {$define LoadArgs} {$endif} {$ifdef WIN32} {$define J_OPT} {$endif} {$ifdef BIT64} {$define J_OPT} {$endif} {$ifdef FPC} {$define FPC_ProcVar} {$define ABSTRACT} {$define HAS_XTYPES} {$define HAS_OVERLOAD} {$undef N_OPT} {$ifdef VER1} {$undef J_OPT} {$define HAS_INT64} {$define HAS_CARD32} {$define HAS_MSG} {$define HAS_ASSERT} {$ifndef VER1_0} {FPC 1.9.x} {$define StrictLong} {$else} {$define LoadArgs} {$endif} {$endif} {$ifdef VER2} {$define HAS_ASSERT} {$define HAS_INT64} {$define HAS_CARD32} {$define HAS_MSG} {$define HAS_INLINE} {Remember to use -Si} {$define StrictLong} {$ifdef FPC_OBJFPC} {$define DEFAULT} {$endif} {$ifdef FPC_DELPHI} {$define DEFAULT} {$endif} {$ifndef VER2_0} {$ifndef VER2_1} {$define HAS_UINT64} {2.2+} {$endif} {$define HAS_DENORM_LIT} {2.1+} {$endif} {$endif} {Note: Mode detection does not work for -Sxxx and version < 2.0.2} {$ifdef FPC_OBJFPC} {$define RESULT} {$endif} {$ifdef FPC_DELPHI} {$define RESULT} {$undef FPC_ProcVar} {$endif} {$ifdef FPC_TP} {$undef FPC_ProcVar} {$endif} {$ifdef FPC_GPC} {$undef FPC_ProcVar} {$endif} {$ifdef CPU64} {$define BIT64} {$endif} {$endif} {$ifdef __TMT__} {$undef N_OPT} {$define RESULT} {$define HAS_INT64} {$define LoadArgs} {$ifdef __WIN32__} {$define WIN32} {$endif} {$endif} {$ifndef BIT16} {$define Bit32or64} {$ifndef BIT64} {$define BIT32} {$endif} {$endif} {$ifdef BIT16} {$ifdef WINDOWS} {$define WIN16} {$endif} {$endif} {$ifdef Delphi} {$define RESULT} {$define ABSTRACT} {$define HAS_DENORM_LIT} {$endif} {$ifdef D12Plus} {$ifndef D4PLUS} {$define D4PLUS} {$endif} {$define HAS_INLINE} {$define HAS_UNSAFE} {$define HAS_UINT64} {$endif} {$ifdef D4Plus} {$define HAS_INT64} {$define HAS_CARD32} {$define StrictLong} {$define HAS_ASSERT} {$define DEFAULT} {$define HAS_OVERLOAD} {$endif} {$ifdef WIN32} {$define WIN32or64} {$ifndef VirtualPascal} {$define APPCONS} {$endif} {$endif} {$ifdef WIN64} {$define BIT64} {$define WIN32or64} {$define EXT64} {$define APPCONS} {$endif} {$ifdef BIT64} {$undef BASM} {$endif} {-- Default options --} {$ifndef FPC} {$B-} {short-circuit boolean expression evaluation, FPC has always B-!} {$endif} {$ifdef FPC} {$ifdef CPUI386} {$ASMmode intel} {$endif} {$goto on} {$endif} {$ifdef VirtualPascal} {$ifndef debug} {&Optimise+,SmartLink+,Speed+} {$endif} {$endif} {$ifdef G_OPT} {$G+} {$endif} {$ifdef Q_OPT} {Most Crypto and CRC/Hash units need Q-, define Q+ locally if needed} {$Q-} {$endif} {$ifdef debug} {$R+,S+} {Note: D9+ needs $R- for StrictLong setting!} {$else} {$R-,S-} {$endif} {$ifdef SIMULATE_EXT64} {$define EXT64} {$endif} {$ifdef BIT16} {$F-} {$endif} {-- Record the starting values of important local options --} {$ifopt A+} {$define Align_on} {$endif} {$ifopt B+} {$define BoolEval_on} {$endif} {$ifopt D+} {$define DebugInfo_on} {$endif} {$ifopt I+} {$define IOChecks_on} {$endif} {$ifopt R+} {$define RangeChecks_on} {$endif} {$ifopt V+} {$define VarStringChecks_on} {$endif} {$ifdef Q_OPT} {$ifopt P+} {$define OpenStrings_on} {$endif} {$ifopt Q+} {$define OverflowChecks_on} {$endif} {$endif} {-- Note that X option is GLOBAL --} {$ifdef X_OPT} {$ifopt X+} {$define ExtendedSyntax_on} {$endif} {$ifopt X-} {$undef RESULT} {$endif} {$endif} {$ifdef CONDITIONALEXPRESSIONS} {$warn SYMBOL_PLATFORM OFF} {$warn SYMBOL_DEPRECATED OFF} {$warn SYMBOL_LIBRARY OFF} {$warn UNIT_DEPRECATED OFF} {$warn UNIT_LIBRARY OFF} {$warn UNIT_PLATFORM OFF} {$ifdef HAS_UNSAFE} {$warn UNSAFE_TYPE OFF} {$warn UNSAFE_CODE OFF} {$warn UNSAFE_CAST OFF} {$endif} {$endif} {$else} {$ifdef HAS_MSG} {$message 'std.inc included more than once'} {$endif} {$endif} dozzaqueux-3.51/monbitmap.pas0000750000175000017500000017027313147330070016560 0ustar georgeskgeorgeskunit MonBitmap; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,LCLProc,Math,LCLType {$ifdef windows},Windows{$endif}; type TCouleurPixelPourDensityPlot = function(x,y:extended):tcolor; pimage=^timage; TMonBitmap = Object image_pointee:pimage; Xmin,Xmax,Ymin1,Ymax1,Ymin2,Ymax2,GraduationX, GraduationY1,GraduationY2, SousGraduationX, SousGraduationY1,SousGraduationY2:extended; Rang_Premiere_Graduation_X,Rang_Premiere_Graduation_Y1,Rang_Premiere_Graduation_Y2, Rang_Derniere_Graduation_X,Rang_Derniere_Graduation_Y1,Rang_Derniere_Graduation_Y2, Rang_Premiere_Sous_Graduation_X,Rang_Premiere_Sous_Graduation_Y1,Rang_Premiere_Sous_Graduation_Y2, Rang_Derniere_Sous_Graduation_X,Rang_Derniere_Sous_Graduation_Y1,Rang_Derniere_Sous_Graduation_Y2:integer; Largeur,Hauteur,BordureBasse,BordureHaute, BordureGauche,BordureDroite,EpaisseurGrille,PuissanceDeDixX, PuissancedeDixY1,PuissancedeDixY2,epaisseurcadre,epaisseurgraduation:integer; longueurgraduationX,longueurgraduationY1,longueurgraduationY2:extended; PasGrillex,PasGrilley1,PasGrilley2:extended; couleurfond,couleurcadre,couleurgraduation, couleurgrille1,couleurgrille2:tcolor; cadre,gradue,grille1,grille2,fond,borduresverticalessymetriques,echelle_g,echelle_d:boolean; titre,labelx,labely1,labely2,unitex,unitey1,unitey2:string; fontegraduation:tfont; fontetitre:tfont; procedure background(couleur:tcolor); procedure DensityPlot(TCP:TCouleurPixelPourDensityPlot; gauche:boolean); function LimitesEtAxes(pointeur_sur_image:pimage;_xmin,_xmax,_ymin1,_ymax1,_ymin2,_ymax2:extended; _Largeur,_Hauteur:integer; _titre:string; _fontetitre:tfont; _Fond:boolean; _CouleurFond:tcolor; _Cadre:boolean; _EpaisseurCadre:integer; _CouleurCadre:tcolor; _Gradue:boolean; _EpaisseurGraduation,_LongueurGraduation:integer; _couleurgraduation:tcolor; _fontegraduation:tfont; _Grille1,_Grille2:boolean; _EpaisseurGrille:integer; _CouleurGrille1,_CouleurGrille2:tcolor; _labelx,_labely1,_labely2,_unitex,_unitey1,_unitey2:string; _borduresverticalessymetriques, _echelle_g,_echelle_d:boolean):boolean; procedure dessinergrille(pas_grillex,pas_grilley:extended); procedure arronditalagrille(var x1,y1:extended;pas_grillex,pas_grilley:extended); function invconvert(var xi,yi:integer; x,y:extended;gauche:boolean):boolean; function Convert(xi,yi:integer; var x,y:extended;gauche:boolean):boolean; function CroixX(x,y:extended; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function CroixP(x,y:extended; demi_longueur,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function Carreau(x,y:extended; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function Trait(x1,y1,x2,y2:extended; epaisseur:integer; couleur:tcolor; sty:tpenstyle; penmod:tpenmode;gauche:boolean):boolean; function Point(x,y:extended; rayon:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function cercle(x,y:extended; rayon,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function ellipse(x,y,rayonx,rayony:extended; epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function ellipse2(xcentre,ycentre,rayonx,rayony,axe1_x,axe1_y,axe2_x,axe2_y:extended; epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function disque(x,y:extended; rayon:extended; couleurbord,couleurf:tcolor;_transparent:boolean;gauche:boolean): boolean; function disque2(x,y:extended; rayon:integer; couleurbord,couleurf:tcolor;gauche:boolean): boolean; function arcdecercle(x,y:extended; rayonreel:extended; epaisseur:integer; theta1,theta2:extended; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function tracepolygone(nombrepoint:integer;listex,listey:array of extended; couleurbord,couleurf:tcolor;_transparent:boolean;gauche:boolean):boolean; procedure traceconique(theta0,theta1,theta2,fx,fy,excentricite,parametre:extended; couleur:tcolor;gauche:boolean); procedure arronditalagrille(var x1,y1:extended;gauche:boolean); procedure ecrire(x,y:extended; s:string;gauche:boolean; police:tfont); function MonRectangle(x1,y1,x2,y2:extended; couleur:tcolor; gauche:boolean):boolean; procedure graduation(xi,xa:extended; var xci,xca:extended; var graduation,sousgraduation:extended; var rang_premiere_sousgraduation,rang_derniere_sousgraduation,rang_premiere_graduation,rang_derniere_graduation:integer); end; procedure echange(var a,b:extended); procedure echange_entiers(var a,b:integer); function partieentiere(x:extended):extended; function dix_pp(p:longint):extended; implementation uses Unit1; procedure TMonBitmap.arronditalagrille(var x1,y1:extended;pas_grillex,pas_grilley:extended); var newx,newy,divx,divy,fracx,fracy:extended; begin divx:=partieentiere((x1-xmin)/pas_grillex); divy:=partieentiere((y1-ymin1)/pas_grilley); fracx:=x1-xmin-divx*pas_grillex; fracy:=y1-ymin1-divy*pas_grilley; if fracx>0.5*pas_grillex then newx:=xmin+(divx+1)*pas_grillex else newx:=xmin+divx*pas_grillex; if fracy>0.5*pas_grilley then newy:=ymin1+(divy+1)*pas_grilley else newy:=ymin1+divy*pas_grilley; x1:=newx; y1:=newy; end; procedure TMonBitmap.dessinergrille(pas_grillex,pas_grilley:extended); var i,j,x1,y1:integer; x,y:extended; begin if grille1 then begin for i:=1 to trunc((xmax-xmin)/pas_grillex) do for j:=1 to trunc((ymax1-ymin1)/pas_grilley) do begin x:=xmin+i*pas_grillex; y:=ymin1+j*pas_grilley; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax1-y)/(ymax1-ymin1)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; image_pointee^.picture.Bitmap.canvas.pixels[x1,y1]:=couleurgrille1; end; end; end; procedure TMonBitmap.DensityPlot(TCP:TCouleurPixelPourDensityPlot; gauche:boolean); var i,j:integer; x,y:extended; begin for i:=BordureGauche to largeur-BordureDroite do for j:=BordureHaute to hauteur-BordureBasse do begin self.convert(i,j,x,y,gauche); image_pointee^.picture.Bitmap.canvas.pixels[i,j]:=TCP(x,y); end; end; procedure TMonBitmap.graduation(xi,xa:extended; var xci,xca:extended; var graduation,sousgraduation:extended; var rang_premiere_sousgraduation,rang_derniere_sousgraduation,rang_premiere_graduation,rang_derniere_graduation:integer); var g,sg,d:extended; p:longint; label 124; begin if xa1) then begin inter:=10; for i:=1 to p-1 do inter:=inter*10; result:=inter; end else if (p=-1) then begin result:=1/10; end; end; function partieentiere(x:extended):extended; begin if x>=0 then begin partieentiere:=int(x); exit; end; if frac(x)=0 then begin partieentiere:=x; exit; end; {cas ou x est <0 et non entier} partieentiere:=int(x)-1; end; function TMonBitmap.disque2(x,y:extended; rayon:integer; couleurbord,couleurf:tcolor;gauche:boolean): boolean; var x1,y1,r1x,r1y:integer; ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin disque2:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; if rayon=0 then exit; old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; old_brush_color:=image_pointee^.picture.Bitmap.canvas.brush.color; image_pointee^.picture.Bitmap.canvas.pen.color:=couleurbord; image_pointee^.picture.Bitmap.canvas.pen.style:=pssolid; image_pointee^.picture.Bitmap.canvas.pen.width:=1; image_pointee^.picture.Bitmap.canvas.pen.mode:=pmcopy; disque2:=true; image_pointee^.picture.Bitmap.canvas.brush.style:=bssolid; image_pointee^.picture.Bitmap.canvas.brush.color:=couleurf; image_pointee^.picture.Bitmap.canvas.ellipse(x1-rayon,y1-rayon,x1+rayon, y1+rayon); image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; image_pointee^.picture.Bitmap.canvas.brush.color:=old_brush_color; end; function TMonBitmap.Carreau(x,y:extended; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin carreau:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; image_pointee^.picture.Bitmap.canvas.pen.width:=epaisseur; image_pointee^.picture.Bitmap.canvas.pen.mode:=penmod; image_pointee^.picture.Bitmap.canvas.pen.style:=pssolid; image_pointee^.picture.Bitmap.canvas.pen.color:=couleur; image_pointee^.picture.Bitmap.canvas.moveto(x1,y1+demi_diagonale); image_pointee^.picture.Bitmap.canvas.lineto(x1+demi_diagonale,y1); image_pointee^.picture.Bitmap.canvas.lineto(x1,y1-demi_diagonale); image_pointee^.picture.Bitmap.canvas.lineto(x1-demi_diagonale,y1); image_pointee^.picture.Bitmap.canvas.lineto(x1,y1+demi_diagonale); carreau:=true; image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; end; procedure echange_entiers(var a,b:integer); var c:integer; begin c:=a; a:=b; b:=c; end; procedure echange(var a,b:extended); var c:extended; begin c:=a; a:=b; b:=c; end; procedure TMonBitmap.traceconique(theta0,theta1,theta2,fx,fy,excentricite,parametre:extended; couleur:tcolor;gauche:boolean); var pas,theta,r,ract,thetaact,nx,ny,ttai:extended; nombrepas,i:integer; ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; nombrepas:=1000; pas:=(theta2-theta1)/nombrepas; thetaact:=theta1; ract:=parametre/(1+excentricite*cos(thetaact-theta0)); for i:=1 to nombrepas do begin theta:=theta1+i*pas; r:=parametre/(1+excentricite*cos(theta-theta0)); if ((r>0) and (ract>0)) then trait(fx+ract*cos(thetaact),fy+ract*sin(thetaact),fx+r*cos(theta),fy+r*sin(theta), 1,couleur,pssolid,pmcopy,gauche); thetaact:=theta; ract:=r; end; end; function TMonBitmap.tracepolygone(nombrepoint:integer;listex,listey:array of extended; couleurbord,couleurf:tcolor;_transparent:boolean;gauche:boolean):boolean; var i,x1,y1:integer; titi:array of tpoint; ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; setlength(titi,nombrepoint); for i:=1 to nombrepoint do begin x1:= trunc((listex[i-1]-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-listey[i-1])/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; titi[i-1].x:=x1; titi[i-1].y:=y1; end; old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; old_brush_color:=image_pointee^.picture.Bitmap.canvas.brush.color; image_pointee^.picture.Bitmap.canvas.Pen.Color:=couleurbord; image_pointee^.picture.Bitmap.canvas.brush.color:=couleurf; if not(_transparent) then image_pointee^.picture.Bitmap.canvas.brush.style:=bsSolid else image_pointee^.picture.Bitmap.canvas.brush.style:=bsclear; image_pointee^.picture.Bitmap.canvas.Polygon(titi,false,0,nombrepoint); image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; image_pointee^.picture.Bitmap.canvas.brush.color:=old_brush_color; end; function TMonBitmap.arcdecercle(x,y:extended; rayonreel:extended; epaisseur:integer; theta1,theta2:extended; couleur:tcolor; penmod:tpenmode;gauche:boolean): boolean; var x1,y1,rax,ray:integer; ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; invconvert(x1,y1,x,y,gauche); rax:= trunc(rayonreel/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); ray:= trunc(rayonreel/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if rayonreel=0 then exit; old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; old_brush_color:=image_pointee^.picture.Bitmap.canvas.brush.color; image_pointee^.picture.Bitmap.canvas.pen.color:=couleur; image_pointee^.picture.Bitmap.canvas.pen.style:=pssolid; image_pointee^.picture.Bitmap.canvas.pen.width:=epaisseur; image_pointee^.picture.Bitmap.canvas.pen.mode:=penmod; arcdecercle:=true; image_pointee^.picture.Bitmap.canvas.brush.style:=bsclear; image_pointee^.picture.Bitmap.canvas.arc(x1-rax,y1-ray,x1+rax,y1+ray,trunc(theta1/Pi*180*16),trunc((theta2-theta1)/Pi*180*16)); arcdecercle:=true; image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; image_pointee^.picture.Bitmap.canvas.brush.color:=old_brush_color; end; function TMonBitmap.Point(x,y:extended; rayon:integer; couleur:tcolor ; penmod:tpenmode;gauche:boolean): boolean; var x1,y1:integer; ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin point:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; if rayon=0 then image_pointee^.picture.Bitmap.canvas.pixels[x1,y1]:=couleur; if rayon=0 then exit; old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; old_brush_color:=image_pointee^.picture.Bitmap.canvas.brush.Color; image_pointee^.picture.Bitmap.canvas.pen.color:=couleur; image_pointee^.picture.Bitmap.canvas.pen.style:=pssolid; image_pointee^.picture.Bitmap.canvas.pen.width:=1; image_pointee^.picture.Bitmap.canvas.pen.mode:=pmcopy; image_pointee^.picture.Bitmap.canvas.brush.style:=bssolid; image_pointee^.picture.Bitmap.canvas.brush.Color:=couleur; image_pointee^.picture.Bitmap.canvas.ellipse(x1-rayon,y1-rayon,x1+rayon,y1+rayon); image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; image_pointee^.picture.Bitmap.canvas.brush.Color:=old_brush_color; end; function TMonBitmap.ellipse(x,y,rayonx,rayony:extended; epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1,r1x,r1y:integer; ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin ellipse:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; r1x:= trunc(rayonx/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); r1y:=trunc((rayony)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; image_pointee^.picture.Bitmap.canvas.pen.color:=couleur; image_pointee^.picture.Bitmap.canvas.pen.style:=pssolid; image_pointee^.picture.Bitmap.canvas.pen.width:=epaisseur; image_pointee^.picture.Bitmap.canvas.pen.mode:=penmod; ellipse:=true; image_pointee^.picture.Bitmap.canvas.brush.style:=bsclear; image_pointee^.picture.Bitmap.canvas.arc(x1-r1x,y1-r1y,x1+r1x,y1+r1y,x1+r1x, y1+r1y,x1+r1x,y1+r1y); image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; end; function TMonBitmap.ellipse2(xcentre,ycentre,rayonx,rayony,axe1_x,axe1_y,axe2_x,axe2_y:extended; epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1,x2,y2,r1x,r1y,i:integer; ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((xcentre-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-ycentre)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin ellipse2:=false; exit; end; { x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; r1x:= trunc(rayonx/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); r1y:=trunc((rayony)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); } old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; image_pointee^.picture.Bitmap.canvas.pen.color:=couleur; image_pointee^.picture.Bitmap.canvas.pen.style:=pssolid; image_pointee^.picture.Bitmap.canvas.pen.width:=epaisseur; image_pointee^.picture.Bitmap.canvas.pen.mode:=penmod; ellipse2:=true; image_pointee^.picture.Bitmap.canvas.brush.style:=bsclear; self.invconvert(x1,y1,xcentre+rayonx*axe1_x,ycentre+rayonx*axe1_y,gauche); image_pointee^.picture.Bitmap.canvas.MoveTo(x1,y1); for i:=1 to 360 do begin self.invconvert(x2,y2,xcentre+rayonx*axe1_x*cos(i/360*2*pi)+rayony*axe2_x*sin(i/360*2*pi), ycentre+rayonx*axe1_y*cos(i/360*2*pi)+rayony*axe2_y*sin(i/360*2*pi),gauche); image_pointee^.picture.Bitmap.canvas.LineTo(x2,y2); end; image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; end; function TMonBitmap.cercle(x,y:extended; rayon,epaisseur:integer; couleur:tcolor ; penmod:tpenmode;gauche:boolean): boolean; var x1,y1:integer; ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin cercle:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; image_pointee^.picture.Bitmap.canvas.pen.color:=couleur; image_pointee^.picture.Bitmap.canvas.pen.style:=pssolid; image_pointee^.picture.Bitmap.canvas.pen.width:=epaisseur; image_pointee^.picture.Bitmap.canvas.pen.mode:=penmod; cercle:=true; image_pointee^.picture.Bitmap.canvas.brush.style:=bsclear; if rayon=0 then exit; image_pointee^.picture.Bitmap.canvas.arc(x1-rayon,y1-rayon,x1+rayon,y1+rayon,x1+rayon, y1+rayon,x1+rayon,y1+rayon); image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; end; function TMonBitmap.disque(x,y:extended; rayon:extended; couleurbord,couleurf:tcolor;_transparent:boolean;gauche:boolean): boolean; var x1,y1,r1x,r1y:integer; ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin disque:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; r1x:= trunc(rayon/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); r1y:=trunc((rayon)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if rayon=0 then exit; old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; old_brush_color:=image_pointee^.picture.Bitmap.canvas.brush.color; image_pointee^.picture.Bitmap.canvas.pen.color:=couleurbord; image_pointee^.picture.Bitmap.canvas.pen.style:=pssolid; image_pointee^.picture.Bitmap.canvas.pen.width:=1; image_pointee^.picture.Bitmap.canvas.pen.mode:=pmcopy; disque:=true; image_pointee^.picture.Bitmap.canvas.brush.color:=couleurf; if not(_transparent) then image_pointee^.picture.Bitmap.canvas.brush.style:=bssolid else image_pointee^.picture.Bitmap.canvas.brush.style:=bsclear; image_pointee^.picture.Bitmap.canvas.ellipse(x1-r1x,y1-r1y,x1+r1x, y1+r1y); image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; image_pointee^.picture.Bitmap.canvas.brush.color:=old_brush_color; end; function TMonBitmap.Trait(x1,y1,x2,y2:extended; epaisseur:integer; couleur:tcolor;sty:tpenstyle; penmod:tpenmode;gauche:boolean):boolean; var ymax,ymin,pasgrilley:extended; xi1,xi2,yi1,yi2:integer; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; if xmax=xmin then exit; if ymax=ymin then exit; old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; image_pointee^.picture.Bitmap.canvas.pen.width:=epaisseur; image_pointee^.picture.Bitmap.canvas.pen.color:=couleur; image_pointee^.picture.Bitmap.canvas.pen.Style:=sty; image_pointee^.picture.Bitmap.canvas.pen.mode:=penmod; self.invconvert(xi1,yi1,x1,y1,gauche); self.invconvert(xi2,yi2,x2,y2,gauche); image_pointee^.picture.Bitmap.canvas.Line(xi1,yi1,xi2,yi2); {image_pointee^.picture.Bitmap.canvas.moveto(trunc((x1-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche,trunc((ymax-y1)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute); image_pointee^.picture.Bitmap.canvas.lineto(trunc((x2-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche,trunc((ymax-y2)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute); } image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; end; function TMonBitmap.MonRectangle(x1,y1,x2,y2:extended; couleur:tcolor; gauche:boolean):boolean; var ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; xi1,yi1,xi2,yi2:integer; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; if xmax=xmin then exit; if ymax=ymin then exit; old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; old_brush_color:=image_pointee^.picture.Bitmap.canvas.Brush.Color; image_pointee^.picture.Bitmap.canvas.pen.color:=couleur; image_pointee^.picture.Bitmap.canvas.pen.Style:=pssolid; image_pointee^.picture.Bitmap.canvas.pen.mode:=pmcopy; image_pointee^.picture.Bitmap.canvas.Brush.Color:=couleur; image_pointee^.picture.Bitmap.canvas.Brush.Style:=bssolid; self.invconvert(xi1,yi1,x1,y1,gauche); self.invconvert(xi2,yi2,x2,y2,gauche); if xi1>xi2 then echange_entiers(xi1,xi2); if yi1>yi2 then echange_entiers(yi1,yi2); image_pointee^.picture.Bitmap.canvas.Rectangle(xi1,yi1,xi2,yi2); image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; image_pointee^.picture.Bitmap.canvas.brush.Color:=old_brush_color; end; function TMonBitmap.CroixP(x,y:extended; demi_longueur,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin croixp:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; old_brush_color:=image_pointee^.picture.Bitmap.canvas.brush.color; image_pointee^.picture.Bitmap.canvas.pen.width:=epaisseur; image_pointee^.picture.Bitmap.canvas.pen.mode:=penmod; image_pointee^.picture.Bitmap.canvas.pen.style:=pssolid; image_pointee^.picture.Bitmap.canvas.pen.color:=couleur; image_pointee^.picture.Bitmap.canvas.moveto(x1,y1); image_pointee^.picture.Bitmap.canvas.lineto(x1,y1+demi_longueur); image_pointee^.picture.Bitmap.canvas.moveto(x1,y1); image_pointee^.picture.Bitmap.canvas.lineto(x1,y1-demi_longueur); image_pointee^.picture.Bitmap.canvas.moveto(x1,y1); image_pointee^.picture.Bitmap.canvas.lineto(x1+demi_longueur,y1); image_pointee^.picture.Bitmap.canvas.moveto(x1,y1); image_pointee^.picture.Bitmap.canvas.lineto(x1-demi_longueur,y1); croixp:=true; image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; image_pointee^.picture.Bitmap.canvas.brush.color:=old_brush_color; end; procedure TMonBitmap.arronditalagrille(var x1,y1:extended;gauche:boolean); var newx,newy,divx,divy,fracx,fracy:extended; ymax,ymin,pasgrilley:extended; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; divx:=partieentiere((x1-xmin)/pasgrillex); divy:=partieentiere((y1-ymin)/pasgrilley); fracx:=x1-xmin-divx*pasgrillex; fracy:=y1-ymin-divy*pasgrilley; if fracx>0.5*pasgrillex then newx:=(divx+1)*pasgrillex else newx:=divx*pasgrillex; if fracy>0.5*pasgrilley then newy:=(divy+1)*pasgrilley else newy:=divy*pasgrilley; x1:=newx; y1:=newy; end; procedure TMonBitmap.ecrire(x,y:extended; s:string;gauche:boolean; police:tfont); var xi,yi:integer; begin invconvert(xi,yi,x,y,gauche); image_pointee^.picture.Bitmap.canvas.Font:=police; image_pointee^.picture.Bitmap.canvas.textout(xi,yi,s); end; procedure TMonBitmap.background(couleur:tcolor); var old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; old_brush_color:=image_pointee^.picture.Bitmap.canvas.brush.color; image_pointee^.picture.Bitmap.canvas.pen.style:=psclear; image_pointee^.picture.Bitmap.canvas.Brush.style:=bssolid; image_pointee^.picture.Bitmap.canvas.Brush.Color:=clwhite; image_pointee^.picture.Bitmap.canvas.Rectangle(0,0,image_pointee^.picture.Bitmap.Width,image_pointee^.picture.Bitmap.Height); image_pointee^.picture.Bitmap.canvas.Brush.Color:=couleur; image_pointee^.picture.Bitmap.canvas.Rectangle(borduregauche,bordurehaute, largeur-borduredroite,hauteur-bordurebasse); image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; image_pointee^.picture.Bitmap.canvas.brush.color:=old_brush_color; end; function TMonBitmap.LimitesEtAxes(pointeur_sur_image:pimage;_xmin,_xmax,_ymin1,_ymax1,_ymin2,_ymax2:extended; _Largeur,_Hauteur:integer; _titre:string; _fontetitre:tfont; _Fond:boolean; _CouleurFond:tcolor; _Cadre:boolean; _EpaisseurCadre:integer; _CouleurCadre:tcolor; _Gradue:boolean; _EpaisseurGraduation,_LongueurGraduation:integer; _couleurgraduation:tcolor; _fontegraduation:tfont; _Grille1,_Grille2:boolean; _EpaisseurGrille:integer; _CouleurGrille1,_CouleurGrille2:tcolor; _labelx,_labely1,_labely2,_unitex,_unitey1,_unitey2:string; _borduresverticalessymetriques, _echelle_g,_echelle_d:boolean):boolean; var xi,xa,yi1,yi2,ya1,ya2,gi,ga:extended; t1,t2,i:integer; dixx,dixy1,dixy2,tt,aff:string; nbgx,nbgy1,nbgy2:integer; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; rg_grad_first,rg_grad_last,rg_ssgrad_first,rg_ssgrad_last:integer; begin image_pointee:=pointeur_sur_image; old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; old_brush_color:=image_pointee^.picture.Bitmap.canvas.brush.color; fond:=_fond; echelle_g:=_echelle_g; echelle_d:=_echelle_d; borduresverticalessymetriques:=_borduresverticalessymetriques; labelx:=_labelx; labely1:=_labely1; labely2:=_labely2; unitex:=_unitex; unitey1:=_unitey1; unitey2:=_unitey2; fontetitre:=_fontetitre; largeur:=_largeur; hauteur:=_hauteur; image_pointee^.picture.Bitmap.Width:=largeur; image_pointee^.picture.Bitmap.Height:=hauteur; titre:=_titre; couleurfond:=_couleurfond; cadre:=_cadre; epaisseurcadre:=_epaisseurcadre; couleurcadre:=_couleurcadre; gradue:=_gradue; epaisseurgraduation:=_epaisseurgraduation; fontegraduation:=_fontegraduation; couleurgraduation:=_couleurgraduation; grille1:=_grille1; grille2:=_grille2; epaisseurgrille:=_epaisseurgrille; couleurgrille1:=_couleurgrille1; couleurgrille2:=_couleurgrille2; bordurehaute:=0; bordurebasse:=0; borduregauche:=0; borduredroite:=0; if (echelle_g and ( (_ymin1=_ymax1) or (_xmax=_xmin))) then begin LimitesEtAxes:=false; exit; end; if (echelle_d and ( (_ymin2=_ymax2) or (_xmax=_xmin))) then begin LimitesEtAxes:=false; exit; end; LimitesEtAxes:=true; if (_xmin>_xmax ) then begin xmin:=_xmax; xmax:=_xmin; end else begin xmin:=_xmin; xmax:=_xmax; end; if (_ymin1>_ymax1 ) then begin ymin1:=_ymax1; ymax1:=_ymin1; end else begin ymin1:=_ymin1; ymax1:=_ymax1; end; if (_ymin2>_ymax2 ) then begin ymin2:=_ymax2; ymax2:=_ymin2; end else begin ymin2:=_ymin2; ymax2:=_ymax2; end; xi:=xmin; yi1:=ymin1; yi2:=ymin2; xa:=xmax; ya1:=ymax1; ya2:=ymax2; graduation(xi,xa,xmin,xmax,graduationx,sousgraduationx,Rang_Premiere_Sous_Graduation_X, Rang_Derniere_Sous_Graduation_X,Rang_Premiere_Graduation_X,Rang_Derniere_Graduation_X); if echelle_g then graduation(yi1,ya1,ymin1,ymax1,graduationY1,sousgraduationY1,Rang_Premiere_Sous_Graduation_Y1, Rang_Derniere_Sous_Graduation_Y1,Rang_Premiere_Graduation_Y1,Rang_Derniere_Graduation_Y1); if echelle_d then graduation(yi2,ya2,ymin2,ymax2,graduationY2,sousgraduationY2,Rang_Premiere_Sous_Graduation_Y2, Rang_Derniere_Sous_Graduation_Y2,Rang_Premiere_Graduation_Y2,Rang_Derniere_Graduation_Y2); { str(-puissancededixx+1,dixx); if echelle_g then str(-puissancededixy1+1,dixy1) else dixy1:='0'; if echelle_d then str(-puissancededixy2+1,dixy2)else dixy2:='0'; } dixx:='0'; dixy1:='0'; dixy2:='0'; {determination taille bordure haute} image_pointee^.picture.Bitmap.canvas.font:=fontetitre; if (titre<>'') then begin t1:=trunc(image_pointee^.picture.Bitmap.canvas.textheight(titre))+10; end else t1:=10; if gradue then begin image_pointee^.picture.Bitmap.canvas.font:=fontegraduation; if ((dixy1='0') and (dixy2='0')) then t2:=trunc(image_pointee^.picture.Bitmap.canvas.textheight(unitex+labelx)*1.5) else t2:=trunc(image_pointee^.picture.Bitmap.canvas.textheight(unitex+labelx)*2.2); end else t2:=10; if (t1>t2) then bordurehaute:=t1 else bordurehaute:=t2; {taille bordure basse} if gradue then begin image_pointee^.picture.Bitmap.canvas.font:=fontegraduation; t1:=trunc(image_pointee^.picture.Bitmap.canvas.textheight('x10'))+10; end else t1:=10; bordurebasse:=t1; {taille bordure droite} if (gradue and echelle_d) then begin image_pointee^.picture.Bitmap.canvas.font:=fontegraduation; t1:=image_pointee^.picture.Bitmap.canvas.textwidth(floattostr(Rang_Premiere_Graduation_Y2*GraduationY2)); for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do t1:=max(t1,image_pointee^.picture.Bitmap.canvas.textwidth(floattostr(i*GraduationY2))); t1:=t1+10+_longueurgraduation; end else begin t1:=10; end; if gradue then begin image_pointee^.picture.Bitmap.canvas.font:=fontegraduation; t2:=(image_pointee^.picture.Bitmap.canvas.textwidth(floattostr(Rang_Derniere_Graduation_X*GraduationX)) div 2)- trunc((xmax-Rang_Derniere_Graduation_X*GraduationX)/(xmax-xmin)*(largeur-borduredroite-borduregauche)); end else t2:=10; borduredroite:=max(t1,t2); {taille bordure gauche} if (gradue and echelle_g) then begin image_pointee^.picture.Bitmap.canvas.font:=fontegraduation; t1:=image_pointee^.picture.Bitmap.canvas.textwidth(floattostr(Rang_Premiere_Graduation_Y1*GraduationY1)); for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do t1:=max(t1,image_pointee^.picture.Bitmap.canvas.textwidth(floattostr(i*GraduationY1))); t1:=t1+10+_longueurgraduation; end else begin t1:=10; end; if gradue then begin image_pointee^.picture.Bitmap.canvas.font:=fontegraduation; t2:=(image_pointee^.picture.Bitmap.canvas.textwidth(floattostr(Rang_Premiere_Graduation_X*GraduationX)) div 2)- trunc((Rang_Premiere_Graduation_X*GraduationX-xmin)/(xmax-xmin)*(largeur-borduredroite-borduregauche)); end else t2:=10; borduregauche:=max(t1,t2); if borduresverticalessymetriques then begin borduregauche:=max(borduregauche,borduredroite); borduredroite:=borduregauche; end; if fond then background(couleurfond); {longueurgraduation} longueurgraduationX:=_longueurgraduation/largeur*(xmax-xmin); if echelle_g then longueurgraduationy1:=_longueurgraduation/hauteur*(ymax1-ymin1); if echelle_d then longueurgraduationy2:=_longueurgraduation/hauteur*(ymax2-ymin2); if grille1 then begin image_pointee^.picture.Bitmap.canvas.pen.style:=psdot; image_pointee^.picture.Bitmap.canvas.pen.color:=couleurgrille1; image_pointee^.picture.Bitmap.canvas.pen.width:=epaisseurgrille; for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin1,i*sousgraduationx,ymax1, epaisseurgrille,couleurgrille1,psdot,pmcopy,true); for i:=Rang_Premiere_Sous_Graduation_Y1 to Rang_Derniere_Sous_Graduation_Y1 do trait(xmin,i*sousgraduationy1,xmax,i*sousgraduationy1, epaisseurgrille,couleurgrille1,psdot,pmcopy,true); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin1,i*graduationx,ymax1, epaisseurgrille,couleurgrille1,psdash,pmcopy,true); for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do trait(xmin,i*graduationy1,xmax,i*graduationy1, epaisseurgrille,couleurgrille1,psdash,pmcopy,true); end; if grille2 then begin image_pointee^.picture.Bitmap.canvas.pen.style:=psdot; image_pointee^.picture.Bitmap.canvas.pen.color:=couleurgrille2; image_pointee^.picture.Bitmap.canvas.pen.width:=epaisseurgrille; for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin2,i*sousgraduationx,ymax2, epaisseurgrille,couleurgrille2,psdot,pmcopy,false); for i:=Rang_Premiere_Sous_Graduation_Y2 to Rang_Derniere_Sous_Graduation_Y2 do trait(xmin,i*sousgraduationy2,xmax,i*sousgraduationy2, epaisseurgrille,couleurgrille2,psdot,pmcopy,false); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin2,i*graduationx,ymax2, epaisseurgrille,couleurgrille2,psdash,pmcopy,false); for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do trait(xmin,i*graduationy2,xmax,i*graduationy2, epaisseurgrille,couleurgrille2,psdash,pmcopy,false); end; {cadre} if cadre then begin trait(xmin,ymin1,xmax,ymin1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); trait(xmax,ymin1,xmax,ymax1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); trait(xmax,ymax1,xmin,ymax1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); trait(xmin,ymax1,xmin,ymin1,epaisseurcadre,couleurcadre,pssolid,pmcopy,true); end; {affichage du titre} image_pointee^.picture.Bitmap.canvas.font:=fontetitre; image_pointee^.picture.Bitmap.canvas.Font.Size:=abs(image_pointee^.picture.Bitmap.canvas.Font.Size); while (((image_pointee^.picture.Bitmap.canvas.textwidth(titre)>largeur-borduregauche-borduredroite) or (image_pointee^.picture.Bitmap.canvas.textheight(titre)>bordurehaute)) and (image_pointee^.picture.Bitmap.canvas.Font.Size>1)) do begin { application.MessageBox(pchar(inttostr(image_pointee^.picture.Bitmap.canvas.Font.Size)), pchar(inttostr(image_pointee^.picture.Bitmap.canvas.textwidth(titre))),mb_ok);} image_pointee^.picture.Bitmap.canvas.Font.Size:= image_pointee^.picture.Bitmap.canvas.Font.Size-1; end; if image_pointee^.picture.Bitmap.canvas.Font.Size<6 then image_pointee^.picture.Bitmap.canvas.Font.Size:=6; image_pointee^.picture.Bitmap.canvas.textout(largeur div 2 -(image_pointee^.picture.Bitmap.canvas.textwidth(titre) div 2), 2,titre); {graduation} if gradue then begin if dixx='0' then aff:='' else begin aff:='10'; if dixx<>'1' then for i:=1 to length(dixx) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labelx; if ((unitex<>'1') and (unitex<>'')) then aff:=aff+' en '+unitex; image_pointee^.picture.Bitmap.canvas.font:=fontegraduation; image_pointee^.picture.Bitmap.canvas.textout(largeur-borduredroite-trunc(image_pointee^.picture.Bitmap.canvas.textwidth (aff)*1.3),hauteur-bordurebasse- trunc(image_pointee^.picture.Bitmap.canvas.textheight('x10')*1.3),aff); if ((dixx<>'0') and (dixx<>'1')) then image_pointee^.picture.Bitmap.canvas.textout(largeur-borduredroite-trunc(image_pointee^.picture.Bitmap.canvas.textwidth(aff)*1.3)+ trunc(image_pointee^.picture.Bitmap.canvas.textwidth('10')),hauteur-bordurebasse -trunc(1.9*image_pointee^.picture.Bitmap.canvas.textheight('x10')), dixx); if echelle_g then begin if dixy1='0' then aff:='' else begin aff:='10'; if dixy1<>'1' then for i:=1 to length(dixy1) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labely1; if ((unitey1<>'1') and (unitey1<>'')) then aff:=aff+' en '+unitey1; image_pointee^.picture.Bitmap.canvas.font:=fontegraduation; image_pointee^.picture.Bitmap.canvas.textout(borduregauche,bordurehaute-trunc(image_pointee^.picture.Bitmap.canvas.textheight(aff)*1.2),aff); if ((dixy1<>'0') and (dixy1<>'1')) then image_pointee^.picture.Bitmap.canvas.textout(borduregauche+image_pointee^.picture.Bitmap.canvas.textwidth('10'),bordurehaute -trunc(image_pointee^.picture.Bitmap.canvas.textheight(aff)*1.8), dixy1); end; if echelle_d then begin if dixy2='0' then aff:='' else begin aff:='10'; if dixy2<>'1' then for i:=1 to length(dixy2) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labely2; if ((unitey2<>'1') and (unitey2<>'')) then aff:=aff+' en '+unitey2; image_pointee^.picture.Bitmap.canvas.font:=fontegraduation; image_pointee^.picture.Bitmap.canvas.textout(largeur-borduredroite-trunc(image_pointee^.picture.Bitmap.canvas.textwidth(aff)*1.2), bordurehaute-trunc(image_pointee^.picture.Bitmap.canvas.textheight(aff)*1.2),aff); if ((dixy2<>'0') and (dixy2<>'1')) then image_pointee^.picture.Bitmap.canvas.textout(largeur-borduredroite-trunc(image_pointee^.picture.Bitmap.canvas.textwidth(aff)*1.2)+image_pointee^.picture.Bitmap.canvas.textwidth('10'), bordurehaute -trunc(image_pointee^.picture.Bitmap.canvas.textheight(aff)*1.8), dixy2); end; image_pointee^.picture.Bitmap.canvas.font:=fontegraduation; for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do //str(round((i*graduationx)),tt); begin tt:=floattostr(i*graduationx); image_pointee^.picture.Bitmap.canvas.textout( trunc((i*graduationx-xmin)/(xmax-xmin)*(largeur-borduredroite-borduregauche))+ borduregauche-image_pointee^.picture.Bitmap.canvas.textwidth(tt) div 2, hauteur-bordurebasse+_LongueurGraduation,tt); end; if echelle_g then for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do begin //str( round((i*graduationy1)),tt); tt:=floattostr(i*graduationy1); image_pointee^.picture.Bitmap.canvas.textout( borduregauche-trunc(image_pointee^.picture.Bitmap.canvas.textwidth(tt)*1.1)-5 -_LongueurGraduation, trunc((ymax1-i*graduationy1)/(ymax1-ymin1)*(hauteur-bordurehaute-bordurebasse))+bordurehaute -image_pointee^.picture.Bitmap.canvas.textheight(tt) div 2, tt); end; if echelle_d then for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do begin //str( round((i*graduationy2)),tt); tt:=floattostr(i*graduationy2); image_pointee^.picture.Bitmap.canvas.textout( largeur-borduredroite+_LongueurGraduation+5, trunc((ymax2-i*graduationy2)/(ymax2-ymin2)*(hauteur-bordurehaute-bordurebasse))+bordurehaute -image_pointee^.picture.Bitmap.canvas.textheight(tt) div 2, tt); end; if echelle_g then begin for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin1-longueurgraduationy1,i*sousgraduationx, ymin1+longueurgraduationy1,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymax1+longueurgraduationy1,i*sousgraduationx, ymax1-longueurgraduationy1,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin1-2*longueurgraduationy1,i*graduationx, ymin1+longueurgraduationy1*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymax1-2*longueurgraduationy1,i*graduationx, ymax1+longueurgraduationy1*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Sous_Graduation_Y1 to Rang_Derniere_Sous_Graduation_Y1 do trait(xmin-longueurgraduationx,i*sousgraduationy1,xmin+longueurgraduationx,i*sousgraduationy1, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=Rang_Premiere_Graduation_Y1 to Rang_Derniere_Graduation_Y1 do trait(xmin-2*longueurgraduationx,i*graduationy1,xmin+longueurgraduationx*2,i*graduationy1, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); end; if echelle_d then begin for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymin2-longueurgraduationy2,i*sousgraduationx, ymin2+longueurgraduationy2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Sous_Graduation_X to Rang_Derniere_Sous_Graduation_X do trait(i*sousgraduationx,ymax2-longueurgraduationy2,i*sousgraduationx, ymax2-longueurgraduationy2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymin2-2*longueurgraduationy2,i*graduationx, ymin2+longueurgraduationy2*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Graduation_X to Rang_Derniere_Graduation_X do trait(i*graduationx,ymax2+2*longueurgraduationy2,i*graduationx, ymax2-longueurgraduationy2*2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Sous_Graduation_Y2 to Rang_Derniere_Sous_Graduation_Y2 do trait(xmax+longueurgraduationx,i*sousgraduationy2,xmax-longueurgraduationx,i*sousgraduationy2, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=Rang_Premiere_Graduation_Y2 to Rang_Derniere_Graduation_Y2 do trait(xmax+2*longueurgraduationx,i*graduationy2,xmax-longueurgraduationx*2,i*graduationy2, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); end; end; image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; image_pointee^.picture.Bitmap.canvas.brush.color:=old_brush_color; end; function TMonBitmap.Convert(xi,yi:integer; var x,y:extended;gauche:boolean):boolean; var ymax,ymin,pasgrilley:extended; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x:=(xi-BordureGauche)*(xmax-xmin)/ (largeur-BordureGauche-BordureDroite) +xmin; y:=-(yi-BordureHaute)*(ymax-ymin)/(hauteur-BordureHaute-BordureBasse) +ymax; convert:=true; end; function TMonBitmap.invconvert(var xi,yi:integer; x,y:extended;gauche:boolean):boolean; var ymax,ymin,pasgrilley:extended; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; xi:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; yi:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; invconvert:=true; end; function TMonBitmap.CroixX(x,y:extended; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:extended; old_pen_color,old_brush_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin croixx:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=image_pointee^.picture.Bitmap.canvas.pen.color; old_pen_style:=image_pointee^.picture.Bitmap.canvas.pen.style; old_pen_width:=image_pointee^.picture.Bitmap.canvas.pen.width; old_pen_mode:=image_pointee^.picture.Bitmap.canvas.pen.mode; old_brush_style:=image_pointee^.picture.Bitmap.canvas.brush.style; image_pointee^.picture.Bitmap.canvas.pen.width:=epaisseur; image_pointee^.picture.Bitmap.canvas.pen.mode:=penmod; image_pointee^.picture.Bitmap.canvas.pen.style:=pssolid; image_pointee^.picture.Bitmap.canvas.pen.color:=couleur; image_pointee^.picture.Bitmap.canvas.moveto(x1,y1); image_pointee^.picture.Bitmap.canvas.lineto(x1+demi_diagonale,y1+demi_diagonale); image_pointee^.picture.Bitmap.canvas.moveto(x1,y1); image_pointee^.picture.Bitmap.canvas.lineto(x1-demi_diagonale,y1+demi_diagonale); image_pointee^.picture.Bitmap.canvas.moveto(x1,y1); image_pointee^.picture.Bitmap.canvas.lineto(x1+demi_diagonale,y1-demi_diagonale); image_pointee^.picture.Bitmap.canvas.moveto(x1,y1); image_pointee^.picture.Bitmap.canvas.lineto(x1-demi_diagonale,y1-demi_diagonale); croixx:=true; image_pointee^.picture.Bitmap.canvas.pen.color:=old_pen_color; image_pointee^.picture.Bitmap.canvas.pen.style:=old_pen_style; image_pointee^.picture.Bitmap.canvas.pen.width:=old_pen_width; image_pointee^.picture.Bitmap.canvas.pen.mode:=old_pen_mode; image_pointee^.picture.Bitmap.canvas.brush.style:=old_brush_style; end; end. dozzaqueux-3.51/saisie_options_indicateur.lfm0000750000175000017500000000345313147330070022017 0ustar georgeskgeorgeskobject options_indicateur: Toptions_indicateur Left = 698 Height = 220 Top = 81 Width = 535 ActiveControl = RadioGroup1.RadioButton0 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Options pour l''indicateur coloré' ClientHeight = 220 ClientWidth = 535 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object RadioGroup1: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 200 Top = 10 Width = 384 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Dégradé de couleurs de l''indicateur' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 178 ClientWidth = 380 ItemIndex = 0 Items.Strings = ( 'Vertical en fonction du pH (si pH en ordonnée)' 'Horizontal en fonction du volume (si V en abscisse)' ) TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideLeft.Control = RadioGroup1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 404 Height = 192 Top = 10 Width = 121 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 1 end end dozzaqueux-3.51/symbexpr.inc0000750000175000017500000011376113147330070016430 0ustar georgeskgeorgesk{ $id: $ Copyright (c) 2000 by Marco van de Voort (marco@freepascal.org) member of the Free Pascal development team See the file COPYING.FPC, included in this distribution, for details about the copyright. (LGPL) TExpression class which does symbolic manipulation. Derivation routine based on 20 lines of conceptual pseudo code provided by Osmo Ronkanen. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ********************************************************************** Problems: - Often untested. I used my HP48g to check some complex derivatives, but more thorough checking and errorhandling is necessary. - RPN to Infix adds ()'s when not necessary. Should be made aware of precedence. (partially fixed) } {Should be moved to a math unit. Calculate x! with a 23 degree polynomal for ArbFloat values. From Numlib. Works for extended only. Redefine TC1 and TC3 for your numeric type if you want to use something else.} type Float10Arb =ARRAY[0..9] OF BYTE; const TC1 : Float10Arb = (0,0,$00,$00,$00,$00,0,128,192,63); {Eps} TC3 : Float10Arb = (1,0,0,0,0,0,0,0,0,0); {3.64519953188247460E-4951} var {Looks ugly, but is quite handy.} macheps : ArbFloat absolute TC1; { macheps = r - 1, with r the smallest ArbFloat > 1} midget : ArbFloat absolute TC3; { the smallest positive ArbFloat} function spepol(x: ArbFloat; var a: ArbFloat; n: ArbInt): ArbFloat; var pa : ^ArbFloat; {FPC extension. Uses ^ some array of ArbFloat in TP} i : ArbInt; polx : ArbFloat; begin pa:=@a; polx:=0; for i:=n downto 0 do polx:=polx*x+pa[i]; {and pa^[i] here} spepol:=polx end {spepol}; function spegam(x: ArbFloat): ArbFloat; const tmax = 170; a: array[0..23] of ArbFloat = ( 8.86226925452758013e-1, 1.61691987244425092e-2, 1.03703363422075456e-1, -1.34118505705967765e-2, 9.04033494028101968e-3, -2.42259538436268176e-3, 9.15785997288933120e-4, -2.96890121633200000e-4, 1.00928148823365120e-4, -3.36375833240268800e-5, 1.12524642975590400e-5, -3.75499034136576000e-6, 1.25281466396672000e-6, -4.17808776355840000e-7, 1.39383522590720000e-7, -4.64774927155200000e-8, 1.53835215257600000e-8, -5.11961333760000000e-9, 1.82243164160000000e-9, -6.13513953280000000e-10, 1.27679856640000000e-10,-4.01499750400000000e-11, 4.26560716800000000e-11,-1.46381209600000000e-11); var tvsmall, t, g: ArbFloat; m, i: ArbInt; begin if sizeof(ArbFloat) = 6 then tvsmall:=2*midget else tvsmall:=midget; t:=abs(x); if t > tmax then RunError(407); if t < macheps then begin if t < tvsmall then RunError(407); spegam:=1/x end else { abs(x) >= macheps } begin m:=trunc(x); if x > 0 then begin t:=x-m; m:=m-1; g:=1; if m<0 then g:=g/x else if m>0 then for i:=1 to m do g:=(x-i)*g end else { x < 0 } begin t:=x-m+1; if t=1 then RunError(407); m:=1-m; g:=x; for i:=1 to m do g:=(i+x)*g; g:=1/g end; spegam:=spepol(2*t-1, a[0], sizeof(a) div sizeof(ArbFloat) - 1)*g end { abs(x) >= macheps } end; {spegam} Procedure ExprInternalError(A,B:ArbInt); VAR S,S2 : String; begin Str(ORD(A),S); Str(ORD(B),S2); Raise EExprIE.Create(SExprIE+S+' '+S2); end; CONSTRUCTOR TExpression.Create(Infix:String); var dummy:String; begin ExprTree:=NIL; if (Infix<>'') then ExprTree:=InfixToParseTree(Infix,Dummy); InfixCache:=Infix; InfixClean:=True; {Current pnode status' infix representation is in infixcache} end; CONSTRUCTOR TExpression.EmptyCreate; begin ExprTree:=Nil; InfixClean:=false; end; Procedure TExpression.SetNewInfix(Infix:String); var dummy:String; begin if Assigned(ExprTree) Then Dispose(ExprTree); if infix<>'' then ExprTree:=InFixToParseTree(Infix,Dummy) else ExprTree:=NIL; InfixClean:=True; InfixCache:=Infix; end; Destructor TExpression.Destroy; begin If assigned(ExprTree) then DisposeExpr(ExprTree); inherited Destroy; end; function TExpression.GetRPN :String; begin if ExprTree=NIL Then Result:='0' else Result:=ParseTreeToRpn(ExprTree); end; function TExpression.GetInfix:String; begin if Not InfixClean then begin If ExprTree=NIL THEN InfixCache:='0' else InfixCache:=ParseTreeToInfix(ExprTree); InfixClean:=True; end; Result:=InfixCache; end; Function TExpression.GetIntValue:LongInt; begin SimplifyConstants; If ExprTree^.NodeType<>Iconstnode then Raise ENotInt.Create(SExprNotInt); result:=ExprTree^.ivalue; end; Procedure TExpression.SetIntValue(val:Longint); begin if ExprTree<> NIL then DisposeExpr(ExprTree); New(ExprTree); ExprTree^.NodeType:=iconstnode; ExprTree^.Ivalue:=Val; end; Function TExpression.GetFloatValue:ArbFloat; begin If ExprTree^.NodeType<>constnode then Raise ENotFloat.Create(SExprNotFloat); result:=ExprTree^.value; end; Procedure TExpression.SetFloatValue(val:ArbFloat); begin if ExprTree<> NIL then DisposeExpr(ExprTree); New(ExprTree); ExprTree^.NodeType:=constnode; ExprTree^.value:=Val; end; procedure TExpression.Simpleop(expr:TExpression;oper:calcop); begin exprtree:=NewCalc(oper,exprtree,CopyTree(expr.exprtree)); InFixCache:='garbadge'; InfixClean:=False; end; function TExpression.Simpleopwithresult(expr:TExpression;oper:calcop):TExpression; var tmp:pnode; begin result.EmptyCreate; result.SimplificationLevel:=simplificationlevel; result.exprtree:=NewCalc(Oper,CopyTree(ExprTree),CopyTree(Expr.ExprTree)); end; procedure TExpression.Addto(Expr:TExpression); begin simpleop(expr,addo); end; procedure TExpression.SubFrom(Expr:TExpression); begin simpleop(expr,subo); end; procedure TExpression.Times(Expr:texpression); begin simpleop(expr,mulo); end; procedure TExpression.Divby(Expr:TExpression); begin simpleop(expr,dvdo); end; procedure TExpression.RaiseTo(Expr:TExpression); begin simpleop(expr,powo); end; function TExpression.add(Expr:TExpression):TExpression; begin result:=Simpleopwithresult(expr,addo); end; function TExpression.sub(Expr:TExpression):TExpression; begin result:=Simpleopwithresult(expr,subo); end; function TExpression.dvd(Expr:TExpression):TExpression; begin result:=Simpleopwithresult(expr,dvdo); end; function TExpression.mul(Expr:TExpression):TExpression; begin result:=Simpleopwithresult(expr,mulo); end; Function TExpression.IntDerive(const derivvariable:String;theexpr:pnode):pnode; function Deriv(t:pnode):pnode; {Derive subexpression T. Returns NIL if subexpression derives to 0, to avoid unnecessary (de)allocations. This is the reason why NewCalc is so big.} var x : ArbFloat; p1,p2 : pnode; begin Deriv:=nil; if (t=nil) then {Early out} exit; with t^ do begin case nodetype of VarNode: if upcase(variable)=derivvariable then Deriv:=NewiConst(ArbInt(1)) else Deriv:=NIL; ConstNode : Deriv:=NIL; IConstNode: Deriv:=NIL; CalcNode: begin case op of addo, subo: Deriv:=NewCalc(op,Deriv(left),Deriv(right)); mulo: Deriv:=NewCalc(addo, NewCalc(mulo,Deriv(left),copyTree(right)), NewCalc(mulo,Deriv(right),copytree(left))); dvdo: Deriv:=NewCalc(dvdo, NewCalc(subo, NewCalc(mulo,Deriv(left),copyTree(right)), NewCalc(mulo,Deriv(right),copytree(left))), NewFunc(sqrx,CopyTree(right))); powo: begin p1:=Deriv(Right); if P1<>NIL then p1:=NewCalc(mulo,p1,NewFunc(Lnx,CopyTree(Left))); { ln(l)*r'} p2:=Deriv(Left); if P2<>NIL then p2:=Newcalc(Mulo,CopyTree(Right),newcalc(mulo,p2, newfunc(invx,CopyTree(left)))); IF (P1<>nil) and (p2<>nil) then deriv:=newcalc(mulo,CopyTree(t),newcalc(addo,p1,p2)); if (P1=NIL) and (P2=NIL) then {Simplify first to avoid this!} deriv:=NIL; if (P1=NIL) and (P2<>NIL) THEN begin if not(right^.nodetype=iconstnode) then begin p1:=newiconst(1); p1:=newcalc(subo,copytree(right),p1); end else begin p1:=newiconst(right^.ivalue-1); end; p1:=newcalc(powo,copytree(left),p1); p1:=newcalc(mulo,copytree(right),p1); p2:=Deriv(Left); deriv:=newcalc(mulo,p1,p2); end else if (P1<>NIL) and (P2=NIL) THEN begin deriv:=newcalc(mulo,copytree(t),p1); end; end; end; end; FuncNode: begin case fun of invx: Deriv:=NewCalc(dvdo, NewFunc(Minus,Deriv(son)), NewFunc(sqrx,CopyTree(son))); minus: Deriv:=NewFunc(minus,Deriv(son)); sinx: Deriv:=NewCalc(Mulo, NewFunc(cosx,Copytree(son)), Deriv(son)); cosx: deriv:=NewCalc(mulo, NewFunc(minus,NewFunc(sinx,copytree(son))), Deriv(son)); absx: deriv:=NewCalc(Mulo, NewFunc(signx,Copytree(son)), Deriv(son)); signx: deriv:=newiconst(0); heavx: deriv:=newiconst(0); zerox: deriv:=newiconst(0); truncx: deriv:=newiconst(0); ceilx: deriv:=newiconst(0); floorx: deriv:=newiconst(0); tanx: deriv:=Newcalc(dvdo,deriv(son), newfunc(sqrx,newfunc(cosx,copytree(son)))); sqrx: deriv:=newcalc(mulo, newiconst(2), newcalc(mulo,copytree(son),deriv(son))); { dx*1 /(2*sqrt(x)) } sqrtx: deriv:=newcalc(mulo, deriv(son),newcalc(dvdo,newiconst(1), newcalc(mulo,newiconst(2),newfunc(sqrtx,copytree(son))))); lnx : deriv:=newcalc(mulo,newcalc(dvdo,newiconst(1),CopyTree(son)), deriv(son)); { dln(x)=x' * 1/x} expx: deriv:=newcalc(mulo,newfunc(expx,copytree(son)),deriv(son)); cotanx: deriv:=newfunc(minus,Newcalc(dvdo,deriv(son), { -dx/sqr(sin(x))} newfunc(sqrx,newfunc(sinx,copytree(son))))); coshx: deriv:=newcalc(mulo,newfunc(sinhx,copytree(son)),deriv(son)); sinhx: deriv:=newcalc(mulo,newfunc(coshx,copytree(son)),deriv(son)); arcsinhx, {according to HP48?} arcsinx: deriv:=newcalc(dvdo,deriv(son),newfunc(sqrtx,newcalc(subo,newiconst(1), newfunc(sqrx,copytree(son))))); arccosx: deriv:=newfunc(minus,newcalc(dvdo,deriv(son), newfunc(sqrtx,newcalc(subo,newiconst(1),newfunc(sqrx,copytree(son)))))); arctanx: deriv:=newcalc(dvdo,deriv(son),newcalc(addo,newiconst(1),newfunc(sqrx,copytree(son)))); log10x: deriv:=newcalc(mulo,newcalc(dvdo,newconst(0.434294481903251),CopyTree(son)), deriv(son)); { dlog10(x)=x' * log10(e)/x} logx: deriv:=newcalc(mulo,newcalc(dvdo,newconst(0.434294481903251),CopyTree(son)), deriv(son)); { dlog10(x)=x' * log10(e)/x} log2x: deriv:=newcalc(mulo,newcalc(dvdo,newconst(1.44269504088896),CopyTree(son)), deriv(son)); { dlog2(x)=x' * log2(e)/x} stepx: ; {Should raise exception, not easily derivatable} tanhx: deriv:=newcalc(dvdo,deriv(son),newfunc(sqrx,newfunc(coshx,copytree(son)))); arctanhx: deriv:=newcalc(dvdo,deriv(son),newfunc(sqrtx,newcalc(addo,newiconst(1), newfunc(sqrx,copytree(son))))); arccoshx: deriv:=NewCalc(dvdo,deriv(son),newcalc(mulo,newcalc(subo,newfunc(sqrtx,copytree(son)),newiconst(1)), newcalc(addo,newfunc(sqrtx,copytree(son)),newiconst(1)))); lnxpix,arctan2x, hypotx,lognx : ; {Should also raise exceptions, not implemented yet} end; end; Func2Node: begin if son2left^.nodetype=constnode then x:=son2left^.value else x:=son2left^.ivalue; case fun of lognx: deriv:=newcalc(mulo,newcalc(dvdo,newconst(logn(x,2.71828182846)), CopyTree(son2right)),deriv(son2right)); { dlogn(x)=x' * log(n,e)/x} Powerx: begin p1:=Deriv(Son2Right); if P1<>NIL then p1:=NewCalc(mulo,p1,NewFunc(Lnx,CopyTree(Son2Left))); { ln(l)*r'} p2:=Deriv(Son2Left); if P2<>NIL then p2:=Newcalc(Mulo,CopyTree(Son2Right),newcalc(mulo,p2, newfunc(invx,CopyTree(Son2Left)))); IF (P1<>nil) and (p2<>nil) then deriv:=newcalc(mulo,CopyTree(t),newcalc(addo,p1,p2)); if (P1=NIL) and (P2=NIL) then {Simplify first to avoid this!} deriv:=NIL; if (P1=NIL) and (P2<>NIL) THEN begin if not(Son2right^.nodetype=iconstnode) then begin p1:=newiconst(1); p1:=newcalc(subo,copytree(Son2right),p1); end else begin p1:=newiconst(Son2right^.ivalue-1); end; p1:=newcalc(powo,copytree(Son2left),p1); p1:=newcalc(mulo,copytree(Son2right),p1); p2:=Deriv(Son2Left); deriv:=newcalc(mulo,p1,p2); end else if (P1<>NIL) and (P2=NIL) THEN begin deriv:=newcalc(mulo,copytree(t),p1); end; end; end; end; end; end; {WITH} end; begin Result:=Deriv(theexpr); end; function TExpression.power(Expr:TExpression):TExpression; begin result:=Simpleopwithresult(expr,powo); end; Function TExpression.Derive(derivvariable:String):TExpression; var tmpvar : Pnode; DerivObj: TExpression; begin derivvariable:=upcase(derivvariable); Tmpvar:=intDerive(derivvariable,exprtree); DerivObj:=TExpression.emptycreate; If tmpvar=NIL then derivobj.ExprTree:=NewIconst(0) else derivobj.exprtree:=tmpvar; derivobj.simplificationlevel:=simplificationlevel; DerivObj.InfixClean:=False; result:=derivobj; end; function ipower(x,y:ArbInt):ArbInt; var tmpval : ArbInt; begin if y<0 then ; {exception} if y=0 then result:=1 else begin result:=x; if y<>1 then for tmpval:=2 to y do result:=result*x; end; end; function ifacul(x:ArbInt):ArbInt; var tmpval : ArbInt; begin if x<0 then ; {exception} if x=0 then result:=1 else begin result:=1; if x<>1 then for tmpval:=2 to x do result:=result*tmpval; end; end; function EvaluateFunction(funcname:funcop;param:ArbFloat):ArbFloat; var Intermed : integer; begin case funcname of cosx : result:=Cos(param); absx: result:=abs(param); signx: if param>0 then result:=1 else if param<0 then result:=-1 else result:=0; heavx: if param>0 then result:=1 else result:=0; zerox: if param=0 then result:=1 else result:=0; truncx: result:=int(param); ceilx: if frac(param)>0 then result:=int(param+1) else result:=int(param); floorx: if frac(param)<0 then result:=int(param-1) else result:=int(param); sinx : result:=sin(param); tanx : result:=tan(param); sqrx : result:=sqr(param); sqrtx : result:=sqrt(param); expx : result:=exp(param); lnx : result:=ln(param); cotanx : result:=cotan(param); arcsinx : result:=arcsin(param); arccosx : result:=arccos(param); arctanx : result:=arctan(param); sinhx : result:=sinh(param); coshx : result:=cosh(param); tanhx : result:=tanh(param); arcsinhx : result:=arcsinh(param); arccoshx : result:=arccosh(param); arctanhx : result:=arctanh(param); log10x : result:=log10(param); logx : result:=log10(param); log2x : result:=log2(param); lnxpix : result:=lnxp1(param); faculx : result:=spegam(param+1.0); else ExprInternalError(2,ord(funcname)); end; If Result<1E-4900 then {Uncertainty in sinus(0.0)} Result:=0; end; procedure TExpression.SimplifyConstants; //procedure internalsimplify (expr:pnode;InCalc:Boolean;parent:pnode); procedure internalsimplify (expr:pnode); function isconst(p:pnode):boolean; begin isconst:=(p^.nodetype=iconstnode) or (p^.nodetype=constnode); end; function isconstnil(p:pnode):boolean; begin IsConstNil:=false; if (p^.nodetype=iconstnode) and (P^.ivalue=0) then IsConstNil:=True; If (p^.nodetype=constnode) and (P^.value=0) then IsConstNil:=True end; var val1,val2 : ArbFloat; ival1, ival2 : ArbInt; function setupoperation(operat:calcop;simlevel:longint;Postprocess:boolean;param2func:boolean):longint; function dosimple(mode:longint;theleft,theright:pnode):longint; begin If Mode >3 then ; result:=0; if mode=0 then exit; if (theright^.nodetype=iconstnode) and (theleft^.nodetype=iconstnode) then begin if mode=3 then begin result:=2; val2:=theright^.value; val1:=theleft^.value; end else begin result:=1; ival2:=theright^.ivalue; ival1:=theleft^.Ivalue; end; end; if (theright^.nodetype=constnode) and (theleft^.nodetype=constnode) then begin result:=2; val2:=theright^.value; val1:=theleft^.value; end; if mode>1 then begin if result=0 then begin if (theright^.nodetype=constnode) and (theleft^.nodetype=iconstnode) then begin result:=3; val2:=theright^.value; val1:=theleft^.ivalue; end; if (theright^.nodetype=iconstnode) and (theleft^.nodetype=constnode) then begin result:=4; val2:=theright^.ivalue; val1:=theleft^.value; end; end; end; end; begin Result:=0; if SimplificationLevel<>0 then if param2func then result:=DoSimple(SimLevel,expr^.son2left,expr^.son2right) else result:=DoSimple(SimLevel,expr^.left,expr^.right); with expr^ do begin IF (result>0) and PostProcess then begin if (operat<>dvdo) then { Divide is special case. If integer x/y produces a fraction we want to be able to roll back} begin if Param2func then begin dispose(son2right); dispose(son2left); end else begin dispose(right); dispose(left); end; if result=1 then nodetype:=iconstnode else nodetype:=constnode; flags:=[ExprIsConstant]; end; end; end; end; procedure Checkvarnode(p:pnode); var treal:arbfloat; error:integer; tint :Integer; begin TrimLeft(P^.variable); TrimRight(p^.variable); Val(p^.variable, treal, Error); IF (error=0) then {Conversion to real succeeds. Numeric} begin p^.flags:=[ExprIsConstant]; if (Pos('.',p^.variable)=0) and (Pos('E',p^.variable)=0) Then begin Val(p^.variable,tint,Error); If error=0 then begin p^.nodetype:=iconstnode; p^.ivalue:=tint; end else begin p^.nodetype:=constnode; p^.value:=treal; end; end else begin p^.nodetype:=constnode; p^.value:=treal; end; end; end; var tmpval : ArbInt; invdummy: pnode; begin case expr^.nodetype of VarNode : CheckVarnode(expr); {sometimes a numeric value can slip in as constant. (e.g. as people pass it as symbol to taylor or "subst" methods} calcnode : begin //If not internalsimplify(expr^.left); {Reduce left and right as much as possible} internalsimplify(expr^.right); if isconst(expr^.left) and isconst(expr^.right) then begin TmpVal:=Setupoperation(expr^.op,SimplificationLevel,true,false); if tmpval>0 then with expr^ do case op of addo : if tmpval=1 then ivalue:=ival1+ival2 else value:=val1+val2; subo : if tmpval=1 then ivalue:=ival1-ival2 else value:=val1-val2; mulo : if tmpval=1 then ivalue:=ival1*ival2 else value:=val1*val2; dvdo : begin if tmpval=1 then begin tmpval:=ival1 div ival2; if (tmpval*ival2)=ival1 then {no rounding, OK!} begin Dispose(expr^.right); Dispose(Expr^.left); nodetype:=iconstnode; ivalue:=tmpval; end; {ELSE do nothing} end else begin dispose(expr^.right); dispose(expr^.left); nodetype:=constnode; value:=val1 / val2; end; flags:=[ExprIsConstant]; end; powo : If tmpval=1 then begin if ival2<0 then {integer x^-y -> inv (x^y)} begin expr^.nodetype:=funcnode; expr^.son:=NewIConst(IPower(Ival1,-Ival2)); end else ivalue:=ipower(ival1,ival2); end else value:=exp(val2*ln(val1)); else ExprInternalError(1,ord(Expr^.op)); end; {case} end {if} else {At least one node is symbolic, or both types are wrong} begin With Expr^ do if IsConstNil(Left) then begin Dispose(Left); case op of addo : begin InvDummy:=Right; Expr^:=Right^; Dispose(InvDummy); end; subo: begin invdummy:=right; NodeType:=funcNode; Fun:=Minus; son:=invdummy; Flags:=Son^.Flags; end; mulo,powo,dvdo : begin Dispose(Right); nodetype:=IconstNode; ivalue:=0; Flags:=[ExprIsConstant]; end; end; end else if IsConstNil(Right) then begin if expr^.op<>dvdo then {Leave tree for DVD intact because of exception} Dispose(Right); case expr^.op of addo,subo : begin InvDummy:=left; Expr^:=left^; Dispose(InvDummy); end; mulo : begin Dispose(Left); nodetype:=IconstNode; Flags:=[ExprIsConstant]; ivalue:=0; end; powo : begin Dispose(Left); nodetype:=IconstNode; Flags:=[ExprIsConstant]; ivalue:=1; end; dvdo : Raise EDiv0.Create(SExprInvSimp); else ExprInternalError(6,ord(Expr^.op)); end; end; end; With Expr^ Do Begin IF (nodetype=calcnode) and (Op in [Mulo,Addo]) then begin {Commutative operator rearrangements, move constants to left} if (ExprIsConstant IN Right^.flags) and NOT (ExprIsConstant IN Left^.flags) then begin InvDummy:=Right; Right:=Left; Left:=InvDummy; end; IF (right^.nodetype=calcnode) and (right^.Op in [Mulo,Addo]) then begin end; end; End; end; {case calcnode} funcnode: begin internalSimplify(expr^.son); Case Expr^.fun of Minus : if IsConst(expr^.son) then begin InvDummy:=Expr^.Son; expr^:=InvDummy^; if InvDummy^.Nodetype=IconstNode then expr^.ivalue:=-expr^.ivalue else expr^.value:=-expr^.value; dispose(InvDummy); end; invx : begin InvDummy:=Expr^.son; If InvDummy^.nodeType=ConstNode Then begin if InvDummy^.Value=0.0 then Raise EDiv0.Create(SExprInvMsg); Expr^.NodeType:=ConstNode; Expr^.Value:=1/InvDummy^.Value; Dispose(InvDummy); end else if InvDummy^.nodetype=iconstnode then begin if InvDummy^.iValue=0 then Raise EDiv0.Create(SExprinvmsg); If (InvDummy^.iValue=1) or (InvDummy^.iValue=-1) then begin expr^.NodeType:=Iconstnode; Expr^.iValue:=InvDummy^.iValue; Dispose(InvDummy); end; end; end; else {IE check in EvaluateFunction} if (expr^.son^.nodetype=constnode) and (Expr^.fun<>faculx) then {Other functions, only func(real) is simplified} begin val1:=EvaluateFunction(expr^.fun,Expr^.son^.value); dispose(expr^.son); expr^.nodetype:=constnode; expr^.value:=val1; end; end; {Case 2} end; Func2Node : begin internalSimplify(expr^.son2left); internalSimplify(expr^.son2right); case expr^.fun2 of powerx : begin TmpVal:=Setupoperation(powo,SimplificationLevel,true,true); if TmpVal>1 then begin If tmpval=1 then begin if ival2<0 then {integer x^-y -> inv (x^y)} begin new(invdummy); invdummy^.nodetype:=iconstnode; invdummy^.ivalue:=ipower(ival1,-ival2); expr^.nodetype:=funcnode; expr^.son:=invdummy; end else expr^.ivalue:=ipower(ival1,ival2); end; end; end; stepx : begin {N/I yet} end; arctan2x : begin TmpVal:=Setupoperation(powo,SimplificationLevel,false,true); if tmpval>1 then {1 is integer, which we don't do} begin dispose(expr^.right); dispose(expr^.left); expr^.nodetype:=constnode; expr^.value:=arctan2(ival2,ival1); end; end; hypotx :begin TmpVal:=Setupoperation(powo,SimplificationLevel,false,true); if tmpval>1 then {1 is integer, which we don't do} begin dispose(expr^.right); dispose(expr^.left); expr^.nodetype:=constnode; expr^.value:=hypot(ival2,ival1); end; end; lognx: begin TmpVal:=Setupoperation(powo,SimplificationLevel,false,true); if tmpval>1 then {1 is integer, which we don't do} begin dispose(expr^.right); dispose(expr^.left); expr^.nodetype:=constnode; expr^.value:=hypot(ival2,ival1); end; end; else ExprInternalError(3,ORD(expr^.fun2)); end; end; { else ExprInternalError(4,ORD(expr^.nodetype));} end; {Case 1} end; begin internalsimplify(exprtree); InfixClean:=False; {Maybe changed} end; procedure TExpression.SymbolSubst(ToSubst,SubstWith:String); procedure InternalSubst(expr:Pnode); begin if Expr<>NIL THEN case Expr^.NodeType of VarNode: if Expr^.Variable=ToSubst then Expr^.Variable:=SubstWith; calcnode: begin InternalSubst(Expr^.left); InternalSubst(Expr^.right); end; funcnode: InternalSubst(Expr^.son); func2node: begin InternalSubst(Expr^.son2left); InternalSubst(Expr^.son2right); end; end; end; begin InternalSubst(ExprTree); end; function TExpression.SymbolicValueNames:TStringList; var TheList:TStringList; procedure InternalSearch(expr:Pnode); begin if Expr<>NIL THEN {NIL shouldn't be allowed, and signals corruption. IE? Let it die?} case Expr^.NodeType of VarNode: begin Expr^.Variable:=UpCase(Expr^.Variable); TheList.Add(Expr^.Variable); end; calcnode: begin InternalSearch(Expr^.left); InternalSearch(Expr^.right); end; funcnode: InternalSearch(Expr^.son); func2node: begin InternalSearch(Expr^.son2left); InternalSearch(Expr^.son2right); end; end; end; begin TheList:=TStringList.Create; TheList.Sorted:=TRUE; Thelist.Duplicates:=DupIgnore; InternalSearch(ExprTree); Result:=TheList; end; function TExpression.Taylor(Degree:ArbInt;const x,x0:String):TExpression; {Taylor(x,x0)=sum(m,0,degree, d(f)/d(x))(x0)/ m! * (x-x0)^m) = f(x0)+ (x-x0)/1! * df/d(x) + (x-x0)^2 / 2! * d^2(f)/d^2(x) + (x-x0)^3 / 3! * d^3(f)/d^3(x) + .... } Var TaylorPol : TExpression; { The result expression} Root, Tmp,Tmp2, tmp3,tmp4,tmp5 : pnode; { Always have a nice storage of pointers. Used to hold all intermediate results} I,facul : ArbInt; { Loop counters and faculty term} begin TaylorPol:=TExpression.EmptyCreate; {New expression} TaylorPol.ExprTree:=CopyTree(ExprTree); {make a copy of the parsetree} TaylorPol.SymbolSubst(X,X0); {subst x by x0. All occurances of f() refer to x0, not x} if Degree>0 then {First term only? Or nonsense (negative?)} {Then ready. 0th term only.} begin {Start preparing easy creation of higher terms} tmp2:=newcalc(subo,newvar(x), newvar(x0)); {tmp2= x-x0 needed separately for first term} tmp4:=Newiconst(5); {exponent for x-x0, "a" need to keep a reference} tmp3:=newcalc(powo,tmp2,tmp4); {tmp3= (x-x0)^a} tmp5:=newiconst(5); {faculty value, "b"=m! also keep a reference for later modification } tmp3:=Newcalc(dvdo,tmp3,tmp5); {tmp3= (x-x0)^a / b a and b can be changed} facul:=1; {Calculate faculty as we go along. Start with 1!=1} root:=TaylorPol.ExprTree; {0th term} tmp:=root; {term that needs to be differentiated per iteration} for i:=1 to Degree do begin facul:=Facul*i; {Next faculty value 1!*1 =1 btw :_)} tmp:=intderive(x0,tmp); {Differentiate f^n(x0) to f^(n+1)(x0)} If I=1 then {first term is special case. No power } tmp2:=NewCalc(mulo,CopyTree(tmp2),tmp) {or faculty needed (^1 and 1!)} else begin tmp5^.Ivalue:=facul; {Higher terms. Set faculty} tmp4^.ivalue:=i; {Set exponent (=a) of (x-x0)^a} tmp2:=NewCalc(mulo,CopyTree(tmp3),tmp); {multiplicate derivative with (x-x0)^a/b term} end; root:=NewCalc(addo,root,tmp2); {String all terms together} end; DisposeExpr(tmp3); {Is only CopyTree()'d, not in new expression} TaylorPol.Exprtree:=root; {Set result} end; Result:=TaylorPol; end; function TExpression.Newton(x:String):TExpression; { f(x) Newton(x)=x- ---- f'(x) } Var NewtonExpr : TExpression; { The result expression} Root, Tmp,Tmp2, tmp3,tmp4,tmp5 : pnode; { Always have a nice storage of pointers. Used to hold all intermediate results} I,facul : ArbInt; { Loop counters and faculty term} begin NewtonExpr:=TExpression.EmptyCreate; {New expression} {Should I test for constant expr here?} Tmp:=CopyTree(ExprTree); {make a copy of the parsetree for the f(x) term} Tmp2:=intDerive(x,tmp); { calc f'(x)} Tmp3:=NewVar(x); { Create (x)} Tmp:=Newcalc(dvdo,tmp,tmp2); { f(x)/f'(x)} tmp:=Newcalc(subo,tmp3,tmp); { x- f(x)/f'(x)} {We built the above expression using a copy of the tree. So no pointers into self.exprtree exist. We can now safely assign it to the new exprtree} NewtonExpr.ExprTree:=tmp; NewtonExpr.SimplifyConstants; {Simplify if f'(x)=constant, and kill 0*y(x) terms} Result:=NewtonExpr; end; { $Log$ Revision 1.1 2002/12/15 21:01:26 marco Initial revision }  dozzaqueux-3.51/unit11.lfm0000750000175000017500000000404013147330070015672 0ustar georgeskgeorgeskobject saisietitre: Tsaisietitre Left = 336 Height = 109 Top = 195 Width = 610 ActiveControl = Edittitre BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Titre du graphe' ClientHeight = 109 ClientWidth = 610 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 112 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Titre du graphe:' Font.Style = [fsBold] ParentColor = False ParentFont = False end object SpeedButton1: TSpeedButton AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 56 Top = 50 Width = 101 BorderSpacing.Left = 10 BorderSpacing.Top = 20 Caption = 'Police' OnClick = SpeedButton1Click end object Edittitre: TEdit AnchorSideLeft.Control = Label1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 132 Height = 28 Top = 6 Width = 468 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 10 BorderSpacing.Right = 10 TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideLeft.Control = SpeedButton1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButton1 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 131 Height = 52 Top = 52 Width = 469 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 20 BorderSpacing.Right = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 1 end object FontDialog1: TFontDialog MinFontSize = 0 MaxFontSize = 0 left = 184 top = 48 end end dozzaqueux-3.51/unitsaisietailleimage.pas0000750000175000017500000000201513147330070021131 0ustar georgeskgeorgeskunit UnitSaisieTailleImage; {$mode objfpc}{$H+} interface uses Classes, SysUtils,FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin, Buttons,UnitScaleFont; type { TSaisieTailleImage } TSaisieTailleImage = class(TForm) BitBtn1: TBitBtn; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; SpinEditLargeur: TSpinEdit; SpinEditHauteur: TSpinEdit; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var SaisieTailleImage: TSaisieTailleImage; implementation { TSaisieTailleImage } procedure TSaisieTailleImage.FormCreate(Sender: TObject); begin encreation:=true; end; procedure TSaisieTailleImage.FormShow(Sender: TObject); begin //if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unitsaisietailleimage.lrs} end. dozzaqueux-3.51/unit18.lrs0000750000175000017500000000327513147330070015734 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tscript','FORMDATA',[ 'TPF0'#7'Tscript'#6'script'#4'Left'#3#29#1#6'Height'#3#250#0#3'Top'#3#201#0#5 +'Width'#3#245#3#11'BorderIcons'#11#0#11'BorderStyle'#7#6'bsNone'#7'Caption'#6 +#6'script'#12'ClientHeight'#3#250#0#11'ClientWidth'#3#245#3#8'OnCreate'#7#10 +'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2.0'#0#6'TLabel' +#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7 +#5'Owner'#4'Left'#2#30#6'Height'#2' '#3'Top'#2#30#5'Width'#2'E'#18'BorderSpa' +'cing.Left'#2#30#17'BorderSpacing.Top'#2#30#7'Caption'#6#6'Label1'#11'Font.H' +'eight'#2'"'#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label2'#22'A' +'nchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label1'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#30#6'Height'#2#23#3'Top'#2'\'#5 +'Width'#3#206#1#18'BorderSpacing.Left'#2#30#17'BorderSpacing.Top'#2#30#7'Cap' +'tion'#6'@Ne touchez '#195#160' rien, l''onglet suivant va bient'#195#180't ' +#195#170'tre affich'#195#169'.'#10'Font.Color'#7#7'clGreen'#11'Font.Height'#2 +#24#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'T' +'Label'#6'Label3'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Con' +'trol'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#30#6'Heig' +'ht'#2#23#3'Top'#3#145#0#5'Width'#3#9#2#18'BorderSpacing.Left'#2#30#17'Borde' +'rSpacing.Top'#2#30#7'Caption'#6'HApr'#195#168's l''affichage des courbes, v' +'ous pourrez revisiter tous les onglets.'#10'Font.Color'#7#5'clRed'#11'Font.' +'Height'#2#24#11'ParentColor'#8#10'ParentFont'#8#0#0#0 ]); dozzaqueux-3.51/unit7.lfm0000750000175000017500000000307513147330070015626 0ustar georgeskgeorgeskobject saisietaillepoints: Tsaisietaillepoints Left = 336 Height = 73 Top = 179 Width = 365 ActiveControl = SpinEdit1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Taille des points' ClientHeight = 73 ClientWidth = 365 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 20 Width = 117 BorderSpacing.Left = 10 BorderSpacing.Top = 20 Caption = 'Taille des points:' Font.Style = [fsBold] ParentColor = False ParentFont = False end object SpinEdit1: TSpinEdit AnchorSideLeft.Control = Label1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrCenter Left = 137 Height = 28 Top = 16 Width = 73 BorderSpacing.Left = 10 MaxValue = 20 MinValue = 1 TabOrder = 0 Value = 1 end object BitBtn1: TBitBtn AnchorSideLeft.Control = SpinEdit1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 220 Height = 53 Top = 10 Width = 135 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 1 end end dozzaqueux-3.51/unit15.lrs0000750000175000017500000000314213147330070015722 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('TFormapropos','FORMDATA',[ 'TPF0'#12'TFormapropos'#11'Formapropos'#4'Left'#3'/'#2#6'Height'#3#204#1#3'To' +'p'#3#195#0#5'Width'#3#3#2#13'ActiveControl'#7#5'Memo1'#11'BorderIcons'#11#12 +'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#25 +'A propos de...Dozzzaqueux'#12'ClientHeight'#3#204#1#11'ClientWidth'#3#3#2#8 +'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.6.0' +'.4'#0#5'TMemo'#5'Memo1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSide' +'Top.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSid' +'eRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#7'BitBtn1'#4'Lef' +'t'#2#10#6'Height'#3'g'#1#3'Top'#2#10#5'Width'#3#239#1#7'Anchors'#11#5'akTop' +#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#17'BorderSpa' +'cing.Top'#2#10#19'BorderSpacing.Right'#2#10#20'BorderSpacing.Bottom'#2#10#13 +'Lines.Strings'#1#6#0#6#0#6#0#6#0#6#0#6#0#6#0#6#0#6#0#6#0#6#0#0#8'TabOrder'#2 +#0#0#0#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLeft.Control'#7#5'Owner'#23'Anchor' +'SideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'An' +'chorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom' +#4'Left'#2#10#6'Height'#2'G'#3'Top'#3'{'#1#5'Width'#3#239#1#7'Anchors'#11#6 +'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#10#19'BorderSpaci' +'ng.Right'#2#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6#3'&OK'#7'Default' +#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#8'TabOrder'#2#1#0#0#0 ]); dozzaqueux-3.51/Exemples/0000750000175000017500000000000013155277271015646 5ustar georgeskgeorgeskdozzaqueux-3.51/Exemples/Precipitation/0000750000175000017500000000000013155277271020460 5ustar georgeskgeorgeskdozzaqueux-3.51/Exemples/Precipitation/melange_chlorure_iodure_par_ion_argent.doz0000750000175000017500000000750011237611603031122 0ustar georgeskgeorgeskCalcul derivees FALSE Debye Huckel FALSE Empecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 171 Pas adaptatif TRUE Variation log max 5.0000000000000000E-0001 Limite inférieure pas 1.0000000000000000E-0002 Volume bécher 50 Espéces bécher 4 Début espéce Identifiant Cl[-] Concentration 0.01 Fin espéce Début espéce Identifiant I[-] Concentration 0.01 Fin espéce Début espéce Identifiant Na[+] Concentration 0.01 Fin espéce Début espéce Identifiant K[+] Concentration 0.01 Fin espéce Fin espéces bécher Volume burette 40 Espéces burette 2 Début espéce Identifiant Ag[+] Concentration 0.05 Fin espéce Début espéce Identifiant NO3[-] Concentration 0.05 Fin espéce Fin espéces burette Validation des espéces 38 Ag[+] TRUE Cl[-] TRUE H2O TRUE H[+] TRUE I[-] TRUE K[+] TRUE Na[+] TRUE NO3[-] TRUE Ag(OH)2[-] FALSE Ag(OH)3[2-] FALSE AgCl(aq) TRUE AgCl2[-] TRUE AgCl3[2-] TRUE AgCl4[3-] TRUE AgI(aq) TRUE AgI2[-] TRUE AgI3[2-] TRUE AgI4[3-] TRUE AgNO3(aq) FALSE AgOH(aq) FALSE HCl(aq) FALSE HI(aq) FALSE HNO3(aq) FALSE KCl(aq) FALSE KI(aq) FALSE KOH(aq) FALSE NaCl(aq) FALSE NaI(aq) FALSE NaOH(aq) FALSE OH[-] TRUE AgCl(s) TRUE AgI(s) TRUE AgOH(s) FALSE Halite(s) FALSE K2O(s) FALSE Na2O(s) FALSE Niter(s) FALSE Sylvite(s) FALSE Fin validation des espéces Réactions et constantes 11 Début réaction Réaction Ag[+] + Cl[-] = AgCl(aq) logk 3.29 Fin réaction Début réaction Réaction Ag[+] + 2 Cl[-] = AgCl2[-] logk 5.3 Fin réaction Début réaction Réaction Ag[+] + 3 Cl[-] = AgCl3[2-] logk 5.13 Fin réaction Début réaction Réaction Ag[+] + 4 Cl[-] = AgCl4[3-] logk 3.8 Fin réaction Début réaction Réaction Ag[+] + I[-] = AgI(aq) logk 6.6 Fin réaction Début réaction Réaction Ag[+] + 2 I[-] = AgI2[-] logk 10.6 Fin réaction Début réaction Réaction Ag[+] + 3 I[-] = AgI3[2-] logk 13.3 Fin réaction Début réaction Réaction Ag[+] + 4 I[-] = AgI4[3-] logk 14 Fin réaction Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Début réaction Réaction Ag[+] + Cl[-] = AgCl(s) logk 9.75 Fin réaction Début réaction Réaction Ag[+] + I[-] = AgI(s) logk 16 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse V Ordonnées 5 Début ordonnée Expression p[Ag[+]] Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression p[Cl[-]] Couleur 255 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression p[I[-]] Couleur 32768 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression N(AgI(s)) Couleur 65535 Taille point 2 Epaisseur trait 1 Style Disque Joindre FALSE Echelle Droite Fin ordonnée Début ordonnée Expression N(AgCl(s)) Couleur 16711935 Taille point 2 Epaisseur trait 1 Style Disque Joindre FALSE Echelle Droite Fin ordonnée Echelle gauche automatique TRUE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 0.0000000000000000E+0000 Abscisse maximale 4.0000000000000000E+0001 Ordonnée minimale gauche 1.9542418838576117E+0000 Ordonnée maximale gauche 1.4045758116142388E+0001 Ordonnée minimale droite 0.0000000000000000E+0000 Ordonnée maximale droite 4.9999997200815806E-0004 Fin grandeurs à tracer Début embellissement graphique Légende présente TRUE Titre Dosage de 50mL de Cl[-] (0.01 mol/L), I[-] (0.01 mol/L), Na[+] (0.01 mol/L), K[+] (0.01 mol/L), par 40mL de Ag[+] (0.05 mol/L), NO3[-] (0.05 mol/L) Label x V Label y gauche Label y droit Unité x mL Unité y gauche (sans unité) Unité y droit mol Grille droite TRUE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Precipitation/.directory0000750000175000017500000000006111237556624022466 0ustar georgeskgeorgesk[Dolphin] Timestamp=2009,8,9,16,30,44 ViewMode=1 dozzaqueux-3.51/Exemples/Precipitation/melange_chlorure_iodure_bromure_par_ion_argent.doz0000750000175000017500000001100711237612725032660 0ustar georgeskgeorgeskCalcul derivees FALSE Debye Huckel FALSE Empecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 197 Pas adaptatif TRUE Variation log max 5.0000000000000000E-0001 Limite inférieure pas 1.0000000000000000E-0002 Volume bécher 50 Espéces bécher 4 Début espéce Identifiant Cl[-] Concentration 0.01 Fin espéce Début espéce Identifiant I[-] Concentration 0.01 Fin espéce Début espéce Identifiant Br[-] Concentration 0.01 Fin espéce Début espéce Identifiant Na[+] Concentration 0.03 Fin espéce Fin espéces bécher Volume burette 50 Espéces burette 2 Début espéce Identifiant Ag[+] Concentration 0.05 Fin espéce Début espéce Identifiant NO3[-] Concentration 0.05 Fin espéce Fin espéces burette Validation des espéces 41 Ag[+] TRUE Br[-] TRUE Cl[-] TRUE H2O TRUE H[+] TRUE I[-] TRUE Na[+] TRUE NO3[-] TRUE Ag(OH)2[-] FALSE Ag(OH)3[2-] FALSE AgBr(aq) TRUE AgBr2[-] TRUE AgBr3[2-] TRUE AgBr4[3-] TRUE AgCl(aq) TRUE AgCl2[-] TRUE AgCl3[2-] TRUE AgCl4[3-] TRUE AgI(aq) TRUE AgI2[-] TRUE AgI3[2-] TRUE AgI4[3-] TRUE AgNO3(aq) FALSE AgOH(aq) FALSE HBr(aq) FALSE HCl(aq) FALSE HI(aq) FALSE HNO3(aq) FALSE NaBr(aq) FALSE NaCl(aq) FALSE NaI(aq) FALSE NaOH(aq) FALSE OH[-] TRUE AgBr(s) TRUE AgCl(s) TRUE AgI(s) TRUE AgOH(s) FALSE Halite(s) FALSE Na2O(s) FALSE NaBr(s) FALSE NaBr:2H2O(s) FALSE Fin validation des espéces Réactions et constantes 16 Début réaction Réaction Ag[+] + Br[-] = AgBr(aq) logk 4.15 Fin réaction Début réaction Réaction Ag[+] + 2 Br[-] = AgBr2[-] logk 7.1 Fin réaction Début réaction Réaction Ag[+] + 3 Br[-] = AgBr3[2-] logk 7.95 Fin réaction Début réaction Réaction Ag[+] + 4 Br[-] = AgBr4[3-] logk 8.9 Fin réaction Début réaction Réaction Ag[+] + Cl[-] = AgCl(aq) logk 3.29 Fin réaction Début réaction Réaction Ag[+] + 2 Cl[-] = AgCl2[-] logk 5.3 Fin réaction Début réaction Réaction Ag[+] + 3 Cl[-] = AgCl3[2-] logk 5.13 Fin réaction Début réaction Réaction Ag[+] + 4 Cl[-] = AgCl4[3-] logk 3.8 Fin réaction Début réaction Réaction Ag[+] + I[-] = AgI(aq) logk 6.6 Fin réaction Début réaction Réaction Ag[+] + 2 I[-] = AgI2[-] logk 10.6 Fin réaction Début réaction Réaction Ag[+] + 3 I[-] = AgI3[2-] logk 13.3 Fin réaction Début réaction Réaction Ag[+] + 4 I[-] = AgI4[3-] logk 14 Fin réaction Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Début réaction Réaction Ag[+] + Br[-] = AgBr(s) logk 12.3 Fin réaction Début réaction Réaction Ag[+] + Cl[-] = AgCl(s) logk 9.75 Fin réaction Début réaction Réaction Ag[+] + I[-] = AgI(s) logk 16 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse V Ordonnées 7 Début ordonnée Expression p[Ag[+]] Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression p[Cl[-]] Couleur 255 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression p[I[-]] Couleur 32768 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression N(AgI(s)) Couleur 65535 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Début ordonnée Expression N(AgCl(s)) Couleur 16711935 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Début ordonnée Expression p[Br[-]] Couleur 128 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression N(AgBr(s)) Couleur 32896 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Echelle gauche automatique TRUE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 0.0000000000000000E+0000 Abscisse maximale 5.0000000000000000E+0001 Ordonnée minimale gauche 1.9999992255005990E+0000 Ordonnée maximale gauche 1.4000000774499401E+0001 Ordonnée minimale droite 0.0000000000000000E+0000 Ordonnée maximale droite 4.9999996800933419E-0004 Fin grandeurs à tracer Début embellissement graphique Légende présente TRUE Titre Dosage de 50mL de Cl[-] (0.01 mol/L), I[-] (0.01 mol/L), Br[-] (0.01 mol/L), Na[+] (0.03 mol/L), par 50mL de Ag[+] (0.05 mol/L), NO3[-] (0.05 mol/L) Label x V Label y gauche Label y droit Unité x mL Unité y gauche (sans unité) Unité y droit mol Grille droite TRUE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Complexation/0000750000175000017500000000000013147330266020303 5ustar georgeskgeorgeskdozzaqueux-3.51/Exemples/Complexation/Hg2_par_cyanure.doz0000750000175000017500000000760111217214033024025 0ustar georgeskgeorgeskDebye Huckel FALSE Empecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 165 Pas adaptatif TRUE Variation log max 5.00000000000000E-0001 Limite inférieure pas 1.00000000000000E-0002 Volume bécher 100 Espéces bécher 3 Début espéce Identifiant Hg[2+] Concentration 0.01 Fin espéce Début espéce Identifiant NO3[-] Concentration 0.02 Fin espéce Début espéce Identifiant HNO3(aq) Concentration 0.02 Fin espéce Fin espéces bécher Volume burette 10 Espéces burette 2 Début espéce Identifiant CN[-] Concentration 1 Fin espéce Début espéce Identifiant Na[+] Concentration 1 Fin espéce Fin espéces burette Validation des espéces 18 H2O TRUE H[+] TRUE Hg[2+] TRUE NO3[-] TRUE Na[+] TRUE CN[-] TRUE HCN(aq) TRUE HNO3(aq) TRUE Hg(CN)2 TRUE Hg(CN)3[-] TRUE Hg(CN)4[2-] TRUE Hg(CN)[+] TRUE Hg(OH)2[-] TRUE HgOH[+] TRUE NaOH(aq) FALSE OH[-] TRUE Hg(OH)2(s) TRUE Na2O(s) FALSE Fin validation des espéces Réactions et constantes 10 Début réaction Réaction H[+] + CN[-] = HCN(aq) logk 9.241 Fin réaction Début réaction Réaction H[+] + NO3[-] = HNO3(aq) logk -1.303 Fin réaction Début réaction Réaction Hg[2+] + 2 CN[-] = Hg(CN)2 logk 34.62 Fin réaction Début réaction Réaction Hg[2+] + 3 CN[-] = Hg(CN)3[-] logk 38.62 Fin réaction Début réaction Réaction Hg[2+] + 4 CN[-] = Hg(CN)4[2-] logk 41.62 Fin réaction Début réaction Réaction Hg[2+] + CN[-] = Hg(CN)[+] logk 18.01 Fin réaction Début réaction Réaction 2 H2O + Hg[2+] = 3 H[+] + Hg(OH)2[-] logk -20.3 Fin réaction Début réaction Réaction H2O + Hg[2+] = H[+] + HgOH[+] logk -3.394 Fin réaction Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Début réaction Réaction 2 H2O + Hg[2+] = 2 H[+] + Hg(OH)2(s) logk -2.592 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse V Ordonnées 6 Début ordonnée Expression [Hg(CN)4[2-]] Couleur 128 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Début ordonnée Expression [Hg[2+]] Couleur 255 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Début ordonnée Expression [Hg(CN)[+]] Couleur 32768 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Début ordonnée Expression [Hg(CN)2] Couleur 65535 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Début ordonnée Expression [Hg(CN)3[-]] Couleur 16711935 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Début ordonnée Expression 0.059/2*log10([Hg[2+]]) Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Echelle gauche automatique TRUE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 0.00000000000000E+0000 Abscisse maximale 1.00000000000000E+0001 Ordonnée minimale gauche -1.11880908263079E+0000 Ordonnée maximale gauche -5.92540295120952E-0002 Ordonnée minimale droite 0.00000000000000E+0000 Ordonnée maximale droite 9.80367329576790E-0003 Fin grandeurs à tracer Début embellissement graphique Légende présente TRUE Titre Dosage de 100mL de Hg[2+] (0.01 mol/L), NO3[-] (0.02 mol/L), HNO3(aq) (0.02 mol/L), par 10mL de CN[-] (1 mol/L), Na[+] (1 mol/L) Label x V Label y gauche 0.059/2*log10([Hg[2+]]) Label y droit Unité x Unité y gauche Unité y droit Grille droite TRUE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Hydroxyde amphoteres/0000750000175000017500000000000013155277271021755 5ustar georgeskgeorgesk././@LongLink0000644000000000000000000000020100000000000011574 Lustar rootrootdozzaqueux-3.51/Exemples/Hydroxyde amphoteres/solubilite_aluminium3_en_fonction_du_ph_en_gardant _le_seul_complexe_avec_4_OH.dozdozzaqueux-3.51/Exemples/Hydroxyde amphoteres/solubilite_aluminium3_en_fonction_du_ph_en_gardant _le0000750000175000017500000000557411217214105034656 0ustar georgeskgeorgeskDebye Huckel FALSE Empecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 957 Pas adaptatif TRUE Variation log max 1.00000000000000E-0001 Limite inférieure pas 1.00000000000000E-0005 Volume bécher 100 Espéces bécher 3 Début espéce Identifiant Al[3+] Concentration 0.01 Fin espéce Début espéce Identifiant H[+] Concentration 0.001 Fin espéce Début espéce Identifiant Cl[-] Concentration 0.031 Fin espéce Fin espéces bécher Volume burette 100 Espéces burette 2 Début espéce Identifiant OH[-] Concentration 1 Fin espéce Début espéce Identifiant Na[+] Concentration 1 Fin espéce Fin espéces burette Validation des espéces 22 Al[3+] TRUE Cl[-] TRUE H2O TRUE H[+] TRUE Na[+] TRUE Al(OH)2[+] FALSE Al(OH)3(aq) FALSE Al(OH)4[-] TRUE AlOH[2+] FALSE HAlO2(aq) FALSE HCl(aq) FALSE NaCl(aq) FALSE NaOH(aq) FALSE OH[-] TRUE Al(OH)3(s)(alpha) FALSE Al(OH)3(s)(amorphe) TRUE Bayerite(s) FALSE Boehmite(s) FALSE Corundum(s) FALSE Halite(s) FALSE Hydrargillite(s) FALSE Na2O(s) FALSE Fin validation des espéces Réactions et constantes 3 Début réaction Réaction Al[3+] + 4 H2O = 4 H[+] + Al(OH)4[-] logk -22.69 Fin réaction Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Début réaction Réaction Al[3+] + 3 H2O = 3 H[+] + Al(OH)3(s)(amorphe) logk -9.65 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse pH Ordonnées 2 Début ordonnée Expression -log10(([Al[3+]]+[Al(OH)4[-]])*Vtotal) Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression ([Al[3+]]+[Al(OH)4[-]])*Vtotal Couleur 255 Taille point 2 Epaisseur trait 1 Style Cercle Joindre TRUE Echelle Droite Fin ordonnée Echelle gauche automatique TRUE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 2.99999999530237E+0000 Abscisse maximale 1.36807886115067E+0001 Ordonnée minimale gauche -3.40482462913601E-0014 Ordonnée maximale gauche 5.10971174254207E+0000 Ordonnée minimale droite 7.76762511838459E-0006 Ordonnée maximale droite 1.00000000000008E+0000 Fin grandeurs à tracer Début embellissement graphique Légende présente FALSE Titre Dosage de 100mL de Al[3+] (0.01 mol/L), H[+] (0.001 mol/L), Cl[-] (0.031 mol/L), par 100mL de OH[-] (1 mol/L), Na[+] (1 mol/L) Label x pH Label y gauche -log10(([Al[3+]]+[Al(OH)4[-]])*Vtotal) Label y droit ([Al[3+]]+[Al(OH)4[-]])*Vtotal Unité x Unité y gauche Unité y droit Grille droite FALSE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Hydroxyde amphoteres/solubilite_zn2_en_fonction_du_ph.doz0000750000175000017500000000644311217214123031171 0ustar georgeskgeorgeskDebye Huckel FALSE Empecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 1040 Pas adaptatif TRUE Variation log max 1.00000000000000E-0001 Limite inférieure pas 1.00000000000000E-0005 Volume bécher 100 Espéces bécher 3 Début espéce Identifiant Zn[2+] Concentration 0.01 Fin espéce Début espéce Identifiant H[+] Concentration 0.001 Fin espéce Début espéce Identifiant SO4[2-] Concentration 0.0105 Fin espéce Fin espéces bécher Volume burette 100 Espéces burette 2 Début espéce Identifiant OH[-] Concentration 1 Fin espéce Début espéce Identifiant Na[+] Concentration 1 Fin espéce Fin espéces burette Validation des espéces 27 H2O TRUE H[+] TRUE Na[+] TRUE SO4[2-] TRUE Zn[2+] TRUE H2SO4(aq) FALSE HSO4[-] FALSE NaOH(aq) FALSE NaSO4[-] FALSE OH[-] TRUE Zn(OH)3[-] TRUE Zn(OH)4[2-] TRUE ZnOH[+] TRUE ZnSO4(aq) FALSE Mirabilite(s) FALSE Na2O(s) FALSE Na3H(SO4)2(s) FALSE Thenardite(s) FALSE Zn(OH)2(s)(amorphe évolué) FALSE Zn(OH)2(s)(amorphe) TRUE Zn(OH)2(s)(crist.évolué) FALSE Zn2SO4(OH)2(s) FALSE Zn3O(SO4)2(s) FALSE ZnSO4(s) FALSE ZnSO4:6H2O(s) FALSE ZnSO4:7H2O(s) FALSE ZnSO4:H2O(s) FALSE Fin validation des espéces Réactions et constantes 5 Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Début réaction Réaction 3 H2O + Zn[2+] = 3 H[+] + Zn(OH)3[-] logk -27.6 Fin réaction Début réaction Réaction 4 H2O + Zn[2+] = 4 H[+] + Zn(OH)4[2-] logk -40.5 Fin réaction Début réaction Réaction H2O + Zn[2+] = H[+] + ZnOH[+] logk -9.6 Fin réaction Début réaction Réaction 2 H2O + Zn[2+] = 2 H[+] + Zn(OH)2(s)(amorphe) logk -12.32 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse pH Ordonnées 2 Début ordonnée Expression -log10(([Zn[2+]]+[Zn(OH)3[-]]+[Zn(OH)4[2-]]+[ZnOH[+]])*Vtotal) Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression ([Zn[2+]]+[Zn(OH)3[-]]+[Zn(OH)4[2-]]+[ZnOH[+]])*Vtotal Couleur 8453888 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Echelle gauche automatique TRUE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 2.99999890476306E+0000 Abscisse maximale 1.36814309054571E+0001 Ordonnée minimale gauche -3.92426187913739E-0014 Ordonnée maximale gauche 3.72974402123951E+0000 Ordonnée minimale droite 1.86318499831636E-0004 Ordonnée maximale droite 1.00000000000009E+0000 Fin grandeurs à tracer Début embellissement graphique Légende présente FALSE Titre Dosage de 100mL de Zn[2+] (0.01 mol/L), H[+] (0.001 mol/L), SO4[2-] (0.0105 mol/L), par 100mL de OH[-] (1 mol/L), Na[+] (1 mol/L) Label x pH Label y gauche -log10(([Zn[2+]]+[Zn(OH)3[-]]+[Zn(OH)4[2-]]+[ZnOH[+]])*Vtotal) Label y droit ([Zn[2+]]+[Zn(OH)3[-]]+[Zn(OH)4[2-]]+[ZnOH[+]])*Vtotal Unité x Unité y gauche Unité y droit Grille droite TRUE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Hydroxyde amphoteres/dosage_Al3_par_soude.doz0000750000175000017500000000655611217214050026473 0ustar georgeskgeorgeskDebye Huckel FALSE Empecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 172 Pas adaptatif TRUE Variation log max 5.00000000000000E-0001 Limite inférieure pas 1.00000000000000E-0002 Volume bécher 100 Espéces bécher 3 Début espéce Identifiant Al[3+] Concentration 0.01 Fin espéce Début espéce Identifiant SO4[2-] Concentration 0.02 Fin espéce Début espéce Identifiant H[+] Concentration 0.01 Fin espéce Fin espéces bécher Volume burette 40 Espéces burette 2 Début espéce Identifiant OH[-] Concentration 0.2 Fin espéce Début espéce Identifiant Na[+] Concentration 0.2 Fin espéce Fin espéces burette Validation des espéces 29 Al[3+] TRUE H2O TRUE H[+] TRUE Na[+] TRUE SO4[2-] TRUE Al(OH)2[+] TRUE Al(OH)3(aq) TRUE Al(OH)4[-] TRUE Al(SO4)2[-] FALSE AlOH[2+] TRUE AlSO4[+] FALSE H2SO4(aq) FALSE HAlO2(aq) FALSE HSO4[-] TRUE NaOH(aq) FALSE NaSO4[-] FALSE OH[-] TRUE Al(OH)3(s)(alpha) FALSE Al(OH)3(s)(amorphe) TRUE Al2(SO4)3(s) FALSE Al2(SO4)3:6H2O(s) FALSE Bayerite(s) FALSE Boehmite(s) FALSE Corundum(s) FALSE Hydrargillite(s) FALSE Mirabilite(s) FALSE Na2O(s) FALSE Na3H(SO4)2(s) FALSE Thenardite(s) FALSE Fin validation des espéces Réactions et constantes 7 Début réaction Réaction Al[3+] + 2 H2O = 2 H[+] + Al(OH)2[+] logk -10.11 Fin réaction Début réaction Réaction Al[3+] + 3 H2O = 3 H[+] + Al(OH)3(aq) logk -16.81 Fin réaction Début réaction Réaction Al[3+] + 4 H2O = 4 H[+] + Al(OH)4[-] logk -22.69 Fin réaction Début réaction Réaction Al[3+] + H2O = H[+] + AlOH[2+] logk -5.003 Fin réaction Début réaction Réaction H[+] + SO4[2-] = HSO4[-] logk 1.98 Fin réaction Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Début réaction Réaction Al[3+] + 3 H2O = 3 H[+] + Al(OH)3(s)(amorphe) logk -9.65 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse V Ordonnées 2 Début ordonnée Expression pH Couleur 32768 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression [Al[3+]]+[Al(OH)2[+]]+[Al(OH)3(aq)]+[Al(OH)4[-]]+[AlOH[2+]] Couleur 255 Taille point 2 Epaisseur trait 1 Style Croix Joindre TRUE Echelle Droite Fin ordonnée Echelle gauche automatique TRUE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 0.00000000000000E+0000 Abscisse maximale 4.00000000000000E+0001 Ordonnée minimale gauche 2.37163976308893E+0000 Ordonnée maximale gauche 1.23309932703111E+0001 Ordonnée minimale droite 6.27732798199093E-0007 Ordonnée maximale droite 1.00000000000000E-0002 Fin grandeurs à tracer Début embellissement graphique Légende présente TRUE Titre Dosage de 100mL de Al[3+] (0.01 mol/L), SO4[2-] (0.02 mol/L), H[+] (0.01 mol/L), par 40mL de OH[-] (0.2 mol/L), Na[+] (0.2 mol/L) Label x V Label y gauche pH Label y droit [Al[3+]]+[Al(OH)2[+]]+[Al(OH)3(aq)]+[Al(OH)4[-]]+[AlOH[2+]] Unité x Unité y gauche Unité y droit Grille droite FALSE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Hydroxyde amphoteres/solubilite_aluminium3_en_fonction_du_ph.doz0000750000175000017500000000645511217214075032554 0ustar georgeskgeorgeskDebye Huckel FALSE Empecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 1145 Pas adaptatif TRUE Variation log max 1.00000000000000E-0001 Limite inférieure pas 1.00000000000000E-0005 Volume bécher 100 Espéces bécher 3 Début espéce Identifiant Al[3+] Concentration 0.01 Fin espéce Début espéce Identifiant H[+] Concentration 0.001 Fin espéce Début espéce Identifiant Cl[-] Concentration 0.031 Fin espéce Fin espéces bécher Volume burette 100 Espéces burette 2 Début espéce Identifiant OH[-] Concentration 1 Fin espéce Début espéce Identifiant Na[+] Concentration 1 Fin espéce Fin espéces burette Validation des espéces 22 Al[3+] TRUE Cl[-] TRUE H2O TRUE H[+] TRUE Na[+] TRUE Al(OH)2[+] TRUE Al(OH)3(aq) TRUE Al(OH)4[-] TRUE AlOH[2+] TRUE HAlO2(aq) FALSE HCl(aq) FALSE NaCl(aq) FALSE NaOH(aq) FALSE OH[-] TRUE Al(OH)3(s)(alpha) FALSE Al(OH)3(s)(amorphe) TRUE Bayerite(s) FALSE Boehmite(s) FALSE Corundum(s) FALSE Halite(s) FALSE Hydrargillite(s) FALSE Na2O(s) FALSE Fin validation des espéces Réactions et constantes 6 Début réaction Réaction Al[3+] + 2 H2O = 2 H[+] + Al(OH)2[+] logk -10.11 Fin réaction Début réaction Réaction Al[3+] + 3 H2O = 3 H[+] + Al(OH)3(aq) logk -16.81 Fin réaction Début réaction Réaction Al[3+] + 4 H2O = 4 H[+] + Al(OH)4[-] logk -22.69 Fin réaction Début réaction Réaction Al[3+] + H2O = H[+] + AlOH[2+] logk -5.003 Fin réaction Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Début réaction Réaction Al[3+] + 3 H2O = 3 H[+] + Al(OH)3(s)(amorphe) logk -9.65 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse pH Ordonnées 2 Début ordonnée Expression -log10(([Al[3+]]+[Al(OH)4[-]]+[Al(OH)2[+]]+[Al(OH)3(aq)]+[AlOH[2+]])*Vtotal) Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression Vtotal*([Al[3+]]+[Al(OH)4[-]]+[Al(OH)2[+]]+[Al(OH)3(aq)]+[AlOH[2+]]) Couleur 255 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Echelle gauche automatique TRUE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 2.96199395312606E+0000 Abscisse maximale 1.36807886115783E+0001 Ordonnée minimale gauche -3.84590556384974E-0014 Ordonnée maximale gauche 4.34572699802192E+0000 Ordonnée minimale droite 4.51100181647597E-0005 Ordonnée maximale droite 1.00000000000009E+0000 Fin grandeurs à tracer Début embellissement graphique Légende présente FALSE Titre Dosage de 100mL de Al[3+] (0.01 mol/L), H[+] (0.001 mol/L), Cl[-] (0.031 mol/L), par 100mL de OH[-] (1 mol/L), Na[+] (1 mol/L) Label x pH Label y gauche -log10(([Al[3+]]+[Al(OH)4[-]]+[Al(OH)2[+]]+[Al(OH)3(aq)]+[AlOH[2+]])*Vtotal) Label y droit Vtotal*([Al[3+]]+[Al(OH)4[-]]+[Al(OH)2[+]]+[Al(OH)3(aq)]+[AlOH[2+]]) Unité x Unité y gauche Unité y droit Grille droite FALSE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Redox/0000750000175000017500000000000013147330266016722 5ustar georgeskgeorgeskdozzaqueux-3.51/Exemples/Redox/ions_ferreux_par_permanganate.doz0000750000175000017500000000671111217214170025533 0ustar georgeskgeorgeskCalcul derivees FALSE Debye Huckel FALSE Empecher redox FALSE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 142 Pas adaptatif TRUE Variation log max 5.00000000000000E-0001 Limite inférieure pas 1.00000000000000E-0003 Volume bécher 50 Espéces bécher 2 Début espéce Identifiant Fe[2+] Concentration 0.01 Fin espéce Début espéce Identifiant Cl[-] Concentration 0.02 Fin espéce Fin espéces bécher Volume burette 20 Espéces burette 4 Début espéce Identifiant MnO4[-] Concentration 0.01 Fin espéce Début espéce Identifiant H[+] Concentration 0.1 Fin espéce Début espéce Identifiant K[+] Concentration 0.01 Fin espéce Début espéce Identifiant Cl[-] Concentration 0.1 Fin espéce Fin espéces burette Validation des espéces 61 Cl[-] TRUE Fe[3+] TRUE H2O TRUE H[+] TRUE K[+] TRUE Mn[2+] TRUE O2(aq) FALSE ClO2[-] FALSE ClO3[-] FALSE ClO4[-] FALSE ClO[-] FALSE Fe(OH)2[+] FALSE FeCl2[+] FALSE FeCl3(aq) FALSE FeCl4[-] FALSE FeCl4[2-] FALSE FeCl[+] FALSE FeCl[2+] FALSE FeOH[+] FALSE FeOH[2+] FALSE Fe[2+] TRUE H2(aq) FALSE H2O2(aq) FALSE HCl(aq) FALSE HClO(aq) FALSE HClO2(aq) FALSE HClO3(aq) FALSE HMnO4(aq) FALSE HO2[-] FALSE KCl(aq) FALSE KOH(aq) FALSE MnCl2 (aq) FALSE MnCl3[-] FALSE MnCl[+] FALSE MnO(aq) FALSE MnO2[2-] FALSE MnO4[-] TRUE MnO4[2-] FALSE MnOH[+] FALSE Mn[3+] FALSE OH[-] TRUE Bixbyite(s) FALSE Fe(OH)2(s) FALSE Fe(OH)3(s) FALSE Fe(s) FALSE Hausmannite(s) FALSE K(s) FALSE K2O(s) FALSE Lawrencite(s) FALSE Manganosite(s) FALSE Mn(OH)2(s) FALSE Mn(OH)3(s) FALSE Mn(s) FALSE MnCl2:2H2O(s) FALSE MnCl2:4H2O(s) FALSE MnCl2:H2O(s) FALSE MnO2(gamma)(s) FALSE Molysite(s) FALSE Pyrolusite(s) FALSE Scacchite(s) FALSE Sylvite(s) FALSE Fin validation des espéces Réactions et constantes 2 Début réaction Réaction 5 Fe[3+] + 4 H2O + Mn[2+] = 8 H[+] + 5 Fe[2+] + MnO4[-] logk -62.7 Fin réaction Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse V Ordonnées 2 Début ordonnée Expression E(Fe[2+]/Fe[3+])-ECS Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression E(Mn[2+]/MnO4[-])-ECS Couleur 255 Taille point 2 Epaisseur trait 1 Style Croix Joindre FALSE Echelle Gauche Fin ordonnée Echelle gauche automatique TRUE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 0.00000000000000E+0000 Abscisse maximale 2.00000000000000E+0001 Ordonnée minimale gauche 2.97938109731317E-0001 Ordonnée maximale gauche 1.09773214648505E+0000 Ordonnée minimale droite 0.00000000000000E+0000 Ordonnée maximale droite 4.99999976217413E-0004 Fin grandeurs à tracer Début embellissement graphique Légende présente TRUE Titre Dosage de 50mL de Fe[2+] (0.01 mol/L), Cl[-] (0.02 mol/L), par 20mL de MnO4[-] (0.01 mol/L), H[+] (0.1 mol/L), K[+] (0.01 mol/L), Cl[-] (0.1 mol/L) Label x V Label y gauche ddp Label y droit Unité x mL Unité y gauche V Unité y droit Grille droite FALSE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Acido_basiques/0000750000175000017500000000000013155277271020561 5ustar georgeskgeorgeskdozzaqueux-3.51/Exemples/Acido_basiques/acide_fort_par_soude_comparaison_theorie.doz0000750000175000017500000000452011217213752031544 0ustar georgeskgeorgeskDebye Huckel FALSE Empecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 147 Pas adaptatif TRUE Variation log max 1.00000000000000E-0001 Limite inférieure pas 1.00000000000000E-0002 Volume bécher 20 Espéces bécher 2 Début espéce Identifiant H[+] Concentration 0.01 Fin espéce Début espéce Identifiant Cl[-] Concentration 0.01 Fin espéce Fin espéces bécher Volume burette 4 Espéces burette 2 Début espéce Identifiant OH[-] Concentration 0.1 Fin espéce Début espéce Identifiant Na[+] Concentration 0.1 Fin espéce Fin espéces burette Validation des espéces 10 Cl[-] TRUE H2O TRUE H[+] TRUE Na[+] TRUE HCl(aq) FALSE NaCl(aq) FALSE NaOH(aq) FALSE OH[-] TRUE Halite(s) FALSE Na2O(s) FALSE Fin validation des espéces Réactions et constantes 1 Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse V Ordonnées 2 Début ordonnée Expression pH Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression -log10(abs((0.01*V0-0.1*V)/(V+V0)))*inf(V,1.99)+(14+log10(abs((-0.01*V0+0.1*V)/(V+V0))))*sup(V,2.01)+nanin(V-2,0.01) Couleur 255 Taille point 2 Epaisseur trait 1 Style Disque Joindre FALSE Echelle Gauche Fin ordonnée Echelle gauche automatique FALSE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 0.00000000000000E+0000 Abscisse maximale 4.00000000000000E+0000 Ordonnée minimale gauche 0.00000000000000E+0000 Ordonnée maximale gauche 1.40000000000000E+0001 Ordonnée minimale droite 1.99051637484863E+0002 Ordonnée maximale droite 9.87032977622356E+0006 Fin grandeurs à tracer Début embellissement graphique Légende présente FALSE Titre Dosage de 20mL de H[+] (0.01 mol/L), Cl[-] (0.01 mol/L), par 4mL de OH[-] (0.1 mol/L), Na[+] (0.1 mol/L) Label x V Label y gauche Label y droit Unité x Unité y gauche Unité y droit Grille droite FALSE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Acido_basiques/acide_ethanoique_par_soude_comparaison_henderson.doz0000750000175000017500000000464711217213457033276 0ustar georgeskgeorgeskDebye Huckel FALSE Empecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 172 Pas adaptatif TRUE Variation log max 1.00000000000000E-0001 Limite inférieure pas 1.00000000000000E-0002 Volume bécher 20 Espéces bécher 1 Début espéce Identifiant Acide éthanoïque(aq) Concentration 0.01 Fin espéce Fin espéces bécher Volume burette 4 Espéces burette 2 Début espéce Identifiant OH[-] Concentration 0.1 Fin espéce Début espéce Identifiant Na[+] Concentration 0.1 Fin espéce Fin espéces burette Validation des espéces 10 H2O TRUE H[+] TRUE Na[+] TRUE NaOH(aq) FALSE OH[-] TRUE Acide éthanoïque(aq) TRUE Ethanoate(aq) TRUE Na(CH3COO)2[-] FALSE NaCH3COO(aq) FALSE Na2O(s) FALSE Fin validation des espéces Réactions et constantes 2 Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Début réaction Réaction Acide éthanoïque(aq) = H[+] + Ethanoate(aq) logk -4.76 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse V Ordonnées 2 Début ordonnée Expression pH Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression (4.76+log10(abs(0.1*V/(-0.1*V+0.01*V0))))*inf(V,1.99)+(14+log10(abs((-0.01*V0+0.1*V)/(V+V0))))*sup(V,2.01)+nanin(V-2,0.01) Couleur 255 Taille point 2 Epaisseur trait 1 Style Disque Joindre FALSE Echelle Gauche Fin ordonnée Echelle gauche automatique FALSE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 0.00000000000000E+0000 Abscisse maximale 4.00000000000000E+0000 Ordonnée minimale gauche 0.00000000000000E+0000 Ordonnée maximale gauche 1.40000000000000E+0001 Ordonnée minimale droite 1.99051637484863E+0002 Ordonnée maximale droite 9.87032977622356E+0006 Fin grandeurs à tracer Début embellissement graphique Légende présente FALSE Titre Dosage de 20mL de Acide éthanoïque(aq) (0.01 mol/L), par 4mL de OH[-] (0.1 mol/L), Na[+] (0.1 mol/L) Label x V Label y gauche Label y droit Unité x Unité y gauche Unité y droit Grille droite FALSE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Acido_basiques/diagramme_predominance_acide_carbonique.doz0000750000175000017500000000515011217213771031302 0ustar georgeskgeorgeskCalcul derivees FALSE Debye Huckel FALSE Empecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 134 Pas adaptatif TRUE Variation log max 5.00000000000000E-0001 Limite inférieure pas 1.00000000000000E-0002 Volume bécher 10 Espéces bécher 1 Début espéce Identifiant CO2(aq) Concentration 0.1 Fin espéce Fin espéces bécher Volume burette 30 Espéces burette 2 Début espéce Identifiant OH[-] Concentration 0.1 Fin espéce Début espéce Identifiant Na[+] Concentration 0.1 Fin espéce Fin espéces burette Validation des espéces 16 H2O TRUE HCO3[-] TRUE H[+] TRUE Na[+] TRUE CO2(aq) TRUE CO3[2-] TRUE NaCO3[-] FALSE NaHCO3(aq) FALSE NaOH(aq) FALSE OH[-] TRUE Na2CO3(s) FALSE Na2CO3:7H2O(s) FALSE Na2O(s) FALSE Nahcolite(s) FALSE Natron(s) FALSE Thermonatrite(s) FALSE Fin validation des espéces Réactions et constantes 3 Début réaction Réaction HCO3[-] + H[+] = H2O + CO2(aq) logk 6.353 Fin réaction Début réaction Réaction HCO3[-] = H[+] + CO3[2-] logk -10.31 Fin réaction Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse pH Ordonnées 3 Début ordonnée Expression [CO2(aq)]*Vtotal Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression [HCO3[-]]*Vtotal Couleur 255 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression [CO3[2-]]*Vtotal Couleur 32768 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Echelle gauche automatique TRUE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 3.67695720564396E+0000 Abscisse maximale 1.24014163704639E+0001 Ordonnée minimale gauche 4.89778480700546E-0010 Ordonnée maximale gauche 9.97896015213711E-0001 Ordonnée minimale droite 0.00000000000000E+0000 Ordonnée maximale droite 0.00000000000000E+0000 Fin grandeurs à tracer Début embellissement graphique Légende présente TRUE Titre Diagramme de prédominance pour CO2(aq)/HCO3[-]/CO3[2-] Label x pH Label y gauche Label y droit Unité x Unité y gauche mol Unité y droit Grille droite FALSE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Acido_basiques/H3PO4_par_soude.doz0000750000175000017500000000611711217214007024126 0ustar georgeskgeorgeskEmpecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 167 Pas adaptatif TRUE Variation log max 5.00000000000000E-0001 Limite inférieure pas 1.00000000000000E-0002 Volume bécher 50 Espéces bécher 1 Début espéce Identifiant H3PO4(aq) Concentration 0.01 Fin espéce Fin espéces bécher Volume burette 40 Espéces burette 2 Début espéce Identifiant OH[-] Concentration 0.05 Fin espéce Début espéce Identifiant Na[+] Concentration 0.05 Fin espéce Fin espéces burette Validation des espéces 19 Na[+] TRUE H2O TRUE H[+] TRUE HPO4[2-] TRUE OH[-] TRUE H3PO4(aq) TRUE H2PO4[-] TRUE PO4[3-] TRUE H2P2O7[2-] FALSE H3P2O7[-] FALSE H4P2O7(aq) FALSE HP2O7[3-] FALSE Na2P2O7[2-] FALSE NaHP2O7[2-] FALSE NaHPO4[-] FALSE NaOH(aq) FALSE NaP2O7[3-] FALSE P2O7[4-] FALSE Na2O(s) FALSE Fin validation des espéces Réactions et constantes 4 Début réaction Réaction H2O = H[+] + OH[-] logk -14.0021445134228 Fin réaction Début réaction Réaction 2 H[+] + HPO4[2-] = H3PO4(aq) logk 9.37981901006711 Fin réaction Début réaction Réaction H[+] + HPO4[2-] = H2PO4[-] logk 7.20902687919463 Fin réaction Début réaction Réaction HPO4[2-] = H[+] + PO4[3-] logk -12.3280022483221 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse V Ordonnées 5 Début ordonnée Expression pH Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression [H3PO4(aq)] Couleur 255 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Début ordonnée Expression [H2PO4[-]] Couleur 32768 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Début ordonnée Expression [HPO4[2-]] Couleur 65535 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Début ordonnée Expression [PO4[3-]] Couleur 16711935 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Echelle gauche automatique TRUE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 0.00000000000000E+0000 Abscisse maximale 4.00000000000000E+0001 Ordonnée minimale gauche 2.25910666964800E+0000 Ordonnée maximale gauche 1.19754072264433E+0001 Ordonnée minimale droite 5.27312169897689E-0018 Ordonnée maximale droite 8.28806147359098E-0003 Fin grandeurs à tracer Début embellissement graphique Légende présente TRUE Titre Dosage de 50mL de H3PO4(aq) (0.01 mol/L), par 40mL de OH[-] (0.05 mol/L), Na[+] (0.05 mol/L) Label x V Label y gauche pH Label y droit [ ] Unité x mL Unité y gauche (sans unité) Unité y droit mol/L Grille droite TRUE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Acido_basiques/acide_fort_par_soude.doz0000750000175000017500000000437611217213476025446 0ustar georgeskgeorgeskDebye Huckel FALSE Empecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 114 Pas adaptatif TRUE Variation log max 5.00000000000000E-0001 Limite inférieure pas 1.00000000000000E-0002 Volume bécher 50 Espéces bécher 2 Début espéce Identifiant H[+] Concentration 0.01 Fin espéce Début espéce Identifiant Cl[-] Concentration 0.01 Fin espéce Fin espéces bécher Volume burette 20 Espéces burette 2 Début espéce Identifiant OH[-] Concentration 0.05 Fin espéce Début espéce Identifiant Na[+] Concentration 0.05 Fin espéce Fin espéces burette Validation des espéces 10 Cl[-] TRUE H2O TRUE H[+] TRUE Na[+] TRUE HCl(aq) FALSE NaCl(aq) FALSE NaOH(aq) FALSE OH[-] TRUE Halite(s) FALSE Na2O(s) FALSE Fin validation des espéces Réactions et constantes 1 Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse V Ordonnées 2 Début ordonnée Expression pH Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression gamma Couleur 255 Taille point 2 Epaisseur trait 1 Style Disque Joindre FALSE Echelle Droite Fin ordonnée Echelle gauche automatique TRUE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 0.00000000000000E+0000 Abscisse maximale 2.00000000000000E+0001 Ordonnée minimale gauche 1.99999999995657E+0000 Ordonnée maximale gauche 1.18538719644069E+0001 Ordonnée minimale droite 1.05330476500000E-0001 Ordonnée maximale droite 4.25960000054765E-0001 Fin grandeurs à tracer Début embellissement graphique Légende présente TRUE Titre Dosage de 50mL de H[+] (0.01 mol/L), Cl[-] (0.01 mol/L), par 20mL de OH[-] (0.05 mol/L), Na[+] (0.05 mol/L) Label x V Label y gauche pH Label y droit gamma Unité x mL Unité y gauche (sans unité) Unité y droit S/m Grille droite FALSE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Acido_basiques/acide_chloroethanoique_par_soude_comparaison_henderson.doz0000750000175000017500000000456211217212352034472 0ustar georgeskgeorgeskCalcul derivees FALSE Debye Huckel FALSE Empecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 194 Pas adaptatif TRUE Variation log max 1.00000000000000E-0001 Limite inférieure pas 1.00000000000000E-0003 Volume bécher 20 Espéces bécher 1 Début espéce Identifiant Acide chloroéthanoïque(aq) Concentration 0.01 Fin espéce Fin espéces bécher Volume burette 4 Espéces burette 1 Début espéce Identifiant OH[-] Concentration 0.1 Fin espéce Fin espéces burette Validation des espéces 8 H2O TRUE H[+] TRUE Na[+] TRUE NaOH(aq) FALSE OH[-] TRUE Acide chloroéthanoïque(aq) TRUE Chloroéthanoate(aq) TRUE Na2O(s) FALSE Fin validation des espéces Réactions et constantes 2 Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Début réaction Réaction Acide chloroéthanoïque(aq) = H[+] + Chloroéthanoate(aq) logk -2.901 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse V Ordonnées 2 Début ordonnée Expression pH Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression (2.9+log10(abs(0.1*V/(-0.1*V+0.01*V0))))*inf(V,1.99)+(14+log10(abs((-0.01*V0+0.1*V)/(V+V0))))*sup(V,2.01)+nanin(V-2,0.01) Couleur 255 Taille point 2 Epaisseur trait 1 Style Disque Joindre FALSE Echelle Gauche Fin ordonnée Echelle gauche automatique FALSE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 0.00000000000000E+0000 Abscisse maximale 4.00000000000000E+0000 Ordonnée minimale gauche 0.00000000000000E+0000 Ordonnée maximale gauche 1.40000000000000E+0001 Ordonnée minimale droite 1.99051637484863E+0002 Ordonnée maximale droite 9.87032977622356E+0006 Fin grandeurs à tracer Début embellissement graphique Légende présente TRUE Titre Dosage de 20mL de Acide chloroéthanoïque(aq) (0.01 mol/L), par 4mL de OH[-] (0.1 mol/L), Na[+] (0.1 mol/L) Label x V Label y gauche Label y droit Unité x Unité y gauche Unité y droit Grille droite FALSE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/Exemples/Acido_basiques/H3PO4_par_soude_derivee_pH.doz0000750000175000017500000000466611217214017026270 0ustar georgeskgeorgeskCalcul derivees TRUE 1000000 Debye Huckel FALSE Empecher redox TRUE Afficher avertissement redox TRUE Point décimal export FALSE Nombre points calcul 167 Pas adaptatif TRUE Variation log max 5.00000000000000E-0001 Limite inférieure pas 1.00000000000000E-0002 Volume bécher 50 Espéces bécher 1 Début espéce Identifiant H3PO4(aq) Concentration 0.01 Fin espéce Fin espéces bécher Volume burette 40 Espéces burette 1 Début espéce Identifiant OH[-] Concentration 0.05 Fin espéce Fin espéces burette Validation des espéces 12 H2O TRUE HPO4[2-] TRUE H[+] TRUE H2P2O7[2-] FALSE H2PO4[-] TRUE H3P2O7[-] FALSE H3PO4(aq) TRUE H4P2O7(aq) FALSE HP2O7[3-] FALSE OH[-] TRUE P2O7[4-] FALSE PO4[3-] TRUE Fin validation des espéces Réactions et constantes 4 Début réaction Réaction HPO4[2-] + H[+] = H2PO4[-] logk 7.204 Fin réaction Début réaction Réaction HPO4[2-] + 2 H[+] = H3PO4(aq) logk 9.325 Fin réaction Début réaction Réaction H2O = H[+] + OH[-] logk -14 Fin réaction Début réaction Réaction HPO4[2-] = H[+] + PO4[3-] logk -12.33 Fin réaction Fin réactions et constantes Grandeurs à tracer Abscisse V Ordonnées 2 Début ordonnée Expression pH Couleur 16711680 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Gauche Fin ordonnée Début ordonnée Expression dpH_dV Couleur 255 Taille point 2 Epaisseur trait 1 Style Disque Joindre TRUE Echelle Droite Fin ordonnée Echelle gauche automatique TRUE Echelle droite automatique TRUE Echelle horizontale automatique TRUE Abscisse minimale 0.00000000000000E+0000 Abscisse maximale 4.00000000000000E+0001 Ordonnée minimale gauche 2.24390430737052E+0000 Ordonnée maximale gauche 1.19737247066833E+0001 Ordonnée minimale droite 1.84903562737219E+0001 Ordonnée maximale droite 5.49878530472709E+0003 Fin grandeurs à tracer Début embellissement graphique Légende présente TRUE Titre Dosage de 50mL de H3PO4(aq) (0.01 mol/L), par 40mL de OH[-] (0.05 mol/L), Na[+] (0.05 mol/L) Label x V Label y gauche pH Label y droit dpH_dV Unité x mL Unité y gauche (sans unité) Unité y droit /L Grille droite TRUE Grille gauche TRUE Cadre présent TRUE Graduations TRUE Couleur fond 16777215 Couleur grille gauche 0 Couleur grille droite 0 Couleur axes 0 Couleur graduations 0 Fin embellissement graphique dozzaqueux-3.51/unit8.lrs0000750000175000017500000000432213147330070015645 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsasiestyleordonnees','FORMDATA',[ 'TPF0'#20'Tsasiestyleordonnees'#19'sasiestyleordonnees'#4'Left'#3''''#2#6'Hei' +'ght'#3#219#0#3'Top'#3#200#0#5'Width'#3'V'#1#13'ActiveControl'#7#7'BitBtn1' +#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bs' +'Single'#7'Caption'#6#16'Style des points'#12'ClientHeight'#3#219#0#11'Clien' +'tWidth'#3'V'#1#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLV' +'ersion'#6#7'1.2.2.0'#0#11'TRadioGroup'#15'RadioGroupstyle'#22'AnchorSideLef' +'t.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRig' +'ht.Control'#7#7'BitBtn1'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorS' +'ideBottom.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#3#199#0#3'Top'#2#10#5 +'Width'#3#223#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8 +'AutoFill'#9#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#19'Borde' +'rSpacing.Right'#2#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6#5'Style'#28 +'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'C' +'hildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing' +'.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHoriz' +'ontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChi' +'lds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSiz' +'ing.ControlsPerLine'#2#1#12'ClientHeight'#3#177#0#11'ClientWidth'#3#219#0#13 +'Items.Strings'#1#6#6'Disque'#6#9'Croix (x)'#6#6'Cercle'#6#9'Croix (+)'#0#7 +'OnClick'#7#20'RadioGroupstyleClick'#8'TabOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn' +'1'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Own' +'er'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5 +'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#243#0#6'Height'#3 +#199#0#3'Top'#2#10#5'Width'#2'Y'#7'Anchors'#11#5'akTop'#7'akRight'#8'akBotto' +'m'#0#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#20'BorderSpaci' +'ng.Bottom'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK'#11'Modal' +'Result'#2#1#8'TabOrder'#2#1#0#0#0 ]); dozzaqueux-3.51/unit19.lrs0000750000175000017500000001737413147330070015742 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisiefaisceau','FORMDATA',[ 'TPF0'#15'Tsaisiefaisceau'#14'saisiefaisceau'#4'Left'#3'Y'#2#6'Height'#3#241#1 +#3'Top'#3#183#0#5'Width'#3'U'#2#13'ActiveControl'#7#9'SpinEdit1'#11'BorderIc' +'ons'#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'C' +'aption'#6#19'Faisceau de courbes'#12'ClientHeight'#3#241#1#11'ClientWidth'#3 +'U'#2#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7 +'1.2.2.0'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'Anc' +'horSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3'Top'#2#10#5'Wi' +'dth'#3#158#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Capti' +'on'#6#24'Grandeur '#195#160' faire varier'#10'Font.Style'#11#6'fsBold'#0#11 +'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.C' +'ontrol'#7#6'Label1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop' +'.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#178#0 +#6'Height'#2#20#3'Top'#2#10#5'Width'#3#164#0#18'BorderSpacing.Left'#2#10#7'C' +'aption'#6#26' pour obtenir le faisceau:'#11'ParentColor'#8#0#0#6'TLabel'#6 +'Label4'#22'AnchorSideLeft.Control'#7#22'RadioGrouptypefaisceau'#19'AnchorSi' +'deLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#22'RadioGrouptypefa' +'isceau'#4'Left'#3#211#0#6'Height'#2#20#3'Top'#3#17#1#5'Width'#2'L'#18'Borde' +'rSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#13'1'#195#168'r' +'e valeur:'#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#22'AnchorSideLeft.Cont' +'rol'#7#6'Label4'#21'AnchorSideTop.Control'#7#6'Label4'#18'AnchorSideTop.Sid' +'e'#7#9'asrBottom'#4'Left'#3#211#0#6'Height'#2#20#3'Top'#3'9'#1#5'Width'#2'E' +#17'BorderSpacing.Top'#2#20#7'Caption'#6#11'Incr'#195#169'ment:'#11'ParentCo' +'lor'#8#0#0#6'TLabel'#6'Label6'#22'AnchorSideLeft.Control'#7#6'Label4'#21'An' +'chorSideTop.Control'#7#6'Label5'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Le' +'ft'#3#211#0#6'Height'#2#20#3'Top'#3'a'#1#5'Width'#2'L'#17'BorderSpacing.Top' +#2#20#7'Caption'#6#13'1'#195#168're valeur:'#11'ParentColor'#8#0#0#6'TLabel' +#6'Label7'#22'AnchorSideLeft.Control'#7#6'Label4'#21'AnchorSideTop.Control'#7 +#6'Label6'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#211#0#6'Height'#2 +#20#3'Top'#3#137#1#5'Width'#2#25#17'BorderSpacing.Top'#2#20#7'Caption'#6#4'P' +'as:'#11'ParentColor'#8#0#0#6'TLabel'#6'Label8'#22'AnchorSideLeft.Control'#7 +#5'Owner'#21'AnchorSideTop.Control'#7#22'RadioGrouptypefaisceau'#18'AnchorSi' +'deTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#3#177#1#5'Wid' +'th'#3'Q'#1#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption' +#6'4Les couleurs en d'#195#169'grad'#195#169' des courbes tendront vers:'#11 +'ParentColor'#8#0#0#9'TSpinEdit'#9'SpinEdit1'#22'AnchorSideLeft.Control'#7#6 +'Label2'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6 +'Label2'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3'`'#1#6'Height'#2#28 +#3'Top'#2#6#5'Width'#2'4'#18'BorderSpacing.Left'#2#10#8'MinValue'#2#2#8'TabO' +'rder'#2#0#5'Value'#2#2#0#0#8'TListBox'#8'ListBox1'#22'AnchorSideLeft.Contro' +'l'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7 +#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side' +#7#9'asrBottom'#4'Left'#2#10#6'Height'#3#213#0#3'Top'#2'('#5'Width'#3'A'#2#7 +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#10#17 +'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#10'ItemHeight'#2#0#8'T' +'abOrder'#2#1#0#0#11'TRadioGroup'#22'RadioGrouptypefaisceau'#22'AnchorSideLe' +'ft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#8'ListBox1'#18'AnchorSid' +'eTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#3#160#0#3'Top'#3#7#1#5'Wid' +'th'#3#191#0#8'AutoFill'#9#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top' +#2#10#7'Caption'#6#24'Type de suite de valeurs'#28'ChildSizing.LeftRightSpac' +'ing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizon' +'tal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'cr' +'sHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChild' +'s'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layou' +'t'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1 +#12'ClientHeight'#3#138#0#11'ClientWidth'#3#187#0#9'ItemIndex'#2#0#13'Items.' +'Strings'#1#6#13'Arithm'#195#169'tique'#6#13'G'#195#169'om'#195#169'trique'#0 +#8'TabOrder'#2#2#0#0#5'TEdit'#14'Editlineairex1'#22'AnchorSideLeft.Control'#7 +#6'Label4'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7 +#6'Label4'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3')'#1#6'Height'#2 +#28#3'Top'#3#13#1#5'Width'#2'N'#18'BorderSpacing.Left'#2#10#10'OnKeyPress'#7 +#22'Editlineairex1KeyPress'#8'TabOrder'#2#3#0#0#5'TEdit'#15'editlineairepas' +#22'AnchorSideLeft.Control'#7#6'Label5'#19'AnchorSideLeft.Side'#7#9'asrBotto' +'m'#21'AnchorSideTop.Control'#7#6'Label5'#18'AnchorSideTop.Side'#7#9'asrCent' +'er'#4'Left'#3'"'#1#6'Height'#2#28#3'Top'#3'5'#1#5'Width'#2'P'#18'BorderSpac' ,'ing.Left'#2#10#10'OnKeyPress'#7#23'editlineairepasKeyPress'#8'TabOrder'#2#4 +#0#0#5'TEdit'#17'Editgeometriquex1'#22'AnchorSideLeft.Control'#7#6'Label6'#19 +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Label6'#18 +'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3')'#1#6'Height'#2#28#3'Top'#3']' +#1#5'Width'#2'N'#18'BorderSpacing.Left'#2#10#10'OnKeyPress'#7#25'Editgeometr' +'iquex1KeyPress'#8'TabOrder'#2#5#0#0#5'TEdit'#18'Editgeometriquepas'#22'Anch' +'orSideLeft.Control'#7#6'Label7'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'A' +'nchorSideTop.Control'#7#6'Label7'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'L' +'eft'#3#246#0#6'Height'#2#28#3'Top'#3#133#1#5'Width'#2'J'#18'BorderSpacing.L' +'eft'#2#10#10'OnKeyPress'#7#26'EditgeometriquepasKeyPress'#8'TabOrder'#2#6#0 +#0#7'TBitBtn'#7'BitBtn1'#21'AnchorSideTop.Control'#7#8'ListBox1'#18'AnchorSi' +'deTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'Anchor' +'SideRight.Side'#7#9'asrBottom'#4'Left'#3#163#1#6'Height'#2'U'#3'Top'#3#7#1#5 +'Width'#3#168#0#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderSpacing.Top'#2 +#10#19'BorderSpacing.Right'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4 +'bkOK'#11'ModalResult'#2#1#7'OnClick'#7#12'BitBtn1Click'#8'TabOrder'#2#7#0#0 +#7'TBitBtn'#7'BitBtn2'#21'AnchorSideTop.Control'#7#7'BitBtn1'#18'AnchorSideT' +'op.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSid' +'eRight.Side'#7#9'asrBottom'#4'Left'#3#173#1#6'Height'#2'E'#3'Top'#3'f'#1#5 +'Width'#3#158#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderSpaci' +'ng.Top'#2#10#19'BorderSpacing.Right'#2#10#6'Cancel'#9#7'Caption'#6#7'Annule' +'r'#4'Kind'#7#8'bkCancel'#11'ModalResult'#2#2#8'TabOrder'#2#8#0#0#6'TPanel'#6 +'Panel1'#22'AnchorSideLeft.Control'#7#6'Label8'#19'AnchorSideLeft.Side'#7#9 +'asrBottom'#21'AnchorSideTop.Control'#7#6'Label8'#4'Left'#3'e'#1#6'Height'#2 +':'#3'Top'#3#177#1#5'Width'#2'A'#18'BorderSpacing.Left'#2#10#5'Color'#7#8'cl' +'Silver'#11'ParentColor'#8#8'TabOrder'#2#9#7'OnClick'#7#11'Panel1Click'#0#0 +#12'TColorDialog'#12'ColorDialog1'#5'Color'#7#7'clBlack'#20'CustomColors.Str' +'ings'#1#6#13'ColorA=000000'#6#13'ColorB=000080'#6#13'ColorC=008000'#6#13'Co' +'lorD=008080'#6#13'ColorE=800000'#6#13'ColorF=800080'#6#13'ColorG=808000'#6 +#13'ColorH=808080'#6#13'ColorI=C0C0C0'#6#13'ColorJ=0000FF'#6#13'ColorK=00FF0' +'0'#6#13'ColorL=00FFFF'#6#13'ColorM=FF0000'#6#13'ColorN=FF00FF'#6#13'ColorO=' +'FFFF00'#6#13'ColorP=FFFFFF'#6#13'ColorQ=C0DCC0'#6#13'ColorR=F0CAA6'#6#13'Co' +'lorS=F0FBFF'#6#13'ColorT=A4A0A0'#0#4'left'#3#184#1#3'top'#2#2#0#0#0 ]); dozzaqueux-3.51/unit3.lfm0000750000175000017500000000711513147330070015621 0ustar georgeskgeorgeskobject saisienombremole: Tsaisienombremole Left = 694 Height = 476 Top = 186 Width = 909 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Nombre de moles ?' ClientHeight = 476 ClientWidth = 909 DesignTimePPI = 120 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.8.0.4' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 46 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Label1' Font.Color = clBlue Font.Style = [fsBold] ParentColor = False ParentFont = False end object BitBtn1: TBitBtn AnchorSideTop.Control = Owner AnchorSideRight.Control = BitBtn2 Left = 664 Height = 299 Top = 10 Width = 121 Anchors = [akTop, akRight] BorderSpacing.Top = 10 BorderSpacing.Right = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 0 end object BitBtn2: TBitBtn AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 795 Height = 297 Top = 10 Width = 104 Anchors = [akTop, akRight] BorderSpacing.Top = 10 BorderSpacing.Right = 10 Cancel = True Caption = 'Annuler' Kind = bkCancel ModalResult = 2 TabOrder = 1 end object Memo1: TMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = BitBtn1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 147 Top = 319 Width = 889 Align = alBottom Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Font.Style = [fsBold] Lines.Strings = ( 'Memo1' ) ParentFont = False ReadOnly = True ScrollBars = ssAutoBoth TabOrder = 2 end object RadioGroup1: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 263 Top = 40 Width = 376 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'au choix:' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 OnSelectionChanged = RadioGroup1SelectionChanged TabOrder = 3 end object Edit_quantite: TEdit AnchorSideLeft.Control = RadioGroup1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RadioGroup1 AnchorSideTop.Side = asrCenter Left = 396 Height = 28 Top = 157 Width = 134 BorderSpacing.Left = 10 OnKeyPress = Edit_quantiteKeyPress TabOrder = 4 end object Label_unite: TLabel AnchorSideLeft.Control = Edit_quantite AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Edit_quantite AnchorSideTop.Side = asrCenter Left = 540 Height = 20 Top = 161 Width = 28 BorderSpacing.Left = 10 Caption = 'toto' ParentColor = False end end dozzaqueux-3.51/dozzzaqueux.ico0000750000175000017500000000137613147330070017167 0ustar georgeskgeorgesk ( @ ????dozzaqueux-3.51/unit_electroneutralite.lrs0000750000175000017500000000527513147330070021377 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisie_electroneutralite','FORMDATA',[ 'TPF0'#25'Tsaisie_electroneutralite'#24'saisie_electroneutralite'#4'Left'#3 +''''#2#6'Height'#3'i'#1#3'Top'#3','#1#5'Width'#3'='#2#13'ActiveControl'#7#24 +'RadioGroup1.RadioButton0'#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimize' +#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#18'Electroneutralit'#195#169#12 +'ClientHeight'#3'i'#1#11'ClientWidth'#3'='#2#8'OnCreate'#7#10'FormCreate'#6 +'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2.0'#0#6'TLabel'#6'Label1'#22 +'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'L' +'eft'#2#10#6'Height'#2#20#3'Top'#2#10#5'Width'#3'|'#1#18'BorderSpacing.Left' +#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6'8La charge '#195#169'lectrique' +' totale est non nulle. Vous pouvez:'#10'Font.Style'#11#6'fsBold'#0#11'Paren' +'tColor'#8#10'ParentFont'#8#0#0#11'TRadioGroup'#11'RadioGroup1'#22'AnchorSid' +'eLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSi' +'deTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'Anchor' +'SideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#7'BitBtn1'#4 +'Left'#2#10#6'Height'#3#228#0#3'Top'#2'('#5'Width'#3')'#2#7'Anchors'#11#5'ak' +'Top'#6'akLeft'#7'akRight'#8'akBottom'#0#8'AutoFill'#9#18'BorderSpacing.Left' +#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#20'BorderSpaci' +'ng.Bottom'#2#10#7'Caption'#6#9'au choix:'#28'ChildSizing.LeftRightSpacing'#2 +#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7 +#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomoge' +'nousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'C' +'hildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29 +'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'Clien' +'tHeight'#3#206#0#11'ClientWidth'#3'%'#2#9'ItemIndex'#2#0#13'Items.Strings'#1 +#6#31'ajouter ou enlever des esp'#195#168'ces'#6'1passer outre (attention: c' +'alculs non garantis !!)'#0#11'ParentColor'#8#8'TabOrder'#2#0#0#0#7'TBitBtn' +#7'BitBtn1'#22'AnchorSideLeft.Control'#7#5'Owner'#23'AnchorSideRight.Control' +#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Cont' +'rol'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#10#6'Hei' +'ght'#2'I'#3'Top'#3#22#1#5'Width'#3')'#2#7'Anchors'#11#6'akLeft'#7'akRight'#8 +'akBottom'#0#18'BorderSpacing.Left'#2#10#19'BorderSpacing.Right'#2#10#20'Bor' +'derSpacing.Bottom'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK' +#11'ModalResult'#2#1#8'TabOrder'#2#1#0#0#0 ]); dozzaqueux-3.51/unitsaisietailleimage.lrs0000750000175000017500000000666113147330070021161 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('TSaisieTailleImage','FORMDATA',[ 'TPF0'#18'TSaisieTailleImage'#17'SaisieTailleImage'#4'Left'#3#227#2#6'Height' +#2't'#3'Top'#3'Y'#1#5'Width'#3'L'#1#13'ActiveControl'#7#15'SpinEditLargeur' +#11'BorderIcons'#11#12'biSystemMenu'#0#11'BorderStyle'#7#8'bsDialog'#7'Capti' +'on'#6#17'Taille de l''image'#12'ClientHeight'#2't'#11'ClientWidth'#3'L'#1#8 +'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2' +'.0'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSi' +'deTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3'Top'#2#20#5'Width'#2 +':'#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#20#7'Caption'#6#8'La' +'rgeur:'#10'Font.Color'#7#7'clGreen'#10'Font.Style'#11#6'fsBold'#0#11'Parent' +'Color'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.Control' +#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#2'F'#5'Width'#2'='#18'BorderS' +'pacing.Left'#2#10#17'BorderSpacing.Top'#2#30#7'Caption'#6#8'Hauteur:'#10'Fo' +'nt.Color'#7#8'clMaroon'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10 +'ParentFont'#8#0#0#6'TLabel'#6'Label3'#22'AnchorSideLeft.Control'#7#15'SpinE' +'ditLargeur'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control' +#7#15'SpinEditLargeur'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#162#0 +#6'Height'#2#20#3'Top'#2#20#5'Width'#2'('#18'BorderSpacing.Left'#2#10#7'Capt' +'ion'#6#6'pixels'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentF' +'ont'#8#0#0#6'TLabel'#6'Label4'#22'AnchorSideLeft.Control'#7#15'SpinEditHaut' +'eur'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#15 +'SpinEditHauteur'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#165#0#6'He' +'ight'#2#20#3'Top'#2'F'#5'Width'#2'('#18'BorderSpacing.Left'#2#10#7'Caption' +#6#6'pixels'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8 +#0#0#9'TSpinEdit'#15'SpinEditLargeur'#22'AnchorSideLeft.Control'#7#6'Label1' +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Label1' +#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'N'#6'Height'#2#28#3'Top'#2 +#16#5'Width'#2'J'#18'BorderSpacing.Left'#2#10#8'MaxValue'#4#160#134#1#0#8'Mi' +'nValue'#2#1#8'TabOrder'#2#0#5'Value'#2#1#0#0#9'TSpinEdit'#15'SpinEditHauteu' +'r'#22'AnchorSideLeft.Control'#7#6'Label2'#19'AnchorSideLeft.Side'#7#9'asrBo' +'ttom'#21'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrC' +'enter'#4'Left'#2'Q'#6'Height'#2#28#3'Top'#2'B'#5'Width'#2'J'#18'BorderSpaci' +'ng.Left'#2#10#8'MaxValue'#4#160#134#1#0#8'MinValue'#2#1#8'TabOrder'#2#1#5'V' +'alue'#2#1#0#0#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLeft.Control'#7#6'Label4' +#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#5'Owner' +#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBott' +'om'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'a' +'srBottom'#4'Left'#3#215#0#6'Height'#2'`'#3'Top'#2#10#5'Width'#2'k'#7'Anchor' +'s'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2 +#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#20'BorderSpacing' +'.Bottom'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalRe' +'sult'#2#1#8'TabOrder'#2#2#0#0#0 ]); dozzaqueux-3.51/unit_imp.lrs0000750000175000017500000001601613147330070016425 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tconfigimpression','FORMDATA',[ 'TPF0'#17'Tconfigimpression'#16'configimpression'#4'Left'#3'x'#3#6'Height'#3 +#167#1#3'Top'#3#187#0#5'Width'#3#210#1#13'ActiveControl'#7#25'spinpourcentag' +'ehorizontal'#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'Border' +'Style'#7#8'bsSingle'#7'Caption'#6'*Configuration de la page pour l''impress' +'ion'#12'ClientHeight'#3#167#1#11'ClientWidth'#3#210#1#13'DesignTimePPI'#2'x' +#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.8' +'.0.4'#0#9'TGroupBox'#9'GroupBox1'#22'AnchorSideLeft.Control'#7#5'Owner'#21 +'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#3'9'#1#3'Top'#2#10 +#5'Width'#3#182#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'C' +'aption'#6#8'Position'#12'ClientHeight'#3' '#1#11'ClientWidth'#3#178#0#8'Tab' +'Order'#2#0#0#11'TRadioGroup'#21'radiogroupehorizontal'#22'AnchorSideLeft.Co' +'ntrol'#7#9'GroupBox1'#21'AnchorSideTop.Control'#7#9'GroupBox1'#4'Left'#2#10 +#6'Height'#2'~'#3'Top'#2#10#5'Width'#2'o'#8'AutoFill'#9#18'BorderSpacing.Lef' +'t'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#11'Horizontale'#28'ChildSiz' +'ing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizi' +'ng.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.Enlarge' +'Vertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7 +#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'C' +'hildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.Contr' +'olsPerLine'#2#1#12'ClientHeight'#2'e'#11'ClientWidth'#2'k'#9'ItemIndex'#2#2 +#13'Items.Strings'#1#6#6'Droite'#6#6'Gauche'#6#7'Centr'#195#169#0#8'TabOrder' +#2#0#0#0#11'TRadioGroup'#19'RadioGroupevertical'#22'AnchorSideLeft.Control'#7 +#9'GroupBox1'#21'AnchorSideTop.Control'#7#21'radiogroupehorizontal'#18'Ancho' +'rSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#3#138#0#3'Top'#3#146#0 +#5'Width'#2'i'#8'AutoFill'#9#18'BorderSpacing.Left'#2#10#17'BorderSpacing.To' +'p'#2#10#7'Caption'#6#9'Verticale'#28'ChildSizing.LeftRightSpacing'#2#6#28'C' +'hildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crs' +'HomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousCh' +'ildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSi' +'zing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLe' +'ftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeig' +'ht'#2'q'#11'ClientWidth'#2'e'#9'ItemIndex'#2#2#13'Items.Strings'#1#6#4'Haut' +#6#3'Bas'#6#7'Centr'#195#169#0#8'TabOrder'#2#1#0#0#0#9'TGroupBox'#9'GroupBox' +'2'#21'AnchorSideTop.Control'#7#9'GroupBox1'#18'AnchorSideTop.Side'#7#9'asrB' +'ottom'#4'Left'#2#7#6'Height'#2'E'#3'Top'#3'M'#1#5'Width'#3#153#0#17'BorderS' +'pacing.Top'#2#10#7'Caption'#6#16'Nombre de copies'#12'ClientHeight'#2','#11 +'ClientWidth'#3#149#0#8'TabOrder'#2#1#0#6'TLabel'#6'Label1'#22'AnchorSideLef' +'t.Control'#7#9'GroupBox2'#21'AnchorSideTop.Control'#7#9'GroupBox2'#18'Ancho' +'rSideTop.Side'#7#9'asrCenter'#4'Left'#2#10#6'Height'#2#20#3'Top'#2#12#5'Wid' +'th'#2':'#18'BorderSpacing.Left'#2#10#7'Caption'#6#7'Nombre:'#11'ParentColor' +#8#0#0#9'TSpinEdit'#16'Spinnombrecopies'#22'AnchorSideLeft.Control'#7#6'Labe' +'l1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'La' +'bel1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'N'#6'Height'#2#28#3'T' +'op'#2#8#5'Width'#2'0'#18'BorderSpacing.Left'#2#10#8'MinValue'#2#1#8'TabOrde' +'r'#2#0#5'Value'#2#1#0#0#0#9'TGroupBox'#9'GroupBox3'#22'AnchorSideLeft.Contr' +'ol'#7#9'GroupBox1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.' +'Control'#7#5'Owner'#4'Left'#3#202#0#6'Height'#2'j'#3'Top'#2#10#5'Width'#3 +#211#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#24 +'Taille (en % de la page)'#12'ClientHeight'#2'Q'#11'ClientWidth'#3#207#0#8'T' +'abOrder'#2#2#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.Control'#7#9'GroupBox3' +#21'AnchorSideTop.Control'#7#9'GroupBox3'#4'Left'#2#10#6'Height'#2#20#3'Top' +#2#10#5'Width'#2'p'#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7 +'Caption'#6#15'Horizontalement'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#22 +'AnchorSideLeft.Control'#7#9'GroupBox3'#21'AnchorSideTop.Control'#7#6'Label2' +#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#2 +'('#5'Width'#2'['#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'C' +'aption'#6#13'Verticalement'#11'ParentColor'#8#0#0#9'TSpinEdit'#25'spinpourc' +'entagehorizontal'#22'AnchorSideLeft.Control'#7#6'Label2'#19'AnchorSideLeft.' +'Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSideTop' +'.Side'#7#9'asrCenter'#4'Left'#3#132#0#6'Height'#2#28#3'Top'#2#6#5'Width'#2 +'9'#18'BorderSpacing.Left'#2#10#8'TabOrder'#2#0#5'Value'#2'd'#0#0#9'TSpinEdi' +'t'#23'spinpourcentagevertical'#22'AnchorSideLeft.Control'#7#6'Label3'#19'An' +'chorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Label3'#18 +'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'o'#6'Height'#2#28#3'Top'#2'$'#5 ,'Width'#2'9'#18'BorderSpacing.Left'#2#10#8'TabOrder'#2#1#5'Value'#2'd'#0#0#0 +#11'TRadioGroup'#21'RadioGrouporientation'#22'AnchorSideLeft.Control'#7#9'Gr' +'oupBox1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7 +#9'GroupBox3'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#202#0#6'Height' +#2'V'#3'Top'#2'~'#5'Width'#3#209#0#8'AutoFill'#9#18'BorderSpacing.Left'#2#10 +#17'BorderSpacing.Top'#2#10#7'Caption'#6#11'Orientation'#28'ChildSizing.Left' +'RightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.Enlar' +'geHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical' +#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsSca' +'leChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizin' +'g.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLin' +'e'#2#1#12'ClientHeight'#2'='#11'ClientWidth'#3#205#0#9'ItemIndex'#2#1#13'It' +'ems.Strings'#1#6#8'Portrait'#6#7'Paysage'#0#8'TabOrder'#2#3#0#0#7'TBitBtn'#7 +'BitBtn1'#22'AnchorSideLeft.Control'#7#9'GroupBox1'#19'AnchorSideLeft.Side'#7 +#9'asrBottom'#21'AnchorSideTop.Control'#7#21'RadioGrouporientation'#18'Ancho' +'rSideTop.Side'#7#9'asrBottom'#4'Left'#3#202#0#6'Height'#3#180#0#3'Top'#3#222 +#0#5'Width'#3#150#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7 +'Caption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#7'OnCl' +'ick'#7#12'BitBtn1Click'#8'TabOrder'#2#4#0#0#7'TBitBtn'#7'BitBtn2'#22'Anchor' +'SideLeft.Control'#7#7'BitBtn1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'An' +'chorSideTop.Control'#7#7'BitBtn1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'L' +'eft'#3'j'#1#6'Height'#3#180#0#3'Top'#3#222#0#5'Width'#2'P'#18'BorderSpacing' +'.Left'#2#10#6'Cancel'#9#7'Caption'#6#7'Annuler'#4'Kind'#7#8'bkCancel'#11'Mo' +'dalResult'#2#2#8'TabOrder'#2#5#0#0#0 ]); dozzaqueux-3.51/dozzzaqueux.lrs0000750000175000017500000000405013147330070017205 0ustar georgeskgeorgeskLazarusResources.Add('MAINICON','ICO',[ #0#0#1#0#1#0' '#16#0#0#0#0#0#232#2#0#0#22#0#0#0'('#0#0#0' '#0#0#0'@'#0#0#0#1 +#0#4#0#0#0#0#0#128#2#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0 +#128#0#0#0#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0#128#128#128#0#192#192 +#192#0#0#0#255#0#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255 +#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#153#153#153#144#0#0#0#0 +#0#0#0#0#0#0#0#0#153#153#153#144#0#0#0#0#0#0#0#0#0#0#0#0#153#153#153#144#0#0 +#0#0#0#0#0#0#0#0#0#0#153#153#153#144#0#0#0#0#0#0#0#0#0#0#0#0#153#153#153#144 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10#160#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10#160#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#10#160#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10#160#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#10#160#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10#160#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#10#160#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10#160#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#10#160#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10#160#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#10#160#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10#160#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10#160 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#10#160#0#0#0#0#0#0#0#0#255#0#31#255#255#0#31#255 +#255#0#31#255#255#0#31#255#255#0#31#255#255#0#31#255#255'?'#159#255#255'?' +#159#255#255'?'#223#255#255#255#255#255#255#255#255#255#255#255#255#255#255 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#249#191#255 +#255#240'?'#255#255#240#191#255#255#240#255#255#255#240#255#255#255#240#255 +#255#255#240#255#255#255#240#255#255#255#240#255#255#255#240#255#255#255#240 +#255#255#255#240#255#255#255#240#255#255#255#240#255#255#255#240#255#255#255 +#240#255#255 ]); dozzaqueux-3.51/unit22.pas0000750000175000017500000000465413147330070015714 0ustar georgeskgeorgeskunit Unit22; {$mode objfpc}{$H+} interface uses Classes, SysUtils,FileUtil, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, Spin, Buttons,UChaines,UnitScaleFont; type { Tsaisietypedonnee } Tsaisietypedonnee = class(TForm) BitBtn1: TBitBtn; CheckBoxrepresente: TCheckBox; ColorDialog1: TColorDialog; Edit_nom_e: TEdit; Label1: TLabel; Label15: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; SpeedButtoncouleur_e: TPanel; RadioGrouptype_e: TRadioGroup; RadioGroupjoindre_e: TRadioGroup; RadioGroupechelle_e: TRadioGroup; SpinEditepaisseur_e: TSpinEdit; SpinEdittaille_e: TSpinEdit; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure SpeedButtoncouleur_eClick(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisietypedonnee: Tsaisietypedonnee; ma_couleur:tcolor; implementation { Tsaisietypedonnee } procedure Tsaisietypedonnee.SpeedButtoncouleur_eClick(Sender: TObject); begin if colordialog1.Execute then ma_couleur:=colordialog1.Color; saisietypedonnee.SpeedButtoncouleur_e.Color:= ma_couleur; end; procedure Tsaisietypedonnee.FormCreate(Sender: TObject); begin encreation:=true; ma_couleur:=clblue; SpeedButtoncouleur_e.Color:=ma_couleur; Caption := rsTypeDeDonnE; Label15.Caption := rsTailleDesPoi ; Label2.Caption := rsEpaisseurTra2 ; Label3.Caption := rsCouleur2 ; Label4.Caption := rsNom ; RadioGroupechelle_e.Caption := rsEchelle2 ; // RadioGroupechelle_e.Items.Clear; RadioGroupechelle_e.Items[0]:=(rsGauche); RadioGroupechelle_e.Items[1]:=(rsDroite); RadioGroupjoindre_e.Caption := rsJoindreLesPo ; // RadioGroupjoindre_e.Items.Clear; RadioGroupjoindre_e.Items[0]:=(rsNon2); RadioGroupjoindre_e.Items[1]:=(rsOui2); RadioGrouptype_e.Caption := rsReprSentEPar ; // RadioGrouptype_e.Items.Clear; RadioGrouptype_e.Items[0]:=(rsDisque); RadioGrouptype_e.Items[1]:=(rsCroixX); RadioGrouptype_e.Items[2]:=(rsCercle); RadioGrouptype_e.Items[3]:=(rsCroix); CheckBoxrepresente.Caption := rsNePasReprSen ; BitBtn1.Caption := rsOK; end; procedure Tsaisietypedonnee.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit22.lrs} end. dozzaqueux-3.51/unit5.lfm0000750000175000017500000001314613147330070015624 0ustar georgeskgeorgeskobject Form5: TForm5 Left = 586 Height = 438 Top = 220 Width = 967 ActiveControl = BitBtn1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Nombre de points de calcul' ClientHeight = 438 ClientWidth = 967 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 581 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Les valeurs des concentrations sont calculées pour des valeurs discrétes du volume.' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 40 Width = 461 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'On appelle "pas" l''écart entre deux valeurs successives du volume.' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] ParentColor = False ParentFont = False end object RadioGroup1: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrBottom Left = 10 Height = 122 Top = 70 Width = 334 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Choix du pas' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 100 ClientWidth = 330 Font.Color = clBlue Font.Style = [fsBold] ItemIndex = 0 Items.Strings = ( 'Pas constant' 'Pas adaptatif' ) OnClick = RadioGroup1Click ParentFont = False TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 795 Height = 428 Top = 10 Width = 162 Anchors = [akTop, akRight, akBottom] BorderSpacing.Top = 10 BorderSpacing.Right = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 OnClick = BitBtn1Click TabOrder = 1 end object Label4: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = RadioGroup1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 202 Width = 158 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Nombre de points: N=' Font.Style = [fsBold] ParentColor = False ParentFont = False end object SpinEdit1: TSpinEdit AnchorSideLeft.Control = Label4 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label4 AnchorSideTop.Side = asrCenter Left = 178 Height = 26 Top = 199 Width = 66 AutoSize = False BorderSpacing.Left = 10 Enabled = False Font.Color = clBlue Font.Style = [fsBold] MaxValue = 1000 MinValue = 2 ParentFont = False TabOrder = 2 Value = 100 end object Label2: TLabel AnchorSideLeft.Control = Label4 AnchorSideTop.Control = Label4 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 232 Width = 401 BorderSpacing.Top = 10 Caption = 'La variation maximale du logarithme d''une concentration' Font.Color = clBlack Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label5: TLabel AnchorSideLeft.Control = Label2 AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 262 Width = 354 BorderSpacing.Top = 10 Caption = 'entre deux volumes successifs ne doit pas excéder:' Font.Color = clBlack Font.Style = [fsBold] ParentColor = False ParentFont = False end object Editvarmax: TEdit AnchorSideLeft.Control = Label5 AnchorSideTop.Control = Label5 AnchorSideTop.Side = asrBottom Left = 10 Height = 28 Top = 292 Width = 80 BorderSpacing.Top = 10 OnKeyPress = EditvarmaxKeyPress TabOrder = 3 end object Label6: TLabel AnchorSideLeft.Control = Editvarmax AnchorSideTop.Control = Editvarmax AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 330 Width = 270 BorderSpacing.Top = 10 Caption = 'Mais le pas ne peut devenir inférieur à:' Font.Color = clBlack Font.Style = [fsBold] ParentColor = False ParentFont = False end object Editpasmin: TEdit AnchorSideLeft.Control = Label6 AnchorSideTop.Control = Label6 AnchorSideTop.Side = asrBottom Left = 10 Height = 28 Top = 360 Width = 80 BorderSpacing.Top = 10 OnKeyPress = EditpasminKeyPress TabOrder = 4 end object Label7: TLabel AnchorSideLeft.Control = Editpasmin AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Editpasmin AnchorSideTop.Side = asrCenter Left = 100 Height = 20 Top = 364 Width = 20 BorderSpacing.Left = 10 Caption = 'mL' ParentColor = False end end dozzaqueux-3.51/unit27.pas0000750000175000017500000000361713147330070015717 0ustar georgeskgeorgeskunit Unit27; {$mode objfpc}{$H+} interface uses Classes, SysUtils,FileUtil, LResources, Forms, Controls, Graphics, Dialogs, Buttons, CheckLst,UChaines,UnitScaleFont; type { TForm27 } TForm27 = class(TForm) BitBtn1: TBitBtn; CheckListBoxSimulations: TCheckListBox; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var Form27: TForm27; implementation uses Unit1; { TForm27 } procedure TForm27.BitBtn1Click(Sender: TObject); var i:integer; susu:boolean; begin for i:=nombre_simulations-1 downto 1 do stockage_simulation_superposee[i-1]:= checklistboxsimulations.Checked[nombre_simulations-i-1]; susu:=false; for i:=1 to nombre_simulations-1 do susu:=susu or stockage_simulation_superposee[i-1]; mode_superposition:=susu; form1.CheckBoxsuperposition.Checked:=susu; //form1.dessinegraphe; // form1.mcPaint(sender); end; procedure TForm27.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsListeDesSimu ; SpeedButton1.Caption := rsToutCocher ; SpeedButton2.Caption := rsToutDCocher ; BitBtn1.Caption := rsOK; end; procedure TForm27.FormShow(Sender: TObject); begin if encreation then begin scalefont(self); encreation:=false; end; end; procedure TForm27.SpeedButton1Click(Sender: TObject); var i:integer; begin for i:=1 to nombre_simulations-1 do checklistboxsimulations.Checked[i-1]:=true; end; procedure TForm27.SpeedButton2Click(Sender: TObject); var i:integer; begin for i:=1 to nombre_simulations-1 do checklistboxsimulations.Checked[i-1]:=false; end; initialization {$I unit27.lrs} end. dozzaqueux-3.51/unit27.lrs0000750000175000017500000000504613147330070015732 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm27','FORMDATA',[ 'TPF0'#7'TForm27'#6'Form27'#4'Left'#3#218#2#6'Height'#3#133#1#3'Top'#3#203#0#5 +'Width'#3#17#2#13'ActiveControl'#7#7'BitBtn1'#11'BorderIcons'#11#12'biSystem' +'Menu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6'#Liste de' +'s simulations superposables'#12'ClientHeight'#3#133#1#11'ClientWidth'#3#17#2 +#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2' +'.2.0'#0#12'TSpeedButton'#12'SpeedButton1'#22'AnchorSideLeft.Control'#7#5'Ow' +'ner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2'"'#3'Top' +#2#10#5'Width'#2'}'#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7 +'Caption'#6#11'Tout cocher'#10'Font.Color'#7#7'clGreen'#10'Font.Style'#11#6 +'fsBold'#0#7'OnClick'#7#17'SpeedButton1Click'#10'ParentFont'#8#0#0#12'TSpeed' +'Button'#12'SpeedButton2'#22'AnchorSideLeft.Control'#7#12'SpeedButton1'#19'A' +'nchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#12'SpeedButt' +'on1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#145#0#6'Height'#2'"'#3 +'Top'#2#10#5'Width'#2'o'#18'BorderSpacing.Left'#2#10#7'Caption'#6#14'Tout d' +#195#169'cocher'#10'Font.Color'#7#8'clPurple'#10'Font.Style'#11#6'fsBold'#0#7 +'OnClick'#7#17'SpeedButton2Click'#10'ParentFont'#8#0#0#13'TCheckListBox'#23 +'CheckListBoxSimulations'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSid' +'eTop.Control'#7#12'SpeedButton1'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'A' +'nchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom' +#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBo' +'ttom'#4'Left'#2#10#6'Height'#3'E'#1#3'Top'#2'6'#5'Width'#3#253#1#7'Anchors' +#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left'#2#10 +#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#20'BorderSpacing.Bo' +'ttom'#2#10#10'ItemHeight'#2#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn1'#22 +'AnchorSideLeft.Control'#7#12'SpeedButton2'#19'AnchorSideLeft.Side'#7#9'asrB' +'ottom'#21'AnchorSideTop.Control'#7#12'SpeedButton1'#18'AnchorSideTop.Side'#7 +#9'asrCenter'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side' +#7#9'asrBottom'#4'Left'#3#10#1#6'Height'#2'$'#3'Top'#2#9#5'Width'#3#253#0#7 +'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#10#19 +'BorderSpacing.Right'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK' +#11'ModalResult'#2#1#7'OnClick'#7#12'BitBtn1Click'#8'TabOrder'#2#1#0#0#0 ]); dozzaqueux-3.51/monpostscript.pas0000750000175000017500000011161413147330070017510 0ustar georgeskgeorgeskunit MonPostscript; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,LCLProc,Math,PostScriptCanvas; type TMyPostscript=object Xmin,Xmax,Ymin1,Ymax1,Ymin2,Ymax2,GraduationX, GraduationY1,GraduationY2:extended; Largeur,Hauteur,BordureBasse,BordureHaute, BordureGauche,BordureDroite,EpaisseurGrille,PuissanceDeDixX, PuissancedeDixY1,PuissancedeDixY2,epaisseurcadre,epaisseurgraduation:integer; longueurgraduationX,longueurgraduationY1,longueurgraduationY2:extended; PasGrillex,PasGrilley1,PasGrilley2:extended; couleurfond,couleurcadre,couleurgraduation, couleurgrille1,couleurgrille2:tcolor; cadre,gradue,grille1,grille2,fond,borduresverticalessymetriques,echelle_g,echelle_d:boolean; titre,labelx,labely1,labely2,unitex,unitey1,unitey2:string; fontegraduation:tfont; fontetitre:tfont; procedure background(couleur:tcolor); function LimitesEtAxes(_xmin,_xmax,_ymin1,_ymax1,_ymin2,_ymax2:extended; _Largeur,_Hauteur:integer; _titre:string; _fontetitre:tfont; _Fond:boolean; _CouleurFond:tcolor; _Cadre:boolean; _EpaisseurCadre:integer; _CouleurCadre:tcolor; _Gradue:boolean; _EpaisseurGraduation,_LongueurGraduation:integer; _couleurgraduation:tcolor; _fontegraduation:tfont; _Grille1,_Grille2:boolean; _EpaisseurGrille:integer; _CouleurGrille1,_CouleurGrille2:tcolor; _labelx,_labely1,_labely2,_unitex,_unitey1,_unitey2:string; _borduresverticalessymetriques, _echelle_g,_echelle_d:boolean; b_g,b_d,b_b,b_h:integer):boolean; function invconvert(var xi,yi:integer; x,y:extended;gauche:boolean):boolean; function Convert(xi,yi:integer; var x,y:extended;gauche:boolean):boolean; function CroixX(x,y:extended; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function CroixP(x,y:extended; demi_longueur,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function Carreau(x,y:extended; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function Trait(x1,y1,x2,y2:extended; epaisseur:integer; couleur:tcolor; sty:tpenstyle; penmod:tpenmode;gauche:boolean):boolean; function Point(x,y:extended; rayon:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function cercle(x,y:extended; rayon,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; function disque(x,y:extended; rayon:extended; couleurbord,couleurf:tcolor;transparent:boolean;gauche:boolean): boolean; function disque2(x,y:extended; rayon:integer; couleurbord,couleurf:tcolor;gauche:boolean): boolean; function arcdecercle(x,y:extended; rayonreel:extended; epaisseur:integer; theta1,theta2:extended; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; procedure traceconique(theta0,theta1,theta2,fx,fy,excentricite,parametre:extended; couleur:tcolor;gauche:boolean); procedure arronditalagrille(var x1,y1:extended;gauche:boolean); procedure ecrire(x,y:extended; s:string;gauche:boolean; police:tfont); procedure graduation(xi,xa:extended; var xci,xca:extended; var graduation:extended; var PuissanceDeDix:integer; var nombregraduation:integer); end; procedure echange(var a,b:extended); procedure echange_entiers(var a,b:integer); function partieentiere(x:extended):extended; function dix_pp(p:longint):extended; implementation uses Unit1; procedure TMyPostscript.graduation(xi,xa:extended; var xci,xca:extended; var graduation:extended; var PuissanceDeDix:integer; var nombregraduation:integer); var n,gm,g,d,logd,tht:extended; p,i,xpa,xpi:longint; res:array[1..12] of extended; nb:longint; begin if xa=0) then p :=longint(trunc(logd)) else p:=longint(trunc(logd)-1); PuissanceDeDix:=p; if xa>=0 then begin gm:=trunc(xa/dix_pp(p-1))*dix_pp(p-1); if (gm>=xa) then xpa:=trunc(xa/dix_pp(p-1)) else xpa:=trunc(xa/dix_pp(p-1))+1; end; if xa<0 then begin gm:=trunc(xa/dix_pp(p-1))*dix_pp(p-1); if (gm>=xa) then xpa:=trunc(xa/dix_pp(p-1)) else xpa:=trunc(xa/dix_pp(p-1)); end; if xi>=0 then begin gm:=trunc(xi/dix_pp(p-1))*dix_pp(p-1); if (gm<=xi) then xpi:=trunc(xi/dix_pp(p-1)) else xpi:=trunc(xi/dix_pp(p-1))-1; end; if xi<0 then begin gm:=trunc(xi/dix_pp(p-1))*dix_pp(p-1); if (gm<=xi) then xpi:=trunc(xi/dix_pp(p-1)) else xpi:=trunc(xi/dix_pp(p-1))-1; end; case (xpa-xpi ) of 1: g:=0.1; 2: g:=0.2; 3,4,5: g:=0.5; 6,7,8,9,10: g:=1; else g:=trunc((xpa-xpi-1)/10+0.001)+1; end; graduation:=g*dix_pp(p-1); {xca:=xpa*dix_pp(p-1); nombregraduation:=trunc((xpa-xpi)/g); xci:=xca-graduation*nombregraduation; if xci>xi then begin xci:=xci-graduation; inc(nombregraduation); end; } xci:=xpi*dix_pp(p-1); nombregraduation:=trunc((xpa-xpi)/g); xca:=xci+graduation*nombregraduation; if xca1) then begin inter:=10; for i:=1 to p-1 do inter:=inter*10; result:=inter; end else if (p=-1) then begin result:=1/10; end; end; function partieentiere(x:extended):extended; begin if x>=0 then begin partieentiere:=int(x); exit; end; if frac(x)=0 then begin partieentiere:=x; exit; end; {cas ou x est <0 et non entier} partieentiere:=int(x)-1; end; function TMyPostscript.disque2(x,y:extended; rayon:integer; couleurbord,couleurf:tcolor;gauche:boolean): boolean; var x1,y1,r1x,r1y:integer; ymax,ymin,pasgrilley:extended; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin disque2:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; if rayon=0 then exit; old_pen_color:=hpscanvas.pen.color; old_pen_style:=hpscanvas.pen.style; old_pen_width:=hpscanvas.pen.width; old_pen_mode:=hpscanvas.pen.mode; old_brush_style:=hpscanvas.brush.style; old_brush_color:=hpscanvas.brush.color; hpscanvas.pen.color:=couleurbord; hpscanvas.pen.style:=pssolid; hpscanvas.pen.width:=1; hpscanvas.pen.mode:=pmcopy; disque2:=true; hpscanvas.brush.style:=bssolid; hpscanvas.brush.color:=couleurfond; hpscanvas.ellipse(x1-rayon,y1-rayon,x1+rayon, y1+rayon); hpscanvas.brush.color:=clwhite; hpscanvas.pen.color:=old_pen_color; hpscanvas.pen.style:=old_pen_style; hpscanvas.pen.width:=old_pen_width; hpscanvas.pen.mode:=old_pen_mode; hpscanvas.brush.style:=old_brush_style; hpscanvas.brush.color:=old_brush_color; end; function TMyPostscript.Carreau(x,y:extended; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:extended; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin carreau:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=hpscanvas.pen.color; old_pen_style:=hpscanvas.pen.style; old_pen_width:=hpscanvas.pen.width; old_pen_mode:=hpscanvas.pen.mode; old_brush_style:=hpscanvas.brush.style; hpscanvas.pen.width:=epaisseur; hpscanvas.pen.mode:=penmod; hpscanvas.pen.style:=pssolid; hpscanvas.pen.color:=couleur; hpscanvas.moveto(x1,y1+demi_diagonale); hpscanvas.lineto(x1+demi_diagonale,y1); hpscanvas.lineto(x1,y1-demi_diagonale); hpscanvas.lineto(x1-demi_diagonale,y1); hpscanvas.lineto(x1,y1+demi_diagonale); carreau:=true; hpscanvas.pen.color:=old_pen_color; hpscanvas.pen.style:=old_pen_style; hpscanvas.pen.width:=old_pen_width; hpscanvas.pen.mode:=old_pen_mode; hpscanvas.brush.style:=old_brush_style; end; procedure echange_entiers(var a,b:integer); var c:integer; begin c:=a; a:=b; b:=c; end; procedure echange(var a,b:extended); var c:extended; begin c:=a; a:=b; b:=c; end; procedure TMyPostscript.traceconique(theta0,theta1,theta2,fx,fy,excentricite,parametre:extended; couleur:tcolor;gauche:boolean); var pas,theta,r,ract,thetaact,nx,ny,ttai:extended; nombrepas,i:integer; ymax,ymin,pasgrilley:extended; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; nombrepas:=1000; pas:=(theta2-theta1)/nombrepas; thetaact:=theta1; ract:=parametre/(1+excentricite*cos(thetaact-theta0)); for i:=1 to nombrepas do begin theta:=theta1+i*pas; r:=parametre/(1+excentricite*cos(theta-theta0)); if ((r>0) and (ract>0)) then trait(fx+ract*cos(thetaact),fy+ract*sin(thetaact),fx+r*cos(theta),fy+r*sin(theta), 1,couleur,pssolid,pmcopy,gauche); thetaact:=theta; ract:=r; end; end; function TMyPostscript.arcdecercle(x,y:extended; rayonreel:extended; epaisseur:integer; theta1,theta2:extended; couleur:tcolor; penmod:tpenmode;gauche:boolean): boolean; var x1,y1,rax,ray:integer; ymax,ymin,pasgrilley:extended; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; invconvert(x1,y1,x,y,gauche); rax:= trunc(rayonreel/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); ray:= trunc(rayonreel/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if rayonreel=0 then exit; old_pen_color:=hpscanvas.pen.color; old_pen_style:=hpscanvas.pen.style; old_pen_width:=hpscanvas.pen.width; old_pen_mode:=hpscanvas.pen.mode; old_brush_style:=hpscanvas.brush.style; old_brush_color:=hpscanvas.brush.color; hpscanvas.pen.color:=couleur; hpscanvas.pen.style:=pssolid; hpscanvas.pen.width:=epaisseur; hpscanvas.pen.mode:=penmod; arcdecercle:=true; hpscanvas.brush.style:=bsclear; hpscanvas.arc(x1-rax,y1-ray,x1+rax,y1+ray,trunc(theta1/Pi*180*16),trunc((theta2-theta1)/Pi*180*16)); arcdecercle:=true; hpscanvas.pen.color:=old_pen_color; hpscanvas.pen.style:=old_pen_style; hpscanvas.pen.width:=old_pen_width; hpscanvas.pen.mode:=old_pen_mode; hpscanvas.brush.style:=old_brush_style; hpscanvas.brush.color:=old_brush_color; end; function TMyPostscript.Point(x,y:extended; rayon:integer; couleur:tcolor ; penmod:tpenmode;gauche:boolean): boolean; var x1,y1:integer; ymax,ymin,pasgrilley:extended; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin point:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; if rayon=0 then hpscanvas.pixels[x1,y1]:=couleur; if rayon=0 then exit; old_pen_color:=hpscanvas.pen.color; old_pen_style:=hpscanvas.pen.style; old_pen_width:=hpscanvas.pen.width; old_pen_mode:=hpscanvas.pen.mode; old_brush_style:=hpscanvas.brush.style; hpscanvas.brush.style:=bssolid; hpscanvas.brush.Color:=couleur; hpscanvas.ellipse(x1-rayon,y1-rayon,x1+rayon,y1+rayon); hpscanvas.pen.color:=old_pen_color; hpscanvas.pen.style:=old_pen_style; hpscanvas.pen.width:=old_pen_width; hpscanvas.pen.mode:=old_pen_mode; hpscanvas.brush.style:=old_brush_style; end; function TMyPostscript.cercle(x,y:extended; rayon,epaisseur:integer; couleur:tcolor ; penmod:tpenmode;gauche:boolean): boolean; var x1,y1:integer; ymax,ymin,pasgrilley:extended; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin cercle:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=hpscanvas.pen.color; old_pen_style:=hpscanvas.pen.style; old_pen_width:=hpscanvas.pen.width; old_pen_mode:=hpscanvas.pen.mode; old_brush_style:=hpscanvas.brush.style; hpscanvas.pen.color:=couleur; hpscanvas.pen.style:=pssolid; hpscanvas.pen.width:=epaisseur; hpscanvas.pen.mode:=penmod; cercle:=true; hpscanvas.brush.style:=bsclear; if rayon=0 then exit; hpscanvas.arc(x1-rayon,y1-rayon,x1+rayon,y1+rayon,x1+rayon, y1+rayon,x1+rayon,y1+rayon); hpscanvas.pen.color:=old_pen_color; hpscanvas.pen.style:=old_pen_style; hpscanvas.pen.width:=old_pen_width; hpscanvas.pen.mode:=old_pen_mode; hpscanvas.brush.style:=old_brush_style; end; function TMyPostscript.disque(x,y:extended; rayon:extended; couleurbord,couleurf:tcolor;transparent:boolean;gauche:boolean): boolean; var x1,y1,r1x,r1y:integer; ymax,ymin,pasgrilley:extended; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; old_brush_color:tcolor; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin disque:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; r1x:= trunc(rayon/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); r1y:=trunc((rayon)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if rayon=0 then exit; old_pen_color:=hpscanvas.pen.color; old_pen_style:=hpscanvas.pen.style; old_pen_width:=hpscanvas.pen.width; old_pen_mode:=hpscanvas.pen.mode; old_brush_style:=hpscanvas.brush.style; old_brush_color:=hpscanvas.brush.color; hpscanvas.pen.color:=couleurbord; hpscanvas.pen.style:=pssolid; hpscanvas.pen.width:=1; hpscanvas.pen.mode:=pmcopy; disque:=true; hpscanvas.brush.color:=couleurf; if not(transparent) then hpscanvas.brush.style:=bssolid else hpscanvas.brush.style:=bsclear; hpscanvas.ellipse(x1-r1x,y1-r1y,x1+r1x, y1+r1y); hpscanvas.brush.color:=clwhite; hpscanvas.pen.color:=old_pen_color; hpscanvas.pen.style:=old_pen_style; hpscanvas.pen.width:=old_pen_width; hpscanvas.pen.mode:=old_pen_mode; hpscanvas.brush.style:=old_brush_style; hpscanvas.brush.color:=old_brush_color; end; function TMyPostscript.Trait(x1,y1,x2,y2:extended; epaisseur:integer; couleur:tcolor;sty:tpenstyle; penmod:tpenmode;gauche:boolean):boolean; var ymax,ymin,pasgrilley:extended; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; old_pen_color:=hpscanvas.pen.color; old_pen_style:=hpscanvas.pen.style; old_pen_width:=hpscanvas.pen.width; old_pen_mode:=hpscanvas.pen.mode; old_brush_style:=hpscanvas.brush.style; hpscanvas.pen.width:=epaisseur; hpscanvas.pen.color:=couleur; hpscanvas.pen.Style:=sty; hpscanvas.pen.mode:=penmod; hpscanvas.moveto(trunc((x1-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche,trunc((ymax-y1)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute); hpscanvas.lineto(trunc((x2-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche,trunc((ymax-y2)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute); hpscanvas.pen.color:=old_pen_color; hpscanvas.pen.style:=old_pen_style; hpscanvas.pen.width:=old_pen_width; hpscanvas.pen.mode:=old_pen_mode; hpscanvas.brush.style:=old_brush_style; end; function TMyPostscript.CroixP(x,y:extended; demi_longueur,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:extended; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin croixp:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=hpscanvas.pen.color; old_pen_style:=hpscanvas.pen.style; old_pen_width:=hpscanvas.pen.width; old_pen_mode:=hpscanvas.pen.mode; old_brush_style:=hpscanvas.brush.style; hpscanvas.pen.width:=epaisseur; hpscanvas.pen.mode:=penmod; hpscanvas.pen.style:=pssolid; hpscanvas.pen.color:=couleur; hpscanvas.moveto(x1,y1); hpscanvas.lineto(x1,y1+demi_longueur); hpscanvas.moveto(x1,y1); hpscanvas.lineto(x1,y1-demi_longueur); hpscanvas.moveto(x1,y1); hpscanvas.lineto(x1+demi_longueur,y1); hpscanvas.moveto(x1,y1); hpscanvas.lineto(x1-demi_longueur,y1); croixp:=true; hpscanvas.pen.color:=old_pen_color; hpscanvas.pen.style:=old_pen_style; hpscanvas.pen.width:=old_pen_width; hpscanvas.pen.mode:=old_pen_mode; hpscanvas.brush.style:=old_brush_style; end; procedure TMyPostscript.arronditalagrille(var x1,y1:extended;gauche:boolean); var newx,newy,divx,divy,fracx,fracy:extended; ymax,ymin,pasgrilley:extended; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; divx:=partieentiere((x1-xmin)/pasgrillex); divy:=partieentiere((y1-ymin)/pasgrilley); fracx:=x1-xmin-divx*pasgrillex; fracy:=y1-ymin-divy*pasgrilley; if fracx>0.5*pasgrillex then newx:=(divx+1)*pasgrillex else newx:=divx*pasgrillex; if fracy>0.5*pasgrilley then newy:=(divy+1)*pasgrilley else newy:=divy*pasgrilley; x1:=newx; y1:=newy; end; procedure TMyPostscript.ecrire(x,y:extended; s:string;gauche:boolean; police:tfont); var xi,yi:integer; begin invconvert(xi,yi,x,y,gauche); hpscanvas.Font:=police; hpscanvas.textout(xi,yi,s); end; procedure TMyPostscript.background(couleur:tcolor); begin hpscanvas.Brush.Color:=couleur; hpscanvas.Rectangle(borduregauche,bordurehaute, largeur-borduredroite,hauteur-bordurebasse); end; function TMyPostscript.LimitesEtAxes(_xmin,_xmax,_ymin1,_ymax1,_ymin2,_ymax2:extended; _Largeur,_Hauteur:integer; _titre:string; _fontetitre:tfont; _Fond:boolean; _CouleurFond:tcolor; _Cadre:boolean; _EpaisseurCadre:integer; _CouleurCadre:tcolor; _Gradue:boolean; _EpaisseurGraduation,_LongueurGraduation:integer; _couleurgraduation:tcolor; _fontegraduation:tfont; _Grille1,_Grille2:boolean; _EpaisseurGrille:integer; _CouleurGrille1,_CouleurGrille2:tcolor; _labelx,_labely1,_labely2,_unitex,_unitey1,_unitey2:string; _borduresverticalessymetriques, _echelle_g,_echelle_d:boolean; b_g,b_d,b_b,b_h:integer):boolean; var xi,xa,yi1,yi2,ya1,ya2,gi,ga:extended; t1,t2,i:integer; dixx,dixy1,dixy2,tt,aff:string; nbgx,nbgy1,nbgy2:integer; begin fond:=_fond; echelle_g:=_echelle_g; echelle_d:=_echelle_d; borduresverticalessymetriques:=_borduresverticalessymetriques; labelx:=_labelx; labely1:=_labely1; labely2:=_labely2; unitex:=_unitex; unitey1:=_unitey1; unitey2:=_unitey2; fontetitre:=_fontetitre; largeur:=_largeur; hauteur:=_hauteur; titre:=_titre; couleurfond:=_couleurfond; cadre:=_cadre; epaisseurcadre:=_epaisseurcadre; couleurcadre:=_couleurcadre; gradue:=_gradue; epaisseurgraduation:=_epaisseurgraduation; fontegraduation:=_fontegraduation; couleurgraduation:=_couleurgraduation; grille1:=_grille1; grille2:=_grille2; epaisseurgrille:=_epaisseurgrille; couleurgrille1:=_couleurgrille1; couleurgrille2:=_couleurgrille2; if (echelle_g and ( (_ymin1=_ymax1) or (_xmax=_xmin))) then begin LimitesEtAxes:=false; exit; end; if (echelle_d and ( (_ymin2=_ymax2) or (_xmax=_xmin))) then begin LimitesEtAxes:=false; exit; end; LimitesEtAxes:=true; if (_xmin>_xmax ) then begin xmin:=_xmax; xmax:=_xmin; end else begin xmin:=_xmin; xmax:=_xmax; end; if (_ymin1>_ymax1 ) then begin ymin1:=_ymax1; ymax1:=_ymin1; end else begin ymin1:=_ymin1; ymax1:=_ymax1; end; if (_ymin2>_ymax2 ) then begin ymin2:=_ymax2; ymax2:=_ymin2; end else begin ymin2:=_ymin2; ymax2:=_ymax2; end; xi:=xmin; yi1:=ymin1; yi2:=ymin2; xa:=xmax; ya1:=ymax1; ya2:=ymax2; graduation(xi,xa,xmin,xmax,graduationx,puissancededixx,nbgx); if echelle_g then graduation(yi1,ya1,ymin1,ymax1,graduationY1,puissancededixy1,nbgy1); if echelle_d then graduation(yi2,ya2,ymin2,ymax2,graduationY2,puissancededixy2,nbgy2); str(-puissancededixx+1,dixx); if echelle_g then str(-puissancededixy1+1,dixy1) else dixy1:='0'; if echelle_d then str(-puissancededixy2+1,dixy2)else dixy2:='0'; {determination taille bordure haute} hpscanvas.font:=fontetitre; if (titre<>'') then begin t1:=trunc(hpscanvas.textheight(titre))+10; end else t1:=10; if gradue then begin hpscanvas.font:=fontegraduation; if ((dixy1='0') and (dixy2='0')) then t2:=trunc(hpscanvas.textheight('10'+unitex+labelx)*1.5) else t2:=trunc(hpscanvas.textheight('10'+unitex+labelx)*2.2); end else t2:=10; if (t1>t2) then bordurehaute:=t1 else bordurehaute:=t2; {taille bordure basse} if gradue then begin hpscanvas.font:=fontegraduation; t1:=trunc(hpscanvas.textheight('x10'))+10; end else t1:=10; bordurebasse:=t1; {taille bordure droite} if (gradue and echelle_d) then begin hpscanvas.font:=fontegraduation; str( trunc((ymin2)/dix_pp(puissancededixy2-1)),tt); t1:=trunc(hpscanvas.textwidth(tt))+10; str( trunc((ymin2+nbgy2*graduationy2)/dix_pp(puissancededixy2-1)),tt); t2:=trunc(hpscanvas.textwidth(tt))+10; end else begin t1:=10; t2:=10; end; if t1t2 then borduredroite:=t1 else borduredroite:=t2; {taille bordure gauche} if (gradue and echelle_g) then begin hpscanvas.font:=fontegraduation; str( trunc((ymin1)/dix_pp(puissancededixy1-1)),tt); t1:=trunc(hpscanvas.textwidth(tt))+10; str( trunc((ymin1+nbgy1*graduationy1)/dix_pp(puissancededixy1-1)),tt); t2:=trunc(hpscanvas.textwidth(tt))+10; end else begin t1:=10; t2:=10; end; if t1t2 then borduregauche:=t1 else borduregauche:=t2; if borduresverticalessymetriques then begin borduregauche:=max(borduregauche,borduredroite); borduredroite:=borduregauche; end; borduregauche:=max(borduregauche,b_g); borduredroite:=max(borduredroite,b_d); bordurebasse:=max(bordurebasse,b_b); bordurehaute:=max(bordurehaute,b_h); if fond then background(couleurfond); {longueurgraduation} longueurgraduationX:=_longueurgraduation/largeur*(xmax-xmin); if echelle_g then longueurgraduationy1:=_longueurgraduation/hauteur*(ymax1-ymin1); if echelle_d then longueurgraduationy2:=_longueurgraduation/hauteur*(ymax2-ymin2); if grille1 then begin hpscanvas.pen.style:=psdot; hpscanvas.pen.color:=couleurgrille1; hpscanvas.pen.width:=epaisseurgrille; for i:=0 to nbgx do trait(xmin+i*graduationx,ymin1,xmin+i*graduationx,ymax1, epaisseurgrille,couleurgrille1,psdot,pmcopy,true); for i:=0 to nbgy1 do trait(xmin,ymin1+i*graduationy1,xmax,ymin1+i*graduationy1, epaisseurgrille,couleurgrille1,psdot,pmcopy,true); end; if grille2 then begin hpscanvas.pen.style:=psdot; hpscanvas.pen.color:=couleurgrille2; hpscanvas.pen.width:=epaisseurgrille; for i:=0 to nbgx do trait(xmin+i*graduationx,ymin2,xmin+i*graduationx,ymax2, epaisseurgrille,couleurgrille2,psdot,pmcopy,false); for i:=0 to nbgy2 do trait(xmin,ymin2+i*graduationy2,xmax,ymin2+i*graduationy2, epaisseurgrille,couleurgrille2,psdot,pmcopy,false); end; {cadre} if cadre then begin hpscanvas.pen.width:=epaisseurcadre; hpscanvas.pen.mode:=pmcopy; hpscanvas.pen.style:=pssolid; hpscanvas.pen.color:=couleurcadre; hpscanvas.moveto(BordureGauche,BordureHaute); hpscanvas.lineto(largeur-BordureDroite,BordureHaute); hpscanvas.lineto(largeur-BordureDroite,hauteur-BordureBasse); hpscanvas.lineto(BordureGauche,hauteur-BordureBasse); hpscanvas.lineto(BordureGauche,BordureHaute); end; {affichage du titre} hpscanvas.font:=fontetitre; while ((hpscanvas.textwidth(titre)>largeur-borduredroite-borduregauche) and (hpscanvas.Font.Size>1)) do hpscanvas.Font.Size:= hpscanvas.Font.Size-1; //if hpscanvas.Font.Size<6 then hpscanvas.Font.Size:=6; hpscanvas.textout(borduregauche+((largeur-borduredroite-borduregauche) div 2) -(hpscanvas.textwidth(titre) div 2), bordurehaute -2-hpscanvas.textheight(titre),titre); {graduation} if gradue then begin if dixx='0' then aff:='' else begin aff:='10'; if dixx<>'1' then for i:=1 to length(dixx) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labelx; if ((unitex<>'1') and (unitex<>'')) then aff:=aff+' en '+unitex; hpscanvas.font:=fontegraduation; hpscanvas.textout(largeur-borduredroite-trunc(hpscanvas.textwidth (aff)*1.3),hauteur-bordurebasse- trunc(hpscanvas.textheight('x10')*1.3),aff); if ((dixx<>'0') and (dixx<>'1')) then hpscanvas.textout(largeur-borduredroite-trunc(hpscanvas.textwidth(aff)*1.3)+ trunc(hpscanvas.textwidth('10')),hauteur-bordurebasse -trunc(1.9*hpscanvas.textheight('x10')), dixx); for i:=0 to nbgx do begin str(round((xmin+i*graduationx)/dix_pp(puissancededixx-1)),tt); hpscanvas.textout( trunc(i*graduationx/(xmax-xmin)*(largeur-borduredroite-borduregauche)+ borduregauche)-hpscanvas.textwidth(tt) div 2, hauteur-bordurebasse+2,tt); end; if echelle_g then begin if dixy1='0' then aff:='' else begin aff:='10'; if dixy1<>'1' then for i:=1 to length(dixy1) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labely1; if ((unitey1<>'1') and (unitey1<>'')) then aff:=aff+' en '+unitey1; hpscanvas.font:=fontegraduation; hpscanvas.textout(borduregauche,bordurehaute-trunc(hpscanvas.textheight(aff)*1.2),aff); if ((dixy1<>'0') and (dixy1<>'1')) then hpscanvas.textout(borduregauche+hpscanvas.textwidth('10'),bordurehaute -trunc(hpscanvas.textheight(aff)*1.8), dixy1); end; if echelle_d then begin if dixy2='0' then aff:='' else begin aff:='10'; if dixy2<>'1' then for i:=1 to length(dixy2) do aff:=aff+' '; aff:=aff+' '; end; aff:=aff+labely2; if ((unitey2<>'1') and (unitey2<>'')) then aff:=aff+' en '+unitey2; hpscanvas.font:=fontegraduation; hpscanvas.textout(largeur-borduredroite-trunc(hpscanvas.textwidth(aff)*1.2), bordurehaute-trunc(hpscanvas.textheight(aff)*1.2),aff); if ((dixy2<>'0') and (dixy2<>'1')) then hpscanvas.textout(largeur-borduredroite-trunc(hpscanvas.textwidth(aff)*1.2)+hpscanvas.textwidth('10'), bordurehaute -trunc(hpscanvas.textheight(aff)*1.8), dixy2); end; if echelle_g then for i:=0 to nbgy1 do begin str( round((ymin1+i*graduationy1)/dix_pp(puissancededixy1-1)),tt); if i=0 then hpscanvas.textout( borduregauche-trunc(hpscanvas.textwidth(tt)*1.1), trunc(- bordurebasse+hauteur)-hpscanvas.textheight(tt) , tt) else hpscanvas.textout( borduregauche-trunc(hpscanvas.textwidth(tt)*1.1), trunc(-i*graduationy1/(ymax1-ymin1)*(hauteur-bordurehaute-bordurebasse)- bordurebasse+hauteur)-hpscanvas.textheight(tt) div 2, tt); end; if echelle_d then for i:=0 to nbgy2 do begin str( round((ymin2+i*graduationy2)/dix_pp(puissancededixy2-1)),tt); if i=0 then hpscanvas.textout( largeur-borduredroite+5, trunc(- bordurebasse+hauteur)-hpscanvas.textheight(tt) , tt) else hpscanvas.textout( largeur-borduredroite+5, trunc(-i*graduationy2/(ymax2-ymin2)*(hauteur-bordurehaute-bordurebasse)- bordurebasse+hauteur)-hpscanvas.textheight(tt) div 2, tt); end; if echelle_g then begin for i:=0 to nbgx do trait(xmin+i*graduationx,ymin1,xmin+i*graduationx, ymin1+longueurgraduationy1,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=0 to nbgx do trait(xmin+i*graduationx,ymax1,xmin+i*graduationx, ymax1-longueurgraduationy1,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=0 to nbgy1 do trait(xmin,ymin1+i*graduationy1,xmin+longueurgraduationx,ymin1+i*graduationy1, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); for i:=0 to nbgy1 do trait(xmax,ymin1+i*graduationy1,xmax-longueurgraduationx,ymin1+i*graduationy1, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,true); end; if echelle_d then begin for i:=0 to nbgx do trait(xmin+i*graduationx,ymin2,xmin+i*graduationx, ymin2+longueurgraduationy2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=0 to nbgx do trait(xmin+i*graduationx,ymax2,xmin+i*graduationx, ymax2-longueurgraduationy2,epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=0 to nbgy2 do trait(xmin,ymin2+i*graduationy2,xmin+longueurgraduationx,ymin2+i*graduationy2, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); for i:=0 to nbgy2 do trait(xmax,ymin2+i*graduationy2,xmax-longueurgraduationx,ymin2+i*graduationy2, epaisseurgraduation,couleurgraduation,pssolid,pmcopy,false); end; end; end; function TMyPostscript.Convert(xi,yi:integer; var x,y:extended;gauche:boolean):boolean; var ymax,ymin,pasgrilley:extended; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x:=(xi-BordureGauche)*(xmax-xmin)/ (largeur-BordureGauche-BordureDroite) +xmin; y:=-(yi-BordureHaute)*(ymax-ymin)/(hauteur-BordureHaute-BordureBasse) +ymax; convert:=true; end; function TMyPostscript.invconvert(var xi,yi:integer; x,y:extended;gauche:boolean):boolean; var ymax,ymin,pasgrilley:extended; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; xi:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; yi:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; invconvert:=true; end; function TMyPostscript.CroixX(x,y:extended; demi_diagonale,epaisseur:integer; couleur:tcolor; penmod:tpenmode;gauche:boolean):boolean; var x1,y1:integer; ymax,ymin,pasgrilley:extended; old_pen_color:tcolor; old_pen_style:tpenstyle; old_pen_width:integer; old_pen_mode:tpenmode; old_brush_style:tbrushstyle; begin if gauche then begin ymin:=ymin1; ymax:=ymax1; pasgrilley:=pasgrilley1; end else begin ymin:=ymin2; ymax:=ymax2; pasgrilley:=pasgrilley2; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite)); y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse)); if ((x1<=-borduregauche) or (x1>=largeur-borduregauche) or (y1>hauteur-bordurehaute) or (y1<-bordurehaute)) then begin croixx:=false; exit; end; x1:= trunc((x-xmin)/(xmax-xmin)*(largeur-BordureGauche-BordureDroite))+ BordureGauche; y1:=trunc((ymax-y)/(ymax-ymin)*(hauteur-BordureHaute-BordureBasse))+ BordureHaute; old_pen_color:=hpscanvas.pen.color; old_pen_style:=hpscanvas.pen.style; old_pen_width:=hpscanvas.pen.width; old_pen_mode:=hpscanvas.pen.mode; old_brush_style:=hpscanvas.brush.style; hpscanvas.pen.width:=epaisseur; hpscanvas.pen.mode:=penmod; hpscanvas.pen.style:=pssolid; hpscanvas.pen.color:=couleur; hpscanvas.moveto(x1,y1); hpscanvas.lineto(x1+demi_diagonale,y1+demi_diagonale); hpscanvas.moveto(x1,y1); hpscanvas.lineto(x1-demi_diagonale,y1+demi_diagonale); hpscanvas.moveto(x1,y1); hpscanvas.lineto(x1+demi_diagonale,y1-demi_diagonale); hpscanvas.moveto(x1,y1); hpscanvas.lineto(x1-demi_diagonale,y1-demi_diagonale); croixx:=true; hpscanvas.pen.color:=old_pen_color; hpscanvas.pen.style:=old_pen_style; hpscanvas.pen.width:=old_pen_width; hpscanvas.pen.mode:=old_pen_mode; hpscanvas.brush.style:=old_brush_style; end; end. dozzaqueux-3.51/unit5.lrs0000750000175000017500000001373713147330070015654 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('TForm5','FORMDATA',[ 'TPF0'#6'TForm5'#5'Form5'#4'Left'#3'J'#2#6'Height'#3#182#1#3'Top'#3#220#0#5'W' +'idth'#3#199#3#13'ActiveControl'#7#7'BitBtn1'#11'BorderIcons'#11#12'biSystem' +'Menu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#26'Nombre' +' de points de calcul'#12'ClientHeight'#3#182#1#11'ClientWidth'#3#199#3#8'On' +'Create'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2.0' +#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTo' +'p.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3'Top'#2#10#5'Width'#3'E' +#2#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6'ULes ' +'valeurs des concentrations sont calcul'#195#169'es pour des valeurs discr' +#195#169'tes du volume.'#10'Font.Color'#7#7'clBlack'#10'Font.Pitch'#7#10'fpV' +'ariable'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0 +#0#6'TLabel'#6'Label3'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTo' +'p.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6 +'Height'#2#20#3'Top'#2'('#5'Width'#3#205#1#18'BorderSpacing.Left'#2#10#17'Bo' +'rderSpacing.Top'#2#10#7'Caption'#6'COn appelle "pas" l'''#195#169'cart entr' +'e deux valeurs successives du volume.'#10'Font.Color'#7#7'clBlack'#10'Font.' +'Pitch'#7#10'fpVariable'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10 +'ParentFont'#8#0#0#11'TRadioGroup'#11'RadioGroup1'#22'AnchorSideLeft.Control' +#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label3'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#4'Left'#2#10#6'Height'#2'z'#3'Top'#2'F'#5'Width'#3'N'#1#8'AutoFi' +'ll'#9#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#12 +'Choix du pas'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottom' +'Spacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResiz' +'e'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildS' +'izing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical' +#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBot' +'tom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'd'#11'ClientWid' +'th'#3'J'#1#10'Font.Color'#7#6'clBlue'#10'Font.Style'#11#6'fsBold'#0#9'ItemI' +'ndex'#2#0#13'Items.Strings'#1#6#12'Pas constant'#6#13'Pas adaptatif'#0#7'On' +'Click'#7#16'RadioGroup1Click'#10'ParentFont'#8#8'TabOrder'#2#0#0#0#7'TBitBt' +'n'#7'BitBtn1'#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Contr' +'ol'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.' +'Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#27#3 +#6'Height'#3#172#1#3'Top'#2#10#5'Width'#3#162#0#7'Anchors'#11#5'akTop'#7'akR' +'ight'#8'akBottom'#0#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10 +#7'Caption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#7'On' +'Click'#7#12'BitBtn1Click'#8'TabOrder'#2#1#0#0#6'TLabel'#6'Label4'#22'Anchor' +'SideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#11'RadioGroup1'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#3#202 +#0#5'Width'#3#158#0#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7 +'Caption'#6#20'Nombre de points: N='#10'Font.Style'#11#6'fsBold'#0#11'Parent' +'Color'#8#10'ParentFont'#8#0#0#9'TSpinEdit'#9'SpinEdit1'#22'AnchorSideLeft.C' +'ontrol'#7#6'Label4'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop' +'.Control'#7#6'Label4'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#178#0 +#6'Height'#2#26#3'Top'#3#199#0#5'Width'#2'B'#8'AutoSize'#8#18'BorderSpacing.' +'Left'#2#10#7'Enabled'#8#10'Font.Color'#7#6'clBlue'#10'Font.Style'#11#6'fsBo' +'ld'#0#8'MaxValue'#3#232#3#8'MinValue'#2#2#10'ParentFont'#8#8'TabOrder'#2#2#5 +'Value'#2'd'#0#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.Control'#7#6'Label4' +#21'AnchorSideTop.Control'#7#6'Label4'#18'AnchorSideTop.Side'#7#9'asrBottom' +#4'Left'#2#10#6'Height'#2#20#3'Top'#3#232#0#5'Width'#3#145#1#17'BorderSpacin' +'g.Top'#2#10#7'Caption'#6'7La variation maximale du logarithme d''une concen' +'tration'#10'Font.Color'#7#7'clBlack'#10'Font.Style'#11#6'fsBold'#0#11'Paren' +'tColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label5'#22'AnchorSideLeft.Contro' +'l'#7#6'Label2'#21'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSideTop.Side' +#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#3#6#1#5'Width'#3'b'#1#17 +'BorderSpacing.Top'#2#10#7'Caption'#6'3entre deux volumes successifs ne doit' +' pas exc'#195#169'der:'#10'Font.Color'#7#7'clBlack'#10'Font.Style'#11#6'fsB' +'old'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#5'TEdit'#10'Editvarmax'#22'An' +'chorSideLeft.Control'#7#6'Label5'#21'AnchorSideTop.Control'#7#6'Label5'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#28#3'Top'#3'$'#1 +#5'Width'#2'P'#17'BorderSpacing.Top'#2#10#10'OnKeyPress'#7#18'EditvarmaxKeyP' +'ress'#8'TabOrder'#2#3#0#0#6'TLabel'#6'Label6'#22'AnchorSideLeft.Control'#7 +#10'Editvarmax'#21'AnchorSideTop.Control'#7#10'Editvarmax'#18'AnchorSideTop.' +'Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#20#3'Top'#3'J'#1#5'Width'#3#14 ,#1#17'BorderSpacing.Top'#2#10#7'Caption'#6'*Mais le pas ne peut devenir inf' +#195#169'rieur '#195#160':'#10'Font.Color'#7#7'clBlack'#10'Font.Style'#11#6 +'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#5'TEdit'#10'Editpasmin'#22 +'AnchorSideLeft.Control'#7#6'Label6'#21'AnchorSideTop.Control'#7#6'Label6'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#28#3'Top'#3'h'#1 +#5'Width'#2'P'#17'BorderSpacing.Top'#2#10#10'OnKeyPress'#7#18'EditpasminKeyP' +'ress'#8'TabOrder'#2#4#0#0#6'TLabel'#6'Label7'#22'AnchorSideLeft.Control'#7 +#10'Editpasmin'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Cont' +'rol'#7#10'Editpasmin'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'd'#6 +'Height'#2#20#3'Top'#3'l'#1#5'Width'#2#20#18'BorderSpacing.Left'#2#10#7'Capt' +'ion'#6#2'mL'#11'ParentColor'#8#0#0#0 ]); dozzaqueux-3.51/unitsaisielegende.pas0000750000175000017500000000127313147330070020264 0ustar georgeskgeorgeskunit unitsaisielegende; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, UChaines; type { TForm_saisie_legende } TForm_saisie_legende = class(TForm) BitBtn1: TBitBtn; Edit1: TEdit; Label1: TLabel; procedure FormCreate(Sender: TObject); private { private declarations } public { public declarations } end; var Form_saisie_legende: TForm_saisie_legende; implementation {$R *.lfm} { TForm_saisie_legende } procedure TForm_saisie_legende.FormCreate(Sender: TObject); begin caption:=rsLGende; label1.Caption:=rsLGendeQuiApp; end; end. dozzaqueux-3.51/unit15.lfm0000750000175000017500000000257513147330070015711 0ustar georgeskgeorgeskobject Formapropos: TFormapropos Left = 559 Height = 460 Top = 195 Width = 515 ActiveControl = Memo1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'A propos de...Dozzzaqueux' ClientHeight = 460 ClientWidth = 515 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.6.0.4' object Memo1: TMemo AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = BitBtn1 Left = 10 Height = 359 Top = 10 Width = 495 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Lines.Strings = ( '' '' '' '' '' '' '' '' '' '' '' ) TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 71 Top = 379 Width = 495 Anchors = [akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 1 end end dozzaqueux-3.51/indic_ph.xml0000750000175000017500000002152713147330070016361 0ustar georgeskgeorgesk 27 Cristal violet 1 0 1.8 60 254 255 242 255 255 Vert de malachite 1 0.2 1.8 62 246 250 160 193 204 Bleu de bromothymol 1 6 7.6 60 252 253 238 255 255 Rouge de cresol (1-crésolsulfonephtaléine) 2 0 1 7 8.8 0 255 255 60 252 253 0 255 255 Bleu de thymol 2 1.2 2.8 8 9.6 0 255 255 60 252 253 241 255 255 Erythrosine, sel de disodium 1 2.2 3.6 31 207 255 0 255 255 p-Dimethylaminobenzene (jaune de methyle) 1 2.8 4.4 0 255 255 60 252 253 Methylorange ou helianthine 1 3.1 4.4 0 255 255 48 255 255 Bleu de bromophenol 1 3 4.6 60 254 255 242 255 250 Rouge congo 1 3 5 240 255 255 360 255 255 Vert de bromocresol 1 3.8 5.4 60 254 255 242 255 250 Rouge de methyle 1 4.2 6.2 0 255 255 48 255 255 Pourpre de bromocresol 1 5.2 6.8 60 255 255 331 255 192 Rouge de chlorophenol 1 4.8 6.4 60 252 253 0 255 255 Rouge de bromophenol 1 5.2 6.8 60 252 253 0 255 255 Rouge de phenol 1 6.4 8 60 252 253 0 255 255 Rouge neutre 1 6.8 8 331 255 192 48 255 255 Phenolphtaleine 1 8 9.8 335 0 255 336 181 255 Thymolphtaleine 1 9.3 10.5 219 0 255 219 255 255 Bleu de nil 1 10.1 11.1 240 255 255 360 255 255 Jaune d'alizarine G 1 10 12 60 255 255 320 153 255 Jaune d'alizarine R (acide p-nitrobenzèneazosalicylique) 1 10.1 12 60 252 253 0 255 255 2,4,6-Trinitrotoluène 1 11.5 13 36 0 255 35 255 255 Alizarine 1 11 12.4 0 255 255 330 255 192 Carmin d'indigo 1 11.4 13 240 255 255 60 255 255 1,3,5-Trinitrobenzène 1 12 14 36 0 255 35 255 255 Jaune Clayton (jaune titan) 1 12.2 13.2 60 255 255 35 255 255 dozzaqueux-3.51/unit4.lfm0000750000175000017500000003000413147330070015613 0ustar georgeskgeorgeskobject Form4: TForm4 Left = 601 Height = 518 Top = 208 Width = 827 ActiveControl = Editformulebrute BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Recherche dans la base' ClientHeight = 518 ClientWidth = 827 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object SpeedButtonC: TSpeedButton AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom Left = 10 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'C' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButtonCClick ParentFont = False end object SpeedButtonO: TSpeedButton AnchorSideLeft.Control = SpeedButtonC AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 45 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = 'O' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButtonOClick ParentFont = False end object SpeedButtonH: TSpeedButton AnchorSideLeft.Control = SpeedButtonO AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 80 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = 'H' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButtonHClick ParentFont = False end object SpeedButtonN: TSpeedButton AnchorSideLeft.Control = SpeedButtonH AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 115 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = 'N' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButtonNClick ParentFont = False end object SpeedButtonP: TSpeedButton AnchorSideLeft.Control = SpeedButtonN AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 150 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = 'P' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButtonPClick ParentFont = False end object SpeedButtonS: TSpeedButton AnchorSideLeft.Control = SpeedButtonP AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 185 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = 'S' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButtonSClick ParentFont = False end object SpeedButton1plus: TSpeedButton AnchorSideLeft.Control = SpeedButton3 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 290 Height = 25 Top = 100 Width = 33 BorderSpacing.Left = 10 Caption = '[+]' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton1plusClick ParentFont = False end object SpeedButton2plus: TSpeedButton AnchorSideLeft.Control = SpeedButton1plus AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 333 Height = 25 Top = 100 Width = 33 BorderSpacing.Left = 10 Caption = '[2+]' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton2plusClick ParentFont = False end object SpeedButton3plus: TSpeedButton AnchorSideLeft.Control = SpeedButton2plus AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 376 Height = 25 Top = 100 Width = 33 BorderSpacing.Left = 10 Caption = '[3+]' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton3plusClick ParentFont = False end object SpeedButton3moins: TSpeedButton AnchorSideLeft.Control = SpeedButton3plus AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 419 Height = 25 Top = 100 Width = 33 BorderSpacing.Left = 10 Caption = '[3-]' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton3moinsClick ParentFont = False end object SpeedButton2moins: TSpeedButton AnchorSideLeft.Control = SpeedButton3moins AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 462 Height = 25 Top = 100 Width = 33 BorderSpacing.Left = 10 Caption = '[2-]' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton2moinsClick ParentFont = False end object SpeedButton1moins: TSpeedButton AnchorSideLeft.Control = SpeedButton2moins AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 505 Height = 25 Top = 100 Width = 33 BorderSpacing.Left = 10 Caption = '[-]' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton1moinsClick ParentFont = False end object SpeedButton2: TSpeedButton AnchorSideLeft.Control = SpeedButtonS AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 220 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = '2' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton2Click ParentFont = False end object SpeedButton3: TSpeedButton AnchorSideLeft.Control = SpeedButton2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 255 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = '3' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton3Click ParentFont = False end object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 675 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Entrez la formule brute. Puis cliquez sur "OK". Puis sélectionnez le réactif dans la liste ci-dessous.' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 70 Width = 598 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = ' mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 40 Width = 413 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = ' Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] ' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] ParentColor = False ParentFont = False end object Editformulebrute: TEdit AnchorSideLeft.Control = Owner AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrBottom Left = 10 Height = 28 Top = 135 Width = 617 BorderSpacing.Left = 10 BorderSpacing.Top = 10 OnChange = EditformulebruteChange OnKeyUp = EditformulebruteKeyUp OnMouseUp = EditformulebruteMouseUp TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideLeft.Control = sgreactifs AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RadioGroup1 AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = BitBtn2 Left = 461 Height = 114 Top = 338 Width = 251 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Bottom = 10 Caption = 'OK' Default = True Glyph.Data = { DE010000424DDE01000000000000760000002800000024000000120000000100 04000000000068010000120B0000120B00001000000010000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333 3333333333333333333333330000333333333333333333333333F33333333333 00003333344333333333333333388F3333333333000033334224333333333333 338338F3333333330000333422224333333333333833338F3333333300003342 222224333333333383333338F3333333000034222A22224333333338F338F333 8F33333300003222A3A2224333333338F3838F338F33333300003A2A333A2224 33333338F83338F338F33333000033A33333A222433333338333338F338F3333 0000333333333A222433333333333338F338F33300003333333333A222433333 333333338F338F33000033333333333A222433333333333338F338F300003333 33333333A222433333333333338F338F00003333333333333A22433333333333 3338F38F000033333333333333A223333333333333338F830000333333333333 333A333333333333333338330000333333333333333333333333333333333333 0000 } NumGlyphs = 2 OnClick = BitBtn1Click TabOrder = 1 end object sgreactifs: TStringGrid AnchorSideLeft.Control = Owner AnchorSideTop.Control = RadioGroup1 AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 170 Hint = 'Pour sélectionner un réactif, cliquez sur la ligne correspondante.' Top = 338 Width = 441 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Bottom = 10 ParentShowHint = False ShowHint = True TabOrder = 3 OnMouseUp = sgreactifsMouseUp end object RadioGroup1: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = Editformulebrute AnchorSideTop.Side = asrBottom Left = 10 Height = 155 Top = 173 Width = 617 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Type de comparaison' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 133 ClientWidth = 613 ItemIndex = 0 Items.Strings = ( 'Exacte' 'Mêmes atomes, en nombres inférieurs ou égaux' 'Mêmes atomes, en nombre supérieurs ou égaux' 'Mêmes atomes, en nombre quelconques' ) TabOrder = 2 end object BitBtn2: TBitBtn AnchorSideLeft.Control = sgreactifs AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 461 Height = 46 Top = 462 Width = 252 Anchors = [akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Bottom = 10 Caption = '&Fermer' Kind = bkClose TabOrder = 4 end end dozzaqueux-3.51/unit18.lfm0000750000175000017500000000264013147330070015705 0ustar georgeskgeorgeskobject script: Tscript Left = 285 Height = 250 Top = 201 Width = 1013 BorderIcons = [] BorderStyle = bsNone Caption = 'script' ClientHeight = 250 ClientWidth = 1013 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 30 Height = 32 Top = 30 Width = 69 BorderSpacing.Left = 30 BorderSpacing.Top = 30 Caption = 'Label1' Font.Height = 34 ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 30 Height = 23 Top = 92 Width = 462 BorderSpacing.Left = 30 BorderSpacing.Top = 30 Caption = 'Ne touchez à rien, l''onglet suivant va bientôt être affiché.' Font.Color = clGreen Font.Height = 24 Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom Left = 30 Height = 23 Top = 145 Width = 521 BorderSpacing.Left = 30 BorderSpacing.Top = 30 Caption = 'Après l''affichage des courbes, vous pourrez revisiter tous les onglets.' Font.Color = clRed Font.Height = 24 ParentColor = False ParentFont = False end end dozzaqueux-3.51/unit10.lfm0000750000175000017500000000360413147330070015676 0ustar georgeskgeorgeskobject modifnombremole: Tmodifnombremole Left = 290 Height = 128 Top = 179 Width = 505 ActiveControl = Edit1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Modification concentration' ClientHeight = 128 ClientWidth = 505 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 160 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Concentration molaire:' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Edit1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrCenter Left = 295 Height = 20 Top = 10 Width = 42 BorderSpacing.Left = 10 Caption = 'mol/L' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Edit1: TEdit AnchorSideLeft.Control = Label1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrCenter Left = 180 Height = 28 Top = 6 Width = 105 BorderSpacing.Left = 10 OnKeyPress = Edit1KeyPress TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 68 Top = 50 Width = 485 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 20 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 1 end end dozzaqueux-3.51/unit4b.lfm0000750000175000017500000003000613147330070015757 0ustar georgeskgeorgeskobject Form4b: TForm4b Left = 702 Height = 541 Top = 227 Width = 771 ActiveControl = Editformulebrute BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Recherche dans la base' ClientHeight = 541 ClientWidth = 771 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object SpeedButtonC: TSpeedButton AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label2 AnchorSideTop.Side = asrBottom Left = 10 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'C' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButtonCClick ParentFont = False end object SpeedButtonO: TSpeedButton AnchorSideLeft.Control = SpeedButtonC AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 45 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = 'O' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButtonOClick ParentFont = False end object SpeedButtonH: TSpeedButton AnchorSideLeft.Control = SpeedButtonO AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 80 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = 'H' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButtonHClick ParentFont = False end object SpeedButtonN: TSpeedButton AnchorSideLeft.Control = SpeedButtonH AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 115 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = 'N' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButtonNClick ParentFont = False end object SpeedButtonP: TSpeedButton AnchorSideLeft.Control = SpeedButtonN AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 150 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = 'P' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButtonPClick ParentFont = False end object SpeedButtonS: TSpeedButton AnchorSideLeft.Control = SpeedButtonP AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 185 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = 'S' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButtonSClick ParentFont = False end object SpeedButton1plus: TSpeedButton AnchorSideLeft.Control = SpeedButton3 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 290 Height = 25 Top = 100 Width = 33 BorderSpacing.Left = 10 Caption = '[+]' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton1plusClick ParentFont = False end object SpeedButton2plus: TSpeedButton AnchorSideLeft.Control = SpeedButton1plus AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 333 Height = 25 Top = 100 Width = 33 BorderSpacing.Left = 10 Caption = '[2+]' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton2plusClick ParentFont = False end object SpeedButton3plus: TSpeedButton AnchorSideLeft.Control = SpeedButton2plus AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 376 Height = 25 Top = 100 Width = 33 BorderSpacing.Left = 10 Caption = '[3+]' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton3plusClick ParentFont = False end object SpeedButton3moins: TSpeedButton AnchorSideLeft.Control = SpeedButton3plus AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 419 Height = 25 Top = 100 Width = 33 BorderSpacing.Left = 10 Caption = '[3-]' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton3moinsClick ParentFont = False end object SpeedButton2moins: TSpeedButton AnchorSideLeft.Control = SpeedButton3moins AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 462 Height = 25 Top = 100 Width = 33 BorderSpacing.Left = 10 Caption = '[2-]' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton2moinsClick ParentFont = False end object SpeedButton1moins: TSpeedButton AnchorSideLeft.Control = SpeedButton2moins AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 505 Height = 25 Top = 100 Width = 33 BorderSpacing.Left = 10 Caption = '[-]' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton1moinsClick ParentFont = False end object SpeedButton2: TSpeedButton AnchorSideLeft.Control = SpeedButtonS AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 220 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = '2' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton2Click ParentFont = False end object SpeedButton3: TSpeedButton AnchorSideLeft.Control = SpeedButton2 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrCenter Left = 255 Height = 25 Top = 100 Width = 25 BorderSpacing.Left = 10 Caption = '3' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] OnClick = SpeedButton3Click ParentFont = False end object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 675 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Entrez la formule brute. Puis cliquez sur "OK". Puis sélectionnez le réactif dans la liste ci-dessous.' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label3 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 70 Width = 598 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = ' mais pas: AGSO4 (respect majuscules/minuscules) ni Cu(NH3)4 (pas de parenthéses)' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label3: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 20 Top = 40 Width = 413 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = ' Exemples: BaSO4 Ag[+] CrO4[2-] FeO3H3[3+] ' Font.Color = clBlack Font.Pitch = fpVariable Font.Style = [fsBold] ParentColor = False ParentFont = False end object Editformulebrute: TEdit AnchorSideLeft.Control = Owner AnchorSideTop.Control = SpeedButtonC AnchorSideTop.Side = asrBottom Left = 10 Height = 28 Top = 135 Width = 617 BorderSpacing.Left = 10 BorderSpacing.Top = 10 OnChange = EditformulebruteChange OnKeyUp = EditformulebruteKeyUp OnMouseUp = EditformulebruteMouseUp TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideLeft.Control = sgreactifs AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RadioGroup1 AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = BitBtn2 Left = 461 Height = 149 Top = 320 Width = 251 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Bottom = 10 Caption = 'OK' Default = True Glyph.Data = { DE010000424DDE01000000000000760000002800000024000000120000000100 04000000000068010000120B0000120B00001000000010000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333 3333333333333333333333330000333333333333333333333333F33333333333 00003333344333333333333333388F3333333333000033334224333333333333 338338F3333333330000333422224333333333333833338F3333333300003342 222224333333333383333338F3333333000034222A22224333333338F338F333 8F33333300003222A3A2224333333338F3838F338F33333300003A2A333A2224 33333338F83338F338F33333000033A33333A222433333338333338F338F3333 0000333333333A222433333333333338F338F33300003333333333A222433333 333333338F338F33000033333333333A222433333333333338F338F300003333 33333333A222433333333333338F338F00003333333333333A22433333333333 3338F38F000033333333333333A223333333333333338F830000333333333333 333A333333333333333338330000333333333333333333333333333333333333 0000 } NumGlyphs = 2 OnClick = BitBtn1Click TabOrder = 1 end object sgreactifs: TStringGrid AnchorSideLeft.Control = Owner AnchorSideTop.Control = RadioGroup1 AnchorSideTop.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 211 Hint = 'Pour sélectionner un réactif, cliquez sur la ligne correspondante.' Top = 320 Width = 441 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Bottom = 10 ParentShowHint = False ShowHint = True TabOrder = 3 OnMouseUp = sgreactifsMouseUp end object RadioGroup1: TRadioGroup AnchorSideLeft.Control = Owner AnchorSideTop.Control = Editformulebrute AnchorSideTop.Side = asrBottom Left = 10 Height = 137 Top = 173 Width = 617 AutoFill = True BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Type de comparaison' ChildSizing.LeftRightSpacing = 6 ChildSizing.TopBottomSpacing = 6 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize ChildSizing.EnlargeVertical = crsHomogenousChildResize ChildSizing.ShrinkHorizontal = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 ClientHeight = 115 ClientWidth = 613 ItemIndex = 0 Items.Strings = ( 'Exacte' 'Mêmes atomes, en nombres inférieurs ou égaux' 'Mêmes atomes, en nombre supérieurs ou égaux' 'Mêmes atomes, en nombre quelconques' ) TabOrder = 2 end object BitBtn2: TBitBtn AnchorSideLeft.Control = sgreactifs AnchorSideLeft.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 461 Height = 52 Top = 479 Width = 249 Anchors = [akLeft, akBottom] BorderSpacing.Left = 10 BorderSpacing.Bottom = 10 Caption = '&Fermer' Kind = bkClose TabOrder = 4 end end dozzaqueux-3.51/unit15.pas0000750000175000017500000000165213147330070015711 0ustar georgeskgeorgeskunit Unit15; {$mode objfpc}{$H+} interface uses Classes, SysUtils,FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,UChaines,UnitScaleFont,Unit_commune,LazUTF8; type { TFormapropos } TFormapropos = class(TForm) BitBtn1: TBitBtn; Memo1: TMemo; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var Formapropos: TFormapropos; implementation uses unit1; { TFormapropos } procedure TFormapropos.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsAProposDeDoz; memo1.Lines.Clear; memo1.Lines.LoadFromFile((repertoire_executable+'about.txt')); end; procedure TFormapropos.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit15.lrs} end. dozzaqueux-3.51/unitgpl.pas0000750000175000017500000000137013147330070016243 0ustar georgeskgeorgeskunit UnitGPL; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, SynMemo, StdCtrls,UnitScaleFont; type { TFormgpl } TFormgpl = class(TForm) Memo1: TMemo; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var Formgpl: TFormgpl; implementation { TFormgpl } procedure TFormgpl.FormCreate(Sender: TObject); begin encreation:=true; Caption := 'License GPL'; end; procedure TFormgpl.FormShow(Sender: TObject); begin if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unitgpl.lrs} end. dozzaqueux-3.51/unit22.lrs0000750000175000017500000001736113147330070015730 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisietypedonnee','FORMDATA',[ 'TPF0'#17'Tsaisietypedonnee'#16'saisietypedonnee'#4'Left'#3'5'#3#6'Height'#3 +'['#1#3'Top'#3#195#0#5'Width'#3'%'#2#13'ActiveControl'#7' RadioGroupechelle_' +'e.RadioButton0'#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'Bor' +'derStyle'#7#8'bsSingle'#7'Caption'#6#15'Type de donn'#195#169'e'#12'ClientH' +'eight'#3'['#1#11'ClientWidth'#3'%'#2#8'OnCreate'#7#10'FormCreate'#6'OnShow' +#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2.0'#0#6'TLabel'#7'Label15'#22'AnchorS' +'ideLeft.Control'#7#16'RadioGrouptype_e'#19'AnchorSideLeft.Side'#7#9'asrBott' +'om'#21'AnchorSideTop.Control'#7#16'RadioGrouptype_e'#4'Left'#3#170#0#6'Heig' +'ht'#2#17#3'Top'#3#143#0#5'Width'#2'c'#18'BorderSpacing.Left'#2#10#17'Border' +'Spacing.Top'#2#20#7'Caption'#6#18'Taille des points:'#11'ParentColor'#8#0#0 +#6'TLabel'#6'Label2'#22'AnchorSideLeft.Control'#7#16'RadioGrouptype_e'#19'An' +'chorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#7'Label15'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#170#0#6'Height'#2#17#3'Top'#3 +#170#0#5'Width'#2'Z'#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7 +'Caption'#6#16'Epaisseur trait:'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#22 +'AnchorSideLeft.Control'#7#16'RadioGrouptype_e'#19'AnchorSideLeft.Side'#7#9 +'asrBottom'#21'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#4'Left'#3#170#0#6'Height'#2#17#3'Top'#3#207#0#5'Width'#2'4'#18'B' +'orderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#20#7'Caption'#6#8'Couleur:' +#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#22'AnchorSideLeft.Control'#7#16'R' +'adioGrouptype_e'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Co' +'ntrol'#7#6'Label3'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#170#0#6 +'Height'#2#17#3'Top'#3#244#0#5'Width'#2'"'#18'BorderSpacing.Left'#2#10#17'Bo' +'rderSpacing.Top'#2#20#7'Caption'#6#4'Nom:'#11'ParentColor'#8#0#0#6'TLabel'#6 +'Label1'#4'Left'#2#14#6'Height'#2#1#3'Top'#2#3#5'Width'#2#1#11'ParentColor'#8 +#0#0#11'TRadioGroup'#19'RadioGroupechelle_e'#22'AnchorSideLeft.Control'#7#5 +'Owner'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asr' +'Bottom'#4'Left'#2#10#6'Height'#2'Y'#3'Top'#2#14#5'Width'#2'v'#8'AutoFill'#9 +#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#8'Echel' +'le:'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2 +#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'Child' +'Sizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.Shrin' +'kHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsSc' +'aleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'Ch' +'ildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'C'#11'ClientWidth'#2'r'#9 +'ItemIndex'#2#0#13'Items.Strings'#1#6#6'Gauche'#6#6'Droite'#0#8'TabOrder'#2#0 +#0#0#11'TRadioGroup'#19'RadioGroupjoindre_e'#22'AnchorSideLeft.Control'#7#19 +'RadioGroupechelle_e'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTo' +'p.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#138#0 +#6'Height'#2'Z'#3'Top'#2#14#5'Width'#3#151#0#8'AutoFill'#9#18'BorderSpacing.' +'Left'#2#10#17'BorderSpacing.Top'#2#10#7'Caption'#6#18'Joindre les points'#28 +'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'C' +'hildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing' +'.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHoriz' +'ontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChi' +'lds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSiz' +'ing.ControlsPerLine'#2#1#12'ClientHeight'#2'D'#11'ClientWidth'#3#147#0#9'It' +'emIndex'#2#0#13'Items.Strings'#1#6#3'Non'#6#3'Oui'#0#8'TabOrder'#2#1#0#0#11 +'TRadioGroup'#16'RadioGrouptype_e'#22'AnchorSideLeft.Control'#7#5'Owner'#21 +'AnchorSideTop.Control'#7#19'RadioGroupechelle_e'#18'AnchorSideTop.Side'#7#9 +'asrBottom'#4'Left'#2#10#6'Height'#3#145#0#3'Top'#2'{'#5'Width'#3#150#0#8'Au' +'toFill'#9#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#20#7'Caption' +#6#18'Repr'#195#169'sent'#195#169'e par:'#28'ChildSizing.LeftRightSpacing'#2 +#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7 +#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomoge' +'nousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'C' +'hildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29 +'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'Clien' +'tHeight'#2'{'#11'ClientWidth'#3#146#0#9'ItemIndex'#2#0#13'Items.Strings'#1#6 +#6'Disque'#6#9'Croix (x)'#6#6'Cercle'#6#9'Croix (+)'#0#8'TabOrder'#2#2#0#0#9 +'TSpinEdit'#16'SpinEdittaille_e'#22'AnchorSideLeft.Control'#7#7'Label15'#19 +'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#7'Label15' +#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#23#1#6'Height'#2#25#3'Top'#3 +#139#0#5'Width'#2''''#18'BorderSpacing.Left'#2#10#8'MinValue'#2#1#8'TabOrder' ,#2#3#5'Value'#2#1#0#0#9'TSpinEdit'#19'SpinEditepaisseur_e'#22'AnchorSideLeft' +'.Control'#7#6'Label2'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideT' +'op.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#14#1 +#6'Height'#2#25#3'Top'#3#166#0#5'Width'#2'+'#18'BorderSpacing.Left'#2#10#8'M' +'inValue'#2#1#8'TabOrder'#2#4#5'Value'#2#1#0#0#5'TEdit'#10'Edit_nom_e'#22'An' +'chorSideLeft.Control'#7#6'Label4'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21 +'AnchorSideTop.Control'#7#6'Label4'#18'AnchorSideTop.Side'#7#9'asrCenter'#4 +'Left'#3#214#0#6'Height'#2#25#3'Top'#3#240#0#5'Width'#2'R'#18'BorderSpacing.' +'Left'#2#10#8'TabOrder'#2#5#0#0#9'TCheckBox'#18'CheckBoxrepresente'#22'Ancho' +'rSideLeft.Control'#7#5'Owner'#24'AnchorSideBottom.Control'#7#5'Owner'#21'An' +'chorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#21#3'Top'#3'<' +#1#5'Width'#3#234#0#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.L' +'eft'#2#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6'"Ne pas repr'#195#169 +'senter cette grandeur'#8'TabOrder'#2#6#0#0#7'TBitBtn'#7'BitBtn1'#21'AnchorS' +'ideTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'#20'Anchor' +'SideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'A' +'nchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#176#1#6'Height'#3'G'#1#3'Top' +#2#10#5'Width'#2'k'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0 +#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#20'BorderSpacing.Bo' +'ttom'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResul' +'t'#2#1#8'TabOrder'#2#7#0#0#6'TPanel'#20'SpeedButtoncouleur_e'#22'AnchorSide' +'Left.Control'#7#6'Label3'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorS' +'ideTop.Control'#7#6'Label3'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3 +#232#0#6'Height'#2#31#3'Top'#3#200#0#5'Width'#2'B'#18'BorderSpacing.Left'#2 +#10#8'TabOrder'#2#8#7'OnClick'#7#25'SpeedButtoncouleur_eClick'#0#0#12'TColor' +'Dialog'#12'ColorDialog1'#5'Color'#7#7'clBlack'#20'CustomColors.Strings'#1#6 +#13'ColorA=000000'#6#13'ColorB=000080'#6#13'ColorC=008000'#6#13'ColorD=00808' +'0'#6#13'ColorE=800000'#6#13'ColorF=800080'#6#13'ColorG=808000'#6#13'ColorH=' +'808080'#6#13'ColorI=C0C0C0'#6#13'ColorJ=0000FF'#6#13'ColorK=00FF00'#6#13'Co' +'lorL=00FFFF'#6#13'ColorM=FF0000'#6#13'ColorN=FF00FF'#6#13'ColorO=FFFF00'#6 +#13'ColorP=FFFFFF'#6#13'ColorQ=C0DCC0'#6#13'ColorR=F0CAA6'#6#13'ColorS=F0FBF' +'F'#6#13'ColorT=A4A0A0'#0#4'left'#3'P'#1#0#0#0 ]); dozzaqueux-3.51/gpl.txt0000750000175000017500000003611013147330070015377 0ustar georgeskgeorgesk GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS dozzaqueux-3.51/unit12.pas0000750000175000017500000000533213147330070015705 0ustar georgeskgeorgeskunit Unit12; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,UChaines, ExtCtrls,UnitScaleFont; type { Tsaisiecouleurs } Tsaisiecouleurs = class(TForm) BitBtn1: TBitBtn; ColorDialog1: TColorDialog; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; BitBtncouleurgrillegauche: TPanel; BitBtncouleurgrilledroite: TPanel; BitBtncouleurgraduations: TPanel; BitBtncouleurfond: TPanel; BitBtncouleuraxes: TPanel; procedure BitBtncouleuraxesClick(Sender: TObject); procedure BitBtncouleurfondClick(Sender: TObject); procedure BitBtncouleurgraduationsClick(Sender: TObject); procedure BitBtncouleurgrilledroiteClick(Sender: TObject); procedure BitBtncouleurgrillegaucheClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisiecouleurs: Tsaisiecouleurs; implementation uses Unit1; { Tsaisiecouleurs } procedure Tsaisiecouleurs.BitBtncouleurgrillegaucheClick(Sender: TObject); begin if colordialog1.Execute then coucougrille1:=colordialog1.color; BitBtncouleurgrillegauche.Color:=coucougrille1; application.ProcessMessages; end; procedure Tsaisiecouleurs.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsCouleurs; Label1.Caption := rsCouleurGrill; Label2.Caption := rsCouleurGrill2; Label3.Caption := rsCouleurGradu; Label4.Caption := rsCouleurDuFon; Label5.Caption := rsCouleurDesAx; end; procedure Tsaisiecouleurs.FormShow(Sender: TObject); begin // if encreation then begin scalefont(self); encreation:=false; end; end; procedure Tsaisiecouleurs.BitBtncouleurgrilledroiteClick(Sender: TObject); begin if colordialog1.Execute then coucougrille2:=colordialog1.color; BitBtncouleurgrilledroite.Color:=coucougrille2; application.ProcessMessages; end; procedure Tsaisiecouleurs.BitBtncouleurgraduationsClick(Sender: TObject); begin if colordialog1.Execute then coucougraduation:=colordialog1.color; BitBtncouleurgraduations.Color:=coucougraduation; policegraduation.Color:=coucougraduation; application.ProcessMessages; end; procedure Tsaisiecouleurs.BitBtncouleurfondClick(Sender: TObject); begin if colordialog1.Execute then coucoufond:=colordialog1.color; BitBtncouleurfond.Color:=coucoufond; application.ProcessMessages; end; procedure Tsaisiecouleurs.BitBtncouleuraxesClick(Sender: TObject); begin if colordialog1.Execute then coucoucadre:=colordialog1.color; BitBtncouleuraxes.Color:=coucoucadre; application.ProcessMessages; end; initialization {$I unit12.lrs} end. dozzaqueux-3.51/unit20.lrs0000750000175000017500000000440613147330070015722 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('Tsaisietemporisation','FORMDATA',[ 'TPF0'#20'Tsaisietemporisation'#19'saisietemporisation'#4'Left'#3'$'#1#6'Heig' +'ht'#3#161#0#3'Top'#3#195#0#5'Width'#3#188#2#13'ActiveControl'#7#7'BitBtn1' +#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bs' +'Single'#7'Caption'#6#13'Temporisation'#12'ClientHeight'#3#161#0#11'ClientWi' +'dth'#3#188#2#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVer' +'sion'#6#7'1.2.2.0'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Own' +'er'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#2#20#3'Top' +#2#10#5'Width'#3'K'#2#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10 +#7'Caption'#6'XLors de l''ex'#195#169'cution d''un "film" de simulation, l''' +'affichage de chaque '#195#169'cran doit durer:'#10'Font.Style'#11#6'fsBold' +#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label2'#22'AnchorSideL' +'eft.Control'#7#9'SpinEdit1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Ancho' +'rSideTop.Control'#7#9'SpinEdit1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Le' +'ft'#3#142#0#6'Height'#2#20#3'Top'#2','#5'Width'#2#19#18'BorderSpacing.Left' +#2#10#7'Caption'#6#2'ms'#11'ParentColor'#8#0#0#9'TSpinEdit'#9'SpinEdit1'#22 +'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label1'#18 +'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2#28#3'Top'#2'('#5 +'Width'#2'z'#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#8'MaxVal' +'ue'#4#160#134#1#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn1'#22'AnchorSideLe' +'ft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#9'SpinEdit1'#18'AnchorSi' +'deTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'Anchor' +'SideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'A' +'nchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#10#6'Height'#2'I'#3'Top'#2'N' +#5'Width'#3#168#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0 +#18'BorderSpacing.Left'#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Rig' +'ht'#2#10#20'BorderSpacing.Bottom'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'K' +'ind'#7#4'bkOK'#11'ModalResult'#2#1#8'TabOrder'#2#1#0#0#0 ]); dozzaqueux-3.51/unit16.lrs0000750000175000017500000000627013147330070015730 0ustar georgeskgeorgesk{ This is an automatically generated lazarus resource file } LazarusResources.Add('TFormoptionscsv','FORMDATA',[ 'TPF0'#15'TFormoptionscsv'#14'Formoptionscsv'#4'Left'#3'$'#1#6'Height'#3#244#0 +#3'Top'#3#195#0#5'Width'#3#246#2#13'ActiveControl'#7'%RadioGroupseparateur_c' +'sv.RadioButton0'#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimize'#0#11'Bo' +'rderStyle'#7#8'bsSingle'#7'Caption'#6'-Options pour l''export au format tab' +'leur texte'#12'ClientHeight'#3#244#0#11'ClientWidth'#3#246#2#8'OnCreate'#7 +#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#7'1.2.2.0'#0#11'TRa' +'dioGroup'#24'RadioGroupseparateur_csv'#22'AnchorSideLeft.Control'#7#5'Owner' +#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#10#6'Height'#3#128#0#3'Top'#2 +#10#5'Width'#3#15#1#8'AutoFill'#9#18'BorderSpacing.Left'#2#10#17'BorderSpaci' +'ng.Top'#2#10#7'Caption'#6#24'S'#195#169'parateur de colonnes:'#28'ChildSizi' +'ng.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizin' +'g.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeV' +'ertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7 +#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'C' +'hildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.Contr' +'olsPerLine'#2#1#12'ClientHeight'#2'j'#11'ClientWidth'#3#11#1#9'ItemIndex'#2 +#0#13'Items.Strings'#1#6#13'Point virgule'#6#6'Espace'#0#8'TabOrder'#2#0#0#0 +#11'TRadioGroup'#27'RadioGroupseparateurdecimal'#22'AnchorSideLeft.Control'#7 +#24'RadioGroupseparateur_csv'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Anch' +'orSideTop.Control'#7#5'Owner'#4'Left'#3'#'#1#6'Height'#3#128#0#3'Top'#2#10#5 +'Width'#3#189#1#8'AutoFill'#9#18'BorderSpacing.Left'#2#10#17'BorderSpacing.T' +'op'#2#10#7'Caption'#6#20'S'#195#169'parateur d'#195#169'cimal'#28'ChildSizi' +'ng.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizin' +'g.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeV' +'ertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7 +#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'C' +'hildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.Contr' +'olsPerLine'#2#1#12'ClientHeight'#2'j'#11'ClientWidth'#3#185#1#9'ItemIndex'#2 +#0#13'Items.Strings'#1#6'0Virgule (recommand'#195#169' pour OpenOffice/Staro' +'ffice)'#6#30'Point (recommand'#195#169' pour Excel)'#0#8'TabOrder'#2#1#0#0#7 +'TBitBtn'#7'BitBtn1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.' +'Control'#7#24'RadioGroupseparateur_csv'#18'AnchorSideTop.Side'#7#9'asrBotto' +'m'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrB' +'ottom'#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9 +'asrBottom'#4'Left'#2#10#6'Height'#2'V'#3'Top'#3#148#0#5'Width'#3#226#2#7'An' +'chors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#18'BorderSpacing.Left' +#2#10#17'BorderSpacing.Top'#2#10#19'BorderSpacing.Right'#2#10#20'BorderSpaci' +'ng.Bottom'#2#10#7'Caption'#6#3'&OK'#7'Default'#9#4'Kind'#7#4'bkOK'#11'Modal' +'Result'#2#1#7'OnClick'#7#12'BitBtn1Click'#8'TabOrder'#2#2#0#0#0 ]); dozzaqueux-3.51/unit13.pas0000750000175000017500000000245113147330070015705 0ustar georgeskgeorgeskunit Unit13; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,UChaines,UnitScaleFont; type { Tsaisieunites } Tsaisieunites = class(TForm) BitBtn1: TBitBtn; Editlabely2: TEdit; Editunitey2: TEdit; Editlabely1: TEdit; Editunitey1: TEdit; Editlabelx: TEdit; Editunitex: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } encreation:boolean; public { public declarations } end; var saisieunites: Tsaisieunites; implementation { Tsaisieunites } procedure Tsaisieunites.FormCreate(Sender: TObject); begin encreation:=true; Caption := rsUnitSEtLabel ; Label1.Caption := rsUnitAfficher; Label2.Caption := rsLabelAffiche; Label3.Caption := rsUnitAfficher2; Label4.Caption := rsLabelAffiche2; Label5.Caption := rsUnitAfficher3; Label6.Caption := rsLabelAffiche3; BitBtn1.Caption := rsOK; end; procedure Tsaisieunites.FormShow(Sender: TObject); begin //if encreation then begin scalefont(self); encreation:=false; end; end; initialization {$I unit13.lrs} end. dozzaqueux-3.51/unit20.lfm0000750000175000017500000000362113147330070015676 0ustar georgeskgeorgeskobject saisietemporisation: Tsaisietemporisation Left = 292 Height = 161 Top = 195 Width = 700 ActiveControl = BitBtn1 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = 'Temporisation' ClientHeight = 161 ClientWidth = 700 OnCreate = FormCreate OnShow = FormShow LCLVersion = '1.2.2.0' object Label1: TLabel AnchorSideLeft.Control = Owner AnchorSideTop.Control = Owner Left = 10 Height = 20 Top = 10 Width = 587 BorderSpacing.Left = 10 BorderSpacing.Top = 10 Caption = 'Lors de l''exécution d''un "film" de simulation, l''affichage de chaque écran doit durer:' Font.Style = [fsBold] ParentColor = False ParentFont = False end object Label2: TLabel AnchorSideLeft.Control = SpinEdit1 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SpinEdit1 AnchorSideTop.Side = asrCenter Left = 142 Height = 20 Top = 44 Width = 19 BorderSpacing.Left = 10 Caption = 'ms' ParentColor = False end object SpinEdit1: TSpinEdit AnchorSideLeft.Control = Owner AnchorSideTop.Control = Label1 AnchorSideTop.Side = asrBottom Left = 10 Height = 28 Top = 40 Width = 122 BorderSpacing.Left = 10 BorderSpacing.Top = 10 MaxValue = 100000 TabOrder = 0 end object BitBtn1: TBitBtn AnchorSideLeft.Control = Owner AnchorSideTop.Control = SpinEdit1 AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 10 Height = 73 Top = 78 Width = 680 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 10 BorderSpacing.Top = 10 BorderSpacing.Right = 10 BorderSpacing.Bottom = 10 Caption = '&OK' Default = True Kind = bkOK ModalResult = 1 TabOrder = 1 end end