Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

draw modal ?!?!

[es] :: C/C++ programiranje :: draw modal ?!?!

[ Pregleda: 3724 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

donald
Dejan Petrovic

Član broj: 10237
Poruke: 16
*.127.EUnet.yu



Profil

icon draw modal ?!?!05.05.2003. u 21:33 - pre 255 meseci
Instalirao sam delphi-jevu komponentu BarMenus u Builder5. Sve radi kako treba sem... DrawModal.
Da li neko od vas Builder-asa 5 znate kako da se odradi drow modal deo u tom meniju. postoji example na pascalu ali vise ne mogu brate da isprobavam prevodjenje sa jednog jezika na drugi. Pogotovo kada ga ne znam (delphi).

Oni koji ne znaju za ovu komponentu mogu je naci na:
http://www.bluecave.net/products/barmenus

Ajde sada da vas vidim. ako neko uspe svaka mu cast i zahvalnicu mu napismeno saljem.

donald
 
Odgovor na temu

donald
Dejan Petrovic

Član broj: 10237
Poruke: 16
*.eunet.yu



Profil

icon Re: draw modal ?!?!07.05.2003. u 10:57 - pre 255 meseci
Jos se niko ne javlja, nije valjda da ne znate ?
Dva dana stoji Q a nema A...
donald
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 810
*.pexim.co.yu



+62 Profil

icon Re: draw modal ?!?!09.05.2003. u 09:56 - pre 255 meseci
1) Mnogo ocekujes ako trazis da idem na taj sajt koji si naveo; ako ti treba pomoc, postuj taj primer u Pascalu ovde.
2) Third-party komponente...su, po nekom nepisanom pravilu, nepouzdane. Da ne upotrebim tezu rec (djubre?).
3) Ako uopste ne poznajes Delphi (nimalo), onda se mani CBuilder-a; ustedeces sebi mnogo muke. To zato sto BCB koristi Delphi-jev GUI, a posto ti kazes da ga ne znas...
Toliko, pozdrav

Rajko
 
Odgovor na temu

donald
Dejan Petrovic

Član broj: 10237
Poruke: 16
*.30.EUnet.yu



Profil

icon Re: draw modal ?!?!19.05.2003. u 20:51 - pre 254 meseci
C++ Builder poznajem odlicno ali pascal jako malo.
Neke stvari (kod) sam uspeo prevesti u C++ ali je to bilo mnogo jednostavnije nego 'draw modal' primer. Uzgred, meni je pomalo pascal necitak i nerazumljiv, mislim OK za nesto jednostavno ali kada dodju petlje...

Inace, BarMenu radi odlicno s tim sto bi bio jos bolji ako bi se navedeni problem resio.
Tebi hvala i sto si se javio a sada pozivam sve koji nesto znaju ili da prevedu tamo navedeni primer iz pascala u C++. Ako treba iznecu ga i ovde, samo kazite.
donald
 
Odgovor na temu

sergio
Beograd

Član broj: 2095
Poruke: 70
*.routo.co.yu



Profil

icon Re: draw modal ?!?!20.05.2003. u 14:11 - pre 254 meseci
Pa posalji pa cemo da vidimo sta mozemo da uradimo ....



Keep on going ....
_______________
 
Odgovor na temu

donald
Dejan Petrovic

Član broj: 10237
Poruke: 16
*.57.EUnet.yu



Profil

icon Re: draw modal ?!?!20.05.2003. u 19:09 - pre 254 meseci
To bi trebalo ovako da izgleda:

procedure TForm1.BcCustomDrawModule1DrawMenuItem(Sender: TObject;
AMenuItem: TMenuItem; ACanvas: TCanvas; ARect: TRect;
State: TOwnerDrawState; ABarVisible: Boolean; var DefaultDraw: Boolean);
var
R: TRect;
ImageList: TCustomImageList;

procedure DrawCheckedPattern(Inflate: Boolean);
begin
if odChecked in State then
begin
if Inflate then InflateRect(R, -2, -2);
// ACanvas.Brush.Bitmap := AllocPatternBitmap(clBtnFace, clWhite);
// ACanvas.FillRect(R);
ACanvas.Brush.Color := clBlack;
ACanvas.FrameRect(R);
if Inflate then InflateRect(R, 2, 2);
end;
end;

begin
DefaultDraw := False;
{ menuitem drawing }
if (AMenuItem.Caption = cLineCaption) then
begin
{ background }
DrawGradient(ACanvas, ARect, clWhite, clBtnFace, gsHorizontal);

{ align the text and draw it }
R := ARect;
R.Left := R.Right - ACanvas.TextWidth(AMenuItem.Hint) - 15;
ACanvas.Brush.Style := bsClear;
DrawText(ACanvas.Handle,
PChar(AMenuItem.Hint), Length(AMenuItem.Hint),
R, 0);

{ draw the line so that it won't draw over text }
R := ARect;
Inc(R.Top, (R.Bottom - R.Top) div 2);
R.Bottom := R.Top + 1;
Dec(R.Right, ACanvas.TextWidth(AMenuItem.Hint) + 10 + 10);
ACanvas.Brush.Color := clGray;
ACanvas.FillRect(R);
end else
begin
{ use default drawing for mainmenu top items }
if IsInTopMainMenu(AMenuItem) then
begin
DefaultDraw := True;
Exit;
end;
with ACanvas do
begin
R := ARect;
if odSelected in State then
begin
{ draw frame and selection gradient }
Brush.Color := clGray;
FrameRect(R);
InflateRect(R, -2, -2);
DrawGradient(ACanvas, R, clWhite, AMenuItem.Tag, gsDiagonalLeftRight);
DrawCheckedPattern(False);
{ adjust rect so that text will be aligned to right }
R.Left := R.Right - TextWidth(AMenuItem.Caption) - 5;
Font.Color := clWhite; // caption color
end else
begin
{ draw background gradient }
DrawGradient(ACanvas, R, clWhite, clBtnFace, gsHorizontal);
DrawCheckedPattern(True);
{ leave space for menuitem image }
Inc(R.Left, 38);
Font.Color := clBlack; // caption color
end;
if (odDisabled in State) or (odGrayed in State) then
Font.Color := clGrayText;

{ draw caption }
InflateRect(R, 0, -(
(R.Bottom - R.Top - TextHeight(AMenuItem.Caption) - 1)
div 2));
Brush.Style := bsClear;
DrawText(Handle,
PChar(AMenuItem.Caption), Length(AMenuItem.Caption),
R, 0);

{ draw menuitem image }
with AMenuItem do
begin
ImageList := GetImageList;
if (ImageIndex <> -1) and Assigned(ImageList) then
ImageList.Draw(ACanvas, ARect.Left + 11,
ARect.Top + (ARect.Bottom - ARect.Top - ImageList.Height) div 2, ImageIndex);
end;
end;
end;
end;


Pa sad ti vidi...
donald
 
Odgovor na temu

donald
Dejan Petrovic

Član broj: 10237
Poruke: 16
*.186.EUnet.yu



Profil

icon Re: draw modal ?!?!31.05.2003. u 21:19 - pre 254 meseci
Ima'l neko ziv na ovom forumu...
donald
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 810
*.pexim.co.yu



+62 Profil

icon Re: draw modal ?!?!02.06.2003. u 11:18 - pre 254 meseci
Znas sta, mozda bi bolje bilo reci: ima li neko lud (ne ziv) na ovom forumu (da mi ovo odradi)?...
Kazes da odlicno poznajes BCB; onda bi trebalo da ovaj kod koji si postovao prevedes "vezanih ociju".
Ajde da ne bude da samo kritikujem, prevescu ti deklaraciju procedure da bi mogao kompajlerom da udjes u telo funkcije, a za dalje samo sledi uputstva kompajlera:

procedure TForm1.BcCustomDrawModule1DrawMenuItem(Sender: TObject;
AMenuItem: TMenuItem; ACanvas: TCanvas; ARect: TRect;
State: TOwnerDrawState; ABarVisible: Boolean; var DefaultDraw: Boolean);

void TForm1::BcCustomDrawModule1DrawMenuItem(TObject *Sender,
TMenuItem *AMenuItem, TCanvas *ACanvas, TRect ARect,
TOwnerDrawState State, bool ABarVisible, bool &DefaultDraw)
{

}

A sad, trebalo bi da dodje do izrazaja tvoja energija (glad za ucenjem). Ako zapnes, vici gde si zapeo.
Pozdrav

Rajko
 
Odgovor na temu

donald
Dejan Petrovic

Član broj: 10237
Poruke: 16
*.ptt.yu



Profil

icon Re: draw modal ?!?!10.06.2003. u 00:48 - pre 254 meseci
Postovani Rajko!
Naravno da mi je3 poznato sta su procedure, funkcije i koje parametre zahtevaju. To nije tesko prevesti, tu i tamo drugaciji izraz. Taj deo koda sam stavio radi boljeg snalazenja.
Mene zanima onaj deo dalje.
Taj kod sam mogao da iskoristim i bez C++ -a. Samo paskal kod includ-ujem u svoj *.cpp fajl i C++Builder ga prekompajlira i odlicno ga razume.
Ali meni stvarno treba C++ kod da bi naucio vise o tom izgledu jer tu i tamo napravim neku komponentu pa me zanima da nesto odradim i sa tim, samo bi trebalo da ga dobro razumem. Ne zelim da se tudjom slavom kitim.
Inace tvoj komentar uopste nije delovao kao kritika, postujem i cenim konstruktivan savet i predlog. Hvala ti iako mislim da me u prethodnoj poruci nisi najpotpunije razumeo. Mislim da sam sada bolje objasnio...
donald
 
Odgovor na temu

[es] :: C/C++ programiranje :: draw modal ?!?!

[ Pregleda: 3724 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.