Autor Beitrag
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 25.09.02 12:21 
Gefällt mir immer noch nicht die Lösung. Aber gut, ist dein Programm. :?
stefanstp Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Mi 25.09.02 12:54 
Titel: Was soll ich sagen...
Also Du hast ja recht...aber man kann es halt nicht allen recht machen. Kommt Zeit kommt Rat.

Werde mich jetzt um die Oberfläche kümmern und erst einmal alle Kritikpunkte abarbeiten. Bisdahin vergehen bestimmt 2-4 Wochen. Danach hoffe ich, das es ein sehr stabiles Programm ist, welches leicht zu bedienen ist und was auch ich hoffe irgendwann mal auch Dir gefällt :lol:

Bedanke mich sehr für Eure Hilfe und ich hoffe, das ihr mir in der nächsten Version noch einmal eine Chance gebt, und das Programm noch einmal auf Herz und Nieren durchtestet!

STEFAN
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 25.09.02 13:53 
stefanstp hat folgendes geschrieben:
... Bloß wenn man soviele Punkte abarbeiten muß ...

Ich glaube, du missverstehst da was. Diese Sparte dient dazu, dass jemand sein selbstgeschriebenes Programm vorstellen und durch die anderen Foren-User testen lassen kann. Das bedeutet aber nun nicht zwangsläufig, dass du jede Kritik annehmen und sofort ändern musst.
Ich würde an deiner Stelle darauf achten, dass deine eigenen Ideen in deinen Programmen nicht vollständig verloren gehen. Kritik würde ich nur berücksichtigen, wenn sich mehrere Leute negativ zum selben Thema äußern. Alles andere würde ich nur als Vorschläge ansehen, die du umsetzen kannst aber eben nicht musst. Es ist doch dein Programm!

Zitat:
Das ist eine sehr gute Idee...mein Programm in den Vordergrund zu holen, wenn es noch aktiv ist, und man auf die EXE drückt. Bloß wie macht man das?

Ist ganz einfach. Zuerst öffnest du den Projektquelltext (*.dpr) und suchst die Zeile, in der du normalerweise die Meldung anzeigen lässt "das Programm kann nur einmal gestartet werden. Ich vermute mal, du benutzt einen Mutex um den mehrfachen Start zu verhindern?! Wenn ja, dann bau´s einfach so um:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
begin
  if(GetLastError = ERROR_ALREADY_EXISTS) then
    begin
      // hier käme normalerweise deine Meldung und
      // ein Halt oder Exit
      // stattdessen -->

      SendMessage(findwindow('TForm1',nil),WM_SYSCOMMAND,SC_RESTORE,0);
      SetForegroundWindow(findwindow('TForm1',nil));
    end
  else
    begin
      Application.Initialize;
      Application.CreateForm(...);
      ...
      Application.Run;
    end;
end.

So, und dann noch das hier im Unitcode deines Hauptformulars "Form1":
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
type
  TForm1 = class(TForm)
    ...
  private
    procedure WmSysCommand(var Msg: TMessage); message WM_SYSCOMMAND;
  end;

procedure TForm1.WmSysCommand(var Msg: TMessage);
begin
  if(Msg.Msg = WM_SYSCOMMAND) and (Msg.wParam = SC_RESTORE) then
    Application.Restore;

  inherited;
end;

btw: Ich würde über einen anderen Namen anstelle von "TForm1" nachdenken. Wenn auf dem Rechner das Delphi-Programm eines anderen läuft, der auch diesen Standardnamen verwendet hat, könnte u.U. dessen Programm erscheinen. :shock: Also nenne dein Formular doch beispielsweise "AllOfficeForm" (das T wird ja automatisch ergänzt!), dann ersetzt du in obigem Code "TForm1" entsprechend durch "TAllOfficeForm".

Zitat:
Wie kann ich denn nur einen Lesezugriff auf die Registry machen, geht das automatisch wenn ich nicht darauf schreibe?

Nein, leider nicht. Lösung (s. Delphi-Hilfe):
ausblenden Quelltext
1:
cReg := TRegistry.Create(KEY_READ); // <-- aha! ;o)					


Zitat:
Habe unter HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths es so gemacht, wenn sich dort EXCEL.EXE (...), das der Eintrag im Menü erscheint, komisch...vielleicht steht dieser Eintrag ja bei Dir in der Registry?

Nein. Habe eben noch mal nachgeschaut, aber es bleibt beim Nein.

Zitat:
Bin schon dabei, das Hintergrundbild komplett per Option abzuschalten und dafür eine Alternativfarbe zu benutzen.

Warum Alternativfarbe? Was ist denn gegen die jeweilige Standardfarbe von Windows einzuwenden? Denke auch mal an die Leute, die ihre Farben geändert haben. Bei denen sieht vielleicht der Desktop so aus wie deine geplante Alternativfarbe, und dann wirkt´s als wäre in deinem Programm ein Loch drin. :)

Zitat:
Ja benutze den Net-Send-Befehl----Habe jetzt überall ein Infosymbol gemacht, dort steht alles wichtige Pro Funktion in All Office drin.

Ja schon, aber trotzdem kann man die Funktion nicht nutzen, weil es "net send" unter 9x nicht gibt. Du bräuchtest eigentlich nur beim Start die Platform prüfen und abhängig davon die Registerseite ausblenden.
ausblenden Quelltext
1:
NETSENDTabSheet.TabVisible := (Win32Platform = VER_PLATFORM_WIN32_NT);					


Zitat:
Ja eine Kollegin die keine Ahnung hat, die soll ja auch die message.ini nicht bearbeiten, sondern der ADMIN

s. Kommentar von Luckie. :)

