AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Unerklärliches aufpoppen des CPU-Fensters
Thema durchsuchen
Ansicht
Themen-Optionen

Unerklärliches aufpoppen des CPU-Fensters

Ein Thema von bleistift2 · begonnen am 26. Feb 2013 · letzter Beitrag vom 2. Mär 2013
Antwort Antwort
Seite 1 von 2  1 2      
bleistift2

Registriert seit: 26. Feb 2013
5 Beiträge
 
Delphi 5 Standard
 
#1

Unerklärliches aufpoppen des CPU-Fensters

  Alt 26. Feb 2013, 16:59
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:
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;
Quelltext Form2:
Delphi-Quellcode:
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.
Da in der CPU was von UserBreakPoint steht, dachte ich, irgendwo sei ein Haltepunkt, habe aber in sämtlichen Formen keine gefunden.

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.
Miniaturansicht angehängter Grafiken
cpu.png  

Geändert von bleistift2 (26. Feb 2013 um 17:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Unerklärliches aufpoppen des CPU-Fensters

  Alt 26. Feb 2013, 17:02
Schau mal in der Code-Library: http://www.delphipraxis.net/20982-de...erhindern.html
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Unerklärliches aufpoppen des CPU-Fensters

  Alt 26. Feb 2013, 17:10
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.
Gruß
Cookie
  Mit Zitat antworten Zitat
bleistift2

Registriert seit: 26. Feb 2013
5 Beiträge
 
Delphi 5 Standard
 
#4

AW: Unerklärliches aufpoppen des CPU-Fensters

  Alt 26. Feb 2013, 17:28
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.
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Unerklärliches aufpoppen des CPU-Fensters

  Alt 26. Feb 2013, 17:37
"With" trägt generell nicht zur lesbarkeit von Code bei.

So ist das Ganze viel besser lesbar.

Delphi-Quellcode:
...

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;

...
Sollte auch nur ein Tipp sein.
Gruß
Cookie
  Mit Zitat antworten Zitat
bleistift2

Registriert seit: 26. Feb 2013
5 Beiträge
 
Delphi 5 Standard
 
#6

AW: Unerklärliches aufpoppen des CPU-Fensters

  Alt 26. Feb 2013, 17:52
"With" trägt generell nicht zur lesbarkeit von Code bei.
Aber es spart Tipparbeit

BTW: Bin ich hier im richtigen Forum?

edit: Wo schreibe ich denn den Code zur Laufzeit rein? Ich habe dieses "initialization" noch nie gesehen...

Geändert von bleistift2 (26. Feb 2013 um 18:00 Uhr)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Unerklärliches aufpoppen des CPU-Fensters

  Alt 26. Feb 2013, 18:02
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

Geändert von Namenloser (26. Feb 2013 um 18:04 Uhr)
  Mit Zitat antworten Zitat
bleistift2

Registriert seit: 26. Feb 2013
5 Beiträge
 
Delphi 5 Standard
 
#8

AW: Unerklärliches aufpoppen des CPU-Fensters

  Alt 26. Feb 2013, 18:19
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)

Geändert von bleistift2 (26. Feb 2013 um 18:34 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#9

AW: Unerklärliches aufpoppen des CPU-Fensters

  Alt 26. Feb 2013, 18:21
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.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Unerklärliches aufpoppen des CPU-Fensters

  Alt 26. Feb 2013, 19:26
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)
Also laut OH sollte THandle eigentlich in der Unit System deklariert sein (die immer eingebunden ist, auch wenn man sie nicht explizit einbindet).

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...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 Uhr.
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