CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Komponent do wpisywania cen

Komponent do wpisywania cen

problemy z funkcjonowaniem bibliotek, komponentów itp.

Komponent do wpisywania cen

Nowy postprzez mate006 » niedziela, 6 lutego 2011, 18:33

Witam

Chciałem sobie zrobić komponent na podstawie TMemo do którego można wprowadzać tylko wartości cen, czyli żeby były same liczby z przecinkiem dwa miejsca od końca, poza tym chciałem żeby poza polem TMemo był TLabel w którym można wprowadzać jednostkę walutowa, np. zł. Chciałbym aby ktoś naprowadził mnie na właściwy trop, bo z tym żeby były tylko liczby to myślę że znajdę sposób.

Bardzo bym prosił o pomoc
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    Windows 7Firefox

Re: Komponent do wpisywania cen

Nowy postprzez Cyfrowy Baron » niedziela, 6 lutego 2011, 18:47

Użyj TMaskEdit a nie TMemo.

TLabel w którym można wprowadzać jednostkę walutowa, np. zł.


TLabel to nie TEdit nie można go edytować. Jeżeli chcesz żeby użytkownik wprowadzał rodzaj waluty to użyj TEdit.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Komponent do wpisywania cen

Nowy postprzez mate006 » niedziela, 6 lutego 2011, 19:08

Nie o to mi chodzi

Chce zrobić komponent na bazie TMemo żeby wpisywany tekst był z prawej strony, zacząłem bazować na przykładzie ze strony
http://programowanie.cal.pl/cyfbar/teor4.html o tworzeniu komponentów

Tylko nie wiem jak podpiąć w to jeszcze komponent TLabel
Coś jak TLabeledEdit z wartością LabelPosition na lpRight

i we właściwościach tego mojego komponentu dopisać własność gdzie będę określał symbol waluty np. zł i ta własność będzie wyświetlana w TLabel

jak na rysunku w dołączonym załączniku
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    Windows 7Firefox

Re: Komponent do wpisywania cen

Nowy postprzez Cyfrowy Baron » niedziela, 6 lutego 2011, 19:53

Nie da się TLabel wstawić do TMemo, możesz wstawić Label obok Memo i tyle...

Jeżeli to co widać na obrazku to komponent, to jest to kombinacja TPanel z TEdit:
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Komponent do wpisywania cen

Nowy postprzez mate006 » niedziela, 6 lutego 2011, 20:18

No bo ja nie chce do TMemo tylko obok, przecież napisałem to chyba dość wyraźnie ;) chce mieć taki efekt jak na rysunku,
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    Windows 7Firefox

Re: Komponent do wpisywania cen

Nowy postprzez Cyfrowy Baron » niedziela, 6 lutego 2011, 20:24

To jaki ty masz wogóle problem!? Umieść Memo na formularzu a obok Label i gotowe.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Komponent do wpisywania cen

Nowy postprzez mate006 » niedziela, 6 lutego 2011, 20:31

Ale ja chce utworzyć własny komponent, chodzi mi właśnie o robienie tych kombinacji z kilkoma komponentami,
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    Windows 7Firefox

Re: Komponent do wpisywania cen

Nowy postprzez Cyfrowy Baron » niedziela, 6 lutego 2011, 20:36

Wciąż nie rozumiem. Stwórz komponent, użyj klasy TMemo jako bazowej, dołącz klasę TLabel. Całość byłoby lepiej jednak stworzyć w oparciu o klasę TPanel, czyli umieścić na Panel'u komponenty TMemo i TLabel. Nie pamiętam jak to jest w C++Builder 6, ale w nowszych wersjach środowiska zarówno TEdit jak i TLabeledEdit mają wyrównywanie tekstu do prawej strony, więc w takiej sytuacji wystarczyłoby posłużyć się klasą TPanel i TLabeledEdit.

Jeżeli nie umiesz tworzyć komponentów to czego oczekujesz?
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Komponent do wpisywania cen

Nowy postprzez mate006 » niedziela, 6 lutego 2011, 20:45

No niestety wersja 6 nie posiada wyrównywanie do prawej, popracuje jeszcze z komponentem TPanel.

Dzięki za ostatnią wskazówkę. A co do tworzenia komponentów od czegoś trzeba zacząć by się nauczyć ;) zaczynam orientować się o co chodzi
Jeszcze raz dzięki
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    Windows 7Firefox

Re: Komponent do wpisywania cen

Nowy postprzez Cyfrowy Baron » niedziela, 6 lutego 2011, 20:48

By wyrównywała w TEdit do prawej strony wystarczy posłużyć się metodą TCreateParams:

plik nagłówkowy:
KOD cpp:     UKRYJ  
private:
        virtual void __fastcall CreateParams(TCreateParams &Params);


plik źródłowy:
KOD cpp:     UKRYJ  
void __fastcall TForm1::CreateParams(TCreateParams &Params)
{
    TEdit::CreateParams(Params);
    Params.Style = Params.Style | ES_RIGHT;// ES_MULTILINE;
}
Od teraz wszystkie komponenty TEdit umieszczone na formularzu Form1 będą wyrównane do prawej strony.



Prosty komponent w oparciu o TEdit:

Plik nagłówkowy:
KOD cpp:     UKRYJ  
#ifndef REditCodeH
#define REditCodeH
//----------------------------------------------
#include <SysUtils.hpp>
#include <Controls.hpp>
#include <Classes.hpp>
#include <Forms.hpp>
#include <StdCtrls.hpp>
//----------------------------------------------
#if (__BORLANDC__ < 0x0530)
  #define PACKAGE
  #define DYNAMIC
#endif

class PACKAGE TREdit : public TEdit
{
private:
protected:
public:
   __fastcall TREdit(TComponent* Owner);
   virtual void __fastcall CreateParams(TCreateParams &Params);
__published:
};
//-------------------------------------------------
#endif
 


Plik źródłowy:
KOD cpp:     UKRYJ  
#include <vcl.h>
#pragma hdrstop
#include "REditCode.h"
//--------------------------------------------------
#if (__BORLANDC__ < 0x0530)
static inline TREdit *ValidCtrCheck()
{
   return new TREdit(NULL);
}
//-------------------------------------------------
#else

#pragma package(smart_init)

static inline void ValidCtrCheck(TREdit *)
{
   new TREdit(NULL);
}
//--------------------------------------------------
#endif

__fastcall TREdit::TREdit(TComponent* Owner)
: TEdit(Owner)
{
}

//--------------------------------------------------
void __fastcall TREdit::CreateParams(TCreateParams &Params)
{
    TEdit::CreateParams(Params);
    Params.Style = Params.Style | ES_RIGHT;// ES_MULTILINE;
}

//--------------------------------------------------
namespace Reditcode
{
   void __fastcall PACKAGE Register()
    {
        TComponentClass classes[1] = {__classid(TREdit)};
        RegisterComponents("Samples", classes, 0);
    }
}
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Biblioteki i komponenty

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości

cron