begin process at 2012 02 10 15:57:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Créer un type de fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Créer un type de fichier

mercredi 2 mars 2005 à 21:48:48 | Créer un type de fichier

vez_from_hell

bonjour
 je vais vs donner ma source et pourriez vous me dire comment je pourrais créer un extension de fichier et lorsque je vais cliquer sur ouvrir ou enregistrer sous, ce soit inscrit dans fichier de type(dans la boite de dialogue en bas de nom du fichier) et lorsque j'enregistre je voudrais aussi que ce soit l'extension par défaut (sans avoir besoin de l'ajouter apres le nom du fichier)

voici ma source:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <windows.hpp>
#include <stdlib.h>
#include <stdio.h>
#include "Main.h"
#include "ReConst.hpp"
#include "reconst.hpp"

 


//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)


{
SetFileName(Reconst_SUntitled);

}

//----------------------------------------------------------------------------
TTextAttributes *__fastcall TForm1::CurrText(void)
{
    return RichEdit1->SelAttributes;
}
//----------------------------------------------------------------------------
int __stdcall EnumFontsProc(TLogFontA &LogFont, TTextMetricA &/*TextMetric*/,
                                int /*FontType*/, Pointer Data)
{
     TCharsetObject *FontCharset;
     FontCharset = new TCharsetObject((int)LogFont.lfCharSet);
     ((TStrings *)Data)->AddObject((AnsiString)LogFont.lfFaceName,FontCharset);
     return 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::GetFontNames(void)
{    HDC hDC = GetDC(0);
     void * cTmp = (void *)FontName->Items;
     EnumFonts(hDC, NULL, (FONTENUMPROC) EnumFontsProc, (long) cTmp );
     ReleaseDC(0,hDC);
     FontName->Sorted = True;
}
//----------------------------------------------------------------------------
void __fastcall TForm1::SetFileName(const AnsiString FileName)
{
     LPSTR lpBuf = new char[MAX_PATH];
     sprintf(lpBuf, Reconst_SPercent_s.c_str(), ExtractFileName(FileName).c_str(),
             Application->Title.c_str());
     Caption = (AnsiString)lpBuf;
     FFileName = FileName;
     delete lpBuf;
}
//----------------------------------------------------------------------------
void __fastcall TForm1::CheckFileSave(void)
{    if ( RichEdit1->Modified ) {
        switch(MessageBox(Handle, Reconst_SSaveChanges.c_str(),
          Reconst_SConfirmation.c_str(),MB_YESNOCANCEL | MB_ICONQUESTION))
        {  case ID_YES    : Save1Click(this);
           case ID_CANCEL : Abort();
        };
     }
}

//----------------------------------------------------------------------------
void __fastcall TForm1::ShowHint(TObject* /*Sender*/)
{    StatusBar1->SimpleText = Application->Hint;
}
//----------------------------------------------------------------------------

void __fastcall TForm1::NewButtonClick(TObject *Sender)
{
    CheckFileSave();
     SetFileName(Reconst_SUntitled);
     RichEdit1->Lines->Clear();
     RichEdit1->Modified = False;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::OpenButtonClick(TObject *Sender)
{
CheckFileSave();
     if (OpenDialog1->Execute()) {
        RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
        SetFileName(OpenDialog1->FileName);
        RichEdit1->SetFocus();
        RichEdit1->Modified = False;
        RichEdit1->ReadOnly = OpenDialog1->Options.Contains(ofReadOnly);
     }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SaveButtonClick(TObject *Sender)
{
if ( !strcmp(FFileName.c_str(), Reconst_SUntitled.c_str()) )
        SaveAs1Click(Sender);
     else
     {
        RichEdit1->Lines->SaveToFile(FFileName);
        RichEdit1->Modified = False;
     }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SaveAs1Click(TObject* /*Sender*/)
{    if ( SaveDialog1->Execute() ) {
        RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);
        SetFileName(SaveDialog1->FileName);
        RichEdit1->Modified = False;
     }
}

//---------------------------------------------------------------------------

void __fastcall TForm1::PrintButtonClick(TObject *Sender)
{
 if ( PrintDialog1->Execute() ) RichEdit1->Print( FFileName );
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
if ( RichEdit1->HandleAllocated() )
        SendMessage(RichEdit1->Handle, EM_UNDO, 0, 0);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Cut1Click(TObject *Sender)
{
RichEdit1->CutToClipboard();       
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Copy1Click(TObject *Sender)
{
RichEdit1->CopyToClipboard();       
}
//---------------------------------------------------------------------------

void __fastcall TForm1::C1Click(TObject *Sender)
{
RichEdit1->PasteFromClipboard();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Font1Click(TObject *Sender)
{
 FontDialog1->Font->Assign( RichEdit1->SelAttributes );
     if ( FontDialog1->Execute() )
        CurrText()->Assign( FontDialog1->Font );

     RichEdit1->SetFocus();       
}
//---------------------------------------------------------------------------
void __fastcall TForm1::New1Click(TObject *Sender)
{   CheckFileSave();
     SetFileName(Reconst_SUntitled);
     RichEdit1->Lines->Clear();
     RichEdit1->Modified = False;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Open1Click(TObject *Sender)
{
  CheckFileSave();
     if (OpenDialog1->Execute()) {
        RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
        SetFileName(OpenDialog1->FileName);
        RichEdit1->SetFocus();
        RichEdit1->Modified = False;
        RichEdit1->ReadOnly = OpenDialog1->Options.Contains(ofReadOnly);
     }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Saveas1Click(TObject *Sender)
{
if ( SaveDialog1->Execute() ) {
        // Options + OverwritePrompt = True thus no need to check.
        RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);
        SetFileName(SaveDialog1->FileName);
        RichEdit1->Modified = False;
     }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Save1Click(TObject *Sender)
{
  if ( !strcmp(FFileName.c_str(), Reconst_SUntitled.c_str()) )
        SaveAs1Click(Sender);
     else
     {
        RichEdit1->Lines->SaveToFile(FFileName);
        RichEdit1->Modified = False;
     }       
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Print1Click(TObject *Sender)
{
if ( PrintDialog1->Execute() ) RichEdit1->Print( FFileName );
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Exit1Click(TObject *Sender)
{
CheckFileSave();
Close();
}
//---------------------------------------------------------------------------
__fastcall TCharsetObject::TCharsetObject(int FCharset)
  : TObject()
{
     Charset = FCharset;
}

//---------------------------------------------------------------------------

void __fastcall TForm1::FontNameChange(TObject* /*Sender*/)
{
     TCharsetObject* ChasrsetObject;

     if ( !FUpdating )
     {
        int FontIndex = FontName->ItemIndex;
        if ((FontIndex > -1) & (FontIndex < FontName->Items->Count))
        {
          ChasrsetObject = (TCharsetObject*)FontName->Items->Objects[FontName->ItemIndex];
          CurrText()->Charset = (unsigned char)ChasrsetObject->Charset;
          CurrText()->Name = FontName->Items->Strings[FontName->ItemIndex];
        }
     }
}
//----------------------------------------------------------------------------
void __fastcall TForm1::SelectFont(TObject* /*Sender*/)
{    FontDialog1->Font->Assign( RichEdit1->SelAttributes );
     if ( FontDialog1->Execute() )
        CurrText()->Assign( FontDialog1->Font );

     RichEdit1->SetFocus();
}
//----------------------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery(TObject* /*Sender*/,
     bool & CanClose)
{    try {
       CheckFileSave();
     }
     catch (...) {
       CanClose = False;
     }
}
//----------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
 CheckFileSave();
     for(int n = 0;n < FontName->Items->Count;n++)
       if( FontName->Items->Objects[n] ){
         delete FontName->Items->Objects[n];
         FontName->Items->Objects[n] = NULL;
       }
}
//----------------------------------------------------------------------------
void __fastcall TForm1::Undo1Click(TObject *Sender)
{
if ( RichEdit1->HandleAllocated() )
        SendMessage(RichEdit1->Handle, EM_UNDO, 0, 0);
}
//----------------------------------------------------------------------------


et le fichier .h:
//---------------------------------------------------------------------------

#ifndef MainH
#define MainH
//---------------------------------------------------------------------------
#include <Outline.hpp>
#include <Grids.hpp>
#include <Buttons.hpp>
#include <ExtCtrls.hpp>
#include <StdCtrls.hpp>
#include <ComCtrls.hpp>
#include <Menus.hpp>
#include <Dialogs.hpp>
#include <Forms.hpp>
#include <Controls.hpp>
#include <Graphics.hpp>
#include <Classes.hpp>
#include <SysUtils.hpp>
#include <Messages.hpp>
#include <Windows.hpp>
#include <System.hpp>
#include <ToolWin.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // Composants gérés par l'EDI
        TMainMenu *MainMenu1;
        TMenuItem *File1;
        TRichEdit *RichEdit1;
        TLabel *Label1;
        TSaveDialog *SaveDialog1;
        TOpenDialog *OpenDialog1;
        TPrintDialog *PrintDialog1;
        TMenuItem *New1;
        TMenuItem *Save1;
        TMenuItem *Saveas1;
        TMenuItem *N1;
        TMenuItem *Open1;
        TMenuItem *Print1;
        TMenuItem *N2;
        TComboBox *FontName;
        TCoolBar *CoolBar1;
        TSpeedButton *OpenButton;
        TSpeedButton *SaveAsButton;
        TSpeedButton *NewButton;
        TSpeedButton *SaveButton;
        TSpeedButton *PrintButton;
        TSpeedButton *SpeedButton1;
        TSplitter *Splitter1;
        TBevel *Bevel3;
        TBevel *Bevel1;
        TBevel *Bevel2;
        TMenuItem *Exit1;
        TStatusBar *StatusBar1;
        TMenuItem *Edit1;
        TMenuItem *C1;
        TMenuItem *Copy1;
        TMenuItem *Cut1;
        TMenuItem *N4;
        TMenuItem *About1;
        TMenuItem *N3;
        TMenuItem *Font1;
        TFontDialog *FontDialog1;
        TMenuItem *Undo1;
        TMenuItem *N5;
        void __fastcall NewButtonClick(TObject *Sender);
        void __fastcall OpenButtonClick(TObject *Sender);
        void __fastcall SaveButtonClick(TObject *Sender);
        void __fastcall PrintButtonClick(TObject *Sender);
        void __fastcall SpeedButton1Click(TObject *Sender);
        void __fastcall Cut1Click(TObject *Sender);
        void __fastcall Copy1Click(TObject *Sender);
        void __fastcall C1Click(TObject *Sender);
        void __fastcall Font1Click(TObject *Sender);
 void __fastcall SaveAs1Click(TObject *Sender);
        void __fastcall New1Click(TObject *Sender);
        void __fastcall Open1Click(TObject *Sender);
        void __fastcall Saveas1Click(TObject *Sender);
        void __fastcall Save1Click(TObject *Sender);
        void __fastcall Print1Click(TObject *Sender);
        void __fastcall Exit1Click(TObject *Sender);
        void __fastcall SelectFont(TObject *Sender);
        void __fastcall FontNameChange(TObject *Sender);
        void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
        void __fastcall FormDestroy(TObject *Sender);
        void __fastcall Undo1Click(TObject *Sender);
private: // Déclarations utilisateur
                void __fastcall ShowHint(TObject *Sender);
                AnsiString FFileName;
         bool FUpdating;
         TTextAttributes *__fastcall CurrText(void);
         void __fastcall GetFontNames(void);
         void __fastcall SetFileName(const AnsiString FileName);
         void __fastcall CheckFileSave(void);
public:  // Déclarations utilisateur
        virtual __fastcall TForm1(TComponent* Owner);

};
//----------------------------------------------------------------------------
class TCharsetObject : public TObject
{
public:
    int Charset;
    __fastcall TCharsetObject(int FCharset);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

j'espere que vous pourrez m'aider

jeudi 3 mars 2005 à 11:31:52 | Re : Créer un type de fichier

Dvdmizo

salut,
sur ta form tu dois avoir des composant :

SaveDialog1
et
OpenDialog1

dans ce 2 composants il suffit de définir la propriété 'DefaultExt' qui se trouve dans l'inspecteur d'objets (touche F11)
par exemple si tu veux avoir une extension '.abc ' par défaut il suffit de mettre  : "abc" (sans les guillemets)  dans cette propriété.
sinon pour avoir un choix d'extensions dans le menu déroulant de ta boite de dialogue, il faut définir la propriété 'Filters' (toujours dans l'inspecteur d'objets)

j'espère que ça t'aide ;-)

DvdMizo
jeudi 3 mars 2005 à 20:25:55 | Re : Créer un type de fichier

vez_from_hell

merci ça m'a beaucoup aidé
vendredi 4 mars 2005 à 02:55:03 | Re : Créer un type de fichier

vez_from_hell

ca marche tres bien sauf que jai un autre probleme:
lorsque j'enregistre le fichier et que par la suite je ferme le programme, lorsque je veux réouvrir le fichier ke j'ai enregistré, je dois l'ouvrir à partir du programme, sinon rien n'est affiché. J'ai remarqué aussi que lorsque je l'ouvre avec d'autres programmes comme notepad ou microsoft word,  tout va tres bien.

j'espere que vous pourrez m'aider encore une fois.


Cette discussion est classée dans : sender, void, fastcall, tobject, richedit1


Répondre à ce message

Sujets en rapport avec ce message

Problème de socket à la connexion avec application Client/Serveur (Borland C++ Builder) [ par ThripS ] Bonjour, je me suis fait un début d'application client/serveur avec Borland C++ Builder mais à la connexion du client j'ai une erreur de socket peu im Ouvrir une form deja existante [ par Rivosites ] Bonjour, Voici mon probleme, j'utilise Borland C++. J'ai cree un projet., dans celui ci j'ai 2 form. une pricipale Form1 et l'autre Form2. Je souhai Implémentation de fonctions [ par vez_from_hell ] Bonjour j'aimerais implémenter des fonctions mais je ne sais vraiment pas comment. Lorsque je compile, les erreurs suivantes s'affichent:(Lieur Erreur Glisser déposer de fichier avec BCB 5 [ par fredcl ] Siute à une demande par mail de Chap71Voici un bout de code exemple:// dans le fichier .h par exemple class TFormMain : public TForm{   __published: / J'ai besoins d'aide please ! [ par mondrone ] #include #include SDL_Surface *screen = NULL; void demarre_opengl(); void creer_fenetre_opengl(); void init_opengl(); void stop_opengl(); void tou au secours!!! [ par serge14 ] Bonjour.je suis en sstage et je dois coder un protocole de transmission /reception de donées avecle pic 18f4550.malgré mes efforts pour comprendre les beginthread et socket [ par blueburry ] Bonjour,g un probleme avec la fonction _beginthread.je suis en train de creer une classe serveur ki doit accepter plusieurs connexions de clients.pour Help.... probleme avec un programme de tri de char [ par ratp ] Es ce que vous pouvez m'aider. j'ai réaliser un programme qui normalement doit permettre de trier les caracteres. mais sa ne marche pas. merci de m'ai


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,482 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales