Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Vollautomatische Spaltenbreitenanpassung in Fenstern (https://www.delphipraxis.net/112073-vollautomatische-spaltenbreitenanpassung-fenstern.html)

Delphi-Laie 14. Apr 2008 20:13


Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Delphifreunde!

Nachdem ich mein Programm bereits dem Delphi-forum.de-Forum (mit bisher sehr bescheiden zu nennender Resonanz) vorstellte, soll auch dieses Forum das Ergebnis meines Fleißes der letzten Wochen, fast schon Monate kennenlernen.

Wen sowohl die in ihrer Breite nie stimmenden Spalten in den Dateianzeigelisten (Detailansicht) als auch die halbherzigen, halbautomatischen Lösungen, diese Breiten zu korrigieren (am besten in Echtzeit jedem Bedarf anzupassen), schon immer so gestört haben wie mich, der möge in meinem kleinen Programm den weltweit anscheinend allerersten Versuch kennenlernen, zur Lösung dieser Problematik eine vollautomatische Lösung zu schaffen.

Sämtliche Details zu meinem - sehr wahrscheinlich immer noch nicht ganz ausgereiften - Programm stehen in den Informationen dazu - aufrufbar nach dem Programmstart.

Für Anregungen, Hinweise, Kritiken, Verbesserungsvorschläge usw. usf. jeglicher Art bin ich offen und dankbar.

Viele Grüße

Delphi-Laie

Edit: Ein subtiler Fehler (der aus unterschiedlichem Verhalten einer API-Funktion in verschiedenen Windows herrührt) ließ das Programm unter ME (generell 9.x?) nicht mehr lauffähig sein. Korrigiert, deshalb jetzt Beta 4

Edit: Inzwischen Beta 7. Letzte Korrekturen:
- Beep bei Enter-Tastendruck (TEdit) abgeschaltet
- Bezeichnung des Registryeintrages verbessert (jetzt vollständiger Name des Programmes anstatt 4 Buchstaben)
- die anscheinend nicht nötige Rekursion bei EnumChildWindows, um skalierbare Fensterelemente gezielt zu suchen, entfernt. Funktioniert trotzdem. SysListView32 und TListView sind anscheinend direkt in die Hauptfenster eingebettet, sodaß die Rekursion überflüssig ist.

Für weitergehende Interessen steht mein Quelltext in der Rubrik "Open Source" zur Verfügung.

Edit: Wiederum böse Fehler im Exe- und im DLL-Projekt gefunden (der eine existierte vorab nicht, keine Ahnung, wie der sich plötzlich einschlich), außerdem die Fensterstatusumschaltung und den Registryzugriff verbessert. Damit jetzt Beta 11.

Edit 2: Inzwischen bis zur Beta 13 vorgedrungen. In der Beta 12 u.a. einen kleinen Fehler beim schreibenden Registryzugriff (.free vergessen) behoben, in der Beta 13 etliche kleine Detailverbesserungen vorgenommen.

Edit 3: Wieder erhebliche Veränderungen, deshalb inzwischen die (Beta-)Versionsnummer um 2 erhöht. Die beiden wichtigsten, auch optisch markantesten Veränderungen (neben vielen weiteren):
- Ermittlung der hinter den Fenstern stehenden Dateinamen nicht nur über Prozeßschnappschup (Routine geht auf Luckies WinInfo zurück), sondern alternativ auch über einen Modulschnappschuß möglich.
- Neben der Inklusiv- kann alternativ auch eine Exklusiv-Dateiliste erstellt und benutzt werden, die aber nicht so zuverlässig wie ersteres arbeitet und deshalb mehr Experimentalcharakter trägt.

Edit4: Nochmals zwei Versionsnummern höher, nunmehr kann als vierte Auslösemethode auch ein Tastendruck (eine der F-Tasten) den Hotkey und damit die Skalierung auslösen, was jedoch nur halbautomatisch ist (ähnlich AutoHotKey), und die Dateilistentypen können separat zu-/abgeschaltet werden. Zudem habe ich noch tüchtig am Code gefeilt und dabei eine ganze Reihe Fehler ausgemerzt.

Edit5: Beta 18 zusätzlich mit optionalem Löschschutz für die Konfigurationsdateien, indem diese offengehalten werden, weil manche Systemreinigungsprogramme auch das Temp-Verzeichnis leeren, kleinen Fehlerkorrekturen und aufgeräumterem Quelltext.

Edit6: Dateinamenseingabeprozeduren verbessert.

Edit 7: Unterschiedliche Schriftgröße(n) der (beiden) Editfelder vereinheitlicht.

Edit 8: Fehler in der Timerprozedur entfernt.

Edit 9: Funktionen zur Ermittlung des Exe-Dateinamens etwas vereinfacht.

omata 14. Apr 2008 20:19

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Also wenn ich dein Programm als TrayIcon weglege und es mir wieder ansehen möchte ist dies leider nicht möglich. Es erscheint einfach nichts mehr. schade.

XP, SP2.

Edit: ok scheint nur beim ersten Start zu sein. Bei einem erneuten Start geht es.

Gruss
Thorsten

Delphi-Laie 14. Apr 2008 20:38

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Zitat:

Zitat von omata
Also wenn ich dein Programm als TrayIcon weglege und es mir wieder ansehen möchte ist dies leider nicht möglich. Es erscheint einfach nichts mehr. schade.

XP, SP2.

Edit: ok scheint nur beim ersten Start zu sein. Bei einem erneuten Start geht es.

Gruss
Thorsten

OK, danke für die erste Reaktion!

Meinst Du, daß die Programmoberfläche nicht wieder erscheint? Das habe ich in seltenen Fällen auch schon beobachtet - Ursache natürlich unbekannt. Dieses Erscheinen und Verschwinden habe ich voll in die Hände bzw. Funktionalität des dänischen Programmierers Troels Jakobsen der - hervorragenden, meine ich - Komponente "CoolTrayIcon" gelegt, die ich dafür verwendet habe. Damit will ich die Verantwortung oder Schuld nicht abwälzen, sondern einfach nur erklären, daß ich an solchen Subtilitäten (zumindest derzeit) nichts herumprogrammieren werde, weil ich es einfach nicht kann (ich bin gerade heute erst an seinem "Simple Timer" gescheitert, und der ist vergleichsweise wirklich noch simpel, trivial). Das übersteigt einfach meine Delphikenntnisse (mein Pseudonym ist wohl leider noch eine ganze Weile mein Motto, leider).

hoika 14. Apr 2008 21:07

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Hallo,

ich hätte die Infos zum Programm bitte aber vor der Installation,

hooks.dll werde ich nicht starten lassen,
ohne zu wissen, was das Programm tut.


Heiko

toms 14. Apr 2008 21:33

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Hallo

Ich konnte die Funktionalität des Programms leider noch nicht testen, denn ich
bin mit der Bedienung der GUI etwas überfordert. Gibt's irgendwo eine Hilfe Datei?

Die Controls sind etwas etwas unübersichtlich angeordnet.

Delphi-Laie 14. Apr 2008 22:14

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Zitat:

Zitat von toms
Hallo

Ich konnte die Funktionalität des Programms leider noch nicht testen, denn ich
bin mit der Bedienung der GUI etwas überfordert. Gibt's irgendwo eine Hilfe Datei?

Die Controls sind etwas etwas unübersichtlich angeordnet.

Diese Kritiken (danke dafür!) habe ich umgesetzt und mithin eine externe Beschreibungsdatei mit in das Archiv eingefügt (finde ich auch besser). Außerdem war ein Fehler enthalten, der meine Aussage, daß es unter ME auch läuft, falsch werden ließ. Jetzt müßte es aber unter ME (und, so hoffe ich, auch unter 9.x?!) wieder laufen. Allzu glücklich wird man unter 9.x/ME mit der Verwendung der Hooks allerdings vermutlich nicht werden: Zu instabil, zu fragil, stürzt nach meiner Beobachtung zu schnell ab. Selbst unter den "neuen Technologien" kann das passieren, aber dort läßt sich der Explorer ohne Reboot wieder starten. Dabei habe ich vermutlich nichts allzu falsches gemacht (Detailfehler vielleicht schon), es liegt m.E. einfach an der systemnahen Programmierung an sich, die Microsoft zwar geplant und als für Programmierer anwendbare Option hineinprogrammiert und auch im MSDN offengelegt hat, das aber wohl doch nicht ganz so ernst meinte, denn es wird vor der Verwendung der Hooks "ein wenig" gewarnt, wenn man sich die Seiten durchliest. Insofern kann ich leider für nichts garantieren und diesbezüglich nur dezent warnen. Ich mache mir diesbezüglich auch nichts vor: Wem das Programm sein Windows nur einmal in den Abgrund reißt, der flucht, tituliert es als Mist und wird es vermutlich nie wieder starten (höchstens vielleicht noch dem Timer eine Chance geben, damit läuft es nach meiner Beobachtung sehr stabil, aber diese Ereignisunabhängigkeit ist natürlich ziemlich "unlässig"). Mich hat es aber dennoch gereizt, weltweit erstmalig eine (vollautomatische!) Lösung dieser Lästigkeit zu versuchen und auch vorzustellen, da Mikroweich es bisher ja nicht nötig hatte, dagegen ernsthaft etwas zu unternehmen).

