Hvad er der galt?

Tags:    delphi

Hvad er der galt i min kode?

procedure Taskbar1(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_SHOW);
end;

procedure Taskbar(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_HIDE) ;
SetWindowLong(Application.Handle, GWL_EXSTYLE,
getWindowLong(Application.Handle, GWL_EXSTYLE) or
WS_EX_TOOLWINDOW) ;
ShowWindow(Application.Handle, SW_SHOW) ;
end;


procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if Checkbox1.checked = true then
Taskbar
else if Checkbox1.Checked = false then
Taskbar1;
end;
end.



5 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Hvad er der galt i min kode?

procedure Taskbar1(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_SHOW);
end;

procedure Taskbar(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_HIDE) ;
SetWindowLong(Application.Handle, GWL_EXSTYLE,
getWindowLong(Application.Handle, GWL_EXSTYLE) or
WS_EX_TOOLWINDOW) ;
ShowWindow(Application.Handle, SW_SHOW) ;
end;


procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if Checkbox1.checked = true then
Taskbar
else if Checkbox1.Checked = false then
Taskbar1;
end;
end.


Der er ingen fejl i den første kode, men når du bare siger fejl, mener du så at den ikke gør hvad du forventede, og i så fald; hvad?

Fejlen i den anden kode er 1 'end;' for meget, og der skal ikke være . efter 'end' men ; (regner med at det er en stavefejl) for Delphi regner 'end.' for at være enden af programmets kode:
Fold kodeboks ind/udKode 


n i f e
115 105 102 105
6E 69 66 69

[Redigeret d. 20/08-04 14:36:01 af Nicolai Lyster Fersner]



Hvad er der galt i min kode?

procedure Taskbar1(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_SHOW);
end;

procedure Taskbar(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_HIDE) ;
SetWindowLong(Application.Handle, GWL_EXSTYLE,
getWindowLong(Application.Handle, GWL_EXSTYLE) or
WS_EX_TOOLWINDOW) ;
ShowWindow(Application.Handle, SW_SHOW) ;
end;


procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if Checkbox1.checked = true then
Taskbar
else if Checkbox1.Checked = false then
Taskbar1;
end;
end.


Jeg kender ikke lige helt så meget til det men, jeg synes at dette ser lidt mistænkeligt ud? (altså med OR i parameterne?):

SetWindowLong(Application.Handle, GWL_EXSTYLE,
getWindowLong(Application.Handle, GWL_EXSTYLE) or
WS_EX_TOOLWINDOW) ;

og måske mangler der et ; efter Taskbar i if-sætningen

Men det er bare vilde gæt, håber det hjalp :)

---
Simon



Den siger, at der ikke er "enough actual parameters"

[Redigeret d. 20/08-04 14:37:28 af Benni]



Den siger, at der ikke er "enough actual parameters"

[Redigeret d. 20/08-04 14:37:28 af Benni]


Dette er den tredje fejl, som jeg har rettet, og hvis du retter alle tre virker det fint hos mig:
Fold kodeboks ind/udKode 


Taskbar1 er en procedure som skal have en parameter for at kunne udføres.
Jeg ved ikke lige om du lagde mærke til det, men du behøver ikke skrive '= true' og '=false', du kan bare nøjes med ingenting for true og et not foran '=false' sætningen (som vist på koden).

n i f e
115 105 102 105
6E 69 66 69

[Redigeret d. 20/08-04 14:47:26 af Nicolai Lyster Fersner]

[Redigeret d. 20/08-04 14:47:48 af Nicolai Lyster Fersner]



Yes, nu virker det!




t