Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Diese Anwendung wird aufgrund eines ungültigen Vorgangs ... (https://www.delphipraxis.net/53045-diese-anwendung-wird-aufgrund-eines-ungueltigen-vorgangs.html)

FriFra 10. Sep 2005 12:51

Re: Diese Anwendung wird aufgrund eines ungültigen Vorgangs
 
Hab ich... ich weiß nicht was das ganze soll... es werden ein paar *.pas files nach C:\Programme\madCollection kopiert und sonst passiert nichts :wall:
Nichts aus der Hilfe (zumindest in Bezug auf das Vorkommen eventueller Menüeinträge etc.) trifft zu... Wenn jetzt nicht jemand den untimativen Hinweis hat, was hier schief läuft fliegt der "Mist" in die Ablage "P" und ich muss weiter nach einer funktionierenden Lösung suchen :roll: :gruebel: :?

turboPASCAL 10. Sep 2005 13:28

Re: Diese Anwendung wird aufgrund eines ungültigen Vorgangs
 
Code:
C:\PROGRAMME\MADCOLLECTION
├───madBasic
│  ├───BCB5
│  ├───BCB6
│  ├───Delphi 6
│  ├───Delphi2005
│  ├───Demos
│  ├───Help
│  │  └───Data
│  └───Sources
├───madDisAsm
│  ├───BCB5
│  ├───BCB6
│  ├───Delphi 6
│  ├───Delphi2005
│  ├───Demos
│  └───Help
└───madExcept
    ├───BCB5
    ├───BCB6
    ├───Delphi 6
    ├───Delphi2005
    ├───Demos
    ├───Help
    └───Tools
Das sollte bei der Installation angelegt werden.

FriFra 10. Sep 2005 14:05

Re: Diese Anwendung wird aufgrund eines ungültigen Vorgangs
 
Die Ordner sind da... aber was fange ich damit nun an? :roll:
In C:\Programme\madCollection\madBasic\Sources gibt es das Package madBasic_.dpk, dessen Installation bewirkt auch nichts... :gruebel:

turboPASCAL 10. Sep 2005 14:22

Re: Diese Anwendung wird aufgrund eines ungültigen Vorgangs
 
Mit den ordnern ja nu gar nix :wink: ...was ich nicht verstehe ist warum du keinen eintrag in die palette bekommst...

...im Normalfall kannst du dann die Komponente TMadExceptionHandler auf den Formular ziehen und dann dort Exception abfangen bearbeiten usw. und im Menue -> Projekte -> madExcept Settings einstellungen vornehmen wie MadC. auf eine Exception reagieren soll...

Zu deinem Code, klammer doch mal die Fontangelegenheit aust und schau mal was dann passiert.

Ist MyProg_Main. die Hauptform ?

FriFra 10. Sep 2005 15:16

Re: Diese Anwendung wird aufgrund eines ungültigen Vorgangs
 
Naja, die madCollection werde ich dann wohl endgültig von meinem System entfernen, es hat anscheinend keinen Sinn da weitere Nachforschungen anzustellen :roll: ...

@turboPascal: Genau da war wohl der Fehler, bzw. der Code der Win9x zum Absturz bringt :-D

Ich hab meine procedure nun entspr. angepasst und habe keine Probleme mehr :bouncing4: :bounce1: :coder:
Delphi-Quellcode:
procedure TMyProg.ProgressWndProc(var Msg: TMessage);
var
  dc: HDC;
  rect: TRect;
  Text: string;
begin
  OldProgressWndProc(Msg);
  if ((Msg.Msg = 1026) or (Msg.Msg = WM_PAINT)) and (Timer3.Enabled = False)
    then
    // Wenn die Progressbar neugezeichnet wurde,
    // und somit die Zahl weg ist: Prozentzahl neu draufpinseln
  begin
    if (ProgressBar1.Max = 0) or (ProgressBar1.Position = 0) then
      Text := '0%'
    else if ProgressBar1.Max = ProgressBar1.Position then
      Text := '100%'
    else
      Text := IntToStr(Trunc(100 / ProgressBar1.Max * ProgressBar1.Position))
        + '%';
    dc := GetWindowDC(Progressbar1.Handle);
    try
      rect := ProgressBar1.ClientRect;
      //InvalidateRect(Progressbar1.Handle, @rect, True);
      if suiSkinEngine1.Active = True then
        SetBkMode(dc, TRANSPARENT);
      SetTextColor(dc, clBlack);
      SelectObject(dc, MyProg_Main.Font.Handle);
      DrawText(dc, PChar(Text), length(Text), rect, DT_SINGLELINE or DT_VCENTER
        or DT_CENTER);
    finally
      ReleaseDC(Progressbar1.Handle, dc);
    end;
  end;
end;

Flocke 10. Sep 2005 15:40

Re: Diese Anwendung wird aufgrund eines ungültigen Vorgangs
 
:roll: hatte ich doch geschrieben ...


Ist aber so immer noch ein bisschen fehlerhaft: wie ich geschrieben habe, solltest du alle mit SelectObject in den DC gesetzten Handles wieder deselektieren, da sie ansonsten bei der Freigabe des DC gelöscht werden (DeleteDC bwz. ReleaseDC).

Code:
procedure TMyProg.ProgressWndProc(var Msg: TMessage);
var
  dc: HDC;
  [color=red]oldfont: THandle;[/color]
  rect: TRect;
  Text: string;
begin
  OldProgressWndProc(Msg);
  if ((Msg.Msg = 1026) or (Msg.Msg = WM_PAINT)) and (Timer3.Enabled = False)
    then
    // Wenn die Progressbar neugezeichnet wurde,
    // und somit die Zahl weg ist: Prozentzahl neu draufpinseln
  begin
    if (ProgressBar1.Max = 0) or (ProgressBar1.Position = 0) then
      Text := '0%'
    else if ProgressBar1.Max = ProgressBar1.Position then
      Text := '100%'
    else
      Text := IntToStr(Trunc(100 / ProgressBar1.Max * ProgressBar1.Position))
        + '%';
    dc := GetWindowDC(Progressbar1.Handle);
    try
      rect := ProgressBar1.ClientRect;
      //InvalidateRect(Progressbar1.Handle, @rect, True);
      if suiSkinEngine1.Active = True then
        SetBkMode(dc, TRANSPARENT);
      SetTextColor(dc, clBlack);
      [color=red]oldfont := [/color]SelectObject(dc, MyProg_Main.Font.Handle);
      DrawText(dc, PChar(Text), length(Text), rect, DT_SINGLELINE or DT_VCENTER
        or DT_CENTER);
      [color=red]SelectObject(dc, oldfont);[/color]
    finally
      ReleaseDC(Progressbar1.Handle, dc);
    end;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 Uhr.
Seite 2 von 2     12   

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