About Window / Requester ?
About Window / Requester ?
Was nehmt ihr, um ein "About" von Eurer Applikation anzuzeigen ?
Bisher habe ich der Einfachheit halber einen MessageRequester verwendet, dieser hat aber zahlreiche Limitationen, z.B.
keine anklickbaren Weblinks und die Formatierung des Textes ( Center) ist zuviel Handarbeit.
Ich habe jetzt ein eigenes Window mit einem TextGadget und zwei HyperlinkGadget gebastelt.Sieht für mich ok aus,
aber ist auch alles viel Gebastel, da ich die zwei HyperlinkGadgets über dem TextGadget manuell so im Text positioniert
habe, das alles paßt.Nur einmal Text geändert und schon ist man wieder am fummeln.
Was mich auch stört: man kann den Text der Weblinks nicht selektieren und kopieren.
Desweiteren habe ich ein kleines ImageGadget ( 40x40) hinzugefügt, um das Programm-Icon mit im About-Fenster anzeigen zu lassen,
das funktioniert aber nicht.Das ImageGadget habe ich wie die zwei Hyperlinks auf/über dem TextGadget platziert ( also über meint
hier die vertikale Ebene/Layer, nicht X/Y), aber es wird einfach nicht angezeigt.Ich nehme an, es wird vom TextGadget überdeckt,
aber die Anzeige im FormDesigner zeigt es so an, dass das ImageGadget in der Ebene über dem TextGadget sitzt.
Hat jemand eine Idee wegen dem ImageGadget und wie baut ihr solche About-Windows/Requester ?
Grüße,
TWELVE
Bisher habe ich der Einfachheit halber einen MessageRequester verwendet, dieser hat aber zahlreiche Limitationen, z.B.
keine anklickbaren Weblinks und die Formatierung des Textes ( Center) ist zuviel Handarbeit.
Ich habe jetzt ein eigenes Window mit einem TextGadget und zwei HyperlinkGadget gebastelt.Sieht für mich ok aus,
aber ist auch alles viel Gebastel, da ich die zwei HyperlinkGadgets über dem TextGadget manuell so im Text positioniert
habe, das alles paßt.Nur einmal Text geändert und schon ist man wieder am fummeln.
Was mich auch stört: man kann den Text der Weblinks nicht selektieren und kopieren.
Desweiteren habe ich ein kleines ImageGadget ( 40x40) hinzugefügt, um das Programm-Icon mit im About-Fenster anzeigen zu lassen,
das funktioniert aber nicht.Das ImageGadget habe ich wie die zwei Hyperlinks auf/über dem TextGadget platziert ( also über meint
hier die vertikale Ebene/Layer, nicht X/Y), aber es wird einfach nicht angezeigt.Ich nehme an, es wird vom TextGadget überdeckt,
aber die Anzeige im FormDesigner zeigt es so an, dass das ImageGadget in der Ebene über dem TextGadget sitzt.
Hat jemand eine Idee wegen dem ImageGadget und wie baut ihr solche About-Windows/Requester ?
Grüße,
TWELVE
- NicTheQuick
- Ein Admin
- Beiträge: 8679
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: About Window / Requester ?
Ich kann dir schon mal so viel sagen, dass man Gadgets besser nicht über andere Gadgets legt, egal wie die Z-Order eingestellt ist. Windows macht das erfahrungsgemäß nicht korrekt.
Alternativ könnte man aber auch noch ein EditorGadget nehmen und das auf Readonly setzen.
Alternativ könnte man aber auch noch ein EditorGadget nehmen und das auf Readonly setzen.
Re: About Window / Requester ?
oder einen Rechtsklick abfangen, die Position der Maus mit denen der HyperlinkGadgets vergleichen und ein PopupMenue zeigen in dem man das kopieren anpreist...
Zu dem ImageGadget Z-Order Problem : Standardantwort - CanvasGadget und selbst zeichnen.... Klingt brutaler als es ist
Zu dem ImageGadget Z-Order Problem : Standardantwort - CanvasGadget und selbst zeichnen.... Klingt brutaler als es ist
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
Re: About Window / Requester ?
auch wenn ich wieder Kloppe kriege: Ich würde ein WebGadget nehmen.
Grüße ... Peter
Grüße ... Peter
Hygge
Re: About Window / Requester ?
Sowohl Editor als auch Webgadget sowie auch Canvas hatte ich in meine Überlegungen einbezogen.Dann Editor und Web nach Tests wieder verworfen, weil die Ergebnisse nicht meinen
Anforderungen entsprachen.Das Editor macht kein Center vom Text und ist deutlich abgegrenzt vom Window und für das Webgadget müßte ich erst ein HTML Dokument entwerfen.Mit dem Canvas habe ich keinerlei Erfahrungen.Obwohl Purebasic eine richtig coole Sprache ist, sind manche Dinge irgendwie unwahrscheinlich kompliziert
Im Prinzip gefällt mir ja mein Window mit Text und Hyperlink Gadget optisch gesehen...aber ich mag es einfach nicht, wenn man bei kleinen Änderungen
im Text das GUI Design mitziehen muß, damit wieder alles zusammenpaßt.Das ist uncool ! Genauso uncool wie ein MessageRequester, bei dem man mit
Leerzeichen den Text solange schieben muß, bis alles paßt.
Macht ihr in Euren Apps keine "About xyz" Anzeigen ? Weil die Antworten bis jetzt sehr vage klingen, also man könnte so oder so machen.
Anforderungen entsprachen.Das Editor macht kein Center vom Text und ist deutlich abgegrenzt vom Window und für das Webgadget müßte ich erst ein HTML Dokument entwerfen.Mit dem Canvas habe ich keinerlei Erfahrungen.Obwohl Purebasic eine richtig coole Sprache ist, sind manche Dinge irgendwie unwahrscheinlich kompliziert
Im Prinzip gefällt mir ja mein Window mit Text und Hyperlink Gadget optisch gesehen...aber ich mag es einfach nicht, wenn man bei kleinen Änderungen
im Text das GUI Design mitziehen muß, damit wieder alles zusammenpaßt.Das ist uncool ! Genauso uncool wie ein MessageRequester, bei dem man mit
Leerzeichen den Text solange schieben muß, bis alles paßt.
Macht ihr in Euren Apps keine "About xyz" Anzeigen ? Weil die Antworten bis jetzt sehr vage klingen, also man könnte so oder so machen.
Re: About Window / Requester ?
Meines habe ich direkt auf das Fenster gezeichnet. War damals allerdings ein Versuch, weil ich es einfach mal probieren wollte.
Ich würde an deiner Stelle ein CanvasGadget nehmen, da kannst du drauf malen was du willst und klatscht dann deine Hyperlinkgadgets drauf. Den Text würde ich aus einer Textdatei (manueller Zeilenumbruch) zeilenweise einlesen, die benötigten Pixel in der Höhe immer mitzählen und damit die Höhe deines Fensters automatisch erstellen. Die Textbreite jeder Zeile kannst du berechnen und so auch zentriert ausgeben.
Ist zwar auch nicht der einfachste Weg, aber das machst du ja nur ein mal und kannst es immer wieder verwenden.
Ich würde an deiner Stelle ein CanvasGadget nehmen, da kannst du drauf malen was du willst und klatscht dann deine Hyperlinkgadgets drauf. Den Text würde ich aus einer Textdatei (manueller Zeilenumbruch) zeilenweise einlesen, die benötigten Pixel in der Höhe immer mitzählen und damit die Höhe deines Fensters automatisch erstellen. Die Textbreite jeder Zeile kannst du berechnen und so auch zentriert ausgeben.
Ist zwar auch nicht der einfachste Weg, aber das machst du ja nur ein mal und kannst es immer wieder verwenden.
Re: About Window / Requester ?
Zeig doch mal ein Screenshot von deinem About Fenster, auch wenn es missglückt ist. Vielleicht fällt uns da was ein, wie man das spontan besser lösen könnte, damit es dein Gefallen findet ...
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
Re: About Window / Requester ?
Ich habe nochmal über die Vorschläge überlegt.
Inwiefern löst ein CanvasGadget meine Probleme mit den Hyperlinks ?
Wenn ich einfach nur Text zeichne, dann kann ich doch auch ein TextGadget nehmen ?
Ok, ich könnte ein Image mit reinzeichnen.Aber die Hyperlinks müßte ich nach wie vor
manuell da drüberlegen.Man soll doch keine Gadgets übereinanderlegen
Vielleicht ist das WebGadget doch am besten für meine Zwecke geeignet.Da stellt sich
mir die nächste Frage: wie kann man double-quotes ( ") in einem HTML Text "escapen",
sprich in einen Purebasic String einlesen, der selber mit double-quotes terminiert ist ?
Nächste Frage: gibt es eine Methode, um Text in einem EditorGadget zu centern ?
Und dann nochmal die Frage, ob es da nix fertiges gibt ? Scheinbar muß bei PB immer das
Rad neu erfunden werden ?
Inwiefern löst ein CanvasGadget meine Probleme mit den Hyperlinks ?
Wenn ich einfach nur Text zeichne, dann kann ich doch auch ein TextGadget nehmen ?
Ok, ich könnte ein Image mit reinzeichnen.Aber die Hyperlinks müßte ich nach wie vor
manuell da drüberlegen.Man soll doch keine Gadgets übereinanderlegen
Vielleicht ist das WebGadget doch am besten für meine Zwecke geeignet.Da stellt sich
mir die nächste Frage: wie kann man double-quotes ( ") in einem HTML Text "escapen",
sprich in einen Purebasic String einlesen, der selber mit double-quotes terminiert ist ?
Nächste Frage: gibt es eine Methode, um Text in einem EditorGadget zu centern ?
Und dann nochmal die Frage, ob es da nix fertiges gibt ? Scheinbar muß bei PB immer das
Rad neu erfunden werden ?
Re: About Window / Requester ?
Ist für dich WinAPI ein Problem? Wenn nicht, dann kannst z.B. so machen:TWELVE hat geschrieben:Ich habe jetzt ein eigenes Window mit einem TextGadget und zwei HyperlinkGadget gebastelt.Sieht für mich ok aus,
aber ist auch alles viel Gebastel, da ich die zwei HyperlinkGadgets über dem TextGadget manuell so im Text positioniert
habe, das alles paßt.Nur einmal Text geändert und schon ist man wieder am fummeln.
Code: Alles auswählen
;Autor: nico
;Nur mit XP-Skin
EnableExplicit
Define EventID
Define LinkHTML$="Text <a href=" + Chr(34) + "http://www.purebasic.fr/german/" + Chr(34) + ">Link</a> Text <a href=" + Chr(34) + "http://www.google.de" + Chr(34) + ">Link</a>"
Define SysLinkHandle
#MAX_LINKID_TEXT = 48
#L_MAX_URL_LENGTH = 2083
Structure LITEM
mask.l
iLink.l
state.l
stateMask.l
szID.w[#MAX_LINKID_TEXT]
szUrl.w[#L_MAX_URL_LENGTH]
EndStructure
Structure NMLINK
hdr.NMHDR
item.LITEM
EndStructure
Procedure WindowCallback(hwnd, msg, wparam, lparam)
Protected result
Protected *nmhdr.NMHDR
Protected *LINK.NMLINK
result = #PB_ProcessPureBasicEvents
Select msg
Case #WM_NOTIFY
*nmhdr.NMHDR = lParam
Select *nmhdr\code
Case #NM_CLICK
*LINK.NMLINK = lParam
Debug PeekS(@*LINK\item\szUrl[0], -1, #PB_Unicode)
EndSelect
EndSelect
ProcedureReturn result
EndProcedure
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SysLinkHandle = CreateWindowEx_(0, "SysLink", LinkHTML$, #WS_CHILD | #WS_VISIBLE, 10, 10, 400, 20, WindowID(0), 2, 0, 0)
SetWindowCallback(@WindowCallback())
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Aber markieren kannst du da nichts.
Ich jedenfalls mache meistens nur ein MessageRequester. Das reicht für mich aus.TWELVE hat geschrieben:Macht ihr in Euren Apps keine "About xyz" Anzeigen ? Weil die Antworten bis jetzt sehr vage klingen, also man könnte so oder so machen.
Wenn du Anführungszeichen innerhalb einer HTML-Variable einfügen möchtest, kannst du Chr(34) verwenden.TWELVE hat geschrieben:Vielleicht ist das WebGadget doch am besten für meine Zwecke geeignet.Da stellt sich
mir die nächste Frage: wie kann man double-quotes ( ") in einem HTML Text "escapen",
sprich in einen Purebasic String einlesen, der selber mit double-quotes terminiert ist ?
Ansonsten innerhalb eines Textblocks zwischen zwei HTML-Tags: "
Mit oder ohne WinAPI?TWELVE hat geschrieben:Nächste Frage: gibt es eine Methode, um Text in einem EditorGadget zu centern ?
Ohne WinAPI ist das glaube ich nicht möglich. Vielleicht irgendwann mal.
Mit WinAPI: #ES_CENTER
Oder wenn du nachträglich die Zentrierung aktivieren möchtest: http://www.rsbasic.de/aktualisierung/wi ... trieren.pb
Re: About Window / Requester ?
Danke @RSBasic...ich laß Deinen Input erstmal sacken
Hier hab ich zufällig was nettes gefunden:
HyperLinkGadgets automatisch über TextGadgets legen
PB 5.31 bringt aber Fehler beim Compile.
Hier hab ich zufällig was nettes gefunden:
HyperLinkGadgets automatisch über TextGadgets legen
PB 5.31 bringt aber Fehler beim Compile.