AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Create(self) bei ausgelagerter Funktion, Methodenzeiger und reguläre Prozedur
Thema durchsuchen
Ansicht
Themen-Optionen

Create(self) bei ausgelagerter Funktion, Methodenzeiger und reguläre Prozedur

Ein Thema von Freyr77 · begonnen am 21. Okt 2016 · letzter Beitrag vom 22. Okt 2016
 
Freyr77
(Gast)

n/a Beiträge
 
#1

Create(self) bei ausgelagerter Funktion, Methodenzeiger und reguläre Prozedur

  Alt 21. Okt 2016, 13:01
Delphi-Version: 10 Seattle
Ich lagere gerade doppelte Funktionen/Prozeduren aus meinen Codes(zusammenhängend in einem Programm, aber jeder Code ein separater Programmbestandteil) in eine Art "Settings" Unit aus.

Jetzt bin ich auf ein Problem gestoßen.

Ich habe folgende Funktion:

Delphi-Quellcode:
var
  lChkBox: TGridCheckBox;

begin
  if (pColumn <> 0) AND (pRow = 0) then
    Exit;

  lChkBox := TGridCheckbox.Create(inherited);

  with lChkBox do
  begin
    Column := pColumn;
    Row := pRow;
    parent := Grid;

    Checked := True;
    Caption := '';
    Width := ChkboxWidth;
    Height := ChkboxHeight;
    OnMouseDown := CheckboxMouseDown;
    Visible := false;
    Invalidate;
  end;

  Grid.Objects[pColumn, pRow] := lChkBox;
  Result := lChkBox;
end;
.. die in beiden Codes vorkommt. Jetzt hab ich das Problem das er mir das Create(self) anmeckert, und komm gerade nicht auf die Lösung.
Ich dachte es geht mit "inherited", aber das ist es auch nicht.



Zweites Problem, in der gleichen Funktion. Hier wird ja "CheckBoxMouseDown" aufgerufen, welches ebenfalls in beiden Codes als Prozedur drinnen war. Das hab ich jetzt auch in meine "Settings" unit integriert, allerdings sagt er da jetzt "Inkompatible Typen: Methodenzeiger und reguläre Prozedur".

"CheckBoxMouseDown" sieht so aus:

Delphi-Quellcode:
var
  lChkBox: TGridCheckBox;
begin
  if Button = TMouseButton.mbLeft then
  begin
  lChkBox := (Sender as TGridCheckbox);
  lChkBox.Checked := not lChkBox.Checked;
  end;
end;
  Mit Zitat antworten Zitat
 


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 14:24 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