>>larskbh
Jeg er helt enig... Mit første Delphi-projekt bestod af 40 paneler og 80 timere... Trykkede man på en knap skiftede alle panelerne farve en efter en, og trykkede man på en anden knap skiftede alle panelerne farve tilbage til den originale... Jeg viste det til en kammerat som sagde at jeg havde brug for meeeeeeget mere øvelse... Det blev til en god bog på biblioteket og idag kan jeg endda finde mig selv på Eksperten's Delphi top 10, så jeg har nok ikke skudt helt forbi... :)
Hvis man skal have udgivet sine programmer skal der også være en realistisk chance for at andre kan bruge dem til noget... Mit farve-sjov program kunne nok ikke indbringe mig mange Lire, men det facinerede mig at jeg havde lavet et program som rent faktisk virkede i Windows! Det er absolut kun en opfordring til gamer61 om at blive ved og udvikle sine Delphi-skills... Når du så en dag har lavet noget som du kan se at andre rent faktisk kan bruge, og har lyst til at bruge, så læg det ud på internettet... Det behøver ikke være noget stort, men bare et lille program som opfylder specielle behov som man ikke får opfyldt godt nok p.t.
Jeg udviklede en gang et mindre spil (ved navn Blackout) hvor jeg tegnede på Canvas... Synes ikke selv det var det helt store, men alligevel så jeg nogle kammerater fra klassen der spillede det en måned efter de havde fået det, så det må åbenbart ha' sagt dem noget... :)
Med hensyn til den transparente Notepad, så er det meste af det kode fra:
http://www.pythia.dk/tips/vis_tip.php?id=41Så er det bare at ændre handlet så den i stedet peger på Notepad... Findes ved at bruge FindWindow('Notepad', nil);
Hele koden er her:
const
WS_EX_LAYERED = $00080000;
LMA_COLORKEY = $00000001;
LMA_ALPHA = $00000002;
procedure TForm1.Button1Click(Sender: TObject);
type
TLayerFunc = function(hwnd: HWND; crKey: ColorREF; bAlpha: byte; dwFlags: DWORD): boolean; stdcall;
var
ExtStyle : LongInt;
LayerFunc : TLayerFunc;
LibHandle : HModule;
NotepadHandle: HWND;
Code, Value: Integer;
begin
Val(Edit1.Text, Value, Code);
if (Code <> 0) or (Value < 0) or (Value > 255) then
begin
ShowMessage('Du skal skrive et tal mellem 0 og 255.');
Exit;
end;
LibHandle := LoadLibrary(user32);
NotepadHandle := FindWindow('Notepad', nil);
if NotepadHandle = 0 then
begin
ShowMessage('Du skal starte Notepad!');
Exit;
end;
if LibHandle > 0 then
begin
LayerFunc := GetProcAddress(LibHandle, 'SetLayeredWindowAttributes');
if Assigned(LayerFunc) then
begin
ExtStyle := GetWindowLong(NotepadHandle, GWL_EXSTYLE);
SetWindowLong(NotepadHandle, GWL_EXSTYLE, ExtStyle or WS_EX_LAYERED);
LayerFunc(NotepadHandle, rgb(0, 0, 0), Value, LMA_ALPHA);
end;
FreeLibrary(LibHandle);
end;
end;
Jeg har fjernet kommentarene fra den oprindelige kode, men dem kan du jo selv se hvor er, hvis du vil have en lidt bedre forståelse for koden... ;)
//hermandsen