Zitat:
er legt das Programm in einen Netzwerkordner ab, wo die Kollegin den Zugriff drauf haben, und dann kann jeder das Programm daraus starten. Dann brauch der Admin nur einmal in diesem Ordner die Message.ini ändern, und überall greift es!

Keine gute Idee. Denk nur mal an deine Option mit dem Hintergrundbild. Wenn Müller das Hintergrundbild ändert, dann sieht das auch Meier - weil ja alle auf die selben Einstellungen zugreifen. Ob das so gut ist?
Was man allerdings machen könnte, wäre folgendes: du legst die INI-Datei mit den Rechnernamen tatsächlich auf einem Server ab, auf den alle Zugriff haben. Den entsprechenden Namen samt Verzeichnis schreibst du in die Konfigurationsdatei des Programms (damit man sie in anderen Firmen notfalls ändern kann!), und dann mappt dein Programm beim Start dieses Verzeichnis temporär als lokales Laufwerk.
Damit kann auf die Rechnernamen zugegriffen werden, und beim Beenden wird das Laufwerk wieder freigegeben.

Dieser Weg ist für einen Anfänger (sorry, soll keine Beleidigung sein!) aber nicht gerade ein idealer Einstieg. Deswegen wäre ein lokale Lösung besser. Dann hätte jeder Kollege und jede Kollegin die freie Wahl, welche Empfänger in der Liste stehen. Ich werde mal nicht so sein. 8) Folgende Funktion benutzt den sog. "Ordner suchen"-Dialog, zeigt aber nur die Netzwerkumgebung an. Rückgabewert ist dann der ausgewählte Computername, den du in die Listbox eintragen und dann speichern lassen kannst:
ausblenden 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:
uses
  ShellAPI, ShlObj;

function BrowseForComputer(wnd: HWND): string;
var
  lpItemID    : PItemIDList;
  BrowseInfo  : TBrowseInfo;
  DisplayName : ARRAY[0..MAX_PATH] OF CHAR;
begin
  fillchar(BrowseInfo, sizeof(BrowseInfo), #0);

  // da wir nur die Netzwerkumgebung sehen wollen,
  // müssen wir sie erst mal suchen
  SHGetSpecialFolderLocation(wnd,CSIDL_NETWORK,lpItemId);

  BrowseInfo.hwndOwner      := wnd;
  BrowseInfo.pidlRoot       := lpItemId;
  BrowseInfo.pszDisplayName := @DisplayName;
  BrowseInfo.ulFlags        := BIF_BROWSEFORCOMPUTER;
  lpItemID                  := SHBrowseForFolder(BrowseInfo);

  // Ergebnis
  if(lpItemId <> nil) then Result := string(Displayname)
    else Result := '';

  GlobalFreePtr(lpItemId);
end;

Übrigens - die Frage nach diesem Code war meine allererste Frage online ... vor zwei Jahren im Entwickler-Forum. Da habe ich nämlich für meinen "Net Sender" die Möglichkeit gesucht, Computer aus der Netzwerkumgebung auswählen zu können ... Ach ja, *seufz* ... :)

Zitat:
Das - bei der Zahl mit Tage bedeutet, das du im aktuellem Jahr schon Geburtstag hattest ...

Stimmt.
Zitat:
und zwar bei Dir genau vor 243 Tagen

Na ja, wenn ich mein richtiges Geburtsdatum eingetragen hätte. :wink: Aber zumindest ist es eine Erklärung für das Minus. Nun gut. Aber warum kann dein Programm nicht die Tage bis zum nächsten Geburtstag herausfinden? Nur weil der im nächsten Jahr liegt?

Zitat:
aber diesmal werde ich mich hüten, voreilig eine neue Version herauszubringen

Ach, das wär´ aber schade. Worüber soll ich denn dann meckern? :twisted: :wink:

Gruß,
Mathias.
stefanstp Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Mi 25.09.02 14:21 
Titel: Besten Dank!!!
Danke für den Quellcode. Werde es damit versuchen. Hast mal wieder in allen Punkten recht.

Und danke für Deine Unterstützung!!!

Bis in ein paar Wochen!

Stefan
stefanstp Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Do 26.09.02 07:30 
Titel: An Mathias
Hallo Mathias,

das mit mein Programm im Vordergrund holen, wenn schon gestartet sobald man auf die EXE drückt, klappt zwar, allerdings nicht perfekt :cry: :

- Das Programm erscheint zwar aus dem Systray...jedoch nicht wirklich, denn ich kann nicht zwischen meinen Tabsheets umschalten. Es ist auch keine Taskleiste unten zu sehen. Es klappt dann nur, wenn ich manuell auf mein Programm per Rechte Maustaste auf das Sternchen Symbol klicke und Anzeige sage.
- Und wenn ich danach mein Programm wieder auf das X drücke, das heißt es müßte wieder im Systray gehen, verschwindet es zwar, aber auch das Sternchensymbol.

Also irgendwas ist falsch am Quellcode. Ich habe die Beiden Blocks auch wirklich originalgetreu eingegeben! Was mache ich falsch?

Der Quelltext:
NETSENDTabSheet.TabVisible := (Win32Platform = VER_PLATFORM_WIN32_NT);
funktioniert super! Danke!

Wäre für Deine Hilfe sehr dankbar, wie ich mein oben beschriebenes Problem beheben kann. Schon mal im Voraus danke! :P

STEFAN
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 26.09.02 08:03 
Titel: Re: An Mathias
stefanstp hat folgendes geschrieben:
Also irgendwas ist falsch am Quellcode. Ich habe die Beiden Blocks auch wirklich originalgetreu eingegeben! Was mache ich falsch?

