Sianoo Napisano Luty 13, 2012 Zgłoś Share Napisano Luty 13, 2012 Witam, Mam kilka pytań dotyczących obiektowego programowania w delphi. Pierwszym z nich jest to - jak sprawić, aby program nie posiadał kwadratowego obramowania, ani górnego paska z opcjami zwiń, zamknij, maksymalizuj. Drugie pytanko - jak mogę ustawić tło w moim programie? No i ostatnie - jak ustawić zdjęcie na buttonie, lub jakimkolwiek innym obiekcie? Z góry thx Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Luty 14, 2012 Zgłoś Share Napisano Luty 14, 2012 Obiektowe programowanie wcale nie musi mieć nic wspólnego z programowaniem aplikacji z GUI... Link do komentarza Udostępnij na innych stronach More sharing options...
Sianoo Napisano Luty 14, 2012 Autor Zgłoś Share Napisano Luty 14, 2012 GUI? Link do komentarza Udostępnij na innych stronach More sharing options...
olesio Napisano Luty 14, 2012 Zgłoś Share Napisano Luty 14, 2012 Mam kilka pytań dotyczących obiektowego programowania w delphi. Pierwszym z nich jest to - jak sprawić, aby program nie posiadał kwadratowego obramowania, ani górnego paska z opcjami zwiń, zamknij, maksymalizuj. Ustaw własność BorderStyle formatki na bsNone. Drugie pytanko - jak mogę ustawić tło w moim programie? Można ustawić Image z własnością Stretch i Align na alClient oraz wczytać jakieś tło. Tak będzie chyba najprościej, ale są też komponenty do tworzenia skinów dla aplikacji. Pogoogluj sobie za nimi, No i ostatnie - jak ustawić zdjęcie na buttonie, lub jakimkolwiek innym obiekcie? TImage również może być pseudo Buttonem, a jeżeli chcesz wzbogacić inne kontrolki o Canvas i po inich rysować grafikę to musisz im taki Canvas dodać i obsłużyć odpowiednio komunikat WM_PAINT. Poniżej prosty przykład dla zmienionego TScrollBox. unit canvasedscrollbox; interface uses Windows, Messages, Classes, Controls, Forms, Graphics; type TCanvasedScrollBox = class(TScrollBox) private FBmp: TBitmap; FCanvas: TCanvas; procedure SetBitmap(Value: TBitmap); protected procedure WMPaint(var Message: TMessage); message WM_PAINT; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property Bitmap: TBitmap read FBmp write SetBitmap; property Canvas: TCanvas read FCanvas; end; implementation constructor TCanvasedScrollBox.Create(AOwner: TComponent); begin inherited Create(AOwner); ControlStyle := [csAcceptsControls, csCaptureMouse, csClickEvents, csSetCaption, csDoubleClicks]; Width := 185; Height := 41; BorderStyle := bsSingle; FBmp := TBitmap.Create; FCanvas := TControlCanvas.Create; TControlCanvas(FCanvas).Control := Self; end; destructor TCanvasedScrollBox.Destroy; begin FBmp.Free; FCanvas.Free; inherited Destroy; end; procedure TCanvasedScrollBox.SetBitmap(Value: TBitmap); begin FBmp.Assign(Value); SendMessage(Handle, WM_PAINT, 0, 0); end; procedure TCanvasedScrollBox.WMPaint(var Message: TMessage); begin if Assigned(FBmp) then Canvas.Draw(0, 0, FBmp); inherited; end; end. Pozdrawiam: olesio Link do komentarza Udostępnij na innych stronach More sharing options...
Sianoo Napisano Luty 14, 2012 Autor Zgłoś Share Napisano Luty 14, 2012 Olesiu.... Wielkie dzięki, ale z tym tłem to Streth nie da się ustawić na alClient bo są tylko opcje True/False - ani no i nie widać label przy wstawionym Image o takich właściwościach. a wiesz może jeszcze jak sprawić aby buttony były wyświetlane w stylu określonym przez użytkownika(np. Styl systemu Windows XP - bardziej zaokrąglone), a nie tylko w stylu klasycznym windows - jakieś kwadratowe? Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Luty 14, 2012 Zgłoś Share Napisano Luty 14, 2012 GUI? http://en.wikipedia...._user_interface http://pl.wikipedia....wanie_obiektowe Ty napisałeś swojego posta tak jakbyś uważał programowanie obiektowe za takie, w którym używasz GUI (a nie tworzysz aplikacji konsolowej). Oczywiście są biblioteki pozwalające na programowanie GUI w sposób strukturalny. Powinieneś napisać, że masz pytania dotyczące używania VCL w Delphi Link do komentarza Udostępnij na innych stronach More sharing options...
Sianoo Napisano Luty 14, 2012 Autor Zgłoś Share Napisano Luty 14, 2012 http://en.wikipedia...._user_interface http://pl.wikipedia....wanie_obiektowe Ty napisałeś swojego posta tak jakbyś uważał programowanie obiektowe za takie, w którym używasz GUI (a nie tworzysz aplikacji konsolowej). Oczywiście są biblioteki pozwalające na programowanie GUI w sposób strukturalny. Powinieneś napisać, że masz pytania dotyczące używania VCL w Delphi Nie chodziło mi o żadne GUI i jeśli cię zmyliłem to przepraszam bardzo, ale Olesio i tak wiedział przecież o co mi chodzi, więc i ty też zapewne mogłeś się domyślić. Poza tym napisałem, że mam kilka pytań dotyczących obiektowego programowania w delphi. Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Luty 14, 2012 Zgłoś Share Napisano Luty 14, 2012 Mogłem się domyślić, ale Ty dalej sprawiasz wrażenie, że nie wiesz o co chodzi Obiektowe programowanie to nie takie, że ustawiasz sobie graficznie "obiekty" na formatce, tylko chodzi o to, że używasz "programistycznych" obiektów własnych lub gotowych. Jak piszesz o VCL to możesz sobie darować termin "programowanie obiektowe", bo tylko w taki sposób używa się komponentów - poprzez wywoływanie odpowiednich metod na rzecz ich instancji. Nie chodziło mi o żadne GUI Jeśli chodziło Ci o komponenty w aplikacji okienkowej (przycisk z obrazkiem, forma bez belki tytułowej itp.), to właśnie chodziło Ci o GUI... Dlatego uważam, że wciąż nie odróżniasz programowania obiektowego od programowania z użyciem GUI Obiektowo możesz sobie nawet napisać program konsolowy. To po prostu łatwiejszy do utrzymania i wyobrażenia zapis kodu. Link do komentarza Udostępnij na innych stronach More sharing options...
Sianoo Napisano Luty 14, 2012 Autor Zgłoś Share Napisano Luty 14, 2012 Mogłem się domyślić, ale Ty dalej sprawiasz wrażenie, że nie wiesz o co chodzi Obiektowe programowanie to nie takie, że ustawiasz sobie graficznie "obiekty" na formatce, tylko chodzi o to, że używasz "programistycznych" obiektów własnych lub gotowych. Jak piszesz o VCL to możesz sobie darować termin "programowanie obiektowe", bo tylko w taki sposób używa się komponentów - poprzez wywoływanie odpowiednich metod na rzecz ich instancji. Jeśli chodziło Ci o komponenty w aplikacji okienkowej (przycisk z obrazkiem, forma bez belki tytułowej itp.), to właśnie chodziło Ci o GUI... Dlatego uważam, że wciąż nie odróżniasz programowania obiektowego od programowania z użyciem GUI Obiektowo możesz sobie nawet napisać program konsolowy. To po prostu łatwiejszy do utrzymania i wyobrażenia zapis kodu. Dobrze... dobrze, wiem co to programowanie obiektowe i skończmy już, bo to nie ma nic wspólnego z tematem. Link do komentarza Udostępnij na innych stronach More sharing options...
olesio Napisano Luty 15, 2012 Zgłoś Share Napisano Luty 15, 2012 Sianoo: napisałem skrótowo, ale idzie się domyśleć co i jak zmienić z TImage. Przecież wiadomo Stretch na True rozciąga lub zmniejsza grafikę do rozmiarów TImage, natomiast Align ustawione na alClient rozciągnie całkowicie komponent do rozmiarów formatki. Pozdrawiam: olesio Link do komentarza Udostępnij na innych stronach More sharing options...
Sianoo Napisano Luty 16, 2012 Autor Zgłoś Share Napisano Luty 16, 2012 Sorki, ale ja najperw robie, a potem myśle. Już sobie coś znajde. I jeszcze raz thx za pomoc - bardzo się przydało Link do komentarza Udostępnij na innych stronach More sharing options...
Steradian Napisano Marzec 7, 2012 Zgłoś Share Napisano Marzec 7, 2012 Najprostszą metodą na ustawienie tła formularza jest użycie komponentu TImage i wczytanie do niego pliku graficznego. jeśli chcesz zrobić to programowalnie polecam klasę TCanvas, jednak musiałbyś przy tym zagłębić się w tajniki rysowania w Delphi. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.