{**********************************************************************}
{ File archived using GP-Version }
{ GP-Version is Copyright 1999 by Quality Software Components Ltd }
{ }
{ For further information / comments, visit our WEB site at }
{ http://www.qsc.co.uk }
{**********************************************************************}
{}
{ $Log: F:\OUTILS\PG-VERSION\Archives\Help&Web\Help&Web 32 bits\ONGLET.paV
{
{ Rev 1.0 19/03/00 18:47:09 ectsoft Version: v4.1.9.7
{ Initial Revision
}
{}
unit Onglet;
//{$H-}
interface

uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Buttons,
StdCtrls, ExtCtrls, Tabs, TabNotBk,Mainhlp, Dialogs, Spin,SysUtils,
ComCtrls,transbtn, TB97, TB97Ctls, usuels,mbuttons;

type
TDlgOnglet = class(TForm)
OKBtn: TESpeedButton;
CancelBtn: TESpeedButton;
TabOnglet: TTabbedNotebook;
TabListe: TTabSet;
Label1: TLabel;
Label2: TLabel;
NewJeu: TESpeedButton;
KillJeu: TESpeedButton;
Proprietes: TPanel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Lar: TSpinEdit;
BitBtn3: TESpeedButton;
Fond: TPanel;
ColorDialog1: TColorDialog;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
rbMoyen: TRadioButton;
rbPetit: TRadioButton;
Titre1: TEdit97;
Lien1: TEdit97;
Titre2: TEdit97;
Lien2: TEdit97;
Titre3: TEdit97;
Lien3: TEdit97;
Titre4: TEdit97;
Lien4: TEdit97;
Titre5: TEdit97;
Lien5: TEdit97;
Titre6: TEdit97;
Lien6: TEdit97;
Titre7: TEdit97;
Lien7: TEdit97;
Titre8: TEdit97;
Lien8: TEdit97;
Nom: TEdit97;
EmptyPanel1: TEmptyPanel;
Monte: TESpeedButton;
Descend: TESpeedButton;
Choix: TESpeedButton;
procedure FormCreate(Sender: TObject);
procedure ChoixClick(Sender: TObject);
procedure TabOngletChange(Sender: TObject; NewTab: Integer;
var AllowChange: Boolean);
procedure BitBtn3Click(Sender: TObject);
procedure TabListeChange(Sender: TObject; NewTab: Integer;
var AllowChange: Boolean);
procedure NewJeuClick(Sender: TObject);
procedure KillJeuClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure NomChange(Sender: TObject);
procedure TabOngletClick(Sender: TObject);
procedure MonteClick(Sender: TObject);
procedure DescendClick(Sender: TObject);
procedure Titre1Change(Sender: TObject);
procedure OKBtnClick(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
private
{ Private declarations }
{$IFNDEF FRANCAIS}procedure Initialise_Language;{$ENDIF}
public
{ Public declarations }
procedure Affiche_Jeu_Numero(i:INTEGER);
procedure Enregistre_Jeu_Numero(i:INTEGER);
end;

var
DlgOnglet: TDlgOnglet;
Defaut:STRING;
{$IFDEF ANGLAIS}{$INCLUDE *.ang}{$ENDIF}
{$IFDEF ESPAGNOL}{$INCLUDE *.es}{$ENDIF}
{$IFDEF ALLEMAND}{$INCLUDE *.ger}{$ENDIF}
implementation

{$R *.DFM}
uses DlgRubri,File_hfc,File_str,iofile,HELPId,divers,hew_mes;

{$IFNDEF FRANCAIS}{$INCLUDE *.lan}{$ENDIF}


procedure TDlgOnglet.FormCreate(Sender: TObject);
var i:integer;
s1,s2:STRING;
couleur:TstringList;
begin
{$IFNDEF FRANCAIS}Initialise_Language;{$ENDIF}
couleur := TstringList.Create;
try
ReadCustomColors(MainHlp.EctIni,DCOLORS,Couleur);
ColorDialog1.CustomColors.Assign(Couleur);
finally
Couleur.Free;
end;

if Nbr_De_Jeux_D_Onglet>0 then
begin
for i:=0 to Nbr_De_Jeux_D_Onglet-1 do
begin
GetChaines(TSLOnglet[i*9],':',s1,s2);
TabListe.Tabs.Add(s1);
end;
if Defaut<>'' then
BEGIN
i:=TabListe.Tabs.IndexOf(Defaut);
if i< 0 then i:=0;
TabListe.TabIndex := i;
KillJeu.Enabled := FALSE;
END else TabListe.TabIndex:=0;
Affiche_Jeu_Numero(TabListe.TabIndex);

end
else begin
Proprietes.Enabled := FALSE;
KillJeu.Enabled := FALSE;
TabOnglet.Enabled := FALSE;
Choix.Enabled := FALSE;
end;
end;


procedure TDlgOnglet.Enregistre_Jeu_Numero(i:INTEGER);
var j,l:integer;
begin
if i>-1 then
begin
l := Lar.Value;
if rbPetit.Checked then inc(l,2048);
TSLOnglet[i*9]:= Nom.Text+':'+IntToStr(l)+'|'+IntToStr(Fond.Color);
TabListe.Tabs[i]:= Nom.Text;
for j:=1 to 8 do
begin
case j of
1: BEGIN
if Titre1.Text<>'' then
TSLOnglet[(i*9)+j]:= Titre1.Text+'|'+Lien1.Text
else TSLOnglet[(i*9)+j]:= '|';
END;
2: BEGIN
if Titre2.Text<>'' then
TSLOnglet[(i*9)+j]:= Titre2.Text+'|'+Lien2.Text
else TSLOnglet[(i*9)+j]:= '|';
END;
3: BEGIN
if Titre3.Text<>'' then
TSLOnglet[(i*9)+j]:= Titre3.Text+'|'+Lien3.Text
else TSLOnglet[(i*9)+j]:= '|';
END;
4: BEGIN
if Titre4.Text<>'' then
TSLOnglet[(i*9)+j]:= Titre4.Text+'|'+Lien4.Text
else TSLOnglet[(i*9)+j]:= '|';
END;

5: BEGIN
if Titre5.Text<>'' then
TSLOnglet[(i*9)+j]:= Titre5.Text+'|'+Lien5.Text
else TSLOnglet[(i*9)+j]:= '|';
END;
6: BEGIN
if Titre6.Text<>'' then
TSLOnglet[(i*9)+j]:= Titre6.Text+'|'+Lien6.Text
else TSLOnglet[(i*9)+j]:= '|';
END;
7: BEGIN
if Titre7.Text<>'' then
TSLOnglet[(i*9)+j]:= Titre7.Text+'|'+Lien7.Text
else TSLOnglet[(i*9)+j]:= '|';
END;
8: BEGIN
if Titre8.Text<>'' then
TSLOnglet[(i*9)+j]:= Titre8.Text+'|'+Lien8.Text
else TSLOnglet[(i*9)+j]:= '|';
END;
end;
end;
end;
end;
procedure TDlgOnglet.Affiche_Jeu_Numero(i:INTEGER);
var j,l:integer;
s1,s2,s3:STRING;
begin
if i*9<TSLonglet.Count then
begin
TabOnglet.PageIndex:=0;
{ lecture du nom du jeu d'onglets, de sa largeur et de sa couleur }
GetChaines(TSLOnglet[i*9],':',s1,s2);
Nom.Text := s1;
KillJeu.Enabled := s1<>Defaut;
GetChaines(s2,'|',s1,s3);
l := StrToInt(s1);
if l>2048 then
begin
dec(l,2048);
rbpetit.checked := true;
end
else rbMoyen.checked := true;
Lar.Value := l;
Fond.Color:= StrToInt(s3);
s1:='';
s2:='';
{ lecture du nom et de la rubrique liée des 5 onglets théoriques }
for j:=1 to 8 do
begin
GetChaines(TSLOnglet[(i*9)+j],'|',s1,s2);
case j of
1: begin
Titre1.Text := s1;
Lien1.Text := s2;
end;
2: begin
Titre2.Text := s1;
Lien2.Text := s2;
end;
3: begin
Titre3.Text := s1;
Lien3.Text := s2;
end;
4: begin
Titre4.Text := s1;
Lien4.Text := s2;
end;
5: begin
Titre5.Text := s1;
Lien5.Text := s2;
end;
6: begin
Titre6.Text := s1;
Lien6.Text := s2;
end;
7: begin
Titre7.Text := s1;
Lien7.Text := s2;
end;
8: begin
Titre8.Text := s1;
Lien8.Text := s2;
end;


end;
end;
end;
Choix.Enabled := Titre1.Text<>'';
Monte.Enabled := FALSE;
end;
procedure TDlgOnglet.ChoixClick(Sender: TObject);
var
Dlg:TDlgRub;

begin
MainForm.IndexRubrique.SaveToFile(ChangeFileExt(MainHlp.PrjActuel, '.RUB'));
Dlg:=TDlgRub.Create(Self);
TRY
Dlg.BitBtn1.Enabled:=FALSE;
dlg.Project:=NomProjet;
if Dlg.ShowModal=mrOk then
begin
IF Dlg.Rubrique.SelectedItem=1 THEN
Dlg.Rubrique.SelectedItem:=2;
if GetStyleRubrique(Dlg.Rubrique.Items[Dlg.Rubrique.SelectedItem].Text)=POPUP
then CentreMessageOnCursor(POPUP_ONGLET,mtWarning,[mbOk])
else case TabOnglet.PageIndex OF
0 : Lien1.Text:=Dlg.Rubrique.Items[Dlg.Rubrique.SelectedItem].Text;
1 : Lien2.Text:=Dlg.Rubrique.Items[Dlg.Rubrique.SelectedItem].Text;
2 : Lien3.Text:=Dlg.Rubrique.Items[Dlg.Rubrique.SelectedItem].Text;
3 : Lien4.Text:=Dlg.Rubrique.Items[Dlg.Rubrique.SelectedItem].Text;
4 : Lien5.Text:=Dlg.Rubrique.Items[Dlg.Rubrique.SelectedItem].Text;
5 : Lien6.Text:=Dlg.Rubrique.Items[Dlg.Rubrique.SelectedItem].Text;
6 : Lien7.Text:=Dlg.Rubrique.Items[Dlg.Rubrique.SelectedItem].Text;
7 : Lien8.Text:=Dlg.Rubrique.Items[Dlg.Rubrique.SelectedItem].Text;
end;
end;
FINALLY
Dlg.Free;
END;

end;

procedure TDlgOnglet.TabOngletChange(Sender: TObject; NewTab: Integer;
var AllowChange: Boolean);
var s:string[40];
begin
if NewTab>0 then
begin
case NewTab of
1 : s:=Titre1.Text;
2 : s:=Titre2.Text;
3 : s:=Titre3.Text;
4 : s:=Titre4.Text;
5 : s:=Titre5.Text;
6 : s:=Titre6.Text;
7 : s:=Titre7.Text;
8 : s:=Titre8.Text;
end;
AllowChange:=s<>'';
end;
end;

procedure TDlgOnglet.BitBtn3Click(Sender: TObject);
var Liste:TstringLIst;
begin
if ColorDialog1.Execute then
begin
Fond.Color := ColorDialog1.Color;
Liste := TstringList.Create;
try
Liste.Assign(ColorDialog1.CustomColors);
WriteCustomColors(MainHlp.EctIni,DCOLORS,Liste);
finally
Liste.Free;
end;
end;
end;

procedure TDlgOnglet.TabListeChange(Sender: TObject; NewTab: Integer;
var AllowChange: Boolean);
begin
if NewTab=TabListe.TabIndex then AllowChange:=FALSE else
begin
Enregistre_Jeu_Numero(TabListe.TabIndex);
Affiche_Jeu_Numero(NewTab);
end;
end;

procedure TDlgOnglet.NewJeuClick(Sender: TObject);
begin
Proprietes.Enabled := TRUE;
KillJeu.Enabled := TRUE;
TabOnglet.Enabled := TRUE;
Choix.Enabled := FALSE;
Monte.Enabled := FALSE;
Descend.Enabled := FALSE;
{if TabListe.Tabs.Count>0 then Enregistre_Jeu_Numero(TabListe.TabIndex); }
INC(Nbr_De_Jeux_D_Onglet);
TabListe.TabIndex:=TabListe.Tabs.Add('Jeu'+IntToStr(Nbr_De_Jeux_D_Onglet));
Nom.Text := TabListe.Tabs[TabListe.TabIndex];
Lar.Value := 800;
Fond.Color:= clSilver;
TabOnglet.PageIndex := 0;
Titre1.Text := '';
Titre2.Text := '';
Titre3.Text := '';
Titre4.Text := '';
Titre5.Text := '';
Titre6.Text := '';
Titre7.Text := '';
Titre8.Text := '';
Lien1.Text := '';
Lien2.Text := '';
Lien3.Text := '';
Lien4.Text := '';
Lien5.Text := '';
Lien6.Text := '';
Lien7.Text := '';
Lien8.Text := '';
TSLOnglet.Add(Nom.Text+':100|'+IntToStr(clSilver));
TSLOnglet.Add('');
TSLOnglet.Add('');
TSLOnglet.Add('');
TSLOnglet.Add('');
TSLOnglet.Add('');
TSLOnglet.Add('');
TSLOnglet.Add('');
TSLOnglet.Add('');

end;

procedure TDlgOnglet.KillJeuClick(Sender: TObject);
var i,j:integer;
begin
if TabListe.TabIndex>-1 then
begin
if TabListe.TabIndex=Nbr_De_Jeux_D_Onglet-1 then i:=TabListe.TabIndex-1
else i:=TabListe.TabIndex+1;
j:=TabListe.TabIndex;
TabListe.TabIndex:=i;
{ if i>1 then Affiche_Jeu_Numero(i); }
for i:= 0 to 8 do TSLOnglet.Delete(TabListe.TabIndex*9);
DEC(Nbr_De_Jeux_D_Onglet);
if Nbr_De_Jeux_D_Onglet = 0 then
begin
Proprietes.Enabled := FALSE;
KillJeu.Enabled := FALSE;
TabOnglet.Enabled := FALSE;
Choix.Enabled := FALSE;
Nom.Text := '';
Lar.Value := 100;
Fond.Color:= clSilver;
TabOnglet.PageIndex := 0;
Titre1.Text := '';
Lien1.Text := '';
end;
TabListe.Tabs.Delete(j);
end;
end;

procedure TDlgOnglet.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Enregistre_Jeu_Numero(TabListe.TabIndex);
end;

procedure TDlgOnglet.NomChange(Sender: TObject);
begin
OKbtn.Enabled := Nom.Text<>'';
end;

procedure TDlgOnglet.TabOngletClick(Sender: TObject);
begin
Monte.Enabled :=TabOnglet.PageIndex>0;
case TabOnglet.PageIndex of
0 : BEGIN
Descend.Enabled := Titre2.Text<>'';
Choix.Enabled := Titre1.Text<>'';
END;
1 : BEGIN
Descend.Enabled := Titre3.Text<>'';
Monte.Enabled := Titre2.Text<>'';
Choix.Enabled := Monte.Enabled;
END;
2 : BEGIN
Descend.Enabled := Titre4.Text<>'';
Monte.Enabled := Titre3.Text<>'';
Choix.Enabled := Monte.Enabled;
END;
3 : BEGIN
Descend.Enabled := Titre5.Text<>'';
Monte.Enabled := Titre4.Text<>'';
Choix.Enabled := Monte.Enabled;
END;
4 : BEGIN
Descend.Enabled := Titre6.Text<>'';
Monte.Enabled := Titre5.Text<>'';
Choix.Enabled := Monte.Enabled;
END;
5 : BEGIN
Descend.Enabled := Titre7.Text<>'';
Monte.Enabled := Titre6.Text<>'';
Choix.Enabled := Monte.Enabled;
END;
6 : BEGIN
Descend.Enabled := Titre8.Text<>'';
Monte.Enabled := Titre7.Text<>'';
Choix.Enabled := Monte.Enabled;
END;
7 : BEGIN
Descend.Enabled := FALSE;
Monte.Enabled := Titre8.Text<>'';
Choix.Enabled := Monte.Enabled;
END;
end;
end;

procedure TDlgOnglet.MonteClick(Sender: TObject);
VAR s:string;
begin
case TabOnglet.PageIndex of
1 : begin
s:=Titre1.Text;
Titre1.Text:=Titre2.Text;
Titre2.Text:=s;
s:=Lien1.Text;
Lien1.Text:=Lien2.Text;
Lien2.Text:=s;
end;
2 : begin
s:=Titre2.Text;
Titre2.Text:=Titre3.Text;
Titre3.Text:=s;
s:=Lien2.Text;
Lien2.Text:=Lien3.Text;
Lien3.Text:=s;
end;
3 : begin
s:=Titre3.Text;
Titre3.Text:=Titre4.Text;
Titre4.Text:=s;
s:=Lien3.Text;
Lien3.Text:=Lien4.Text;
Lien4.Text:=s;
end;
4 : begin
s:=Titre4.Text;
Titre4.Text:=Titre5.Text;
Titre5.Text:=s;
s:=Lien4.Text;
Lien4.Text:=Lien5.Text;
Lien5.Text:=s;
end;
5 : begin
s:=Titre5.Text;
Titre5.Text:=Titre6.Text;
Titre6.Text:=s;
s:=Lien5.Text;
Lien5.Text:=Lien6.Text;
Lien6.Text:=s;
end;
6 : begin
s:=Titre6.Text;
Titre6.Text:=Titre7.Text;
Titre7.Text:=s;
s:=Lien6.Text;
Lien6.Text:=Lien7.Text;
Lien7.Text:=s;
end;
7 : begin
s:=Titre7.Text;
Titre7.Text:=Titre8.Text;
Titre8.Text:=s;
s:=Lien7.Text;
Lien7.Text:=Lien8.Text;
Lien8.Text:=s;
end;
end;
end;

procedure TDlgOnglet.DescendClick(Sender: TObject);
VAR s:string;
begin
case TabOnglet.PageIndex of
0 : begin
s:=Titre2.Text;
Titre2.Text:=Titre1.Text;
Titre1.Text:=s;
s:=Lien2.Text;
Lien2.Text:=Lien1.Text;
Lien1.Text:=s;
end;

1 : begin
s:=Titre3.Text;
Titre3.Text:=Titre2.Text;
Titre2.Text:=s;
s:=Lien3.Text;
Lien3.Text:=Lien2.Text;
Lien2.Text:=s;
end;
2 : begin
s:=Titre4.Text;
Titre4.Text:=Titre3.Text;
Titre3.Text:=s;
s:=Lien4.Text;
Lien4.Text:=Lien3.Text;
Lien3.Text:=s;
end;
3 : begin
s:=Titre5.Text;
Titre5.Text:=Titre4.Text;
Titre4.Text:=s;
s:=Lien5.Text;
Lien5.Text:=Lien4.Text;
Lien4.Text:=s;
end;
4 : begin
s:=Titre6.Text;
Titre6.Text:=Titre5.Text;
Titre5.Text:=s;
s:=Lien6.Text;
Lien6.Text:=Lien5.Text;
Lien5.Text:=s;
end;
5 : begin
s:=Titre7.Text;
Titre7.Text:=Titre6.Text;
Titre6.Text:=s;
s:=Lien7.Text;
Lien7.Text:=Lien6.Text;
Lien6.Text:=s;
end;
6: begin
s:=Titre8.Text;
Titre8.Text:=Titre7.Text;
Titre7.Text:=s;
s:=Lien8.Text;
Lien8.Text:=Lien7.Text;
Lien7.Text:=s;
end;

end;

end;



procedure TDlgOnglet.Titre1Change(Sender: TObject);
begin
Choix.Enabled := TEdit97(Sender).Text<>'';
Monte.Enabled := ((TEdit97(Sender).Text<>'') AND (Sender<>Titre1)) ;
if TEdit97(Sender).Text='' then
begin
case TabOnglet.PageIndex of
0 : Lien1.Text := '';
1 : Lien2.Text := '';
2 : Lien3.Text := '';
3 : Lien4.Text := '';
4 : Lien5.Text := '';
5 : Lien6.Text := '';
6 : Lien7.Text := '';
7 : Lien8.Text := '';
end;
end;
end;

procedure TDlgOnglet.OKBtnClick(Sender: TObject);
begin
modalresult := mrok;
end;

procedure TDlgOnglet.CancelBtnClick(Sender: TObject);
begin
modalresult := mrcancel;
end;


end.

Sommaire