Autor Beitrag
crakos
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: Fr 13.05.05 16:12 
//////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Problem zwar gelöst:hier
ABER: Der fehler im Programcode wurde bis jetzt NICHT gefunden!
//////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Hallo, hoffe hab das richtige Sparte erwischt :)
Ich benutze diesen Code zum erstellen meiner Taskleiste, funktioniert auch perfekt.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
   Data.cbSize := SizeOf(TAppBarData);; 
   Data.hWnd := MainForm.Handle; 
   Data.uCallbackMessage := WM_APP; 
   Data.uEdge := ABE_TOP; 
   Data.rc.Left := 0
   Data.rc.Top := 0
   Data.rc.Right := 200
   Data.rc.Bottom := 70;
   if SHAppBarMessage(ABM_NEW, Data) = 0 then 
   begin 
     ShowMessage('AppBar konnte nicht registriert werden'); 
     exit; 
   end
   SHAppBarMessage(ABM_QUERYPOS, Data); 
   SHAppBarMessage(ABM_SETPOS, Data);
   MainForm.BorderStyle := bsNone; 
   MoveWindow(MainForm.Handle, 00, Screen.Width, 70, True);


Das Problem ist, wenn ich das Program schließe, wird der Bereich nicht wieder freigegeben, ich kann also keine Fenster in den Bereich ziehen.
ausblenden Delphi-Quelltext
1:
SHAppBarMessage(ABM_REMOVE, Data);					


Ich habe diesen befehl so ziemlich überall hingeschrieben(ende button,destroy,onclose)
hilft nix.

Wo ist mein Fehler?

Vielen dank schonmal

Moderiert von user profile iconraziel: Titel geändert: Redundantes nicht entfernt.

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.


Zuletzt bearbeitet von crakos am So 15.05.05 19:00, insgesamt 2-mal bearbeitet
feivel3333
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 190

W7
Delphi XE prof
BeitragVerfasst: Fr 13.05.05 21:24 
Gibt es bei deinem Data-Element ein Release, also z.B.

Data.Release;

oder

Data.Free;

oder

Data := NIL beim Beenden des Programms?

Da ich nur ein Fragment des gesamten Quellcodes sehe, kann ich es nicht nachvollziehen. Zudem weiß ich nicht, auf welcher Delphi-Version du arbeitest. Und vor allem nicht, was Data überhaupt ist, woraus es generiert wurde.

Gruß, AS
crakos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: Fr 13.05.05 21:41 
sry
ausblenden Delphi-Quelltext
1:
Data: TAppBarData;					

Das ist der gesamte sidebar code.
hab delphi 2005 per steht doch rechts bei mir.
free und Release bringt nix
außerdem versteh ich nicht was das direkt bringt.
ausblenden Delphi-Quelltext
1:
SHAppBarMessage(ABM_REMOVE, Data);					

dachte dies bedeutet, das er den bereich, mit den werten von data wieder freigibt.

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.
feivel3333
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 190

W7
Delphi XE prof
BeitragVerfasst: Fr 13.05.05 21:53 
Bei D2K muss ich passen, da muss jemand anderes helfen. Habe diese Version leider noch nicht.

Schönes Wochenende an alle!
crakos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: Fr 13.05.05 21:56 
schade, wusste gar nicht, das da so ein unterschied zwischen den delphi versionen ist.
Aber danke fürs antworten :)

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 13.05.05 23:34 
Erzeugt D2K5 nicht nur .NET code? ich glaube, es gelesen zu haben... jedenfalls hab ich versucht anhand von D7 jemandem mit D2k5 die grundbegriffe beizubringen. an Label1.Caption:='hallo' sind wir gescheitert...

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 13.05.05 23:58 
Nein, so wohl als auch. Du kannst damit beides erstellen.
crakos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: Sa 14.05.05 00:18 
D2k5 unterstüzt beides. Das prg hab ich nicht in .net geschrieben
habe noch nie was in .net geschrieben. Kenne voner Schule nur win32 also die normale delphie sprache. Ich weiss nicht wo da der unterschied eigentlich ist.

Achso um in d2k5 eine win 32 form zu starten,
File->New->VCL Forms Application-Delphi for Win32
einen anderen Weg hab ich bisher nicht gefunden :)
Hoffe einer von euch kann mir nun sagen, warum der ver$&#te Bereich nicht wieder freigegeben wird.

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.
crakos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: Sa 14.05.05 01:15 
was ich gerade herrausgefunden hab, wenn ich die MainForm(Sidebar) mit
BorderStyle=bsNone starte, dann habe ich in dem Bereich, wo normalerweise die Sidebar ist, ein leeres desktop feld, in das ich nichts hineinziehen kann.
Die MainForm befindet sich erst dadrunter.
Wenn ich aber die MainForm schließe und den code SHAppBarMessage(ABM_REMOVE, Data); ausführe, ist der Bereich wieder freigegeben.

Wenn ich es mit BorderStyle=bsSingle starte, dann befindet sich die Sidebar an ihrem Richtigen platz, aber der Platz wird nicht freigegeben.

Habs grad mal versucht beim Starten bsSingle
und beim verlaßen

ausblenden Delphi-Quelltext
1:
2:
3:
   MainForm.BorderStyle:=bsNone;
   MainForm.Update;
   SHAppBarMessage(ABM_REMOVE, Data);

Hilft aber nichts hoffe nun kann mir einer helfen.
Versuche dann morgen weiter,hoffe aber ihr helft mir auf die Sprünge :)

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.
crakos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: Sa 14.05.05 12:08 
Morgen,
Habe gerade mal rumgespielt.
Also wenn ich die grundeinstellung(opjektinspektor) bsSingle hab
dann kommt Richtiger Bereich, wird aber nicht wieder freigegeben.

Wenn ich grundeinstellung bsNone ANSCHLIEßEND mache
Also single starten schließen, bsnone einstellen starten.

Ist es der Richtige Bereich, UND der Bereich wird nachher auch freigegeben.

Na also denkste machste von anfang an bsNone ja von wegen,
Dann ist wieder das wie gerade beschrieben: Taskbereich registriert, aber die leiste nicht drin Oo, aber wird nachher freigegeben.

Ich könnt heulen Oo

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.
crakos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: Sa 14.05.05 12:48 
Naja hab jetzt sowas wie eine Lösung. Geflällt mir zwar nicht, weil es das übel nicht an der wurtzel packt,also wenn wer den richtigen fehler findet, bitte mitteilen. danke.

Habe im FormDestroy den vollständigen sidebar code vor    SHAppBarMessage(ABM_REMOVE, Data); geschrieben. naja nun gehts. Aber wie gesagt gefallen tut mir das nicht :/

Also wer weiss warum, warte ;)

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.