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


D2k5 Pers
BeitragVerfasst: Mo 09.05.05 23:40 
////////////Neu strukturiert, da mein Post unübersichtlich war\\\\\\\\\\\\\\\\\
////////////Damit man nicht alles lesen muss, sonder sofort helfen kann\\\\\\\\\
///////////////Erkentnisse aus diesem Thread:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Man sollte richtig lesen. Lösung www.delphi-forum.de/...c.php?t=41664#251747
//////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Einziges Problem ist noch der Taskleisten Bereich, der nicht wieder freigegeben wird
Lösungen bitte nach www.delphi-forum.de/viewtopic.php?t=41860
//////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


///////////////////////////Ursprünglicher Post\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Na also eigentlich ist es nicht nur ein problem ;)
also vorweg, was ich vorhab. Ist ne taskbar für shortcuts.(funktioniert auch, nur
bereich wird nachher nicht freigegeben)
so nun soll es mal so sein:
es wird aus einer ini datei der name der 8 Gruppen-Button geladen
diese werden in ein array geschrieben also jeder button, wenn der jeweilige button gedrückt wird, fährt form 2 herrunter und die button der der groupe werden erscheinen.

so nun ging bis jetzt alles gut ;) nur nun stürzt das prg mit verschiedenen fehlermeldungen ab

der erste button wird auch richtig angezeigt und tut auch das was er soll, aber als ich eine 2te gruppe in die ini geschrieben hab und ein 2ter button erscheinen soll -> abstutz hier der fehlerhalte code
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
  ini:=TIniFile.Create('C:\\setting.ini');
  try
    for i:=1 to 8 do
      begin
        if ini.SectionExists('Group'+IntToStr(i)) then
          begin
            SetLength(buttongruppe,length(buttongruppe)+1);
            Gname:=ini.ReadString('Group'+IntToStr(i),'GCaption','');
            buttongruppe[i]:=TButton.Create(self);
            if i=1 then buttongruppe[1].left:=8
            else
            buttongruppe[i].left:=8+136*i;
            with buttongruppe[i] do
              begin
                parent:=MainForm;
                top:=16;
                Height:=41;
                Width:=113;
                name:='bt'+Gname;
                caption:=Gname;
                onclick:=Buttongruppeclick;
              end;
          end;
      end;
  finally
    ini.free;
  end;


end;

Die ini (nur zum testen)
Zitat:
[Group1]
GCaption=Delphi
[G1Button1]
BCaption=Delphi 2005 PE
Path=F:\Borland\BDS\3.0\Bin\bds.exe
GCaption=Links
[G1Button2]
BCaption=Delphi Suche
Path=www.delphi-forum.de/search.php
[G1Button3]
BCaption=Internet Explorer
Path=C:\Programme\Internet Explorer\IEXPLORE.EXE
[Group2]
GCaption=Links
[G2Button1]
BCaption=Delphi 2005 PE
Path=F:\Borland\BDS\3.0\Bin\bds.exe



Wem das zu wenig code ist, hab ich alles inen anhang gepackt
dann könnt ihr euch alle meldungen auch ansehen. (hab mindestens 5-6 verschiedene gesehen ;))

Viele sachen stehen testweise da, achja bereich wird mit dem befehl
ausblenden Delphi-Quelltext
1:
   SHAppBarMessage(ABM_REMOVE, Data);					

nicht freigegeben, obwohl data alle informationen enthält.

Also wer die vielen fehler findet bitte sagen :D
hab mich heute erst in die array und inis richtig reingelesen
taskbar script is net von mir, aber alle fehler :p

//EDIT WICHTIG ihr müsst die ini nach C kopieren, sonst läd er sie nicht!!!
// er läd sie NICHT aus seinem verzeichnis, wenn man den Pfad wegläßt
////////////////////////Ende Ursprünglicher Post\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Einloggen, um Attachments anzusehen!
_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.