Wahrscheinlich gar nichts. Der Weg wie oben beschrieben funktioniert normalerweise für alle Programme. Es kann aber sein, dass bei dir das Problem mit dem TNA-Icon dazukommt. Probieren wir was anderes!
Du hast doch eine Taskbar-Message, die du für Klicks auf das TNA-Icon benutzt. Ich weiß jetzt nicht, wie du die genannt hast, vielleicht "WM_TASKBAREVENT" oder "WM_TRAYMSG" oder so. Benutze die einfach mal im DPR-Quelltext:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
uses
  Messages, ... ;

{ ... }

if(GetLastError = ERROR_ALREADY_EXISTS) then
    begin
      // hier käme normalerweise deine Meldung und
      // ein Halt oder Exit
      // stattdessen -->
 
      PostMessage(findwindow('TAllOfficeForm',nil),
        WM_TASKBAREVENT,
        0,
        WM_LBUTTONDBLCLK);
    end
  { ... }

Wie gezeigt musst du noch zusätzlich die Unit "Messages" in die DPR-Datei aufnehmen, und dann benutzt du einfach die TNA-Funktionalität aus deinem Programm und sendest die TNA-Message mit einem Doppelklick der linken Maustaste. :) Dadurch reagiert dein Programm entsprechend und sollte im Vordergrund erscheinen.

Zitat:
Der Quelltext:
NETSENDTabSheet.TabVisible := (Win32Platform = VER_PLATFORM_WIN32_NT);
funktioniert super! Danke!

Was? Das TabSheet heißt wirklich so? :)

btw.: s. auch hier für einen vernünftigen Splash-Screen, der wirklich nur solange zu sehen ist, solange dein Programm lädt, bzw. laden muss.
stefanstp Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Do 26.09.02 08:31 
Titel: Besten Dank für die schnelle Antwort....
....jedoch habe ich für das Icon im Tray eine Komponente names TrayIcon glaube ich. Also kann ich trotzdem jetzt dein Code nehmen? Kann es immer erst abends ausprobieren.

Zur Not gucke ich mal im Quellcode der Komponente nach. Jaja...ich weiß schon was Du sagen will....am besten die Komponente rausschmeißen und selber schreiben! Wir probieren es erst einmal so aus, wenn es dann nicht geht, dann schreibe ich das selber mit dem Icon, damit das auch mit deinem Quellcode geht.

Stefan
stefanstp Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Fr 11.10.02 12:28 
Titel: Neues Update von All Office
Hallo,

es ist mal wieder soweit. Ich habe viel Arbeit in eine neue Version von All Office gesteckt.

1. Es ist ein Terminkalender hinzugekommen
2. Der Geburtstagskalender hat viele neue Sortierfunktionen hinzubekommen
3. Dialoge sind im neuem Design
4. Darstellung wurde nochmals verbessert
5. Viele Kritikpunkte sind verarbeitet worden

Allerdings habe ich leider immer noch 2 Sachen nicht hinbekommen:
1. Wenn Programm schon gestartet und man drückt auf die EXE , das sich mein Programm im Vordergrund schiebt (geht nicht richtig, entweder mein Programm kommt dann im Vordergrund, aber reagiert nicht richtig aufs weiterarbeiten im TabSheet, oder aber Delphi spuckt eine Menge Fehlermeldungen aus)==> werde mal meinen Start-Code hier posten. Vielleicht habt ihr ja eine Lösung parat!
2. Mein Startlogo habe ich so realisiert, das es 2 Sekunden erscheint (durch sleep(2000)). Habe es anders noch nicht hinbekommen. Weil sonst mein Programm dann auch gleich schließt oder oder oder????

Würde mich freuen, wenn Ihr meine neue Version mal durchcheckt und sagt, was ich noch verbessern könnte.

STEFAN

mitglied.lycos.de/al...office2_2_beta_2.exe

bzw. auf: www.alloffice.de.nr
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 11.10.02 18:54 
Zuerst mein Tipp zum Splash-Screen:
Du öffnest deine Projektdatei (*.dpr) und suchst die Zeile, in der dein Splashformular erzeugt wird. Sieht vielleicht so aus:
ausblenden Quelltext
1:
Application.CreateForm(TForm3, Form3);					

Keine Ahnung, wie dein Splash-Screen heißt, aber diese Zeile nimmst du raus! Stattdessen schreibst du drumherum:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
Application.Initialize; // <-- die Zeile muss schon in der DPR-Datei stehen

with TForm3.Create(nil) do
  try
    Show;
    Update; // das zeigt den Splash an
    Screen.Cursor := crHandShake; // immer schick :o)

    // jetzt kommen die ganzen Zeilen, in denen die anderen
    // Forms erzeugt werden
    // die übernimmst du einfach so, wie sie in deinem
    // DPR-Quelltext stehen
    Application.CreateForm(...)
    ...

    Screen.Cursor := crDefault; // so, alles erledigt
  finally
    Free;
  end;

  Application.Run; // <-- das ist auch eine Originalzeile aus der DPR-Datei

Damit ist der Splash-Screen tatsächlich nur solange sichtbar, solange dein Programm seine Forms usw. erzeugt. Ist IHMO besser als eine nervige Werbung am Anfang, während der nichts passiert - und außerdem, du hast ja eine "Info über das Programm" eingebaut. Man verpasst also nichts.

Nun die Kritik:
Den Pfad zur Hilfedatei solltest du noch korrigieren. Wenn du die Hilfedatei nämlich veröffentlichst (hast du vielleicht schon :oops:), dann wird sie trotzdem nicht angezeigt werden können, weil ein Backslash zuviel im Pfad ist. Sieht man sehr schön in der Fehlermeldung:
Zitat:
Fehler: Hilfedatei nicht im Verzeichnis C:\LastCrap\\ALLOFFICE.chm gefunden

(btw: sei mal nicht sauer wg. meinem Verzeichnisnamen, aber ich habe meinen Ordner "Eigene Dateien" umbenannt. Das bezieht sich also nicht auf dein Programm :))

Was mir immer noch ein Rätsel ist: warum die Anpassung für 800x600? Das kapiere ich generell nicht. Warum nimmst du nicht eine universelle Größe? Wenn 800x600 dein Limit sein soll, dann dreh die Bildschirmauflösung runter und pass die Form so an, dass noch alles gut zu erkennen ist. So lässt du es dann. Punkt.
Ich habe irgendwie ein Problem mit Programmen, die nur bei bestimmten Bildschirmauflösungen richtig gut aussehen (wollen).

Nach all der Kritik zu den übergroßen Einträgen im XP-Menü musste ich mir jetzt ´ne Lupe raussuchen. :mrgreen: Verzichte doch einfach komplett auf dieses Menü. Na gut, ich gebe zu, ich habe so was ähnliches auch einmal benutzt - allerdings nicht diese Komponente; ich habe den Code direkt in meinem Programm untergebracht. Aber mittlerweile würde ich das nicht mehr tun. Es sei denn, jemand verrät mir, wo die Routinen für das Microsoft-OfficeXP-Menü stecken und wie man sie nutzen kann. :wink:

Extrem nachteilig ist, dass man bei deaktiviertem Hintergrundbild nur die Hintergrundfarbe ändern kann. Deswegen habe ich dir damals schon gesagt: lass die Farben wie sie sind und mach nur das Bild abschaltbar. Ich wollte den Hintergrund -wie im System üblich- auf "clBtnFace" einstellen, und das hat sich mit der weißen Schrift gebissen.

Den Euro-Rechner kann man mittlerweile rausnehmen. Denkt ihr nicht, Leute?

Gruß,
Mathias.
stefanstp Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Mo 14.10.02 08:18 
Titel: Also...
Ich werde mal heute oder Morgen das mit dem Splashscreen versuchen hinzubekommen. Danke für deinen Quellcode!

Die Hilfedatei geht doch 8) , obwohl der Doppelte //. Kannst ja ausprobieren....einfach eine Hilfedatei mit dem Namen alloffice.chm im AllOffice Ordner einfügen bzw. auf www.alloffice.de.nr herunterladen.

Das jetzt die Schrift zu klein ist...hm ändere ich mal wieder :lol:

Ich wollte sowieso in der nächsten Version unter Optionen die Funktion hinzufügen, das man auch die Schriftfarbe ändern kann. Gibt es eigentlich ein gute Lösung, das man alle Labels in eine Schriftfarbe färbt? Wenn nicht, muß ich ja alle 50 Stück im Quellcode auflisten lassen und die einfärben....

Den Eurorechner nehme ich raus!

Danke nochmals für den Test.

STEFAN
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 14.10.02 10:26 
Zitat:
Die Hilfedatei geht doch

Ja, stimmt: mein Fehler. Da ich aber Fehler prinzipiell nicht zugebe (:wink:), hagelt´s gleich die nächste Kritik: wenn die Hilfedatei nicht gefunden wurde, dann deaktiviere doch einfach den Menüeintrag, bzw. lass ihn ganz verschwinden. Und dann überarbeite bitte deine Download-Webseite. Da denkt man: ach, 22k ist ja nicht groß, das kann man ja herunterladen. Und tatsächlich sind´s dann 468k. :evil:

Zitat:
Das jetzt die Schrift zu klein ist...hm ändere ich mal wieder

Nein, nicht ändern! Mach mal eine Kopie von deinem Programmverzeichnis, inkl. aller Dateien, Units, usw. Und dann kompiliere es einfach mal ohne dieses schrottige XP-Menü. Da gibt es keine Probleme von wg. Schrift zu groß, Schrift zu klein.

Zitat:
Gibt es eigentlich ein gute Lösung, das man alle Labels in eine Schriftfarbe färbt? Wenn nicht, muß ich ja alle 50 Stück im Quellcode auflisten lassen und die einfärben....

Es ist dein Programm (natürlich!), aber mein Vorschlag ist immer noch der, dass du auf eine eigene Farbgebung verzichtest. Wenn der Anwender das Hintergrundbild abstellt, dann sollte das Programm die typischen Windows-Farben benutzen. Auf diese Weise kann der User über seine Systemeinstellungen entscheiden, welche Farben er sehen will. Und vor dem Problem, 50 oder mehr Labels färben zu müssen, stehst du dann erst gar nicht.
btw: das Hintergrundbild würde ich als externe Datei beilegen und im "OnCreate" deiner Form laden lassen. Das Ergebnis ist das selbe, nur die Exe-Datei wird nochmal ein Stückchen kleiner. Dann darfst du aber nicht die Kontrolle
ausblenden Quelltext
1:
if(fileexists(...))					

vergessen, denn ich würde zuerst das Bild löschen. :twisted:

