Autor Beitrag
guinnes
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 182
Erhaltene Danke: 14



BeitragVerfasst: Do 20.01.11 16:02 
Jetzt kannst du noch kucken, was in FDefWndProc steht, da ist wahrscheinlich NIL drin. Also : Irgendwas überschreibt deine FDefWndProc.
jjturbo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: Do 17.03.11 16:59 
Also:

Ich habe mal Zeos 6.6.6 deinstalliert und die 7.0.0-alpha genommen, damit ist der Fehler beseitigt gewesen.
Es schien so schön...
Ein Kollege hatte auch das Problem mit einer solchen Zugriffsverletzung, gleiche Adresse, das gleiche Grundgerüst als Programm. Bei ihm hat das Verwenden der neueren Zeos-Kompos keine Besserung gebracht.


Also habe ich heute mal sein ganzes Projekt Stück für Stück zerpflückt. Ein TLMDSpeedButton auf unserer HauptForm ist für das Beenden des Programms vorgesehen:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
procedure THauptForm.FTastenClick(Sender: TObject);
var NrFTaste :Integer;
    s        :String;
begin

  s := (Sender as TLMDSpeedButton).Name;
  Delete(s,1,15);
  NrFTaste := StrToIntDef(s,-1);


  Case NrFTaste of
    1: AufHandSchalten;
    2: AufAutomatikSchalten;
    3: AutomatikHalt;
    4: AutomatikFortsetzen;
    5: AnlageReset;
    7: Werkzeugwechelposition;
    10begin
         PostMessage(HauptForm.Handle,WM_CLOSE,0,0);
        end;
    12: ResetDrucker;
  end;

end;




procedure THauptForm.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
begin

    Case Key of
      112: FTastenClick(LMDSpeedButtonF1);
      113: FTastenClick(LMDSpeedButtonF2);
      114: FTastenClick(LMDSpeedButtonF3);
      115: FTastenClick(LMDSpeedButtonF4);
      116: FTastenClick(LMDSpeedButtonF5);
      118: FTastenClick(LMDSpeedButtonF7);
      121: FTastenClick(LMDSpeedButtonF10);
    end;

end;


Mit der Maus auf der LMDSpeedButtonF10: Fehler, auf der Tastatur F10 gedrückt alles in Ordnung, obwohl der gleiche Code ausgeführt wird.
Dann habe ich es mal mit einem TButton probiert, da gings mit Maus und Tastatur ohne Probleme. Jetzt habe ich festgestellt, dass es bei dem TLMDSpeedButton eine Option "UseGlobalTimer" gibt, diese von False auf True gesetzt und alles funktioniert wie gewünscht...

Weiß jemand, wofür diese Property gut ist? Wir haben schon einige Projekte am laufen, die alle die gleiche Leiste mit den FTasten haben.

_________________
Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Do 17.03.11 17:24 
Irgend ein Wiederspruch in Deiner Aussage. Ihr verwendet ja 10x LMDSpeedButton und nur bei LMDSpeedButtonF10 krachts :gruebel:

Da würde ich doch sicherhalts halber mal nicht die Eigenschaften ändern, sondern mal in der KeyDown zum Schluss folgendes reinschreiben Key:= 0. Jetzt kannst du testen, ob der Fehler weiter Auftritt.

quatsch: passiert ja beim Mausclick. Dann ruf doch einfach nur close auf anstatt Postmessage. nun schau was passiert!?

Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
jjturbo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: Fr 18.03.11 07:23 
Widerspruch würde ich nicht sagen.
F10 soll ja das Programm beenden, dabei werden im Gegensatz zu den Aktionen auf den anderen Buttons ziemlich viele Komponenten freigegeben.
Ein einfaches Close an der Stelle habe ich natürlich auch probiert. Genau das selbe.

Ich habe spasseshalber an der Stelle statt "Close" mal einen 100ms-Timer enabled, bei dem im OnTimer-Ereignis HauptForm.Close aufgerufen wird: Das gleiche Verhalten, mit der Maus geklickt krachts, mit F10 ok.

_________________
Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Fr 18.03.11 12:49 
mh..
sieht ja so aus das nicht alles frei gegeben wird?
Der Aufruf close ruft closequery auf. Prüfst du dort ob alles freigegeben wurde? Mal getestet?
Vielleicht noch ein Thread offen usw.?

ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
jjturbo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: Fr 18.03.11 12:54 
Wie kann ich denn prüfen ob alles frei gegeben wurde?
Aber eigentlich ist zu dem Zeitpunkt alles frei gegeben worden.

Ich hatte ja auch ein annähernd leeres Projekt, in dem dieser Fehler auftrat. Darin hatte ich eh alle Threads usw. raus geschmissen.

_________________
Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 18.03.11 12:59 
Naja, du hast doch weiter oben schon geschrieben, dass es an den komischen Buttons liegt. Du kannst ja FastMM versuchen, ob das etwas findet.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Fr 18.03.11 13:03 
user profile iconjjturbo hat folgendes geschrieben Zum zitierten Posting springen:
...Aber eigentlich ist zu dem Zeitpunkt alles frei gegeben worden.
hab ich auch manchmal gedacht :wink:
user profile iconjjturbo hat folgendes geschrieben Zum zitierten Posting springen:
...
Ich hatte ja auch ein annähernd leeres Projekt, ....
Nimm halt ein komplett leeres. Nur diesen einen Button, Close in diese Buttonclick und sehen ob es immer noch passiert! 8)
Wenn ja, ist die Compo buggylie!
Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!