Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   MpuAboutWnd (https://www.delphipraxis.net/83772-mpuaboutwnd.html)

calculon 8. Jan 2007 00:05

Re: MpuAboutWnd
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab' eine Einstellung gefunden, die für 3 zeilenlange File-Descriptions wie ich finde schöne Ergebnisse liefert (siehe Anhang).

Delphi-Quellcode:
const
  WINDOWWIDTH      = 300;
  WINDOWHEIGHT     = 224;
 
  // product name
  CreateWindowEx(0, 'STATIC', '', WS_CHILD or WS_VISIBLE or SS_CENTER, 17, 10, 285, 24, hWnd, ID_STC_PRODUCTNAME,
  HInstance, nil);
  // description, version and copyright
  CreateWindowEx(0, 'STATIC', '', WS_CHILD or WS_VISIBLE or SS_CENTER, 10, 44, 280, 130, hWnd, ID_STC_DESCRIPTION,
  HInstance, nil);
  // "Link" static
  CreateWindowEx(0, 'STATIC', PCHar(URI), WS_CHILD or WS_VISIBLE or SS_NOTIFY or SS_CENTER, 5, 135, 285, 15, hWnd,
  ID_STC_WEB, HInstance, nil);
  // devider
  CreateWindowEx(0, 'STATIC', '', WS_CHILD or WS_VISIBLE or SS_SUNKEN, 0, 128, 300, 8, hWnd, 0, HInstance, nil);
  // OK button
  CreateWindowEx(0, 'BUTTON', 'OK', WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON, 210, 155, 75, 24, hWnd,
  ID_BTN_OK, HInstance, nil);

Luckie 8. Jan 2007 09:34

Re: MpuAboutWnd
 
Zitat:

Zitat von Olli
Zitat:

Zitat von Luckie
Aber ich bekomme kein WM_CREATE. :gruebel:

Das wäre ja nicht unbedingt nötig. Dein vorhandener Code hätte ja bequem umgeschrieben werden können:

Vorschlag angenommen. ;)

@calculon: Du hast einfach nur die Fenster größer gemacht? Dabei sind dir aber ein paar Fenster durcheinander geraten. ;)

calculon 8. Jan 2007 13:23

Re: MpuAboutWnd
 
Zitat:

Zitat von luckie
Dabei sind dir aber ein paar Fenster durcheinander geraten.

Ja hast schon recht. Perfekt ist das ganze nicht ...wie gesagt trial and error Verfahren. Aber für meine Bedürfnisse passt des schon und einem flüchtigen Blick des Benutzers fällt das auch nicht weiter auf.
Also danke für die Unit. Die werde ich mit Sicherheit mal brauchen!

Gruß

Calculon
--

turboPASCAL 29. Apr 2007 12:46

Re: MpuAboutWnd
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, endlich den Fehler gefunden der bei deinem MpuAboutWnd den Rangecheck Error verursacht:
Code:
function LinkStcWndProc(hLinkStc, uMsg, wParam, lParam: [color=#ff0000]DWORD[/color]): [color=#ff0000]DWORD[/color]; stdcall;
So sollte es sein damit auch die LinkStcWndProc mit der CallWindowProc übereinstimmt:
Delphi-Quellcode:
function LinkStcWndProc(hLinkStc, uMsg: DWORD; wParam, lParam: integer): LRESULT; stdcall;
und dann noch:
Code:
WM_CTLCOLORSTATIC:
      begin
        // set textcolor of "Link" tatic
        if lParam = Integer(GetDlgItem(hWnd, ID_STC_WEB)) then
        begin
          [color=#ff0000]SetTextColor(wParam, RGB(0, 0, 255));
          SetBkColor(wParam, GetSysColor(COLOR_BTNFACE));[/color]
          Brush := GetSysColorBrush(COLOR_BTNFACE);
          // save brush as a window property
          SetProp(hWnd, PROP_BRUSH, Brush);
          // return brush
          Result := Brush;
        end //...
Integer ist kein Word.

Sollte so aussehen:
Delphi-Quellcode:
WM_CTLCOLORSTATIC:
      begin
        // set textcolor of "Link" tatic
        if lParam = Integer(GetDlgItem(hWnd, ID_STC_WEB)) then
        begin
          SetTextColor(DWORD(wParam), RGB(0, 0, 255));
          SetBkColor(DWORD(wParam), GetSysColor(COLOR_BTNFACE));
          Brush := GetSysColorBrush(COLOR_BTNFACE);
          // save brush as a window property
          SetProp(hWnd, PROP_BRUSH, Brush);
          // return brush
          Result := Brush;
        end //...
Dazu habe ich dann für den Link noch ein passenden Cursor eingebaut ohne viel Tamtam im Quelltext.
Delphi-Quellcode:
// "Link" static
        hstcWeb := CreateWindowEx(0, 'STATIC', PCHar(URL), WS_CHILD or WS_VISIBLE or SS_NOTIFY or SS_CENTER, 5, 97, WINDOWWIDTH -
          15, 18, hWnd, ID_STC_WEB, HInstance, nil);
        SetClassLong(hstcWeb, GCL_HCURSOR, LoadCursor(0, IDC_HAND));

Dann habe ich mir erlaubt das Iconarray zu entfernen im es durch ein Res.-Icon zu ersetzen.

Ein Aufruf sieht dann zB. so aus.:
Delphi-Quellcode:
procedure IrgendWieIrgendWoIrgendWann;
begin
  MpuAboutWnd.URL := 'http://www.michael-puff.de';
  MpuAboutWnd.ICON_ID := 1;

  TAboutWnd.ShowAboutWnd(hDlg);
end;
Überlauf und Bereichsprüfung sind bei meinem Delphi immer an! :stupid:

Done. :mrgreen:

Luckie 29. Apr 2007 22:40

Re: MpuAboutWnd
 
Hallo,
danke für deine Mühe, ich werde meinen Code entsprechend korrigieren.

Zitat:

Zitat von turboPASCAL
Dann habe ich mir erlaubt das Iconarray zu entfernen im es durch ein Res.-Icon zu ersetzen.

Das war ja gerade der Gag, dass man nur die Unit braucht und nichts anderes und trotzdem ein Icon hat.

lbccaleb 13. Jul 2007 13:53

Re: MpuAboutWnd
 
kann ich es auch irgendwie verwirklichen, den link der hompage in das edit zu verfrachten???

Luckie 13. Jul 2007 13:54

Re: MpuAboutWnd
 
In welches Edit? Ersetz den Klassennamen "STATIC" durch "EDIT" und du hast ein Edit-Kontrol.

lbccaleb 13. Jul 2007 14:07

Re: MpuAboutWnd
 
ach sorry hatte ganz vergessen das hab ich ja eingefügt das war ja gar kein standart ;-) na ich hab noch nen edit eingefügt als richedit 2.0 und in dem steht halt noch sonn kleiner text, in diesem wollte ich dann dierekt den link darstellen!!!

Luckie 13. Jul 2007 14:35

Re: MpuAboutWnd
 
Na das sind aber schon größere Modifikationen, die mit meinem Code eigentlich nichts mehr gemeinsam haben. Wie man mit Links in RichEdits umgeht, kannst du, glaube ich, in meinen Win32-API Tutorials für Delphi nachlesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:19 Uhr.
Seite 4 von 4   « Erste     234   

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