Prawdziwe oblicze Informatyki. Tysiące linijek kodu i kompilatory które nigdy nie wybaczają.
Awatar użytkownika

pc.qwerty

Zasłużony użytkownik
Posty: 3276
Rejestracja: 01 lip 2010, 12:28
    Windows 7 Firefox

Post23 sie 2010, 15:41

Witam ekspertów, znawców delphi, i innych. Chciałbym się dowiedzieć czy możliwe jest w Delphi 7 zrobienie ramki okna programu która wspierałaby aero, tak jak niektóre kreatory windowsa, Windows DVD Maker i inne programy. Dokładnie to chodzi mi o coś takiego jak na screenie. Wiem że można zrobić całe okno przezroczyste, ale interesuje mnie tylko ramka i rozmycie. [warning]Browary czekają :hyhy:[/warning]
There is no cloud. It's just someone else's computer.

Awatar użytkownika

domel

Zasłużony użytkownik
Posty: 581
Rejestracja: 13 wrz 2008, 17:48
Lokalizacja: Garbatka Letnisko
    Windows 7 Chrome

Post23 sie 2010, 15:49

Z tego co pamiętam to można tylko trzeba wpisać odpowiedni kod np. coś takiego:

Kod: Zaznacz cały

var
  xVer: TOSVersionInfo;
  hDWM: THandle;
  DwmIsCompositionEnabled: function(pbEnabled: BOOL): HRESULT; stdcall;
  DwmExtendFrameIntoClientArea: function(hWnd: HWND; const pxMarInset: PRect): HRESULT; stdcall;
  bEnabled: BOOL;
  xFrame: TRect;

// ...

  xVer.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
  GetVersionEx(xVer);
  if xVer.dwMajorVersion >= 6 then
  begin
    hDWM := LoadLibrary('dwmapi.dll');
    @DwmIsCompositionEnabled := GetProcAddress(hDWM, 'DwmIsCompositionEnabled');
    @DwmExtendFrameIntoClientArea := GetProcAddress(hDWM, 'DwmExtendFrameIntoClientArea');
    if (@DwmIsCompositionEnabled <> nil) and
       (@DwmExtendFrameIntoClientArea <> nil) then
    begin
      DwmIsCompositionEnabled(@bEnabled);
      if bEnabled then
      begin
        xRect := Rect(-1, -1, -1, -1);
        DwmExtendFrameIntoClientArea(FrmMain.Handle, @xRect);
      end;
    end;
    FreeLibrary(hDWM);
  end;

Awatar użytkownika

pc.qwerty

Zasłużony użytkownik
Posty: 3276
Rejestracja: 01 lip 2010, 12:28
    Windows 7 Firefox

Post23 sie 2010, 15:52

A w którym konkretnie miejscu programu trzeba to wkleić :?:
There is no cloud. It's just someone else's computer.

Awatar użytkownika

domel

Zasłużony użytkownik
Posty: 581
Rejestracja: 13 wrz 2008, 17:48
Lokalizacja: Garbatka Letnisko
    Windows 7 Chrome

Post23 sie 2010, 16:02

A tutaj to już nie pomogę bo nigdy tego nie testowałem i raczej nie będę. A i bym zapomniał w delphi 2007 i wyżej możesz to zrobić w ustawieniach formy.

Awatar użytkownika

pc.qwerty

Zasłużony użytkownik
Posty: 3276
Rejestracja: 01 lip 2010, 12:28
    Windows 7 Firefox

Post23 sie 2010, 16:13

To chyba prościej będzie zaktualizować delphi :P
There is no cloud. It's just someone else's computer.

Awatar użytkownika

SzymekRak

Zasłużony użytkownik
Posty: 548
Rejestracja: 09 lip 2008, 11:55
Lokalizacja: gdzieś bardzo daleko
    Windows 7 Opera

Post23 sie 2010, 16:20

Moim zdaniem to z var trzeba wstawić w unicie pomiędzy var a implementation. A resztę np w FormCreate.
Jednakowoż właśnie to przetestowałem. FrmMain zmieniam na nazwę formy, tu:

Kod: Zaznacz cały

DwmIsCompositionEnabled: function(pbEnabled: BOOL): HRESULT; stdcall;
zamiast BOOL dałem Pointer, gdyż inaczej się nie kompiluje.
Jeszcze w CreateForm dałem var i xrect:trect.
Włączam i mam zwykłą formę. Tak samo, jakbym w ogóle tego nie wklejał. Może coś źle robię, ale moim zdaniem ten kod niezbyt działa.
Może trzeba zmienić współrzędne w Rect(...);
nie wiem

