IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Comment supprimer le son du TEdit quand on appuie sur la touche [Entrée] ?
auteur : Geronimo
Il suffit de placer le code suivant dans l'événement OnKeyPress du TEdit :
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) 
{ 
      if (Key == VK_RETURN)
            Key = 0; 
} 
Cela permet de savoir quand la touche [Entree] est appuyée (validation si nécessaire) et supprime le son en "faisant croire" à Windows qu'aucune touche n'a été enfoncée ( Key = 0 ).

Comment faire qu'une zone d'édition n'accepte que des entiers ?
auteur : Geronimo
Il faut obtenir les Flags de la zone d'édition choisie et lui rajouter le Flag ES_NUMBER. On utilise pour cela respectivement les fonctions GetWindowLong et SetWindowLong.
		__fastcall TForm1::TForm1(TComponent* Owner) 
			: TForm(Owner) 
		{ 
			long StylesEdit = GetWindowLong(Edit1->Handle, GWL_STYLE); 
			SetWindowLong(Edit1->Handle, GWL_STYLE, StylesEdit | ES_NUMBER); 
		} 
		

Comment faire pour que je puisse utiliser les tabulations dans mon Memo/RichEdit ?
auteur : Geronimo
Lorsqu'on appuie sur la touche tabulation alors que le focus est dans un Memo/RichEdit, le focus passe au composant suivant. Or, il est souvent plus qu'utile de pouvoir placer des tabulations dans une zone d'édition. Pour cela, sélectionnez votre Memo/RichEdit et positionnez sa propriété WantTabs à true .

Comment faire de la mise en forme dans un RichEdit ?
auteur : Alacazam
Reportez-vous au tutoriel de CGI
TRichEdit

Comment connaître et modifier la position du curseur dans un TRichEdit ?
auteur : Alacazam
On utilise pour cela les messages Windows EM_* se rapportant aux RichEdit's.
N.B. Perform a le même effet que SendMessage, il permet d'envoyer un message à un composant.

Pour connaître la position actuelle du curseur :
int numLigne = RichEdit1->Perform(EM_EXLINEFROMCHAR, 0, (LPARAM) (DWORD) RichEdit1->SelStart) + 1;
int numCaractere = (RichEdit1->SelStart - RichEdit1->Perform(EM_LINEINDEX, (LPARAM) (DWORD) (numL - 1), 0));

Pour la modifier :
int numLigne = 10, numCaractere = 15;
RichEdit1->SelStart = RichEdit1->Perform(EM_LINEINDEX, numLigne - 1, 0);
RichEdit1->SelStart += numCaractere;
RichEdit1->Perform(EM_SCROLLCARET, 0, 0);
RichEdit1->SetFocus();

Comment afficher chaque ligne d'un RichEdit avec sa propre couleur de texte ?
auteur : Alacazam
Dans cet exemple, les lignes font apparaître un dégradé de couleur allant du bleu au rose :
for (int i = 0 ; i < RichEdit1->Lines->Count ; i++) {
   RichEdit1->SelStart = RichEdit1->Perform(EM_LINEINDEX, i, 0);
   RichEdit1->SelLength = RichEdit1->Lines->Strings[i].Length();
   RichEdit1->SelAttributes->Color = 0x00F56B00 + 10 * i;
   }

Comment enregistrer le texte de votre RichEdit avec ou sans mise en forme ?
auteur : Alacazam
Pour enregistrer le contenu de votre RichEdit :
RichEdit1->Lines->SaveToFile(Nom_fichier);
Cet enregistrement se fera par défaut au format RTF (texte mis en forme). Si vous souhaitez sauvegarder le contenu au format texte simple, précédez votre enregistrement de :
RichEdit1->PlainText = true;

Existe-t-il un composant navigateur web ?
auteur : Geronimo
Deux possibilités se présentent : Allez dans l'onglet Internet de la palette de composants. Si vous avez un composant CppWebBrowser, c'est celui-ci. Sinon, faites Composants/Importer un contrôle ActiveX . Sélectionnez Microsoft Internet Controls dans la liste et cliquez sur Installer . Choisissez Dans un nouveau paquet et tapez ici quelque chose comme CppWebBrowser_bpk . Tapez une description (je vous conseille de la commencer par un underscore _ pour repérer vos paquets de ceux installés par défaut, les _ étant placés au début des listes). Validez. Validez à nouveau à la demande d'installation. Après un certain temps, C++Builder vous signale que le composant CppWebBrowser a été installé. Vous pouvez trouver le composant dans l'onglet ActiveX de la palette de composants. Pour l'utiliser :
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    CppWebBrowser1->Navigate((WideString)"c:\\mes documents\\index.htm");
}
N'oubliez pas les double anti-slashs !

Je n'arrive pas à passer une AnsiString pour la méthode Navigate de mon composant CppWebBrowser !
auteur : Geronimo
Il est probable que vous obteniez l'erreur "Impossible de convertir AnsiString en wchar_t*" ou "Impossible de convertir char* en wchar_t*". Utilisez la syntaxe suivante :
AnsiString FichierHTML;
FichierHTML = "c:\\mes documents\\toto.htm";
WideString Url = FichierHTML;
CppWebBrowser1->Navigate(Url);

Comment afficher une page web construite dans l'application ?
auteur : Geronimo
Il faut utiliser la méthode Navigate d'un composant CppWebBrowser avec le protocole about. Ce protocole permet de passer le code HTML directement au lieu de passer l'adresse d'un fichier.
void TForm1::Button1Click(TObject *Sender)
{
  	CppWebBrowser1->Navigate("about:" + Memo1->Lines->Text, 0, 0, 0, 0);
}
Dans cet exemple, nous affichons la page web dont le code HTML est tapé dans le mémo Memo1.