Zuletzt bearbeitet von crakos am Fr 13.05.05 16:30, insgesamt 10-mal bearbeitet
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 10.05.05 06:02 
Also ich bekomme keine Fehlermeldung. Dabei ist es egal welchen Button ich gedrückt habe. Anzeigen tut er auch keine anderen Buttons. Er zeigt zwei Buttons mit der Aufschrift "Button1" und einen mit "Button5" an mehr nicht. Ich habe durch dein Programm jetzt ein Problem. Der Bereich in dem dein Fenster erscheint wird nicht mehr freigegeben. Also die Fenster lassen sich nicht vollständig mehr vergröern und die Icons vom Desktop kann ich nicht mehr dorthin schieben, obwohl das Programm beendet ist.
OneOfTen
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 10.05.05 09:03 
ich kann nur das gleiche berichten wie Heiko, hab keine Fehlermeldungen erhalten...
crakos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: Di 10.05.05 11:25 
weil die ini bei euch nicht geladen wird.
ihr müsst sie direkt auf C kopieren!
wollte sie eigentlich ausem verzeichnis starten, hata aber nicht gemacht, daher liegt sie auf c
die button die ihr seht waren nur zum testen button 5 ist prg beenden
das mit dem freigeben hatte ich ja gesagt, er macht es nicht :/
einmal abmelden anmelden hilft Oo

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 10.05.05 14:18 
Stimmt nicht. Ich habe schon darauf geachtet. Ich habe den Pfad der Ini-Datei weggenommen, wordurch er in dem gleichen Ordner sucht wie die exe liegt. Dazu habe ich auch noch die Ini an mein System angepasst.
crakos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: Di 10.05.05 15:01 
das mit dem Pfad wegnehmen funzt aber nicht, das war das problem, hatte ich ja auch voher, aber er läd die dann nicht! deshalb hab ich sie ja nach c verschoben !
und nur wenn man die ini wegläst läd das program ohne fehler!
es hatte schon seinen sinn, es auf c zu tun.

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 10.05.05 17:37 
Aber eigentlich erstellt er die INI automatisch wenn man versucht die zu öffnen und die existiert nicht (du überprüfst ja nicht ob es die schon gibt sondern versuchst gleich auf die zuzugreifen). Aber er hat auf C keien erstellt. Habe ich richtig in Erinnerung das der Pfad C\\.. ist? ICh glaub du solltest es mal auf C:\... verbessern, da das eigenltich korrekt ist.
crakos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: Di 10.05.05 17:48 
mh das ist aber nicht das problem!!! er läd die datei ja, und erstellt den ersten button
hab den einen Slash entfernt, aber wie erwarten, passiert das gleiche.
Kopier es einfach nach C und fürs aus.....
Dann siehste das es net läuft.

_________________
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: Fr 13.05.05 16:05 
puh endlich rausgefunden, man sollte die tutorials auch richtig lesen Oo
naja da hätte auch einer von euch drauf kommen können ;)
die schleife geht von 1-8 muss aber von 0-7 gehen (dynamisches array :/ )
Und in der Ini datei muss eine gruppe 0 vorhanden sein,
ka warum füge eine groupe 0 hinzu und alles läuft Oo

Hab den Code 'neu' geschrieben, kleinigkeiten verbessert
hoffentlich fehlerfreier code :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
 ini:=TIniFile.Create(extractFilePath(ParamStr(0))+'test.ini');
 try
   for i:=0 to 7 do
     begin
       if ini.SectionExists('Group'+IntToSTr(i)) then
         begin
           if ini.ValueExists('Group'+IntToSTr(i),'Caption') then
             Gname:=ini.ReadString('Group'+IntToSTr(i),'Caption','')
           else
             showmessage('Caption von'+ 'Group'+IntToSTr(i)+'nicht vorhanden');
           SetLength(buttongruppe,Length(buttongruppe)+1);
           buttongruppe[i]:=TButton.Create(self);
           with buttongruppe[i] do
           begin
             left:=8+136*i;
             parent:=MainForm;
             top:=16;
             Height:=41;
             Width:=113;
             name:='bt'+Gname;
             caption:=Gname;
             onclick:=Buttongruppeclick;
           end;

         end;

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.