Awatar użytkownika

domel

Zasłużony użytkownik
Posty: 581
Rejestracja: 13 wrz 2008, 17:48
Lokalizacja: Garbatka Letnisko
    Windows 7 Chrome

Post23 sie 2010, 16:32

Szymek ty czy ja moglibyśmy się jeszcze pomęczyć na delphi 7 i coś spróbować wykombinować ale tak jak pc.qwerty to niech sobie tym głowy nie mąci i niech lepiej zainstaluje nowsze delphi.

Awatar użytkownika

pc.qwerty

Zasłużony użytkownik
Posty: 3276
Rejestracja: 01 lip 2010, 12:28
    Windows 7 Firefox

Post23 sie 2010, 16:35

No dokładnie, lepiej się zająć tworzeniem programu, a ta ramka to przecież tylko dodatek. :)
There is no cloud. It's just someone else's computer.

Awatar użytkownika

miki100

Zasłużony użytkownik
Posty: 163
Rejestracja: 13 sie 2010, 7:43
Lokalizacja: Bydgoszcz
    Windows 7 Opera

Post23 sie 2010, 16:48

Witam :)
http://www.installationexcellence.com/a ... 0Glass.zip tu jest projekt(nie mój), wykorzystujący Aero na panelu. W Delphi 7 przy otwieraniu wyskakuje błąd, ale nic związanego z aero (coś od Memo i AboutBox). http://www.installationexcellence.com/a ... Index.html na tej stronie jest ogólnie wszystko o przystosowywaniu aplikacji Delphi do Visty/Sevena .
Spoiler
openSUSE Leap (x64), Plasma 5
ASUS P5K/EPU | Xeon E5410 2,3 GHz | 4GB DDRII | Gigabyte Geforce GTS 450 | Sound Blaster Audigy | WD VelociRaptor 800HLFS

Awatar użytkownika

urban92

Administrator
Posty: 5727
Rejestracja: 06 lut 2008, 22:25
Lokalizacja: Michalin, gdzieś w Polsce
    Windows 7 Opera
Kontakt:

Post24 sie 2010, 3:46

Na początku zawsze myślałem że obsługa Aero działa dopiero od Delphi 2007, poświęciłem się i zainstalowałem nowsze Delphi, sprawdziłem, działa ale to nie to czego chciałem ja i wy, udało mi się tylko całą formę "zglassować", chyba nie było innej możliwości ale nie wiem dokładnie bo to było dawno kiedy moje umiejętności były sporo mniejsze, tam po prostu na formie w Object Inspectorze jest opcja "Glass" albo coś w ten deseń już nie pamiętam dokładnie. Potem znalazłem gdzieś kod który w Delphi 7 pozwala na podobny efekt jaki można było zrobić w nowszym Delphi, właściwie to teoretycznie na więcej, jednak są problemy z czcionkami a interfejs się pieprzy po wrzuceniu czegokolwiek na formę. I w ten sposób dałem sobie spokój z Aero i zająłem się dopracowywaniem samych aplikacji.

Zamin dałem sobie spokój zrobiłem to, prawie dokładnie rok temu na potrzeby anulowanego Tau Project (kto to jeszcze pamięta łapa w górę :P ):

http://www.przeklej.pl/plik/project1_zi ... t4he5ne2j6

Wiem na 100% że takie kreatory są możliwe do zrobienia w Visual Studio od 2008, w Delphi też jest to jak najbardziej możliwe bo AQQ korzysta z aero dość intensywnie w swoim interfejsie, a jest pisany w Delphi.
Obrazek
Moje maszyny:
Komputery używane na co dzień:

Stacja robocza (główny pecet):
Core i7-12700K 3.6-5Ghz + Noctua NH-D15 Chromax LTT
Gigabyte Z690 GAMING X DDR4
32GB Ram HyperX Predator DDR4 3200Mhz CL16
GeForce RTX 4070 Gigabyte Gaming OC 12GB + 2x Dell P2416D
Kingston KC3000 2TB (OS)
Samsung PM9A1 1TB (VM)
WD Red Plus 3TB (Data)
Asus Xonar DGX
Asus ROG AREION 10G
MSI MPG A850G PCIE5 850W + SPC Armis AR7X TG RGB
Windows 11 Pro

