Zeichnen TImage falsche Farbe bei Hintergrundbild
Re: Zeichnen TImage falsche Farbe bei Hintergrundbild
Du bringst wieder Klassenmethoden mit normalen durcheinander.
Hast du das schon gelesen?
https://www.delphi-treff.de/object-pasc ... d-objekte/
Nimm dir Zeit dafür, das zu verstehen.
Es ist eine tolle, knappe Zusammenfassung des Wesentlichen in Punkto Delphi und Objektorientierung.
Hast du das schon gelesen?
https://www.delphi-treff.de/object-pasc ... d-objekte/
Nimm dir Zeit dafür, das zu verstehen.
Es ist eine tolle, knappe Zusammenfassung des Wesentlichen in Punkto Delphi und Objektorientierung.
-
- Beiträge: 351
- Registriert: Mi 25. Nov 2015, 17:06
- OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
- CPU-Target: i386 + x86_64
- Wohnort: in der Nähe von Stuttgart
- Kontaktdaten:
Re: Zeichnen TImage falsche Farbe bei Hintergrundbild
vazili_Zaitzef hat geschrieben:[...][...]Code: Alles auswählen
procedure TForm1.Button3Click(Sender: TObject);
begin
TVersuch.Zweitefunction();
end;
Und schon ist der Fehler da...
Du musst auch eine Variable nehmen, nicht die Klasse. Die Klasse ist quasi nur die "Vorlage". Allgemein musst du folgendermaßen vorgehen:
1. Erstellen
2. Funktionen der Klasse Aufrufen
3. Zerstören und Freigeben, wenn es nicht mehr benötigt wird. (in bestimmten Fällen nicht notwenig, da es automatisch gemacht wird)
Also in deinem Beispiel ungefähr so:
Code: Alles auswählen
var
Versuch: TVersuch; // Variable definieren
begin
Versuch := TVersuch.Create; // Erstellen
Versuch.ZweiteFunktion; // Funktionsaufruf
end;
Code: Alles auswählen
InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
-
- Beiträge: 43
- Registriert: Do 6. Dez 2012, 21:55
- OS, Lazarus, FPC: Win7 64 (L 1.6 FPC 3.0.0)
- CPU-Target: 64Bit
Re: Zeichnen TImage falsche Farbe bei Hintergrundbild
Danke
Vollhorst im Dienst. Gleiche Fehler ein zweites Mal
Danke für die Hilfe
Da habe ich noch eine Frage
Kann man auch Klassen weiter runter brechen?
Versuch.ZweiteFunktion.ErsteOperation
Vollhorst im Dienst. Gleiche Fehler ein zweites Mal
Danke für die Hilfe
Da habe ich noch eine Frage
Kann man auch Klassen weiter runter brechen?
Versuch.ZweiteFunktion.ErsteOperation
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2640
- 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: Zeichnen TImage falsche Farbe bei Hintergrundbild
vazili_Zaitzef hat geschrieben:Kann man auch Klassen weiter runter brechen?
Versuch.ZweiteFunktion.ErsteOperation
Warum nicht:
Code: Alles auswählen
unit MeineUnit;
{$MODE ObjFpc}
{$H+}
interface
uses
Classes, SysUtils;
type
TMeineSubClass = class(TObject)
public
procedure MeineMethode;
end;
TMeineClass = class(TObject)
private
FMeineSubClass: TMeineSubClass;
public
property MeineSubClass: TMeineSubClass read FMeineSubClass;
public
constructor Create;
destructor Destroy; override;
end;
var
MeineClass: TMeineClass;
implementation
procedure TMeineClass.SetMeineSubClass(AValue: TMeineSubClass);
begin
if FMeineSubClass = AValue then Exit;
FMeineSubClass := AValue;
end;
constructor TMeineClass.Create;
begin
inherited Create;
FMeineSubClass := TMeineSubClass.Create;
end;
destructor TMeineClass.Destroy;
begin
FreeAndNil(FMeineSubClass);
inherited Destroy;
end;
procedure TMeineSubClass.MeineMethode;
begin
Beep;
end;
initialization
MeineClass := TMeineClass.Create;
finalization
FreeAndNil(MeineClass);
end.
Der Aufruf kann dann zum Beispiel so erfolgen:
Code: Alles auswählen
program Project1;
{$MODE ObjFpc}{$H+}
uses
Classes, MeineUnit;
begin
MeineUnit.MeineClass.MeineSubClass.MeineMethode;
end.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Zeichnen TImage falsche Farbe bei Hintergrundbild
Kann man auch Klassen weiter runter brechen?
Dazu noch was lustiges, sowas wird fehlerlos kompiliert. Aber beim Ausführen wird ein SIGSEV ausgelöst.
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
begin
Parent.Parent.Parent.Parent.Parent.Parent.Parent := Self;
end;
Ein Beispiel, das eher Sinn mach, da sieht man die Verschachtelung sehr gut.
Es Wird dass erste Byte eine Images ausgelesen.
Code: Alles auswählen
var
b: byte;
begin
b := Image1.Picture.Bitmap.RawImage.Data^;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 43
- Registriert: Do 6. Dez 2012, 21:55
- OS, Lazarus, FPC: Win7 64 (L 1.6 FPC 3.0.0)
- CPU-Target: 64Bit
Re: Zeichnen TImage falsche Farbe bei Hintergrundbild
Danke, das sieht doch gut aus.
Werde ich in meinem Urlaub mal ausprobieren
Bin mal gespannt was so geht
Werde ich in meinem Urlaub mal ausprobieren
Bin mal gespannt was so geht