Autor |
Beitrag |
sintec
      
Beiträge: 133
|
Verfasst: Mi 23.05.07 11:17
Hallo an alle,
Ich habe ein Problem mit der Gauge und zwar: bekomme ich ständig beim kompilieren die Meldung " Feld Form1.Gauge besitzt keine entsprechende Komponente. Soll die Deklaration entfernt werden?"
Wenn man "ja" anklickt löscht er die Zeile "Gauge: TGauge;" und wenn man auf "nein" klickt, kompiliert er das Programm. Aber wenn man das Programm jetzt benutzen will, gibts den Fehler "Zugriffsverletzung bei Adresse 00443AE7 in Modul 'Form1.exe'. Lesen von Adresse 00000057." und zwar bei der ersten Zeile wo was mit Gauge steht (in meinem Fall "gauge.MaxValue := max;").
Kann mir einer helfen?
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mi 23.05.07 11:25
Entfern die Gauge vom Formular und gegebenenfalls auch die Deklaration oben und setz anschließend wieder ein auf die Form, und nenn sie wie die Alte.
LG
Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
sintec 
      
Beiträge: 133
|
Verfasst: Mi 23.05.07 11:33
ZeitGeist87 hat folgendes geschrieben: | Entfern die Gauge vom Formular und gegebenenfalls auch die Deklaration oben und setz anschließend wieder ein auf die Form, und nenn sie wie die Alte.
LG
Stefan |
Was meinst du mit auf die Form setzen?
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 23.05.07 11:55
sintec hat folgendes geschrieben: | Was meinst du mit auf die Form setzen? |
Die Komponente in der Komponetenleiste auswählen mit der Maus. Linke Maustaste gedrückt halten und ganz langsam die Maus über das Formular ziehen. Befindet sich der Mauszeiger über dem Formular, linke Maustaste loslassen. Diesen Vorgang bezeichnet man unteranderem als "auf die Form setzen". 
|
|
sintec 
      
Beiträge: 133
|
Verfasst: Mi 23.05.07 12:07
|
|
Smikey
      
Beiträge: 45
Win XP, kUbuntu 6.06
Delphi 2005 Architect
|
Verfasst: Mi 23.05.07 12:10
F12
mfg smikey
_________________ Bloß weil du nicht paranoid bist, heißt das nicht, dass sie nicht hinter dir her sind.
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Mi 23.05.07 12:10
Was hast Du denn für eine Delphiversion, TGauge unter Beispiele.
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
sintec 
      
Beiträge: 133
|
Verfasst: Mi 23.05.07 12:24
Ich benutze den TurboExplorer für Delphi.
unter C:\Programme\Borland\BDS\4.0\source\Win32\Samples\Source habe ich ja die Gauge.pas die kann ich auch öffnen, aber dann bekomme ich nur reines Quellcode.
Als Komponente in der Komponentenliste gibts die dann auch nicht.
|
|
Stefan.Buchholtz
      
Beiträge: 612
WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
|
Verfasst: Mi 23.05.07 12:31
bei den kostenlosen Turbo-Versionen kann man Komponenten nicht in die IDE installieren, um sie im Formulardesigner zu verwenden.
Deswegen kannst du die Komponente auch nicht zur Designzeit auf dem Formular haben.
Dir wird nichts anderes übrigbleiben als die Komponente aus dem Formular entfernen zu lassen und sie dann zur Laufzeit, z.B. im FormCreate-Event selbst zu erzeugen und die Properties zuzuweisen.
Stefan
_________________ Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Mi 23.05.07 12:34
Dann versuch mal die Komponente zu erzeugen, weiss nicht genau ob das klappt.
Bei Uses Gauges
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| var MyGauge:TGauge; begin MyGauge:=TGauge.Create(Self); MyGauge.Parent:=Form1; MyGauge.Top:=100; MyGauge.Left:=100; end; |
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mi 23.05.07 12:37
Blackheart666 hat folgendes geschrieben: | Dann versuch mal die Komponente zu erzeugen, weiss nicht genau ob das klappt.
Bei Uses Gauges
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var MyGauge:TGauge; begin MyGauge:=TGauge.Create(Self); MyGauge.Parent:=Form1; MyGauge.Top:=100; MyGauge.Left:=100;
MyGauge.Name:= 'Gaugexyz'; end; | |
Nimm doch die Progressbar her
LG
Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
Stefan.Buchholtz
      