Controls zu unübersichtlich? Das sehe ich auch so, ich habe sie "halbwegs so hingebebberlt", damit eine gewisse Anordnungssystematik vorhanden ist, gleichzeitig aber das Formular nicht zu groß wird. Wenn man sich entschließt, das Programm automatisch starten zu lassen, dann läuft es im Hintergrund, und dann wird einem auch die Oberfläche nicht mehr zu Gesicht kommen.

Delphi-Laie 15. Apr 2008 21:23

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Zitat:

Zitat von omata
Also wenn ich dein Programm als TrayIcon weglege und es mir wieder ansehen möchte ist dies leider nicht möglich. Es erscheint einfach nichts mehr. schade.

Edit: ok scheint nur beim ersten Start zu sein. Bei einem erneuten Start geht es.

Gruss
Thorsten

Hallo omata/Thorsten, vielen Dank noch einmal für den Hinweis! Du warst es, der mir die Augen öffnete, wann dieser Fehler überhaupt erscheint und sich damit systematisch reproduzieren läßt. Es war natürlich ein Fehler meinerseits, und ebenso natürlich war/ist Troels Jakobsen daran unschuldig. Ich habe den Fehler sogar gefunden und - hoffentlich - korrigiert. Jedenfalls erscheint das Fenster jetzt auch beim ersten Wiederaufpoppen nach der Konfiguration. Warum habe ich mich anfänglich so unentschlossen gemmacht/gezeigt und unnötig klein gemacht? :gruebel:

Neben diesem habe ich auch ein paar weitere kleine Fehler gefunden. diese korrigiert und das ganze als nunmehr Beta 5 hochgeladen.

Gruß

Delphi-Laie

RavenIV 16. Apr 2008 08:04

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Klingt ja alles irgendwie wirr.

Ich werde mir hier kein Programm runtersaugen (und schon garnicht installieren und starten), von dem ich nicht mindestens eine Beschreibung und einen Screenshot hier gefunden habe.

Delphi-Laie 16. Apr 2008 15:23

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von RavenIV
Klingt ja alles irgendwie wirr.

Ich werde mir hier kein Programm runtersaugen (und schon garnicht installieren und starten), von dem ich nicht mindestens eine Beschreibung und einen Screenshot hier gefunden habe.

Wirr?

Beschreibung und Screenshot? Wenn es weiter nichts ist.....

Nun, eine m.E. recht ausführliche Beschreibung ist im Archiv enthalten, und der Screenshot ist hier angefügt. Halte ich allerdings nicht für sonderlich aussagekräftig: Das ist kein Programm, das wirklich bedient wird, sondern eigentlich (nur) im Hintergrund agiert (deshalb Trayicon). Das Formular dient "nur" der Konfiguration, dem Einstellen der Funktion(en) bzw. Funktionalität(en).

Im übrigen bin ich nicht ganz so ängstlich, was das Ausprobieren der Programme anderer anbetrifft. Ich gehe vom guten Willen der hier Teilnehmenden aus (auch ich habe mein Programm nach bestem Wissen und Gewissen erstellt) und halte es deshalb für recht unwahrscheinlich, sich hier Malware einzufangen (ist auf diesem Wege bei mir auch noch nie passiert). Vielleicht werden die Attachments sogar von der Websoftware geprüft?! Wenn man diesbezüglich ängstlich ist, dann muß man auf solche Test eben verzichten. Ob hier jemand Bösartigkeiten auf diesem Wege zu verbreiten versucht (oder nicht), wird man auch zuallerletzt am Sreenshot und an den Beschreibungen erkennen!

