Code: Alles auswählen
const
  cmdKey='cmdKey';
type
  TCmd = (cmdRemove, cmdRemoveAll, cmdAppend, cmdUp, cmdDown);
Code: Alles auswählen
  function CreateBtnButton(label_, icon_name: Pgchar; cmd: TCmd; listBox: PGtkWidget): PGtkWidget;
    ...
    Result := gtk_button_new;
    ...   
    g_object_set_data(G_OBJECT(Result), cmdKey, Pointer(PtrInt(cmd))); // !!!!!
    ...
  end;Code: Alles auswählen
  procedure btn_click_cp(widget: PGtkWidget; Data: Tgpointer); cdecl;
  var
    cmd: TCmd;
  begin
    cmd := TCmd(PtrInt(g_object_get_data(G_OBJECT(widget), cmdKey))); // !!!!!
    WriteLn(cmd);
    case cmd of
      cmdRemove: begin
      ...
      end;
      ...
Code: Alles auswählen
  var
    obj: Tgpointer;
    cmd: TCmd absolute obj;
  begin
    obj := g_object_get_data(G_OBJECT(widget), cmdKey);
    case cmd of     Gibt es da was besseres oder muss man den doppel-cast in Kauf nehmen.
 Verein
Verein 
 Links
Links Suche
Suche