Testowy-1:
Core i7-11700K 3.6-5Ghz + SilentiumPC Fortis 5 Dual Fan
Gigabyte Z590 AORUS ULTRA
16GB Ram Corsair Vengeance LPX Black DDR4 3200Mhz CL16
GeForce GTX 1660 SUPER Gigabyte Gaming OC 6GB
Samsung 980 PRO 500GB (OS)
Crucial BX500 1TB (VM)
WD Red 3TB (Data)
SPC Supremo FM2 750W + SPC Armis AR6 TG
Windows 11 Insider Canary

Testowy-2 (warsztatowy):
Dell Precision T1700
Xeon E3-1246 v3 3.5-3.9Ghz
24GB RAM DDR3 1600Mhz
Quadro K600 1GB
SSD Goodram CX400 128GB
HDD 500GB Samsung F2G
Obudowa z Optiplex 7010 DT (slim)
Zasilacz Dell 290W 80+ Gold przerobiony na ATX12VO
Windows 8.1

Testowy-3 (stacja do testowania dysków ATA, obsługi LPT oraz zgrywania obrazu z karty TV):
Core 2 Duo E4700 @ 2,6Ghz
Gigabyte GA-945GCMX-S2
3GB Ram Kingston DDR2 533Mhz
GMA 950
HDD 500GB WD Black
Windows XP

Laptop:
Dell Latitude 5420
Core i5-1135G7
32GB Ram DDR4 3200Mhz
Intel Iris Xe
SSD Kingston A2000 1TB
Windows 11


Serwery:

TECHVORTAL-PROD + NAS
Xeon E5-2680v4 2,4Ghz (14 rdzeni, 28 wątków) + Noctua NH-U9DX i4
Supermicro X10SRi-F
128GB Ram DDR4 RDIMM 2400MHz (4x32GB)
Samsung PM981 256GB (ESXI Boot + Cache)
Samsung 970 Evo Plus 2TB NVMe (VM)
Intel 670p 2TB (Data)
HDD 4x 8TB WD Red Pro (RAID-Z1)
VMware ESXi 8.0/True NAS Scale VM

TECHVORTAL-TEST
Dell PowerEdge R720
2x Xeon E5-2650v2 2,6Ghz (2 CPU, 8 rdzeni, 16 wątków)
128GB Ram DDR3L ECC FB 1333MHz (16x8GB)
SSD Samsung 980 512GB
HDD 4x 1.2TB SAS Dell (PERC H710p RAID 10)
VMware ESXi 7.0

TECHVORTAL-BACKUP-OFFLINE
Dell PowerEdge R710
2x Xeon E5649 2,53Ghz (2 CPU, 6 rdzeni, 12 wątków)
48GB Ram DDR3 ECC FB 1333MHz (6x8GB)
SSD WD 256GB NVMe
HDD 8x 2TB SAS Dell (Perc H700 RAID 5)
VMware ESXi 6.7

Komputery referencyjne do pokazów i testów systemów:

Sigma OS:
Athlon 64 3800+ @ 2400Mhz Venice + chłodzenie Cooler Master
Abit AX8
2 GB Ram DDR Kingmax 400Mhz
Radeon X700
HDD 80 GB Seagate 7200.10 ATA
Sigma OS 3.0

Windows 98 i stare gry:
Pentium III Katmai @ 500Mhz Slot 1
Asus P2B-F
256MB Ram SDRAM 100Mhz
Nvidia Riva TNT2 Pro
Sound Blaster Live! 5.1
HDD 40GB Samsung
Windows 98 SE

DOS, Windows 3.11 i oprogramowanie 16 bitowe:
Pentium 166 Mhz (P54C)
Micronics M55HI-PLUS
64MB RAM EDO
S3 Trio64V2/DX 1MB
Sound Blaster Vibra 16C
HDD 3GB WD
DOS 6.22 + Windows 3.11


Komputery używane rzadziej lub zabytkowe:

LGA775 dopakowane na maksa:
Xeon X5460 @ 3,8Ghz + Pentagram Karakorum
Gigabyte GA-P35-DS3R
8GB Ram OCZ + Goodram 800 Mhz CL5
Nvidia Quadro 2000 1GB
SSD OCZ Vertex 4 128GB
HDD WD VelociRaptor 160GB + Samsung F3 1TB
OCZ GameXStream 600W + Sharkoon Rebel 9
Windows XP + Windows 7

Athlon XP (mój pierwszy pecet):
Athlon XP 2000+ (Thoroughbred-B) 1667 @ 2100Mhz + Thermaltake TR-2
Soltek SL-75DRV5-C (Wymienione kondensatory, thx SzymekRak)
1GB Ram DDR 333Mhz
Radeon 9600 Pro
Sound Blaster Live! 5.1
HDD 80GB Samsung
Windows XP

Tualatin:
Pentium III-S Tualatin 1400 @ 1606Mhz + Arctic Cooling Copper Silent 3
Asus TUSL2-C
512MB Ram SDRAM 133 @ 153Mhz
Geforce FX5200
Sound Blaster Live! 5.1
HDD 40GB WD
Windows XP

K6 + Voodoo:
AMD K6-2 @ 550Mhz
Acorp 5ALI61
256 MB Ram SDRAM 100 Mhz CL2
3dfx Voodoo Banshee 16MB
HDD 40 GB Seagate 7200.4 ATA
Windows 98

Optimus:
Celeron Coppermine 1000 @ 1120Mhz
Procomp BVD1M
256MB Ram SDRAM @ 145Mhz
GeForce 2 MX 32MB
HDD 20GB Samsung
Windows Me (oryginalna naklejka na obudowie i pudełko z płytą)

Compaq P3:
Compaq Deskpro EP
Pentium III 600Mhz Coppermine Slot 1
320 MB SDRAM 100Mhz
Matrox G200 8MB
HDD 20 GB Samsung
Windows 2000

Compaq P2:
Compaq Deskpro PD
Pentium II 400Mhz Slot 1
320 MB SDRAM 100Mhz
ATI Rage Pro 3D 6MB (4MB + SIMM 2MB)
HDD 6 GB Quantum
Windows NT4

Compaq P1:
Compaq Deskpro 5133
Pentium 166 Mhz (P54CS)
128 MB Ram EDO (w 6 slotach)
Cirrus Logic 5434 1MB
HDD 6GB Quantum
Windows NT 3.51

Gulipin Am5x86 DX4:
AMD Am5x86 133Mhz
Dataexpert EXP8449
32 MB Ram SIMM (72 pin)
S3 Trio 2MB
HDD 2 GB Seagate ATA
Windows 95a

486 DX4:
AMD 486 DX4 100 Mhz
Chicony CH-471A
16 MB Ram SIMM (72 pin)
Trident TGUI9400CXI 2MB VLB
HDD 2 GB Seagate ATA
Windows 95a

486 DX2:
Intel 486 DX2 66 Mhz
Biostar MB-1433FA
8 MB Ram SIMM (30 pin)
Tritent TVGA9000 512KB
HDD 504 MB Quantum ATA
DOS 6.22 + Win 3.11

386:
AMD 386 DX 40 Mhz
Morse 386 M3
8 MB Ram SIMM (30 pin)
ATI VGA Wonder VGA 256KB
HDD 124MB ST3144AT
DOS 6.22 + Win 3.11

Zabytkowy laptop:
Compaq LTE Elite 4/50E
Intel SL486DX2 50Mhz
8 MB Ram
Karta graficzna WD (wiem, dziwne)
Matryca 640x480, 4 odcienie szarości
HDD Quantum 255MB
Windows 95a

Do tego masa innych gratów.

Awatar użytkownika

domel

Zasłużony użytkownik
Posty: 581
Rejestracja: 13 wrz 2008, 17:48
Lokalizacja: Garbatka Letnisko
    Windows 7 Chrome

Post24 sie 2010, 11:19

urban92 pisze:AQQ korzysta z aero dość intensywnie w swoim interfejsie, a jest pisany w Delphi.
Tylko z tego co pamiętam to ostatnio było info że przepisali je na Delphi 2009.
PS: AQQ korzysta z Aero np. w tym miejscu:
Obrazek

Awatar użytkownika

pc.qwerty

Zasłużony użytkownik
Posty: 3276
Rejestracja: 01 lip 2010, 12:28
    Windows 7 Firefox

Post25 sie 2010, 13:06

Dzięki wszystkim za odpowiedzi, w delphi 2007 robi się to właśnie tak jak chcę. :) Browary idą do wszystkich którzy wypowiedzieli się w tym temacie. :zdrowko:
There is no cloud. It's just someone else's computer.

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 6 gości