ja. Virtual sagt, dass diese Methode überladen werden kann. Also ausgetauscht werden kann in einer abgeleiteten Klasse. Genau das machst du doch.macht wohl dadurch sin, da ich dies ja überschreibe wenn ich das recht seh
Access violation
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Access violation
MFG
Michael Springwald
Michael Springwald
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2819
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Access violation
Öhm, nö. Überladen ist wiederum etwas anderes. Das bedeutet, dass eine Methode mehrfach mit unterschiedlicher Signatur (Parametertypen, -reihenfolge, -anzahl) existiert.pluto hat geschrieben:ja. Virtual sagt, dass diese Methode überladen werden kann.
http://de.wikipedia.org/wiki/%C3%9Cberladen
Auch das ist so nicht wirklich korrekt. Austauschen kann man die Methoden auch ohne virtual und override, das ist dann das sogenannte Überschreiben.pluto hat geschrieben:Also ausgetauscht werden kann in einer abgeleiteten Klasse. Genau das machst du doch.
http://de.wikipedia.org/wiki/%C3%9Cberschreiben
mfg
Micha
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2819
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Access violation
Noch als kleiner Nachtrag: Den Unterschied zwischen dem Überschreiben von virtuellen und nicht-virtuellen Methoden zeigt dieses kleine Programm:
Code: Alles auswählen
program Test;
{$MODE ObjFpc}
{$H+}
uses
Classes, SysUtils;
type
TParent = class(TObject)
public
procedure Methode;
procedure VirtuelleMethode; virtual;
end;
TChild = class(TParent)
public
procedure Methode;
procedure VirtuelleMethode; override;
end;
procedure TParent.Methode;
begin
WriteLn('Parent sagt Hallo.');
end;
procedure TParent.VirtuelleMethode;
begin
WriteLn('Parent sagt Hallo.');
end;
procedure TChild.Methode;
begin
WriteLn('Child sagt Hallo.');
end;
procedure TChild.VirtuelleMethode;
begin
WriteLn('Child sagt Hallo.');
end;
var
P1, P2: TParent;
C: TChild;
begin
P1 := TParent.Create;
P2 := TChild.Create;
C := TChild.Create;
P1.Methode;
P2.Methode;
C.Methode;
P1.VirtuelleMethode;
P2.VirtuelleMethode;
C.VirtuelleMethode;
end.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: Access violation
naja. der austausch von virtual in override hilft schon erst mal, das die Meldungen net mehr auftreten.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache
und der Kreis Segeberg meine LIEBE 


-
- Beiträge: 61
- Registriert: Di 11. Sep 2007, 16:59
- OS, Lazarus, FPC: Ubuntu Maverick (L 0.9.28.2-10, FPC 2.4.0)
- CPU-Target: 32Bit
- Wohnort: Lage
- Kontaktdaten:
Re: Access violation
Bevor du Pic im Constructor benutzt, solltest du eine Instanz davon erzeugen.
greetz, Dets ...
greetz, Dets ...
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2819
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Access violation
Die "Lösung" von Maik81ftl widerspricht auch allen möglichen Architekturprinzipien. Wenn das wirklich mal eine Laufschrift werden soll, dann ist die Ableitung von TTimer unsinnig (von TImage übrigens auch). Schließlich sollen die User später weder die Timer-Funktionalitäten noch die des Images verwenden. Aber vielleicht verstehe ich auch den Zweck der Komponente nicht, ist leider alles ein wenig verworren.Socke hat geschrieben:BTW: ich finde es etwas umständliche ein Steuerelement (d.h. grafisch) von einer reinen Komponente (d.h. nicht grafisch) abzuleiten. Mein Ansatz wäre TCustomControl oder ähnliches (in diesem Fall evtl. sogar TImage) -- das Laden und Zeichnen von Bildern ist auch nicht so aufwändig, als das man TImage dafür bräuchte.
mf
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: Access violation
Jain, die Zeit der Schrift soll einstellbar sein Default 100, würde dies am liebsten vom TImage ableiten, nur wie bekommen ich eine Paise von gewünschter Zeit rein?m.fuchs hat geschrieben:Die "Lösung" von Maik81ftl widerspricht auch allen möglichen Architekturprinzipien. Wenn das wirklich mal eine Laufschrift werden soll, dann ist die Ableitung von TTimer unsinnig (von TImage übrigens auch). Schließlich sollen die User später weder die Timer-Funktionalitäten noch die des Images verwenden. Aber vielleicht verstehe ich auch den Zweck der Komponente nicht, ist leider alles ein wenig verworren.
mf
Da fällt mir Spontan ASM ein aber die Zeitschleife da zu schreiben ist auch wiederrum aufwendig, da ich ja net weiß, wie schnell die CPUs bei einigen sind und dies in ca 5 Jahren wohl schon ü. 10GHz liegen könnten. da find ich den Kern von TTimer schon obtimaler, da der schon vordeniniert ist.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache
und der Kreis Segeberg meine LIEBE 


- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2819
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Access violation
Was spricht gegen die Nutzung eines TTimer ohne davon abzuleiten?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: Access violation
Garnix, nur das die zusammenführung mit einem TImage schwer wird.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache
und der Kreis Segeberg meine LIEBE 


-
- Beiträge: 292
- Registriert: Sa 5. Feb 2011, 20:38
- OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
- CPU-Target: 32Bit
- Wohnort: Wien
Re: Access violation
Aeh ... ich habe Michaels Tip eher so verstanden, dass Du von einer visuellen Komponente (TLabel oder TImage oder was auch immer) ableitest und diese dann einen TTimer instantiiert ...
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2819
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Access violation
Du brauchst vermutlich kein TImage. Das ist nur schwer zu sagen, weil die von dir gegebenen Informationen meist nicht leicht zu verstehen sind.
Ich vermute aber mal ins Blaue hinein, dass eine Ableitung von TCustomControl mit einem TTimer als privatem Feld genau deine Anforderungen erfüllen.
Ich vermute aber mal ins Blaue hinein, dass eine Ableitung von TCustomControl mit einem TTimer als privatem Feld genau deine Anforderungen erfüllen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: Access violation
nun in dem falle macht wohl dieser kleine Programmauszug wohl sinn.m.fuchs hat geschrieben:Du brauchst vermutlich kein TImage. Das ist nur schwer zu sagen, weil die von dir gegebenen Informationen meist nicht leicht zu verstehen sind.
Ich vermute aber mal ins Blaue hinein, dass eine Ableitung von TCustomControl mit einem TTimer als privatem Feld genau deine Anforderungen erfüllen.
Aber im Nachhinein, wäre sogar die Überlegung diese Form als ein Standart bzw Package zu schreiben. hat man alles auf einen schlag.
- Dateianhänge
-
Testfolder.zip
- Allerdigns nur als code.
- (4.58 MiB) 92-mal heruntergeladen
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache
und der Kreis Segeberg meine LIEBE 


-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Access violation
Ist das nicht etwas übertrieben?Aber im Nachhinein, wäre sogar die Überlegung diese Form als ein Standart bzw Package zu schreiben. hat man alles auf einen schlag.
Wenn ich die Frage richtig verstanden habe, würde ich es so mache wie es "m.fuchs" vorgeschlagen habe.
Ich vertausche immer gerne überschreiben mit überladen. Ich hatte eigentlich das richtige im Sinn *G*. Kennt ihr bestimmt.
Also: Es geht um ein Text, der sich bewegt. der von Links nach Rechts sich bewegen soll. Oder es geht um eine Art Fließ Text. Wo nach und nach ein weitere Teil kommen soll.
Eigentlich nicht weiter Problematisch.
ps:
Wie wäre es, wenn wir eine Art Bereich einrichten, wo wir Übungs- Komponenten bereit stellen? Ganz einfache. Die nur als Schablone dienen sollen.
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Access violation
Schlag mal ein Buch auf: da findest du Fließtext. Fließt dieser Text jetzt aber aus dem Buch hinaus, hast du fließenden -- oder sich bewegenden -- Text.pluto hat geschrieben:Also: Es geht um ein Text, der sich bewegt. der von Links nach Rechts sich bewegen soll. Oder es geht um eine Art Fließ Text. Wo nach und nach ein weitere Teil kommen soll.
Eigentlich nicht weiter Problematisch.

Da gabs doch mal ein Projekt im Forum der Forengruppe zur Lazarusunterstützung (siehe Beispiel oben, aber da find ich gerade recht wenig Zeit zupluto hat geschrieben:Wie wäre es, wenn wir eine Art Bereich einrichten, wo wir Übungs- Komponenten bereit stellen? Ganz einfache. Die nur als Schablone dienen sollen.

MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: Access violation
Der text soll von unten nach oben laufen wie beim AbspannSocke hat geschrieben:Schlag mal ein Buch auf: da findest du Fließtext. Fließt dieser Text jetzt aber aus dem Buch hinaus, hast du fließenden -- oder sich bewegenden -- Text.pluto hat geschrieben:Also: Es geht um ein Text, der sich bewegt. der von Links nach Rechts sich bewegen soll. Oder es geht um eine Art Fließ Text. Wo nach und nach ein weitere Teil kommen soll.
Eigentlich nicht weiter Problematisch.soviel zum Verwechseln
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache
und der Kreis Segeberg meine LIEBE 

