AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

OnClick zur Runtime zuweisen

Ein Thema von Gehstock · begonnen am 4. Okt 2007 · letzter Beitrag vom 5. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2   
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#1

OnClick zur Runtime zuweisen

  Alt 4. Okt 2007, 22:03
versuch grad einen History Funktion in mein Programm zu integrieren fü 10 Einträge

das Hinzufügen in ein MainMenu klappt

Delphi-Quellcode:
var
x,y,HC : Integer;
s,b : String;
vName,Item : TMenuItem;
.........

IniFile.WriteInteger('History','Count',HC+1);
    IniFile.WriteString('History',InttoStr(HC),'@'+NodeForDB+'@'+s+'@');
    frmMain.History1.Clear;
     for HC := 0 to 10 do
    begin
    vName := TMenuItem.Create(Menu);
    b := IniFile.ReadString('History',InttoStr(HC),b);
    vName.Caption:=GetToken(b, '@', 3); // Entry
nun brauch ich für das OnClick auf die selben
versuche das grad so
// vName.OnClick := (frmMain.TreeView1.Selected := frmSearch.TreeItemSearch(frmMain.TreeView1,vname.Caption)); +

das führt aber zu
Zitat:
[DCC Fehler] DBtools.pas(124): E2010 Inkompatible Typen: 'TNotifyEvent' und 'procedure, untyped pointer or untyped parameter'
Marcel
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: OnClick zur Runtime zuweisen

  Alt 4. Okt 2007, 22:14
Du brauchst auch eine Methode mit der passenden Signatur
Markus Kinzler
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#3

Re: OnClick zur Runtime zuweisen

  Alt 4. Okt 2007, 22:15
Ähm wie bitte
Marcel
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: OnClick zur Runtime zuweisen

  Alt 4. Okt 2007, 22:18
Mit Grundlagen hat man es scheinbar heutzutage nicht mehr so. Unter Signatur versteht man die Anzahl und Typen von Parametern und Rückgabewerten eine Prozedur/Funktion/Methode
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: OnClick zur Runtime zuweisen

  Alt 4. Okt 2007, 22:52
OnClick ist ein TNotifyEvent
Und das ist so definiert das es eine methode (procedure/funktion einer Klasse) sein muss ohne rückgabewert und mit einem Parameter vom Typ TObject.

Wenn du diese Bedingungen erfüllst geht:
objectinstanz.OnClick = ClickMethode;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#6

Re: OnClick zur Runtime zuweisen

  Alt 4. Okt 2007, 23:13
Die Frage habe ich mir auch schon mal gestellt.
Aber warum klappt dann folgender Code nicht:
Delphi-Quellcode:
procedure ClickCustom(Sender: TObject);
begin
    ShowMessage('Test');
end;

procedure TForm1.Button1Click(Sender: TObject);
var A: Array of TButton;
    i: integer;
begin
     SetLength(A,20);
     for i := 0 to Length(A)-1 do
     begin
         A[i] := TButton.Create(self);
         A[i].parent := Self;
         A[i].Top := i*3;
         A[i].Left := i*3;
         A[i].OnClick := clickcustom;
         A[i].Visible := true;
     end;
end;
Meldung:
Code:
Inkompatible Typen: Methodenzeiger und reguläre Prozedur
EDIT: Sinnvoll ist dieser Code nicht...
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: OnClick zur Runtime zuweisen

  Alt 4. Okt 2007, 23:16
Wie der Compiler schon sagt: Du brauchst eine Methode und keine regüläre Procedure. Methode gibt es nur innerhalb von Klassen und sind die Procedure/Function von Klassen. Eine reguläre Procedure/Function ist eigenständig und gehört zu keiner Klasse.
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#8

Re: OnClick zur Runtime zuweisen

  Alt 4. Okt 2007, 23:19
Okay überredet. Es funktioniert:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure ClickCustom(Sender:TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;


implementation

{$R *.DFM}

procedure TForm1.ClickCustom(Sender: TObject);
begin
    ShowMessage('Test');
end;

procedure TForm1.Button1Click(Sender: TObject);
var A: Array of TButton;
    i: integer;
begin
     SetLength(A,200);
     for i := 0 to Length(A)-1 do
     begin
         A[i] := TButton.Create(self);
         A[i].parent := Self;
         A[i].Top := i*3;
         A[i].Left := i*3;
         A[i].OnClick := clickcustom;
         A[i].Visible := true;
     end;
end;

end.
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#9

Re: OnClick zur Runtime zuweisen

  Alt 5. Okt 2007, 17:10
Das begreif ich nicht
Delphi-Quellcode:
for HC := 0 to 10 do
    begin
    vName := TMenuItem(Menu);
    b := IniFile.ReadString('History',InttoStr(HC),b);
    with vName do begin
    Visible := true;
    vName.Caption:=GetToken(b, '@', 3); // Entry
    Name := 'Item1'+InttoStr(HC); //Das Item Muss schon Existieren?
// Parent := frmMain;
    frmMain.Item11.OnClick :=showmessage('test');//das Onclick ereignis existiert bereits und soll mit Showmessage.. überschrieben werden? weil ich zum jetzigen zeitpunkt ja noch nicht weiß was es machen soll
     frmMain.History1.Add(vName);
Marcel
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: OnClick zur Runtime zuweisen

  Alt 5. Okt 2007, 17:19
Du scheinst unsere Beiträge glatt zu ignorieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz