![]() |
Onclick mit weiteren Parametern als nur "Sender:Tobject
Hallo,
ich habe folgendes Problem: Ein zur laufzeit erzeugter button "but1"
Delphi-Quellcode:
Geht einwandfrei, klar!
type
... procedure But1Click(Sender: TObject); private ... ... ... ... but1.onclick := But1Click; .. .. procedure TForm1.But1Click(Sender: TObject); begin ... end aber ich möchte gerne die Parameterliste erweitern etwa so:
Delphi-Quellcode:
type
... procedure But1Click(Sender: TObject; x:string); private ... ... ... ... but1.onclick := But1Click('irgendein string'); .. .. procedure TForm1.But1Click(Sender: TObject; x:string); begin ... end Da kommt die meldung:
Code:
gut sender:Tobject !!
[Fehler] main.pas(289): Inkompatible Typen: 'TObject' und 'String'
was kann ich tun ?? aus dem
Delphi-Quellcode:
ein
but1.onclick := But1Click('irgendein string');
Delphi-Quellcode:
zu machen, resultiert in diesem fehler
but1.onclick := But1Click(but1,'irgendein string');
Code:
Dt2158
[Fehler] main.pas(289): Inkompatible Typen: 'TNotifyEvent' und 'procedure, untyped pointer or untyped parameter'
|
Re: Onclick mit weiteren Parametern als nur "Sender:Tob
welchen sinn verfolgst du damit?
|
Re: Onclick mit weiteren Parametern als nur "Sender:Tob
Hi,
OnClick ist vom Typ TNotifyEvent, der folgendermaßen definiert ist:
Delphi-Quellcode:
Das heißt, OnClick wird nur der Methodenname übergeben. Des weiteren ist somit klar, dass Du einem 'normalen' TNotifyEvent-Handler keine weiteren Parameter übergeben kannst, da diese ja bereits definiert sind.
TYPE
TNotifyEvent = PROCEDURE (Sender: TObject) OF OBJECT; Hmm.. habs heut nich so mitm Erklären, sry :oops: Gruß Stephan :dance: :xmas: |
Re: Onclick mit weiteren Parametern als nur "Sender:Tob
der string:
Delphi-Quellcode:
stammt von einem mysql-result
but1.onclick := But1Click('irgendein string');
Delphi-Quellcode:
also
var row: PMYSQL_ROW;
Delphi-Quellcode:
das problem ist, dass es mir nicht gelungen ist die variable row: PMYSQL_ROW global zu registrieren, sondern nur in der procedure in der auch der aufruf von But1Click stattfindet.
but1.onclick := But1Click(row[0]);
Gut ich könnte jetzt noch eine global Variable registrieren und dieser row[0] übergeben, das ist aber alles nicht so schön gelöst und mein programm sieht jetzt schon nicht so toll aus :roll: |
Re: Onclick mit weiteren Parametern als nur "Sender:Tob
Zitat:
|
Re: Onclick mit weiteren Parametern als nur "Sender:Tob
Hallo,
Ich verstehe trotzdem nicht warum du das machen willst und was es bewirken soll. Willst du einen String außerhalb dieser Prozedur speichern? Dann nimm eine Membervariable der Klasse. Ich kann aber nur raten, was du bezweckst. grüße, daniel |
Re: Onclick mit weiteren Parametern als nur "Sender:Tob
Hallo,
ich verwende für die Übergabe von Zeichenfolgen einfach die Eigenschaft "Hint" des TButton.
Code:
but1.Hint := 'Irgendwas';
but1.onclick := But1Click; procedure TForm1.But1Click(Sender: TObject); var s : string; begin s := (Sender as TButton).Hint; end |
Re: Onclick mit weiteren Parametern als nur "Sender:Tob
Zitat:
|
Re: Onclick mit weiteren Parametern als nur "Sender:Tob
hat wunderbar geklappt, danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 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