Noch ein paar Punkte:

  • Erklär mir doch bitte mal den Sinn der Größenanpassung. Ich sehe ja ein, dass es Leute und/oder Firmen mit älterer Hardware gibt, bei denen höhere Auflösungen als 800x600 entweder nicht möglich sind oder zu stark flimmern. Wenn du das also als Minimum unterstützen willst, dann gestalte das Programm doch so, dass es eben bei 800x600 noch komplett zu sehen ist. Und so lässt du es dann.
  • Diese Sache mit dem SysTray in den "Extras": na ja ... gut, du lässt Fenster verstecken und anzeigen. Aber wieso? Was hat das mit der Idee von AllOffice zu tun? Warum muss eine Angestellte, die AllOffice z.B. für Termine benutzt, Fenster verstecken können? Zumal man erst mal in der Hilfe nachsehen muss, was es mit dieser Option auf sich hat. Wenn du so einen -sorry!- Quark schon einbauen musst, dann biete doch gleich eine Listbox mit allen gefundenen Fenstern zur bequemen Auswahl an.
  • Ein Pluspunkt für dein NetSend-Tools wäre, wenn man direkt im Programm die Empfänger auswählen kann. Dass es nicht schwer ist, habe ich dir mit meinem Codeposting am 25.09. zeigen wollen. Mal ehrlich: heutzutage kann man doch keinen mehr auffordern, eine INI-Datei manuell via Editor zu bearbeiten, wenn man ohne viel Aufwand die passende Funktion ins Programm integrieren könnte.
  • Was mir von Anfang an fehlt: bau eine Option ein, mit der der User entscheiden kann, ob und wie er das Programm beenden will. Wenn ich auf den Schließen-Button in der Titelzeile klicke, dann erwarte ich irgendwie schon, dass dabei das Programm auch wirklich beendet wird. Oder mach es so wie ZoneAlarm z.B. und zeige beim allerersten Klick auf den Schließen-Button eine Meldung an wie "Das Programm steht Ihnen weiterhin in der Taskbar Notification Area zur Verfügung". Aber lass den User mit einer Checkbox entscheiden, ob er diese Funktion will oder nicht.


So, und zu guter Letzt als kleine Denkanregung für eine evtl. Version 3 oder höher:

Anstelle alles in eine dicke Exe zu packen, würde ich einzelne Module empfehlen. Also, ein Programm zum Senden von Nachrichten, einen Geburtstagskalender, ein Programm mit den zu erledigenden Aufgaben, usw. Sicher, der Aufwand ist ein bisschen größer. Auf der anderen Seite kannst du dich bei jedem Programm auf die eigentliche Funktion konzentrieren. Das minimiert auch die Fehlersuche, weil du davon ausgehen kannst, dass ein Bug im Terminkalender bspw. nicht im NetSend-Tool zu suchen ist. :wink:
Zusammenfassen würde ich diese Module dann mit einer Art Startcenter. Dieses Startcenter kann z.B. eine simple Toolbar sein, die sich am Desktoprand andockt. Beim Start prüft sie das Vorhandensein der einzelnen Module (auch abhängig vom Betriebssystem; s. "net send") und zeigt oder verbirgt dann die entsprechenden Buttons, mit denen man das jeweilige Modul starten kann. Wenn´s denn sein muss, kann das Startcenter auch zusätzlich in der TNA erscheinen und dort Zugriff auf die Module oder sonstige Funktionen bieten.

Gruß,
Mathias.

PS: Zum Splash-Quellcode - es muss am Anfang natürlich
ausblenden Quelltext
1:
2:
...
Screen.Cursor := crHourglass; // <-- !!!

heißen, weil ich die berühmte Windows-Sanduhr gemeint habe.
stefanstp Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Di 15.10.02 09:10 
Titel: Also...
Habe den Fehler auf meine Website korrigiert.

Ich finde das XP-Design eigentlich ganz schön. Werde nochmal gucken, wie ich die Schriftgröße optimiere.

Ach das mit dem Hintergrundbild ist auch ok. Man mein Programm ist doch noch nicht einmal ein MB groß, also!

Wie gesagt, werde noch eine Funktion reintun, wo man die Schriftfarbe auswählen kann.

Ja der Punkt mit dem Systray ist wirklich kompliziert...aber gute Idee! Werde mal realisieren, das man in einer Listbox die ganzen Fenster sieht!

Das ist eine gute Idee...werde das mal umsetzen, mit der Option, wenn man auf Schließen klickt, das eine Info kommt, oder aber das man das per Option einstellen kann, ob es schließt oder minimiert!

Ich finde es eigentlich sehr gut, wenn ein Programm möglichst viel kann. Ist doch doof, wenn man da 10 Exe-dateien hat. Für die Fehlersuche wäre es aber wirklich besser. Aber ich komme schon ganz gut zurecht.

Nochmals danke für den Test. :wink:

Werde mal in einem Monat eine nochmals überarbeite Version herausbringen.

Stefan
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 15.10.02 12:05 
Titel: Re: Also...
stefanstp hat folgendes geschrieben:
Ach das mit dem Hintergrundbild ist auch ok. Man mein Programm ist doch noch nicht einmal ein MB groß, also!

Ach nein? :idea:
ausblenden Quelltext
1:
upx -d alloffice2_2_beta_3.exe					

Ergebnis:
ausblenden Quelltext
1:
ALLOFF~1 EXE     1.554.944  15.10.02  11:59 alloffice2_2_beta_3.exe					

1.5 MB ... Hm ... :?

Zitat:
Ich finde es eigentlich sehr gut, wenn ein Programm möglichst viel kann. Ist doch doof, wenn man da 10 Exe-dateien hat. Für die Fehlersuche wäre es aber wirklich besser. Aber ich komme schon ganz gut zurecht.

Und ich habe immer wieder gesagt: es ist dein Programm. Eine Rechtfertigung ist also nicht notwendig. Meine Meinung ist nur, dass du irgendwann an den Punkt kommst, wo du das Programm -auf Grund der Masse an Codezeilen- nicht mehr erweitern kannst. (Weil du einfach die Übersicht verlierst.) Da kommst du dann besser weg, wenn du das Programm von Grund auf neu schreibst. Bei Modulen (das könnten übrigens auch DLLs sein) hast du das Problem nicht in dem Maß, weil sich jedes Modul nur auf seine festgelegte Aufgabe konzentriert.

Zitat:
Werde mal in einem Monat eine nochmals überarbeite Version herausbringen.

Danke für die Warnung. :twisted:
stefanstp Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Di 15.10.02 13:08 
Titel: Also...
ich wußte ganz genau das Du es entpackst und mich dann nochmal anschreibst... :D

Noch sehe ich durch, habe zum Glück einige Kommentare abgelegt. Sind zur Zeit 6000 Zeilen Code.

Werde jetzt versuchen, mal ein Frame einzubauen, wo man Links die ganzen Programmfunktionen aufrufen kann (nicht mehr per PageControl). So halt wie im Internet mit einem Frame.

Werde mich melden, wenn es soweit ist.

Noch einen schönen Tag und Danke für die schnellen Antworten!

STEFAN
stefanstp Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Mi 16.10.02 08:31 
Titel: Habe mal ein neues Design ausprobiert,bitte mal testen
So, damit All Office noch übersichtlicher wird habe ich versucht, mit einem Frame das hinzubekommen:

mitglied.lycos.de/al...office2_2_beta_4.exe


Vorher sag All Office so aus:
mitglied.lycos.de/al...office2_2_beta_3.exe

Würde mich mal interessieren, ob Ihr das neue Design auch besser findet (werde noch ein bissel an den Symbolen arbeiten, müssen noch schöner werden).

Bitte jetzt nicht meckern, das vielleicht nicht alles perfekt dargestellt wird, wenn man maximiert und wieder normalisiert. Nur das Design kritisieren!

Danke STEFAN
stefanstp Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Mi 30.10.02 09:36 
Titel: Eine überarbeitete Version mit Diashowfunktion!
Ich habe jetzt vieles in All Office verbessert. Hier meine neue Version:

domfree.de/alloffice...ce2_2_beta_8_3_1.exe


Würde mich freuen, wenn Ihr mein Programm durchtestet.

Danke STEFAN
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 30.10.02 11:25 
Zitat:
Würde mich mal interessieren, ob Ihr das neue Design auch besser findet (werde noch ein bissel an den Symbolen arbeiten, müssen noch schöner werden).

Im Vergleich zur ersten Idee mit den Tabs? Ja, es sieht besser aus.

Zitat:
Ich habe jetzt vieles in All Office verbessert.


  • Ich wusste schon in der Vorgängerversion den Grund nicht dafür, aber wenn man in eins deiner Grids klickt (Geburtstage, Termine, usw.), dann verringert sich dessen Breite plötzlich. Woran liegt das?
  • Ich frage mich auch ernsthaft, was du für eine Verzögerung eingebaut hast. Wenn ich das Programm maximiere, wieder auf die ursprüngliche Größe bringe usw., dann verschwinden für kurze Zeit sämtliche Elemente und werden neu gezeichnet. Wieso? Liegt das am Hintergrundbild? Wenn ja, dann wäre das mein Argument, keins zu benutzen. Wobei - ich habe es ohnehin ausgeschaltet. Bei mir dürfte es also eigentlich überhaupt keine Verzögerung geben.
  • Und immer noch schuldest du mir eine Antwort auf meine Frage nach dem Sinn der "800x600"-Anpassung. Ich verstehe den Sinn dabei nicht. Ich gestalte meine Programme mit einer festen Auflösung und Größe. Natürlich hat ein User mit 640x480 evtl. das Pech, dass er nicht mehr alles sehen kann, während ein User mit einer extrem hohen Auflösung vielleicht eine Lupe braucht. Nur, dein Programm ist da auch nicht besser.
    Konsequent wäre, dass es nun wirklich alle möglichen Bildschirm-Modi erkennt und seine Größe usw. entsprechend anpasst. Aber spätestens wenn ich die Auflösung mal auf 1200x1024 setze, werden auch bei dir die Schriften kleiner.
  • Dazu passt auch gut die unbegrenzte Verkleinerung deiner Form. Damit führst du die Größenanpassung an irgendwelche Screen-Auflösungen "ad absurdum", wenn ich deine Form so zusammenstauchen kann, dass man nur noch die Titelleiste sieht ...
  • Oha! Ich habe heute das Programm mal unter Win 2000 laufen lassen um die "net send"-Funktion zu testen, und da erscheinen bei diversen, aber eher unpassenden Gelegenheiten Balloon-Tooltipps auf dem TNA-Icon. Die Idee mag sonst ganz witzig sein, aber in dem Fall ist sie eher hinderlich.
    Beispiel: um in das Feld "Tage" des Geburtstagskalenders klicken zu können, muss das Programm logischerweise sichtbar sein. Der Tooltipp macht mich nun darauf aufmerksam, dass dieses Feld nicht ausgefüllt werden muss. Gleiches steht aber bereits als rot geschriebener Hinweis über dem Kalender. Der Tooltipp lenkt nur ab und zieht die Aufmerksamkeit vom Programm weg.
    Beispiel: wenn ich das Editfeld für "net send" aktiviere, dann erscheint die Hinweismeldung, dass das nur zu Testzwecken gemacht werden sollte ... bla bla ... Wie gehabt: diese Meldung erscheint in der Startleiste und nicht dort, wo man sie eigentlich erwartet - im Programm.
    Also in dem Fall würde ich sagen, diese Tipps sind unnütze Spielerei. Weißt du, wann du so etwas nutzen kannst? Wenn dein Programm z.B. nicht sichtbar ist und im Hintergrund irgendeine Aktion ausführt und den User nun z.B. von ihrem Ende informiert. Das wäre nützlich.
  • Nach wie vor ist die "net send"-Funktion zu umständlich. Dieser Schwachpunkt existiert nun schon seit der ersten Version, die du hier vorgestellt hast. Der bedauernswerte Admin oder Mitarbeiter muss die INI-Datei immer noch manuell bearbeiten, weil er keine Chance hat, seine Empfängerliste zur Laufzeit des Programms zu erweitern.
    Jedes halbwegs vernünftige "net send"-Tool, dass eine solche Liste als Feature bietet, besitzt auch eine Bearbeitungsfunktion derselben, ohne dass man dazu manuell in irgendeiner Konfig-Datei rumhantieren muss.
  • "net send", die Zweite: einfach keinen Empfänger auswählen und auf "Senden" klicken. Die erste Fehlermeldung ist noch plausibel. Aber die zweite? "Datei konnte nicht geöffnet werden?" Das selbe passiert, wenn man einen Empfänger auswählt, aber keinen Text angibt.
    Und warum soll ich meinen Namen noch angeben, damit der Empfänger weiß, wem er zu antworten hat? Erst neulich hat jemand in der Sparte "WinAPI" nach den Funktionen zum Herausfinden des Benutzer- und Computernamens gefragt ...
  • "net send", die Dritte: allerdings im 9x-Windows - in der alten TAB-Version von AllOffice fand ich gut, dass diese Funktion hier ausgeblendet war. Schön wäre, wenn das auch bei der neuen Version wieder der Fall wäre. Also, läuft das Programm unter Win9x, dann sollte der Button "Message" nicht zu sehen sein!
  • Kontextmenü -> Programme im Tray -> Zum Testen -> Anzeigen/Verstecken ... Was soll dieses "Ding" dort auf meinem Bildschirm? Im Nichts erscheint plötzlich eine Übersicht meiner Laufwerke. Unter Win 2000 verschwindet sie nicht mal.
  • Zu guter Letzt, die Dia-Show. ???


Tja ... meine ehrliche Meinung ist, dass du dich inzwischen ganz schön verrannt hast. Oder wie sagte Luckie so schön:
Zitat:
Sieht aus, als wenn du versucht hast alles was du kannst da rein zupacken.

Das Programm ist dadurch leider nicht besser geworden. Ich hätte mich an deiner Stelle bei den letzten Betas darauf konzentriert, die nun wirklich oft genug genannten Kritikpunkte ("net send"-Empfängerliste bspw.) zu überdenken und evtl. eine Lösung zu finden, die im Sinne des Anwenders ist.
Auf sinnlose Spielereien hätte ich verzichtet, denn noch mal die Frage: wozu soll ein Mitarbeiter oder eine Mitarbeiterin irgendwelche Fenster verstecken müssen? Das gehört IMHO nicht in so ein Programm rein.


So, damit verabschiede ich mich aus diesem Thread. Ich werde das Programm wohl erst wieder testen, wenn ich lese, dass es wg. seiner einfachen und benutzerfreundlichen Bedienung gelobt wird.
Im Augenblick überwiegen für mich die genannten Schwächen. Sehr schade ist, dass viele dieser Schwächen teilweise noch aus älteren Versionen stammen. Und daher glaube ich nicht, dass sich die Version 2.2 nennenswert verbessern ließe.

Wenn ich offen sein darf: ich würde mich hinsetzen und nachdenken, wo der Fokus von AllOffice liegen soll. Dann würde ich nur die relevanten Routinen in eine völlig neue Version übernehmen. Am besten -damit du die Altlasten loswirst- diese neue Version von Grund auf neu programmieren und nur im Einzelfall mal in ältere Versionen schmulen und kleinere Routinen übernehmen.

Mathias.
stefanstp Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Mi 30.10.02 12:10 
Titel: Danke für die umfangreiche Kritik!
Besten Dank für einen nochmaligen umfangreichen Test. :!:

1. Die Breite paßt sich per Klick ins Grid bei den ganzen Tabellen an den eingetragenen Text an. Deswegen! Kann es aber nochmal überarbeiten!

2. Warum eine Verzögerung beim maximieren auftritt, verwundert mich auch sehr, habe keine Ahnung woran dies liegen kann. Ich dachte ja auch erst an die Images im Hintergrund, aber darin liegt es ja nicht, wie Du ja auch mitbekommen hast. Habe natürlich keine Zeitverzögerung eingegeben (Unter Win98 ist dieser Effekt komischerweise nicht zu sehen!).

3. Das mit der Auflösung da bin ich dran, werde die Größe von Form1 in eine InI-Datei speichern lassen, dann hat sich dieses Problem erledigt.

4. Ja das stimmt, werde die Infowolke beim Geburtstagsplaner wegmachen! Ist ja sonst doppeltgemoppelt!

5. Warum die Fehlermeldung 'Datei konnte nicht geöffnet werden?' erscheint, weiß ich auch nicht, werde die mal durch Try Except unterdrücken.

6. Der Punkt Anzeigen/Verstecken im Tray ist gekoppelt mit der Funktion Programme zu verstecken unter Extras.

Im Grunde hast Du ja recht, das man sich auf die Sachen konzentrieren soll, die wirklich wichtig sind :cry: . Bloß ist es bei mir immer so, das ich oft sehr gute Ideen habe, welche ein Programm alles haben sollte :lol: . Und so stecke ich die dort immer rein. Im Grunde ist es ja auch nur ein Projekt, wo ich wi Luckie gesagt hat, alles reinstecke, was ich kann.
Damit kann ich, wenn ich andere Programm erstelle, immer darauf zurückgreifen, ohne erst lange rumzudoktern bzw. im Forum zu fragen. :idea:

Außerdem finde ich es sehr gut, wenn ich für alltägliche Aufgaben ein Programm benutzen kann, welches alle diese Funktionen bereitstellt, ohne das ich dafür etliche Programme einsetzen muß. :!:

Danke nochmals für Deinen sehr sehr umfangreichen Test. Das kann ich gar nicht wieder gut machen!

Wünsche ein schönes langes Wochenende!

STEFAN
:P
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 30.10.02 12:18 
Na ja eins muß man ihm lassen. Kritik kann er ab haben. :wink:

Laß das mit dem try-execept. Such lieber den Grund und stell ihn ab.

Eventuell hilft es schon den Funktionsumfang von AllOffice um 50% zu reduzieren und sich auf das wesentliche zu konzentrieren.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 30.10.02 13:11 
Jetzt aber -

Luckie hat folgendes geschrieben:
Na ja eins muß man ihm lassen. Kritik kann er ab haben.

Also bitte, Luckie, Beleidigtsein wäre ja wohl auch unangebracht. Die genannten Dinge treten ja tatsächlich auf und lassen sich von jedem nachvollziehen. Und dass wir -du auch- ihn bereits in älteren Versionen des Programms auf Schwachpunkte aufmerksam gemacht haben, kann man ja auch in unseren älteren Postings nachlesen.
Insofern ist es technische Kritik, die sich nicht gegen Stefan richtet. Und da ich keinen Grund habe, ihn persönlich in irgendeiner Form anzugreifen, besteht für ihn auch kein Grund, beleidigt zu sein.

stefanstp hat folgendes geschrieben:
Das mit der Auflösung da bin ich dran, werde die Größe von Form1 in eine InI-Datei speichern lassen, dann hat sich dieses Problem erledigt.

Das würde ich nicht machen. Frag mal Tino! :wink: Er hat das in einem seiner Programme auch versucht. Wenn du das Programm z.B. maximiert (= im Vollbild) beendet hast, speicherte es die Position und Größe und startete beim nächsten Mal im Pseudo-maximierten Modus.
Dadurch kam ich aber nicht mehr an meine Startleiste ran, weil ich die in den Hintergrund gesetzt habe. Ich muss also erst mit der Maus an den Bildschirmrand gehen, damit ich sie sehe. Dem stand aber Tinos Programm entgegen, dass erst manuell maximiert werden musste ...
Ich dachte eher daran, dass du deinem Programm eine feste Größe gibst, die ja z.B. auf 800x600 noch komplett eingesehen werden kann. An dieser Größe richtest du deine Elemente aus, und fertig! Dadurch wird dein Programm zwar optisch mit jeder höheren Auflösung kleiner, aber dafür sparst du dir den ganzen Ausrichtungskram.

Zitat:
Die Breite paßt sich per Klick ins Grid bei den ganzen Tabellen an den eingetragenen Text an

Aha! Bei mir stand kein Text drin. Ich würde also die Breitenanpassung von der Existenz eines Eintrags abhängig machen oder weglassen.

Zitat:
Warum die Fehlermeldung 'Datei konnte nicht geöffnet werden?' erscheint, weiß ich auch nicht

Ich tippe -als Ursache- auf das selbe Problem wie damals bei deinem Hintergrundbild. Mangelnde Prüfung! Will sagen: damals hast du den Auswahldialog für das Hintergrundbild aufgerufen aber nicht geprüft, ob der Anwender mit "Öffnen" oder mit "Abbrechen" reagiert hat. Dadurch verschwand bei der Auswahl von "Abbrechen" dein Hintergrundbild, was ich persönlich als recht nützlich ansah ... :twisted:
Hier wird´s genau so sein. Du reagierst zwar auf die Tatsache, dass ein Empfänger bzw. ein Nachrichtentext fehlen, aber du versuchst -ungeachtet dessen- auf irgendeine Datei zuzugreifen. Ich würde einfach mal ins "OnClick" des Senden-Buttons gucken, da steckt bestimmt irgendwo ein "loadfromfile" oder ähnliches, ohne vorherige Prüfung ob die Datei überhaupt existiert.

Zitat:
Der Punkt Anzeigen/Verstecken im Tray ist gekoppelt mit der Funktion Programme zu verstecken unter Extras.

Ja, schon klar. Aber diese Laufwerksliste erscheint ja auch, wenn dein Programm minimiert ist. Da hängt plötzlich auf dem Desktop diese Shell-Combobox rum. Das habe ich bemängelt.

Zitat:
Im Grunde ist es ja auch nur ein Projekt, wo ich wi Luckie gesagt hat, alles reinstecke, was ich kann. Damit kann ich, wenn ich andere Programm erstelle, immer darauf zurückgreifen, ohne erst lange rumzudoktern bzw. im Forum zu fragen.

Ich verstehe zwar den Grund, halte diesen Weg aber für falsch. Schließlich ist AllOffice ja auch ein eigenständiges Programm, das produktiv genutzt wird bzw. genutzt werden soll. Im Prinzip "missbrauchst" du es als Testcontainer für alle möglichen Funktionen, die du so findest und ausprobieren möchtest. Und der Anwender wird durch die Fülle an Funktionen, die er -strenggenommen!- eigentlich nicht braucht, verwirrt bzw. abgeschreckt.
Ich habe für solche Zwecke eine Art Müll-Ordner, in dem ich ständig irgendwelche neuen Projekte anlege und die Funktionen ausprobiere, die ich so finde. Dadurch muss ich auch nicht noch mal fragen oder gucken, wo ich die Funktion habe und wie sie funktioniert. Aber diese Dummy-Programme erreichen die Öffentlichkeit eben auch nicht.

Zitat:
Das kann ich gar nicht wieder gut machen!

Das musst du auch nicht. Meine Kritik ist gratis! :wink:

Zitat:
Wünsche ein schönes langes Wochenende!

Ebenfalls.