Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Delphi - Dynamické vykreslovanie (runtime) komponentov

Registrovaný: 01.10.09
Prihlásený: 12.03.17
Príspevky: 86
Témy: 18
Príspevok NapísalOffline : 14.10.2010 16:47

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:

Delphi - Dynamické vykreslovanie (runtime) komponentov

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.


Offline

Skúsený užívateľ
Skúsený užívateľ
Delphi - Dynamické vykreslovanie (runtime) komponentov

Registrovaný: 11.01.09
Prihlásený: 16.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 14.10.2010 17:45

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.


Offline

Užívateľ
Užívateľ
Delphi - Dynamické vykreslovanie (runtime) komponentov

Registrovaný: 01.10.09
Prihlásený: 12.03.17
Príspevky: 86
Témy: 18
Príspevok Napísal autor témyOffline : 15.10.2010 0:30

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!
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 15.10.2010 10:05

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.


Odpovedať na tému [ Príspevkov: 4 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. [Delphi] vykreslovanie drahy

v Delphi, Visual Basic

9

858

16.02.2011 19:34

vama Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Neviem pouzit niektore (zakladne) prvky Komponentov v delphi

v Delphi, Visual Basic

3

746

05.04.2009 7:24

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. delphi zapis cisla do editu v delphi

v Delphi, Visual Basic

3

1105

11.05.2008 12:02

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vykreslovanie grafu

v Delphi, Visual Basic

6

862

27.08.2011 11:54

vama Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. nahodne vykreslovanie - pascal

v Assembler, C, C++, Pascal, Java

16

1659

03.06.2007 22:38

juho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vykreslovanie do Canvas

v Assembler, C, C++, Pascal, Java

4

287

13.04.2013 12:14

XOLOO Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. gts250 1gb vykreslovanie

v nVidia grafické karty

4

355

01.01.2011 9:47

marko13 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pomale vykreslovanie Photoshop

v Grafické programy

4

548

12.11.2009 12:29

El_locco Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. QtCreator - vykreslovanie pixelov

v Assembler, C, C++, Pascal, Java

9

580

27.02.2011 23:40

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. dynamicke obrazky

v HTML, XHTML, XML, CSS

11

768

09.02.2008 1:06

HAE07 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dynamicke pole..

v PHP, ASP

3

417

28.09.2011 22:56

Ando Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dynamické objekty

v PHP, ASP

25

1074

04.01.2010 15:37

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SVG vykreslovanie v cecku

v Assembler, C, C++, Pascal, Java

12

763

19.06.2011 17:52

ice-g Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C - vykreslovanie sikmych ciar

v Assembler, C, C++, Pascal, Java

8

634

29.05.2010 13:48

stopa27 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Runtime error

v Operačné systémy Microsoft

9

464

30.09.2010 15:32

klaudia Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. runtime error

v Ostatné programy

2

494

15.07.2010 13:12

drodos Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra