MDI Picture
6 отговора
149 прегледа
MDI Picture
Znachi prilozenieto mi e razraboteno po MDI tehnologiq, a za da se vizda picture v glavnata forma iska malko kod. Az naprimer sym go vzel ot knigata Mastering Delphi i e sledniq:
procedure TMain.NewWinProcedure (var Msg: TMessage);
var
BmpWidth,BmpHeight : integer;
i,j:integer;
begin
Msg.Result := CallWindowProc (OldWinProc,
ClientHandle, Msg.Msg, Msg.wParam, Msg.lParam);
if Msg.Msg = wm_EraseBkgnd then
begin
BmpWidth := Main.Image1.Width;
BmpHeight := Main.Image1.Height;
if (BmpWidth <> 0) and (BmpHeight <> 0) then
begin
OutCanvas.Handle := Msg.wParam;
for i:=0 to Main.ClientWidth div BmpWidth do
for j:=0 to Main.ClientHeight div BmpHeight do
OutCanvas.Draw (I*BmpWidth, j*BmpHeight,
Main.Image1.Picture.Graphic);
end;
end;
Bqh chuval che ima gotov komponent za tazi cel i ste se radvam ako nqkoj mi kaze imeto i otkyde moga da si go izteglq, poneze goreposocheniqt metod e dosta tromav i neudoben, ili nqkoj da mi kaze po dobyr nachin da go napravq.
procedure TMain.NewWinProcedure (var Msg: TMessage);
var
BmpWidth,BmpHeight : integer;
i,j:integer;
begin
Msg.Result := CallWindowProc (OldWinProc,
ClientHandle, Msg.Msg, Msg.wParam, Msg.lParam);
if Msg.Msg = wm_EraseBkgnd then
begin
BmpWidth := Main.Image1.Width;
BmpHeight := Main.Image1.Height;
if (BmpWidth <> 0) and (BmpHeight <> 0) then
begin
OutCanvas.Handle := Msg.wParam;
for i:=0 to Main.ClientWidth div BmpWidth do
for j:=0 to Main.ClientHeight div BmpHeight do
OutCanvas.Draw (I*BmpWidth, j*BmpHeight,
Main.Image1.Picture.Graphic);
end;
end;
Bqh chuval che ima gotov komponent za tazi cel i ste se radvam ako nqkoj mi kaze imeto i otkyde moga da si go izteglq, poneze goreposocheniqt metod e dosta tromav i neudoben, ili nqkoj da mi kaze po dobyr nachin da go napravq.
Re: MDI Picture
Погледни TImage компонента - ако го поставиш в главната форма и го направиш Align = Client - и закачиш картинка - ще получиш това което искаш
---
Е т'ва е живот!
---
Е т'ва е живот!
Re: MDI Picture
prost komponent za tva nesym chul da ima
MDI v Delphi i malko po razlichno ot C i ima malyk bug
prosto si preprvi izchertvaneto da ne e tochka po tochka
MDI v Delphi i malko po razlichno ot C i ima malyk bug
prosto si preprvi izchertvaneto da ne e tochka po tochka
Re: MDI Picture
Този метод не действа при MDI, когато се появи вторична форма image-a се скрива и трябва да бъде преначертан отново. Този проблем е разискан в книгите на Marku Cantu
Май нещо не съм разбрал то4но...
какво искаш да направиш - или друг е проблема.
1. Значи проведох следния експеримент - примера TextEdit - в DOC папката (Д6 ) му сложих картинка - по на4ина който описах след което си поиграх да го тествам - нямаше никакви проблеми - вярно, че пречертаването е бавно - ама заради това че го оставих autoresize + strech.
2. Може би наистина не разбирам какво искаш да постигнеш - да имаш фон и в child прозорците? и/или само в главната форма, но ако горното не раобти при теб - явно проблема е локален ?!?
---
Е т'ва е живот!
1. Значи проведох следния експеримент - примера TextEdit - в DOC папката (Д6 ) му сложих картинка - по на4ина който описах след което си поиграх да го тествам - нямаше никакви проблеми - вярно, че пречертаването е бавно - ама заради това че го оставих autoresize + strech.
2. Може би наистина не разбирам какво искаш да постигнеш - да имаш фон и в child прозорците? и/или само в главната форма, но ако горното не раобти при теб - явно проблема е локален ?!?
---
Е т'ва е живот!
Re: Май нещо не съм разбрал то4но...
Ami az ot skoro izpolzvam Delphi 6, i izprobvah TImage-a - stana. Qvno problema e reshen vyv versiite sled Delphi5.
Re: Май нещо не съм разбрал то4но...
Ами този ефект си го ползвам в едно старо програмче още от версия 3 (май) на Delphi - вярно, че не е за MDI -ама винаги е работило.
;-))) - относно бъговете - винаги има достатъчно - и не знаеш кой то4но ще ти се падне
---
Е т'ва е живот!
;-))) - относно бъговете - винаги има достатъчно - и не знаеш кой то4но ще ти се падне
---
Е т'ва е живот!