![]() |
Unerklärliches aufpoppen des CPU-Fensters
Liste der Anhänge anzeigen (Anzahl: 1)
Morgen,
ich hoffe, ich bin hier richtig; wenn nicht, gibt es ja zum Glück eine Verschieben-Funktion. Ich habe ein Problem mit meinem Programm. Theoretisch sollte nach Klick auf Button1 in Form 1 eine zweite Form sichtbar werden, in der ich durch einen Button eine Prozedur starte. Wenn ich aber auf den Button in Form 1 klicke und dann den Coursor aus dieser Form bewege (manchmal auch erst, wenn ich auf den Button in Form 2 klicke), erscheint das CPU-Fenster (Anhang). Ich habe zwar schon versucht, mir anzulesen, was mir das sagen will, bin aber gescheitert. Quelltext Form 1:
Delphi-Quellcode:
Quelltext Form2:
procedure TForm1.Button1Click(Sender: TObject);
begin with Form2 do //In Form 2 werden die Werte eingegeben, dafür muss das Fenster manchmal ein wenig andere Ausmaße haben, die werden hier festgelegt. begin ClientHeight := 104; //72//104 ClientWidth := 185; //185//227 visible := true; with edit1 do begin visible := true; width := 89; //89 top := 8; left := 80; //72 end; with edit2 do begin visible := true; width := 89; top := 40; left := 80; end; with edit3 do begin visible := false; end; with edit4 do begin visible := false; end; with button1 do begin visible := true; caption := 'Zählen'; height := 25; //25 width := 165; //75 top := 72; left := 8; end; with button2 do begin visible := false; end; with button3 do begin visible := false; end; with button4 do begin visible := false; end; with label1 do begin visible := true; caption := 'Startwert'; top := 8; left := 8; end; with label2 do begin visible := true; caption := 'Endwert'; top := 40; left := 8; end; end; checkboxen; //In Form 4 werden, je nachdem, welcher Button in Form 1 geklickt wird, Checkboxen aktiviert. Die Buttons in Form 2 fragen ab, welche Checkbox aktiviert ist und führen dem entsprechend Aktionen aus. Die Prozedur Checkboxen deaktiviert erstmal alle Checkboxen form4.checkbox1.checked:=true; //Hier wird die der Aktion zugeordneten Checkbox aktiviert. end;
Delphi-Quellcode:
Da in der CPU was von UserBreakPoint steht, dachte ich, irgendwo sei ein Haltepunkt, habe aber in sämtlichen Formen keine gefunden.
procedure TForm2.Button1Click(Sender: TObject);//Form2 ist die Form für die Werteeingabe
begin Form3.visible:=true; //Form 3 ist für die Ausgabe da. Form3.gauge1.progress:=0; Form3.gauge2.progress:=0; Form3.gauge3.progress:=0; if Form4.Checkbox1.checked //Das ist durch den Klick auf Button 1 in Form 1 geschehen then begin E:=strtoint(edit2.text); for I:= strtoint(edit1.text) to E do begin Form3.gauge3.progress:=round((I-strtoint(edit1.text)) / (E-strtoint(edit1.text)) *100); Form3.memo1.lines.add (inttostr(I)); end; end; //Hiernach geht es noch weiter mit Abfragen für alle anderen Checkboxen. Ich hoffe, ihr könnt mir helfen. Danke im Voraus. PS: Da ich in Delphi (und generell im Programmieren) relativ neu bin, wäre ich dankbar, wenn ihr euch um eine einfache Sprache bemüht; ich bin mit den Fachtermini nicht allzusehr vertraut. |
AW: Unerklärliches aufpoppen des CPU-Fensters
Schau mal in der Code-Library:
![]() |
AW: Unerklärliches aufpoppen des CPU-Fensters
Herzlich willkommen in der DP.
Das erste, was mir auffällt, ist dein exessiver Gebrauch von "With". Dadurch wird dein Code extrem unübersichtlich und schlecht lesbar. Du benutzt das ja selbst, wenn nur eine Eigenschaft verändert wird, in diesem Fall also völlig nutzlos. Gewöhn dir das erst gar nicht an damit tust du dir und Leuten, die deinen Code lesen müssen keinen Gefallen. |
AW: Unerklärliches aufpoppen des CPU-Fensters
Danke für die Antworten.
An sx2008: Schreibe ich den "Patch" nur in eine Form oder in jede? An cookie22: Das Programm ist weit davon entfernt, fertig zu sein; das hast du erkannt. Ursprünglich habe ich ganz ohne with gearbeitet und wirklich immer "form4.button1.width:=..." etc. geschrieben. Das wurde dann komplett durch das with ersetzt, als ich vier edit-Felder und vier Buttons brauchte. Den Code habe ich dann einfach per copy und paste überall eingefügt und da, wo die einzelnen Komponenten nicht gebraucht werden, einfach den überflüssigen Programmcode gelöscht. So entstanden die with-Anweisungen mit nur einer Befehlszeile. Das wird vielleicht auch irgendwann in einer Prozedur verschwinden. |
AW: Unerklärliches aufpoppen des CPU-Fensters
"With" trägt generell nicht zur lesbarkeit von Code bei.
So ist das Ganze viel besser lesbar.
Delphi-Quellcode:
Sollte auch nur ein Tipp sein. ;)
...
Form2.ClientHeight := 104; Form2.ClientWidth := 185; Form2.Visible := True; Form2.edit1.Visible := True; Form2.edit1.Width := 89; Form2.edit1.Top := 8; Form2.edit1.Left := 80; Form2.edit2.Visible := True; Form2.edit2.Width := 89; Form2.edit2.Top := 40; Form2.edit2.Left := 80; ... |
AW: Unerklärliches aufpoppen des CPU-Fensters
Zitat:
BTW: Bin ich hier im richtigen Forum? edit: Wo schreibe ich denn den Code zur Laufzeit rein? Ich habe dieses "initialization" noch nie gesehen... |
AW: Unerklärliches aufpoppen des CPU-Fensters
Ich denke, die Frage passt schon in diese Kategorie.
[edit]Kopier ihn einfach in eine neue, leere Unit, und binde diese ein.[/edit] Aber da "with" schon angesprochen wurde: Verwende aussagekräftige Namen für deine Komponenten! Unter "Form2" und "Edit1" kann sich niemand etwas vorstellen, und es ist nur eine Frage der Zeit, bis du die Bedeutung selbst auch vergessen hast. Hat zwar nichts mit dem Problem zu tun, aber früher oder später wird es auch zu einem ;) |
AW: Unerklärliches aufpoppen des CPU-Fensters
Das hat mir mein Info-Lehrer auch schon gesagt :)
Wie gesagt: Das Programm ist noch lange nicht fertig. edit: Wie ist denn THandle definiert... und die ganzen anderen Sachen wie DWORD, Win32Platform, VER_PLATFORM_WIN32_NT, ...? Es kommt jedes Mal [Fehler] Undefinierter Bezeichner. Oder bin ich sogar zum Kopieren zu blöd?:? (Wie gesagt: Ziemlicher Anfänger) |
AW: Unerklärliches aufpoppen des CPU-Fensters
Ok, das ist es wahrscheinlich nicht, aber...
Je nachdem, kann bei einem Programmabsturz, vom System die Frage kommen: was nun? Drückt man Ja, stürzt das Programm ab, drückt man Nein, poppt das Delphi-Debuger Fenster auf. |
AW: Unerklärliches aufpoppen des CPU-Fensters
Zitat:
![]() Win32Platform und VER_PLATFORM_WIN32_NT sind bestimmt aus der Unit „Windows“, also solltest du diese schon mal einbinden. Wenn dann immer noch Bezeichner nicht gefunden werden, kannst es noch mit der Unit Types versuchen, wenn das immer noch nicht hilft, SysUtils und Classes. Das ist jedenfalls so meine übliche Heuristik ;). Als letzter Schritt bleibt Google... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz