IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @238
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Dokonalosť v jednoduchosti

Wyse T10 – dokonalosť, na ktorú ste čakali. www.ts.avnet.com

Chcete darček pre svoje dieťa

Odpovedzte na otázky a vyhrajte! LEGO duplo 2 krát deňne do konca mesiaca www.duplo.lego.com

Dali sme si poradiť

Naše peniaze sa zhodnocujú. A vám? www.partnersgroup.sk

Zbavte sa viazanosti

Za Samsung Galaxy Ace so zlatým O2 Paušálom zaplatíte teraz 12 €! pausal.o2.sk

Sprostredkovávajte hypotéky

Začnite sprostredkovávať hypotéky s úspešným hypotekárnym centrom! www.SprostredkovanieUverov.sk

Delphi - Dynamické vykreslovanie (runtime) komponentov

Zaslať odpoveď
AutorSpráva
Manny
Užívateľ
Užívateľ

Založený: 01.10.2009
Príspevky: 73
Vek: 22

PríspevokZaslal: Št 14.10.10 16:47Odpovedať s citátomNávrat hore

Ahoj,

pracujem teraz na takom free softe, čo má vedieť uchovávať poznámky takým spôsobom, aby sa dali ľahko dohľadať. Využívam na to SQLite3. Celkovo mám jedinú tabuľku, ktorá obsahuje stĺpce: NoteId, NoteName, NoteTag.

Jedná sa o to, že by som chcel každú poznámku (poznámkou chápem záznam v DB) vykresliť pomocou komponenty TNotebook, v ktorej budú ešte TMemo, TEdit a TLabel. Pre lepšie predstavenie by to malo vyzerať takto:



No, ide o to, že sa vykreslujú tieto "poznámky" vedľa seba s takým malým náhľadom, aby používateľ vedel, čo potrebuje. A mňa by zaujímalo ako runtimovo vykreslím TNotebook, v ktorom budú ďalšie komponenty a ako potom budem k nemu pristupovať (napr. ako zistím či používateľ klikol na nejakú z týchto komponentov).

Ďakujem za akékoľvek nápomocné reakcie.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQSkypeFacebook
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1049

PríspevokZaslal: Št 14.10.10 17:45Odpovedať s citátomNávrat hore

Ak som správne pochopil, že potrebuješ za behu vytvárať komponent a patrične ošetrovať jeho eventy, tak skús toto: na formulár daj jeden TButton, po kliknutí ktorého sa vytvorí inštancia triedy TNotebook. Jej definícia je tu:

kód:
  TNotebook = class
  private
    memo1: TMemo;
    edit1: TEdit;
  public
    constructor Create();
    procedure OnMemoClick( Sender: TObject );
  end;


Nová premenná notebook1:

kód:
var
  Form1: TForm1;
  notebook1: TNotebook;


Immplementácia členských metód:

kód:
constructor TNotebook.Create();
begin

  memo1:= TMemo.Create( Form1 );
  with memo1 do begin
    parent:= Form1;
    Left:= 10;
    Top:= 10;
    Width:= 160;
    Height:= 60;
  end;

  edit1:= TEdit.Create( Form1 );
  with edit1 do begin
    parent:= Form1;
    Left:= 10;
    Top:= 80;
    Width:= 160;
    Height:= 20;
  end;

  memo1.OnClick:= OnMemoClick;    // takto priradíš danému eventu procedúru, ktorá sa má vykonať

end;


procedure TNotebook.OnMemoClick( Sender: TObject );
begin

  ShowMessage( 'Kliklo sa na memo' );

end;

procedure TForm1.Button1Click(Sender: TObject);
begin

  notebook1:= TNotebook.Create();

end;


Ak je to to, čo si potreboval, tak si to už len patrične uprav.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Manny
Užívateľ
Užívateľ

Založený: 01.10.2009
Príspevky: 73
Vek: 22

PríspevokZaslal: Pi 15.10.10 0:30Odpovedať s citátomNávrat hore

OK, toto mi je jasné, akurát som nenašiel vytvorenie samotného TNotebook-u. Potrebujem pochopit, ako vytvorím to TMemo a TEdit s nastavením na rodiča TNotebook. Teda aby to memo s editom patrili notebooku, nie formu ako je to teraz.

A ešte sa ťa spýtam, akým spôsobom budem pristupovať ku komponentám, ak ich budem takto vytvárať viac? Napr. takýmto spôsobom potrebujem vytvoriť 30x Memo a po kliknutí na nejaké musím identifikovať ku akému ID v databázi je to memo priradené.

_________________
Bad news: Time flies. God news: You are the pilot!
Zobraziť informácie o autoroviOdoslať súkromnú správuICQSkypeFacebook
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 936

PríspevokZaslal: Pi 15.10.10 10:05Odpovedať s citátomNávrat hore

rozsir class TNotebook o parameter row_id do ktoreho budes zapisovat id riadku z tabulky.
samozrejme jedna z moznosti ako vytvorit viac instancii je miesto jednej premennej
kód:
notebook1:TNotebook;
si zadefinovat
kód:
notebooks:TList;
a pri vytvarani noveho notebooku postupovat napriklad takto
kód:
notebooks.add(TNotebook.create());

toto je len jednoducha verzia, vyhodnejsie je si urobit nejakeho managera instancii notebookov ktory bude manageovat vytvaranie, rusenie, vyhladavanie ...
ak mam niekde nejaku chybu tak sa ospravedlnujem, uz som s delphi davno nerobil.
Zobraziť informácie o autoroviOdoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd