Autor |
Beitrag |
toms
      
Beiträge: 1099
Erhaltene Danke: 2
|
Verfasst: So 16.04.06 08:28
toms hat folgendes geschrieben: | Hallo netspy
Dein LingoDict gefaellt mir. Einfach gehalten und praktisch.
Was mir noch aufgefallen ist:
1) Wenn man das Programm maximiert, fuellt es den ganzen Bildschirm. (Ist nicht standard Windows Verhalten)
Die Taskleiste sollte aber nicht ueberdeckt werden.
2) Ein Doppelklick auf die Titelleiste sollte das Program maximieren. (Ist standard Windows Verhalten)
3) Ein Doppelklick auf das Icon in der Titelleiste sollte das Program schliessen. (Ist standard Windows Verhalten)
4) Ein Klick auf das Icon in der Titelleiste sollte das Popupmenu anzeigen. (Ist standard Windows Verhalten)
5) Bei den Toolbuttons fehlen z.T Hints. |
Schade, dass du im Programm nichts von dem geaendert hast und nicht mal einen Kommentar zu meinem Feedback gegeben hast.
|
|
MrKnogge
      
Beiträge: 76
Win XP, Win 7
Delphi 7 Prof, Delphi 2005 PE, C# (VS 2008)
|
Verfasst: So 16.04.06 11:05
Bei den Menüpunkten "Sprache" und "Aussehen" könnte man den aktuellen Eintrag per Radiobutton kennzeichnen.
_________________ MfG MrKnogge
|
|
netspy 
      
Beiträge: 75
|
Verfasst: So 16.04.06 11:28
toms hat folgendes geschrieben: | Schade, dass du im Programm nichts von dem geaendert hast und nicht mal einen Kommentar zu meinem Feedback gegeben hast. |
Danke für das Feedback aber ich hatte leider in der Zeit gerade dringendere Probleme und hab dein Posting deshalb vergessen.
Zitat: | 1) Wenn man das Programm maximiert, fuellt es den ganzen Bildschirm. (Ist nicht standard Windows Verhalten)
Die Taskleiste sollte aber nicht ueberdeckt werden. |
Hmm, ich sende dem Fenster halt einfach nur ein SC_MAXIMIZE.
Zitat: | 2) Ein Doppelklick auf die Titelleiste sollte das Program maximieren. (Ist standard Windows Verhalten) |
Ja, werde ich noch einbauen. Allerdings ist das sowieso keine Anwendung, die man im Normalfall maximiert und deshalb IMO auch eher unwichtig.
Zitat: | 3) Ein Doppelklick auf das Icon in der Titelleiste sollte das Program schliessen. (Ist standard Windows Verhalten) |
Ja, stimmt auch. Die meisten Leute nutzen aber wohl sowieso das rechte [x].
Zitat: | 4) Ein Klick auf das Icon in der Titelleiste sollte das Popupmenu anzeigen. (Ist standard Windows Verhalten) |
Da hatte ich schon mal dran gesessen, es dann aber wieder sein lassen, da es gar nicht so einfach war, dieses Systemmenü "hinzuzaubern". Werde ich mir noch mal aber vornehmen.
Zitat: | 5) Bei den Toolbuttons fehlen z.T Hints. |
Beim Button für "Immer im Vordergrund" ja, die anderen brauchen IMO keinen, da sie selbsterklärend oder mit Beschriftung sind.
MrKnogge hat folgendes geschrieben: | Bei den Menüpunkten "Sprache" und "Aussehen" könnte man den aktuellen Eintrag per Radiobutton kennzeichnen. |
Ja, aber das Disablen ist doch auch ok. Bei den Skins muss ich das aber noch mit einbauen.
Mario
_________________ So Long, and Thanks for All the Fish.
|
|
MrKnogge
      
Beiträge: 76
Win XP, Win 7
Delphi 7 Prof, Delphi 2005 PE, C# (VS 2008)
|
Verfasst: So 16.04.06 11:35
Ja, das Disablen ist vollkommen in Ordnung, habe es bei Sprache nur übersehen.
_________________ MfG MrKnogge
|
|
toms
      
Beiträge: 1099
Erhaltene Danke: 2
|
Verfasst: So 16.04.06 17:21
Zitat: |
Hmm, ich sende dem Fenster halt einfach nur ein SC_MAXIMIZE.
|
Wenn ich in einem Testprojekt SendMessage(handle, WM_SYSCOMMAND, SC_MAXIMIZE, 0); ausfuehre,
wird die Form maximiert aber ueberdeckt nicht den ganzen Screen.
(Einfacher geht's auch mit WindowState := wsMaximized;
Zitat: |
Da hatte ich schon mal dran gesessen, es dann aber wieder sein lassen, da es gar nicht so einfach war, dieses Systemmenü "hinzuzaubern". Werde ich mir noch mal aber vornehmen.
|
Koennte so aussehen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Button1Click(Sender: TObject); var hMenuHandle: hMENU; hMenuItem: DWORD; p: TPoint; begin p.X := Button1.Left; p.Y := Button1.Top; p := Button1.ClientToScreen(p);
hMenuHandle := GetSystemMenu(Handle, False); hMenuItem := Longword(Windows.TrackPopupMenu(hMenuHandle, TPM_LEFTBUTTON or TPM_RIGHTBUTTON or TPM_RETURNCMD, p.X, p.Y, 0, Handle, nil)); if hMenuItem > 0 then SendMessage(Handle, WM_SYSCOMMAND, hMenuItem, 0); end; |
|
|
netspy 
      
Beiträge: 75
|
Verfasst: So 16.04.06 18:16
toms hat folgendes geschrieben: | Wenn ich in einem Testprojekt SendMessage(handle, WM_SYSCOMMAND, SC_MAXIMIZE, 0); ausfuehre,
wird die Form maximiert aber ueberdeckt nicht den ganzen Screen.
(Einfacher geht's auch mit WindowState := wsMaximized; |
Egal ob mit SC_MAXIMIZE oder WindowState:=wsMaximized, das Fenster wird immer so groß. Ich vermute mal, dass es am BorderStyle=bsNone liegt.
toms hat folgendes geschrieben: | Koennte so aussehen:
[...] |
Geht leider nicht, da GetSystemMenu(Handle, False) nur 0 zurückliefert. Das Handle ist ok und zeigt auf das Anwendungsfenster. Vermutlich gibt es wegen BorderStyle=bsNone aber auch kein Systemmenü und kann deshalb auch nicht geholt werden. Ich hab zwar schon was gefunden, wie man das auch so erzeugen kann, allerdings hat es dann keine Funktion und nützt somit nichts.
_________________ So Long, and Thanks for All the Fish.
|
|
toms
      
Beiträge: 1099
Erhaltene Danke: 2
|
Verfasst: So 16.04.06 18:47
Zitat: |
Egal ob mit SC_MAXIMIZE oder WindowState:=wsMaximized, das Fenster wird immer so groß. Ich vermute mal, dass es am BorderStyle=bsNone liegt.
|
Workaround mit WMGetMinMaxInfo:
www.delphipraxis.net/viewtopic.php?t=4552
Zitat: | Geht leider nicht, da GetSystemMenu(Handle, False) nur 0 zurückliefert. Das Handle ist ok und zeigt auf das Anwendungsfenster. Vermutlich gibt es wegen BorderStyle=bsNone aber auch kein Systemmenü und kann deshalb auch nicht geholt werden. |
Workaround: FormStyle auf bsSingle setzen und Im OnCreate der Form folgendes schreiben,
damit die Form keinen Border hat:
Delphi-Quelltext 1:
| SetWindowLong(Handle, GWL_STYLE,GetWindowLong(Handle, GWL_STYLE) and (not WS_CAPTION) or WS_OVERLAPPED); |
Das Systemmenu kannst du dann wie folgt anziegen:
Delphi-Quelltext 1:
| SendMessage(Handle, $313, 0, MakeLong(Mouse.CursorPos.X, Mouse.CursorPos.Y)); |
|
|
netspy 
      
Beiträge: 75
|
Verfasst: Mo 17.04.06 02:11
Danke, funktioniert alles. Werd morgen dann noch einen neuen Build rausbringen.
_________________ So Long, and Thanks for All the Fish.
|
|
netspy 
      
Beiträge: 75
|
Verfasst: Mo 17.04.06 18:17
Nachtrag: Die Lösung hat leider doch einen Haken. Wenn ich das Fenster im laufenden Betrieb mit FormStyle:=fsStayOnTop permanent in den Vordergrund hole, wird das Windows-Fenster wieder mit angezeigt. Damit geht diese Lösung leider wohl auch nicht.
_________________ So Long, and Thanks for All the Fish.
|
|
freedy
      
Beiträge: 403
Erhaltene Danke: 1
Winows 7
Delphi XE
|
Verfasst: Mi 26.04.06 09:19
Hi,
das Programm gefällt mir wirklich gut. Einfach und funktional gehalten.
Welche Komponenten-Palette habt ihr dafür benutzt? Standard-Delphi?
Gruß
Michael
|
|
netspy 
      
Beiträge: 75
|
Verfasst: Mi 26.04.06 09:29
freedy hat folgendes geschrieben: | Welche Komponenten-Palette habt ihr dafür benutzt? Standard-Delphi? |
Ich hab die TntWare Unicode Controls und ein paar eigene Komponenten benutzt, da die VCL ja immer noch nicht Unicode-fähig ist.
_________________ So Long, and Thanks for All the Fish.
|
|
freedy
      
Beiträge: 403
Erhaltene Danke: 1
Winows 7
Delphi XE
|
Verfasst: Mi 26.04.06 09:54
Und womit wurde die Farbgestaltung (Themes) gemacht? Mir gefällt nämlich vornehmlich die Oberfläche.
|
|
netspy 
      
Beiträge: 75
|
Verfasst: Mi 26.04.06 10:02
freedy hat folgendes geschrieben: | Und womit wurde die Farbgestaltung (Themes) gemacht? |
Das sind zwei eigene Komponeneten (für die Caption- und Status-Leiste) und ein wenig Code im OnCreate der Form. Wie ich an anderen Theme-Managern gesehen habe, kann man sich zwar auch irgendwie direkt in die Form einklinken aber für meine Zwecke ging es auch so.
Hat aber (für dich) den Nachteil, dass ich den Code für das Theme jetzt nicht einfach so als extra Komponente veröffentlichen kann. Mal sehen, wenn ich irgendwann mal Zeit habe, bastle ich vielleicht ein kleines Dummy-Projekt, in welchem der Code drin ist und die Funktionsweise gezeigt wird.
_________________ So Long, and Thanks for All the Fish.
|
|
freedy
      
Beiträge: 403
Erhaltene Danke: 1
Winows 7
Delphi XE
|
Verfasst: Mi 26.04.06 10:30
|
|
freedy
      
Beiträge: 403
Erhaltene Danke: 1
Winows 7
Delphi XE
|
Verfasst: Mi 26.04.06 13:18
Inzwischen habe ich etwas gespielt und hier im Forum gesucht. Die abgerundeten Ecken sind nicht das Problem.
Kannst du mir vielleicht sagen, wie die Komponenten heißen. Würde sie mir gerne runterladen, wenn sie frei sind.
|
|
netspy 
      
Beiträge: 75
|
Verfasst: Mi 26.04.06 13:33
freedy hat folgendes geschrieben: | Kannst du mir vielleicht sagen, wie die Komponenten heißen. Würde sie mir gerne runterladen, wenn sie frei sind. |
Die Komponenten habe ich selbst geschrieben und ich kann sie nicht so ohne weiteres einzeln veröffentlichen. Wenn ich Zeit habe, mache ich mal was fertige. Momentan komme ich aber nicht dazu.
_________________ So Long, and Thanks for All the Fish.
|
|
freedy
      
Beiträge: 403
Erhaltene Danke: 1
Winows 7
Delphi XE
|
Verfasst: Mi 26.04.06 13:41
sag das doch gleich  ... naja, hast du ja. Wohl übersehen. Ich suche mich hier schon fast tot...
Aber mein Kompliment. Sehen wirklich gut aus.
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Mi 26.04.06 17:57
Hallo!
Nette Programm.  Kann man das Programm auch so einstellen, dass es die Farbeinstellungen von Windows benutzt? Ein Abbrech-Button beim "Onlein aktualisieren" wäre schön.
Lg Martin
_________________ Ein Nutzer der Ecke
|
|
netspy 
      
Beiträge: 75
|
Verfasst: Mo 29.05.06 23:45
Hätte ich fast vergessen hier zu schreiben. Von LingoPad gibt es mit Version 2.3 mal wieder ein kleines Update. Neben ein paar kleinen optischen Veränderungen wurde auch das Deutsch-Englisch Wörterbuch erweitert und einige Fehler gefixt. Über die Online-Aktualisierung stehen jetzt auch Französisch-Deutsch und Esperanto-Deutsch zur Verfügung.
@Martin1966: Die Windows-Farbeinstellungen sind momentan nicht möglich. Einen Abbrechen-Button werde ich im nächsten Update mit einbauen.
_________________ So Long, and Thanks for All the Fish.
|
|
netspy 
      
Beiträge: 75
|
Verfasst: Mi 12.07.06 13:18
Mal wieder ein kleines Update. Änderungen:
- wenn LingoPad beim Start schon läuft, wird das laufende Programm aktiviert und keine Fehlermeldung mehr gebracht
- bei Minimieren über die Taskleiste wird LingoPad in den SysTray gesetzt
- wenn LingoPad bei der Installation läuft, wird das laufende Programm automatisch beenden
- Lautschrift für deutsche Wörter
Download und weitere Infos siehe erstes Posting.
_________________ So Long, and Thanks for All the Fish.
|
|