Le 27 novembre, Jean-Pierre Poupée adjoint au maire de Saint-Paterne-Racan m’a fait faire un tour des différents sites du village pour que j’en comprenne la configuration :
Archives de l’auteur : Jissouille
Les premières idées en vrac
Le 12 novembre 2013, j’ai présenté au conseil municipal de Chemillé-sur-Dême les grandes lignes du projet. Aucune demande, juste une information, pour que l’idée commence à faire son chemin.
Naissance du projet
Le projet Racanet vise à fournir du réseau Internet haut débit sur le territoire rural du canton de Neuvy-le-Roi, administré de façon intercommunale par la Communauté de Communes de Racan.
Skinner une appli avec les outils DevExpress (dxRibbon)
Poser un dxSkinController sur le DataModule, virer le NativeStyle, choisir une skin.
Dériver la fiche principale de TdxRibbonForm (use dxRibbonForm
)
Poser un dxRibbon
SupportNonClientDrawing = true
Sur le OnSkinChanged du dxRibbonSkinChooser :
procedure TFMain.dxSkinChooserGalleryItem1SkinChanged(Sender: TObject;
const ASkinName: string);
begin
DM.dxSkinController1.NativeStyle := False;
DM.dxSkinController1.SkinName := ASkinName;
dxSkinChooserGalleryItem1.LargeGlyph := dxSkinChooserGalleryItem1.SelectedGroupItem.Glyph;
//must set ColorSchemeName separately
//see http://www.devexpress.com/Support/Center/p/S20045.aspx
dxRibbon1.ColorSchemeName := ASkinName;
with TRegistry.Create do
Try
if OpenKey('\Software\Cat\ProgName',True) then Begin
WriteString('SkinName',ASkinName);
CloseKey;
end;
finally
Free;
end;
end;
Et dans le Main.OnFormShow :
with TRegistry.Create do
Try
if OpenKey('\Software\Cat\Progname',False) then Begin
DM.dxSkinController1.SkinName:=ReadString('SkinName');
dxRibbon1.ColorSchemeName := DM.dxSkinController1.SkinName;
CloseKey;
end;
finally
Free;
end;
Être féministe avec une bite
Un article qui synthétise simplement plusieurs choses à propos des hommes et du féminisme.
http://lemauvaisgenre.wordpress.com/2012/07/17/etre-feministe-avec-une-bite/
Et si on fermait la Bourse…
Ce n’est pas une blague mais une proposition du très sérieux économiste Frédéric Lordon. À méditer.
Sexisme chez les geeks
Pourquoi notre communauté est malade, et comment y remédier. Un article très [très] complet. Ma référence en la matière.
Fiches Delphi avec nxCachedDataSet
- Déposer une TNxQuery (qXXX), un TNxCachedDataset (cXXX), un TDataSource (dsXXX) et un TNxSqlUpdateObject (uXXX).
- Rattacher le dsXXX à cXXX
- Rattacher qXXX à cXXX (champ cXXX.SourceDataSet)
- Rattacher uXXX à cXXX (champ cXXX.UpdateObject)
- Définir la requête qXXX.Text pour récupérer le contenu de la table
- Ajouter les champs persistants à qXXX et cXXX
- Si qXXX a une Datasource, définir un événement cXXX.AfterInsert et y placer :
===
procedure TFFicheContrat.cLienContratCategorieAfterInsert(DataSet: TDataSet);
begin
cLienContratCategorieidcontrat.AsInteger:=fContratsId.Value;
end;
- Définir des requêtes pour uXXX
INSERT
INSERT INTO lienscontratscategories (idcontrat,idcategorie,abattement)
VALUES (:idcontrat,:idcategorie,:abattement)
MODIFY
UPDATE lienscontratscategories
SET idcategorie=:idcategorie, abattement=:abattement
WHERE id=:id
DELETE
DELETE FROM lienscontratscategories WHERE id=:id
Les paramètres :zzz se rapportent à cXXX
- Ajouter une demande de confirmation de suppression dans cXXX.BeforeDelete :
#
procedure TFFicheContrat.cLienContratCategorieBeforeDelete(DataSet: TDataSet);
begin
if (MessageDlg('Retirer cet abattement pour cette catégorie de ce support ?', mtWarning, [mbYes, mbNo], 0) = mrNo) then
Abort;
end;
Les mots clé dans Firefox
Ou comment rechercher des infos sur le net plus vite que tout le monde. Cet article s’adresse aux utilisateurs de Firefox mais pour les amis de Google, on peut faire la même chose avec Chrome et Chromium.
Continuer la lecture
NexusDB
LastAutoInc
START TRANSACTION;
insert into titres (nom) values ('test IDENTITY');
SELECT LASTAUTOINC;
COMMIT;
Dans du Delphi, ça donne :
q:=TNxQuery.Create(application);
try
q.Database:=dm.dbinpro;
q.sql.text:='START TRANSACTION; '+
'INSERT INTO titres (isrc,nom,interprete) values (:isrc,:titre,:interprete); ';
'SELECT LASTAUTOINC; '+
'COMMIT; ';
q.ParamByName('titre').AsString:=LTitre.Caption;
q.ParamByName('isrc').AsString:=LIsrc.Caption;
q.ParamByName('interprete').AsString:=LArtistes.Caption;
q.Open;
i:=q.FieldValues['LastAutoInc'];
finally
q.free;
end;
Insérer des valeurs nulles
with q.ParamByName('idtitre') do Begin
Clear;
Bound:=True;
DataType:=ftString;
End;