Viele Grüße

Delphi-Laie

Postscriptum: Das Bemerken der Fehler im eigenen Programm nimmt natürlich kein Ende, aber sie werden zum Glück immer kleiner. Eigentlich wäre schon wieder eine neue Beta (also Nr. 6) möglich.

RavenIV 16. Apr 2008 15:27

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Zitat:

Zitat von Delphi-Laie
Im übrigen bin ich nicht ganz so ängstlich, was das Ausprobieren der Programme anderer anbetrifft. Ich gehe vom guten Willen der hier Partizipierenden aus (auch ich habe mein Programm nach bestem Wissen und Gewissen erstellt) und halte es deshalb für recht unwahrscheinlich, sich hier Malware einzufangen. Vielleicht werden die Attachments sogar von der Websoftware geprüft?! Wenn man diesbezüglich ängstlich ist, dann muß man auf solche Test eben verzichten. Ob hier jemand Bösartigkeiten auf diesem Wege zu verbreiten versucht (oder nicht), wird man auch zuallerletzt am Sreenshot und an den Beschreibungen erkennen!

Mir geht es nicht um Malware.
Es geht mir einfach darum, dass hier viele Programmier-Anfänger ihre Programme vorstellen.
Bei Anfängern kann es schon mal vorkommen, dass aus irgendeinem Grund ein falscher Ordner gelöscht wird.
Das hatte ich alles schon mal.
Das Programm wollte eigentlich in %USER% etwas löschen, es wurde aber wegen einem Programmierfehler in %ALL USERS% gelöscht (oder so).

Und warum hast Du den Screenshot als Bitmap in einem rar-Archiv angehängt?
Hast Du kein Programm, um das bmp in jpg umzuwandeln?

Delphi-Laie 16. Apr 2008 15:31

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Zitat:

Mir geht es nicht um Malware.
Es geht mir einfach darum, dass hier viele Programmier-Anfänger ihre Programme vorstellen.
Bei Anfängern kann es schon mal vorkommen, dass aus irgendeinem Grund ein falscher Ordner gelöscht wird.
Das hatte ich alles schon mal.
Das Programm wollte eigentlich in %USER% etwas löschen, es wurde aber wegen einem Programmierfehler in %ALL USERS% gelöscht (oder so).

Und warum hast Du den Screenshot als Bitmap in einem rar-Archiv angehängt?
Hast Du kein Programm, um das bmp in jpg umzuwandeln?
1. Die wichtigen Verzeichnisse sollte Windows doch eigentlich schützen?! Na ja, vielleicht nicht gut genug...
2. Natürlich hätte ich umwandeln können, aber ist das nun auch noch ein Problem?

toms 16. Apr 2008 15:42

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Wie wäre es, das Programm Open-Source zu machen?

Delphi-Laie 17. Apr 2008 13:03

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Zitat:

Zitat von toms
Wie wäre es, das Programm Open-Source zu machen?

Könnte ich Kürze passieren. Allmählich freue ich mich mit diesem Gedanken zunehmend an, bald werde ich "Gern!" antworten und es tun. Ich frage mich allerdings, wer Lust hat, in meinen Quelltexten "herumzurödeln". Du etwa/vielleicht? Falls ja, würde es mich freuen, und dann ist meine Hemmschwelle noch niedriger, diese herauszurücken. Allzuviel "knoff hoff" eigener Colour steckt dort, wie sollte es bei einem Delphi-Laien auch anders sein, nämlich nicht drin, es war eher eine Fleíßarbeit. Das Grundgerüst der DLL sind die Hook-Prozeduren von Assarbad, dieses Grundgerüst desweiteren garniert mit einer Prozedur von Luckie. Beide Vollprofis sind in diesem Kreise sicher bestens bekannt. Natürlich nicht zu vergessen die exzellente CoolTrayIcon-Komponente, um ein Hintergrundprogramm zurechtzubasteln. Also viel zusammenkopiert, worauf ich gar keine Urheberechte erheben kann, darf und möchte.

Allerdings werden die grundsätzlichen Probleme vielleicht doch nicht (ganz?) aus der Welt zu schaffen sein, damit meine ich vor allem:

1. Die Steuerung der Hook-Prozeduren über Dateien (in DLLs gibt es keine globalen Variablen, vor allem oder zumindest ausgerechnet in solchen, in denen Hook-Prozeduren aufgerufen werden, das erfuhr ich im Delphi.de-Forum: Glob.Variablenzugr.i.zeigerübergebenen/hookinitiierten Funk.. Es lassen sich zwar über den Funktionsaufruf der Hookinitialisierungsfunktionen Variablen in die DLL einschleusen, diese stehen dort allerdings nicht global zur Verfügung. Allerdings müßte ich diese Steuerung über Dateien nunmehr soweit zurechtgefummelt haben, daß es stabil ist.
2. Die fehlende Langzeitstabilität des Explorers gegenüber diesen Hooks und die manchmal doch recht merkwürdigen Effekte (Probleme!), die das Aktivieren der Hooks mit sich bringt. Ich habe es sogar schon erlebt, daß ein Hook, obwohl ich ihn gar nicht ausgeschaltet ("entladen") hatte, plötzlich "weg" war, zumindest zeigte mein Programm keine Reaktion mehr. Ein reines Timergesteuertes Programm ist jedoch viel zu pille-palle, als daß es wert wäre, sich damit weiter zu beschäftigen.

Ich denke, eine weltweit akzeptable vollautomatische Lösung dieser Windows-Lästigkeit, von der auch ich partizipieren könnte, steht über der eitlen Kleinheit, den Quelltext, der ziemlich wenig eigenes echtes "Know how" beinhaltet, eines Programmes, das ohnehin nicht verkaufbar ist, zurückzuhalten.

Immerhin bin ich auf einen weiteren Windows-Fehler (Vertauschung bei Ereignisbezeichnungen im CBT-Hook) gestoßen, den ich eigentlich einmal Mikroweich mitteilen sollte, allerdings weiß ich nicht, über welchen Datenkanal (piracy@microsoft.com?!), und ob man dort für solche Kinkerlitzchen offen ist, halte ich für fraglich, zumal viel gravierendere Windows-Probleme seit einigen Versionen dort mit sich herumgeschleppt werden, ohne korrigiert zu werden.

So, erst mal wieder genug getextet....

hoika 17. Apr 2008 19:58

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Hallo,

< 2. Die fehlende Langzeitstabilität des Explorer >
< Immerhin bin ich auf einen weiteren Windows-Fehler
(Vertauschung bei Ereignisbezeichnungen im CBT-Hook) >

Also, jetzt muss ich mal wieder meinen Senf zugeben.
Du bezeichnest dich als Delphi-Laien,
kopierst Sachen zusammen, ohne (geraten) richtig Ahnung von der Sache zu haben.
Hook-Programmierung ist eine komplizierte Sache.

Mache das Programm Opensource und lass uns mal deine eigenen Fehler suchen,
bevor du den Fehler bei Windows suchst (OK, auch dort gibt es Fehler).


Heiko

gmc616 17. Apr 2008 23:51

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Was soll das Programm tun? Meine detailierten Listenansichten im z.B. Explorer automatisch anpassen?
Was muß ich dazu einstellen?
Bei mir passiert nämlich gar nix, obwohl ich hier schon ne halbe Stunde am rumprobieren bin, denn die Idee finde ich eigentlich nicht schlecht.

Woran erkenne ich, dass das Programm arbeitet?

Einen kleinen Bug in der Beta 5 hab ich beim verzweifelten Ausprobieren auch noch gefunden.
Der Öffnen-Dialog hinter dem Button 'Hinzufügen' reagiert falsch.
1. Lassen sich auch z.B. RFT und andere Nicht-EXE-Dateien in die Liste mit aufnehmen und
2. Bekomme ich ne Meldung 'Datei hier schon registriert' beim klicken auf 'Abbrechen'.

:hi:

Edit: Ach ja. WinXp Sp2

Delphi-Laie 18. Apr 2008 09:46

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Zitat:

Zitat von hoika
Hallo,

< 2. Die fehlende Langzeitstabilität des Explorer >
< Immerhin bin ich auf einen weiteren Windows-Fehler
(Vertauschung bei Ereignisbezeichnungen im CBT-Hook) >

Also, jetzt muss ich mal wieder meinen Senf zugeben.
Du bezeichnest dich als Delphi-Laien,
kopierst Sachen zusammen, ohne (geraten) richtig Ahnung von der Sache zu haben.
Hook-Programmierung ist eine komplizierte Sache.

Mache das Programm Opensource und lass uns mal deine eigenen Fehler suchen,
bevor du den Fehler bei Windows suchst (OK, auch dort gibt es Fehler).


Heiko

OK, vielen Dank, mit diesem Interesse hatte ich nicht gerechnet.

Mein Programm ist nunmehr Open Source:Vollautomatische Spaltenbreitenanpassung in Fenstern

Wer immer sich damit beschäftigen möchte, sei herzlich eingeladen. Für das Bemühen danke ich schon mal im voraus!

Nein, natürlich habe ich "nicht richtig Ahnung". Das ist bei diesen modernen, hochkomplexen Programmierwerkzeugen auch nur noch schwerlich möglich. Ich vermute, daß solche Leute wie Assarbad, Koshigaya, Luckie, Mathias Simmack u.ä. sich entweder beruflich damit beschäftigen und/oder mit Turbo-Pascal, spätestens mit den ersten Delphi-Versionen damit praktisch über Jahrzehnte hineingewachsen sind. Die allermeisten sind spätere Einsteiger oder programmieren nur sporadisch (oder erstmalig). Das kann man doch niemandem übelnehmen (tut vermutlich auch niemand). Außerdem muß man sich doch auch auf unbekanntes Terrain wagen, sonst lernt man es doch nicht kennen und mithin nichts dazu.

Viele Grüße

Delphi-Laie

Postscriptum: Beim monierten Windowsfehler bin ich mir sicher: Ich kann doch noch MoveSize und MinMax übersetzen. Auch die Zuordnung meiner Freischaltoptionen für diese Ereignisse hatte ich wiederholt kontrolliert. Falls ich recht behalte, dann wäre es ja "nur" ein Fehler vertauschter Bezeichnungen.

Delphi-Laie 18. Apr 2008 10:00

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Zitat:

Zitat von gmc616
Was soll das Programm tun? Meine detailierten Listenansichten im z.B. Explorer automatisch anpassen?
Was muß ich dazu einstellen?
Bei mir passiert nämlich gar nix, obwohl ich hier schon ne halbe Stunde am rumprobieren bin, denn die Idee finde ich eigentlich nicht schlecht.

Woran erkenne ich, dass das Programm arbeitet?

Einen kleinen Bug in der Beta 5 hab ich beim verzweifelten Ausprobieren auch noch gefunden.
Der Öffnen-Dialog hinter dem Button 'Hinzufügen' reagiert falsch.
1. Lassen sich auch z.B. RFT und andere Nicht-EXE-Dateien in die Liste mit aufnehmen und
2. Bekomme ich ne Meldung 'Datei hier schon registriert' beim klicken auf 'Abbrechen'.

:hi:

Edit: Ach ja. WinXp Sp2

Vielen Dank!

Richtig, die Spaltenbreiten in den Detailansichten immer vollautomatisch richtig anpassen (was bis heute kein Windows beherrscht), so daß nichts abgeschnitten und nichts verschenkt wird.

Einstellen? Die Auslösemethoden und die betreffenden Programme, in deren Fenstern das geschehen soll (weil manche Programme das verwendete Hotkey nicht vertragen).

Das Programm ist aktiv, wenn das TrayIcon animiert ist. Es kann aber nur dann wirklich agieren, wenn eine Auslösemethode (1-CBT-Hook, 2-Shellhook, 3-Timer) aktiviert wurde, und das auch nur bei den Programmen, die eingetragen ("registriert") wurden.

Zu den Fehlern:

Zu 1. Das wundert mich. Ich habe das Einladen von Nicht-Exe-Dateien definitiv abgeblockt, und bei mir kommt beim Versuch dessen statt des Einlesens das Meldungfenster ("Keine .exe-Datei"). Also, leider nicht nachvollziehbar.

zu 2. Beim Klick auf Abbrechen im Datei-Öffnen-Dialog? Passiert bei mir auch nicht. "Datei hier schon registriert" habe ich für den Versuch programmiert, eine Programmdatei wiederholt für die Einschlußliste einzulesen (was im Hinblick auf die Programmfunktionalität zwar grundsätzlich möglich, aber völlig überflüssig wäre). Kann eigentlich erst reagieren bzw. erscheinen, wenn überhaupt eine Datei von dieser Routine zurückgeliefert wurde.

Einen Fehler ganz anderer Art habe ich jedoch gefunden, und zwar, wenn man das Einlesen der Datei vom Edit-Feld aus mit der Enter-Taste bewirkt (das wollte ich optional auch anbieten): Dann "beept" es immer. Ich habe bisher nur herausgefunden, daß es beim Aufruf der CoolTrayIcon-Unit nach Beendigung der Routine, die den Druck auf die Enter-Taste feststellt, passiert. Ich werde gleich mal versuchen, den Tastaturpuffer zu leeren.

Am besten beantworten sich diese Fragen aber dadurch, daß ich mein Projekt nunmehr quellcodegeöffnet habe (in der Rubrik "Open Source").

Viele nette Grüße

Delphi-Laie

hoika 18. Apr 2008 10:15

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Hallo

> Einen Fehler ganz anderer Art habe ich jedoch gefunden, und zwar, wenn man das Einlesen der Datei vom
> Edit-Feld aus mit der Enter-Taste bewirkt (das wollte ich optional auch anbieten): Dann beept es
> immer.

Das ist immer so.
Abhilfe.

Delphi-Quellcode:
procedure EditOnKeyPress ...
begin
  if Key=#13 then Key:= #0;
end;

Heiko

Delphi-Laie 18. Apr 2008 10:16

Re: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Danke, Heiko! Das funktioniert auch bei mir wunderbar...

ibo1a 23. Nov 2017 07:18

AW: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Hallo! Nach so vielen Jahren ist das Problem scheinbar noch immer vorhanden und ich habe ihr kleines Tool unter Windows 10 erfolgreich getestet. Da ich gerade mal einen PC anschalten kann ohne mir dabei einen Finger zu brechen wollte ich fragen ob es sin macht ihr Tool automatisch mit Windows zu starten und ob mir da jemand helfen kann?

Vielen Danke für das kleine, nützliche Programm!

VG Ralf Müller

Delphi-Laie 23. Nov 2017 14:38

AW: Vollautomatische Spaltenbreitenanpassung in Fenstern
 
Zufällig sehe ich, daß hier mal jemand etwas schreibt, denn per e-Mail wurde ich nicht benachrichtigt.

Das Problem scheint Windows immer noch nicht gelöst zu haben, obwohl ich es mal Mark Russinovich, der ja für seine vielen netten Helferleins für Windows bekannt ist, schilderte. Mehr als ein Dank kam nicht als Reaktion.

Allerdings benutze ich für bzw. seit Windows>XP nur 64-Bit-Versionen. Auf diesen funktioniert dieses Programm mit globalem Hook nicht. Zugegeben, ich versuchte es sowohl mit Lazarus als auch mit Delphi für 64 flotzumachen, aber das gelang mir nicht, sodaß ich es irgendwann aufgab.

Diese 32-Bit-Version habe ich nicht mehr nennenswert weiterentwickelt, sodaß sie mit "Beta 18" stehenblieb. Es funktionierte nie so ganz zu meiner Zufriedenheit. Vielleicht liegt es daran, daß es mein erstes größeres Projekt war - für das ich mit DLL-/Hookprogrammierung ziemlich mutig, ja kühn war - vielleicht aber auch daran, daß sich so etwas nicht besser hinbekommen läßt. Am unangenehmsten habe ich in Erinnerung, daß das Programm irrigerweise die Tastenkombination zum Acrobat-Reader schickt (und der dann mit immenser Verkleinerung der Darstellung reagiert), obwohl das ja eigentlich nicht passieren dürfte.

Ich werde also auch nichts mehr daran herumprogrammieren.

Ein optionaler Autostart ist aber enthalten, er müßte, sofern aktiviert, über die Registrierung erfolgen (soweit ich mich entsinne). Vielleicht wurde der registrierungsinterne Pfad in den neueren Windows verändert? Weiß ich nicht. Könnte man sonst vielleicht "manuell" über Autostart im Startmenü starten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz