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
Antwort Antwort
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.556 Beiträge
 
Delphi 12 Athens
 
#1

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

  Alt 21. Okt 2016, 13:23
Da Events nunmal Methoden-Zeiger sind, kannst du da auch nur Methoden zuweisen.

Methoten sind "Prozeduren", die in "irgendeiner" Klasse definiert sind.
Das können normale Instanz-Methoden (nur keine mit "static") oder Klassen-Methoden sein.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#2

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

  Alt 21. Okt 2016, 13:56
Wenn du immer nur ein und dasselbe CheckboxMouseDown hast, würde ich das nicht über einen OnMouseDown-Handler lösen, sondern direkt TGridCheckbox.DoMouseDown überschreiben (oder heißt's TGridCheckbox.MouseDown?).
Uli Gerhardt
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.493 Beiträge
 
Delphi 12 Athens
 
#3

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

  Alt 21. Okt 2016, 15:06
Vieleicht so:
Delphi-Quellcode:
TGridCheckBoxHelp = class(TComponent)
protected
  procedure CheckBoxMouseDown({...});
public
  procedure CreateCheckBox({...});
end;

procedure TGridCheckBoxHelp.CreateCheckBox({...});
var
  lChkBox: TGridCheckBox;

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

  lChkBox := TGridCheckbox.Create(Grid); // Freigabe übernimmt das Grid oder Self

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

    Checked := True;
    Caption := '';
    Width := ChkboxWidth;
    Height := ChkboxHeight;
    OnMouseDown := CheckboxMouseDown;
    Visible := false;
    Invalidate; // Invalidate für ein unsichtbares Steuerelement?
  end;

  Grid.Objects[pColumn, pRow] := lChkBox;
  Result := lChkBox;
end;

{z.B. im Show des Formulars}
FGridCheckBoxHelp := TGridCheckBoxHelp.Create(Self); // Freigabe übernimmt Self (das Formular)
FGridCheckBoxHelp.CreateCheckBox({...});
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#4

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

  Alt 22. Okt 2016, 22:34
Wenn du aus irgendeinem Grund den Weg mit Event Handler gehen willst, kannst du es mit Klassenmethoden versuchen - siehe https://stackoverflow.com/questions/...84676#11084676. Damit ersparst du dir das Erzeugen und Freigeben einer Dummy-Instanz (wie FGridCheckBoxHelp in Blups Post ).
Uli Gerhardt
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:56 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