Beiträge: 612
WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
|
Verfasst: Mi 23.05.07 12:40
Ein Name ist bei zur Laufzeit erzeugten Komponenten nicht wirklich nötig.
Stefan
_________________ Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mi 23.05.07 12:45
Stefan.Buchholtz hat folgendes geschrieben: | Ein Name ist bei zur Laufzeit erzeugten Komponenten nicht wirklich nötig.
Stefan |
hmm und wenn er mehrere hat und sie ansprechen will?
Ok er kanns über ne globale Variable lösen, aber ich finds einfach besser, den Komponenten eindeutige Namen zu geben..
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
Stefan.Buchholtz
      
Beiträge: 612
WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
|
Verfasst: Mi 23.05.07 13:10
ZeitGeist87 hat folgendes geschrieben: | hmm und wenn er mehrere hat und sie ansprechen will?
Ok er kanns über ne globale Variable lösen, aber ich finds einfach besser, den Komponenten eindeutige Namen zu geben.. |
Ich würde dann einfach in der Formularklasse Felder für die Komponenten deklarieren - natürlich keine globalen Variablen, die sind bäh
Also so:
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:
| type TForm1 = class(TFrom) .... private Gauge1 : TGauge; Gauge2 : TGauge; ... public ... end;
...
procedure TForm1.FormCreate(Sender: TObject); begin Gauge1 := TGauge.Create(self); Gauge1.Parent := self; Gauge1.Top := 100; Gauge1.Left := 100; ...
Gauge2 := TGauge.Create(self); Gauge2.Parent := self; Gauge2.Top := 120; Gauge2.Left := 100; ... end; |
Dann kann man die weiter wie im Formulardesigner erzeugte Komponenten verwenden.
Der Formulardesigner erzeugt das Feld nur automatisch und gibt ihm den gleichen Namen wie die Komponente, damit das Streaming-System beim Erzeugen des Formulars die Komponente dem Feld im Formularobjekt zuweisen kann. Das passiert hier zu Fuss im FormCreate, der Name der Komponente selbst wird also nie verwendet und ist überflüssig.
Stefan
_________________ Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
|
|
sintec 
      
Beiträge: 133
|
Verfasst: Mi 23.05.07 13:36
Das ist Super. Funktioniert wunderbar.
Vielen Dank
Aber das Problem mit der Meldung " Feld Form1.Gauge besitzt keine entsprechende Komponente. Soll die Deklaration entfernt werden?" habe ich immer noch.
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mi 23.05.07 13:47
Quelltext posten!
ZackZack 
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
sintec 
      
Beiträge: 133
|
Verfasst: Mi 23.05.07 14:06
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:
| unit EWFileSave;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, shlobj, ComCtrls, AppEvnts, ExtCtrls, IniFiles, Ergebnis, Meldung, Gauges;
type TShutdownWindowsType = (swtShutdown, swtShutdownPowerOff, swtRestart, swtLogoff); TFileSave = class(TForm) Gauge: TGauge; ... procedure TFileSave.FormCreate(Sender: TObject); begin Gauge := TGauge.Create(self); Gauge.Parent := self; Gauge.Top := 370; Gauge.Left := 8; Gauge.Width := 419; Gauge.Height := 20; Gauge.Visible := false; end; | Ich hoffe das reicht, denn der Code ist über 750 Zeilen lang. Wenn ich bei der Meldung auf "Ja" klicke, löscht er die 13. Zeile.
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mi 23.05.07 14:16
sintec hat folgendes geschrieben: | 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:
| unit EWFileSave;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, shlobj, ComCtrls, AppEvnts, ExtCtrls, IniFiles, Ergebnis, Meldung, Gauges;
type TShutdownWindowsType = (swtShutdown, swtShutdownPowerOff, swtRestart, swtLogoff); TFileSave = class(TForm) Gauge: TGauge; private Gauge: TGauge; public Gauge: TGauge; end; ... procedure TFileSave.FormCreate(Sender: TObject); begin Gauge := TGauge.Create(self); Gauge.Parent := self; Gauge.Top := 370; Gauge.Left := 8; Gauge.Width := 419; Gauge.Height := 20; Gauge.Visible := false; end; |
Ich hoffe das reicht, denn der Code ist über 750 Zeilen lang.
Wenn ich bei der Meldung auf "Ja" klicke, löscht er die 13. Zeile. |
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
sintec 
      
Beiträge: 133
|
Verfasst: Mi 23.05.07 14:22
gg  man bin ich Blöd
Vielen Dank
|
|
sintec 
      
Beiträge: 133
|
Verfasst: Fr 25.05.07 13:39
Hallo nochmal,
ich habe ein kleines Problem mit der Gauge und zwar: wollte ich die Gauge auch in einem anderem Tool benutzen und bei dem Programm war früher ein ProgressBar auf einem Frame. Das Frame hat aber kein Ereignis namens FrameCreate oder FormCreate also kann ich es nicht zur Laufzeit erzeugen.
wie kann ich dann sonst machen?
|
|
|